@@ -222,6 +222,19 @@ static struct work_struct ecclog_work;
222222#define DID_ADL_SKU3 0x4621
223223#define DID_ADL_SKU4 0x4641
224224
225+ /* Compute die IDs for Alder Lake-N with IBECC */
226+ #define DID_ADL_N_SKU1 0x4614
227+ #define DID_ADL_N_SKU2 0x4617
228+ #define DID_ADL_N_SKU3 0x461b
229+ #define DID_ADL_N_SKU4 0x461c
230+ #define DID_ADL_N_SKU5 0x4673
231+ #define DID_ADL_N_SKU6 0x4674
232+ #define DID_ADL_N_SKU7 0x4675
233+ #define DID_ADL_N_SKU8 0x4677
234+ #define DID_ADL_N_SKU9 0x4678
235+ #define DID_ADL_N_SKU10 0x4679
236+ #define DID_ADL_N_SKU11 0x467c
237+
225238static int get_mchbar (struct pci_dev * pdev , u64 * mchbar )
226239{
227240 union {
@@ -433,6 +446,17 @@ static struct res_config adl_cfg = {
433446 .err_addr_to_imc_addr = adl_err_addr_to_imc_addr ,
434447};
435448
449+ static struct res_config adl_n_cfg = {
450+ .machine_check = true,
451+ .num_imc = 1 ,
452+ .imc_base = 0xd800 ,
453+ .ibecc_base = 0xd400 ,
454+ .ibecc_error_log_offset = 0x68 ,
455+ .ibecc_available = tgl_ibecc_available ,
456+ .err_addr_to_sys_addr = adl_err_addr_to_sys_addr ,
457+ .err_addr_to_imc_addr = adl_err_addr_to_imc_addr ,
458+ };
459+
436460static const struct pci_device_id igen6_pci_tbl [] = {
437461 { PCI_VDEVICE (INTEL , DID_EHL_SKU5 ), (kernel_ulong_t )& ehl_cfg },
438462 { PCI_VDEVICE (INTEL , DID_EHL_SKU6 ), (kernel_ulong_t )& ehl_cfg },
@@ -454,6 +478,17 @@ static const struct pci_device_id igen6_pci_tbl[] = {
454478 { PCI_VDEVICE (INTEL , DID_ADL_SKU2 ), (kernel_ulong_t )& adl_cfg },
455479 { PCI_VDEVICE (INTEL , DID_ADL_SKU3 ), (kernel_ulong_t )& adl_cfg },
456480 { PCI_VDEVICE (INTEL , DID_ADL_SKU4 ), (kernel_ulong_t )& adl_cfg },
481+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU1 ), (kernel_ulong_t )& adl_n_cfg },
482+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU2 ), (kernel_ulong_t )& adl_n_cfg },
483+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU3 ), (kernel_ulong_t )& adl_n_cfg },
484+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU4 ), (kernel_ulong_t )& adl_n_cfg },
485+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU5 ), (kernel_ulong_t )& adl_n_cfg },
486+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU6 ), (kernel_ulong_t )& adl_n_cfg },
487+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU7 ), (kernel_ulong_t )& adl_n_cfg },
488+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU8 ), (kernel_ulong_t )& adl_n_cfg },
489+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU9 ), (kernel_ulong_t )& adl_n_cfg },
490+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU10 ), (kernel_ulong_t )& adl_n_cfg },
491+ { PCI_VDEVICE (INTEL , DID_ADL_N_SKU11 ), (kernel_ulong_t )& adl_n_cfg },
457492 { },
458493};
459494MODULE_DEVICE_TABLE (pci , igen6_pci_tbl );
0 commit comments