amd64_edac: Add support for newer F16h models
Extend ECC decoding support for F16h M30h. Tested on F16h M30h with ECC turned on using mce_amd_inj module and the patch works fine. Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com> Link: http://lkml.kernel.org/r/1392913726-16961-1-git-send-email-Aravind.Gopalakrishnan@amd.com Tested-by: Arindam Nath <Arindam.Nath@amd.com> Acked-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Borislav Petkov <bp@suse.de>
This commit is contained in:
parent
f118920baf
commit
85a8885bd0
4 changed files with 31 additions and 0 deletions
|
@ -22,6 +22,7 @@ const struct pci_device_id amd_nb_misc_ids[] = {
|
|||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M10H_F3) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M30H_NB_F3) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_M30H_NB_F3) },
|
||||
{}
|
||||
};
|
||||
EXPORT_SYMBOL(amd_nb_misc_ids);
|
||||
|
@ -30,6 +31,7 @@ static const struct pci_device_id amd_nb_link_ids[] = {
|
|||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M30H_NB_F4) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_NB_F4) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_M30H_NB_F4) },
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
|
@ -1807,6 +1807,17 @@ static struct amd64_family_type family_types[] = {
|
|||
.read_dct_pci_cfg = f10_read_dct_pci_cfg,
|
||||
}
|
||||
},
|
||||
[F16_M30H_CPUS] = {
|
||||
.ctl_name = "F16h_M30h",
|
||||
.f1_id = PCI_DEVICE_ID_AMD_16H_M30H_NB_F1,
|
||||
.f3_id = PCI_DEVICE_ID_AMD_16H_M30H_NB_F3,
|
||||
.ops = {
|
||||
.early_channel_count = f1x_early_channel_count,
|
||||
.map_sysaddr_to_csrow = f1x_map_sysaddr_to_csrow,
|
||||
.dbam_to_cs = f16_dbam_to_chip_select,
|
||||
.read_dct_pci_cfg = f10_read_dct_pci_cfg,
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -2586,6 +2597,11 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt)
|
|||
break;
|
||||
|
||||
case 0x16:
|
||||
if (pvt->model == 0x30) {
|
||||
fam_type = &family_types[F16_M30H_CPUS];
|
||||
pvt->ops = &family_types[F16_M30H_CPUS].ops;
|
||||
break;
|
||||
}
|
||||
fam_type = &family_types[F16_CPUS];
|
||||
pvt->ops = &family_types[F16_CPUS].ops;
|
||||
break;
|
||||
|
@ -2838,6 +2854,14 @@ static const struct pci_device_id amd64_pci_table[] = {
|
|||
.class = 0,
|
||||
.class_mask = 0,
|
||||
},
|
||||
{
|
||||
.vendor = PCI_VENDOR_ID_AMD,
|
||||
.device = PCI_DEVICE_ID_AMD_16H_M30H_NB_F2,
|
||||
.subvendor = PCI_ANY_ID,
|
||||
.subdevice = PCI_ANY_ID,
|
||||
.class = 0,
|
||||
.class_mask = 0,
|
||||
},
|
||||
|
||||
{0, }
|
||||
};
|
||||
|
|
|
@ -168,6 +168,8 @@
|
|||
#define PCI_DEVICE_ID_AMD_15H_NB_F2 0x1602
|
||||
#define PCI_DEVICE_ID_AMD_16H_NB_F1 0x1531
|
||||
#define PCI_DEVICE_ID_AMD_16H_NB_F2 0x1532
|
||||
#define PCI_DEVICE_ID_AMD_16H_M30H_NB_F1 0x1581
|
||||
#define PCI_DEVICE_ID_AMD_16H_M30H_NB_F2 0x1582
|
||||
|
||||
/*
|
||||
* Function 1 - Address Map
|
||||
|
@ -300,6 +302,7 @@ enum amd_families {
|
|||
F15_CPUS,
|
||||
F15_M30H_CPUS,
|
||||
F16_CPUS,
|
||||
F16_M30H_CPUS,
|
||||
NUM_FAMILIES,
|
||||
};
|
||||
|
||||
|
|
|
@ -528,6 +528,8 @@
|
|||
#define PCI_DEVICE_ID_AMD_15H_NB_F5 0x1605
|
||||
#define PCI_DEVICE_ID_AMD_16H_NB_F3 0x1533
|
||||
#define PCI_DEVICE_ID_AMD_16H_NB_F4 0x1534
|
||||
#define PCI_DEVICE_ID_AMD_16H_M30H_NB_F3 0x1583
|
||||
#define PCI_DEVICE_ID_AMD_16H_M30H_NB_F4 0x1584
|
||||
#define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703
|
||||
#define PCI_DEVICE_ID_AMD_LANCE 0x2000
|
||||
#define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001
|
||||
|
|
Loading…
Reference in a new issue