|
62 | 62 | ((GET_BITFIELD(reg, 0, 10) << 12) + 0x140000)
|
63 | 63 |
|
64 | 64 | #define I10NM_GNR_IMC_MMIO_OFFSET 0x24c000
|
| 65 | +#define I10NM_GNR_D_IMC_MMIO_OFFSET 0x206000 |
65 | 66 | #define I10NM_GNR_IMC_MMIO_SIZE 0x4000
|
66 | 67 | #define I10NM_HBM_IMC_MMIO_SIZE 0x9000
|
67 | 68 | #define I10NM_DDR_IMC_CH_CNT(reg) GET_BITFIELD(reg, 21, 24)
|
@@ -687,6 +688,14 @@ static struct pci_dev *get_gnr_mdev(struct skx_dev *d, int logical_idx, int *phy
|
687 | 688 | return NULL;
|
688 | 689 | }
|
689 | 690 |
|
| 691 | +static u32 get_gnr_imc_mmio_offset(void) |
| 692 | +{ |
| 693 | + if (boot_cpu_data.x86_vfm == INTEL_GRANITERAPIDS_D) |
| 694 | + return I10NM_GNR_D_IMC_MMIO_OFFSET; |
| 695 | + |
| 696 | + return I10NM_GNR_IMC_MMIO_OFFSET; |
| 697 | +} |
| 698 | + |
690 | 699 | /**
|
691 | 700 | * get_ddr_munit() - Get the resource of the i-th DDR memory controller.
|
692 | 701 | *
|
@@ -715,7 +724,7 @@ static struct pci_dev *get_ddr_munit(struct skx_dev *d, int i, u32 *offset, unsi
|
715 | 724 | return NULL;
|
716 | 725 |
|
717 | 726 | *offset = I10NM_GET_IMC_MMIO_OFFSET(reg) +
|
718 |
| - I10NM_GNR_IMC_MMIO_OFFSET + |
| 727 | + get_gnr_imc_mmio_offset() + |
719 | 728 | physical_idx * I10NM_GNR_IMC_MMIO_SIZE;
|
720 | 729 | *size = I10NM_GNR_IMC_MMIO_SIZE;
|
721 | 730 |
|
@@ -1030,6 +1039,7 @@ static const struct x86_cpu_id i10nm_cpuids[] = {
|
1030 | 1039 | X86_MATCH_VFM(INTEL_SAPPHIRERAPIDS_X, &spr_cfg),
|
1031 | 1040 | X86_MATCH_VFM(INTEL_EMERALDRAPIDS_X, &spr_cfg),
|
1032 | 1041 | X86_MATCH_VFM(INTEL_GRANITERAPIDS_X, &gnr_cfg),
|
| 1042 | + X86_MATCH_VFM(INTEL_GRANITERAPIDS_D, &gnr_cfg), |
1033 | 1043 | X86_MATCH_VFM(INTEL_ATOM_CRESTMONT_X, &gnr_cfg),
|
1034 | 1044 | X86_MATCH_VFM(INTEL_ATOM_CRESTMONT, &gnr_cfg),
|
1035 | 1045 | X86_MATCH_VFM(INTEL_ATOM_DARKMONT_X, &gnr_cfg),
|
|
0 commit comments