|
Borislav Petkov |
804cac |
From: Yazen Ghannam <yazen.ghannam@amd.com>
|
|
Borislav Petkov |
804cac |
Date: Wed, 8 Dec 2021 17:43:54 +0000
|
|
Borislav Petkov |
804cac |
Subject: EDAC/amd64: Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh
|
|
Borislav Petkov |
804cac |
Git-commit: e2be5955a88664421b25e463c28a910b8dbd534c
|
|
Borislav Petkov |
804cac |
Patch-mainline: v5.17-rc1
|
|
Borislav Petkov |
804cac |
References: jsc#SLE-19026
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
Add a new family type for AMD Family 19h Models 10h to 1Fh. Use this new
|
|
Borislav Petkov |
804cac |
family type for Models A0h to AFh also.
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
Increase the maximum number of controllers from 8 to 12.
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
|
|
Borislav Petkov |
804cac |
Signed-off-by: Borislav Petkov <bp@suse.de>
|
|
Borislav Petkov |
804cac |
Link: https://lore.kernel.org/r/20211208174356.1997855-3-yazen.ghannam@amd.com
|
|
Borislav Petkov |
804cac |
---
|
|
Borislav Petkov |
804cac |
drivers/edac/amd64_edac.c | 21 ++++++++++++++++++++-
|
|
Borislav Petkov |
804cac |
drivers/edac/amd64_edac.h | 5 ++++-
|
|
Borislav Petkov |
804cac |
2 files changed, 24 insertions(+), 2 deletions(-)
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
|
|
Borislav Petkov |
804cac |
index 4fce75013674..c6c58f01067f 100644
|
|
Borislav Petkov |
804cac |
--- a/drivers/edac/amd64_edac.c
|
|
Borislav Petkov |
804cac |
+++ b/drivers/edac/amd64_edac.c
|
|
Borislav Petkov |
804cac |
@@ -2650,6 +2650,16 @@ static struct amd64_family_type family_types[] = {
|
|
Borislav Petkov |
804cac |
.dbam_to_cs = f17_addr_mask_to_cs_size,
|
|
Borislav Petkov |
804cac |
}
|
|
Borislav Petkov |
804cac |
},
|
|
Borislav Petkov |
804cac |
+ [F19_M10H_CPUS] = {
|
|
Borislav Petkov |
804cac |
+ .ctl_name = "F19h_M10h",
|
|
Borislav Petkov |
804cac |
+ .f0_id = PCI_DEVICE_ID_AMD_19H_M10H_DF_F0,
|
|
Borislav Petkov |
804cac |
+ .f6_id = PCI_DEVICE_ID_AMD_19H_M10H_DF_F6,
|
|
Borislav Petkov |
804cac |
+ .max_mcs = 12,
|
|
Borislav Petkov |
804cac |
+ .ops = {
|
|
Borislav Petkov |
804cac |
+ .early_channel_count = f17_early_channel_count,
|
|
Borislav Petkov |
804cac |
+ .dbam_to_cs = f17_addr_mask_to_cs_size,
|
|
Borislav Petkov |
804cac |
+ }
|
|
Borislav Petkov |
804cac |
+ },
|
|
Borislav Petkov |
804cac |
};
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
/*
|
|
Borislav Petkov |
804cac |
@@ -3687,11 +3697,20 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt)
|
|
Borislav Petkov |
804cac |
break;
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
case 0x19:
|
|
Borislav Petkov |
804cac |
- if (pvt->model >= 0x20 && pvt->model <= 0x2f) {
|
|
Borislav Petkov |
804cac |
+ if (pvt->model >= 0x10 && pvt->model <= 0x1f) {
|
|
Borislav Petkov |
804cac |
+ fam_type = &family_types[F19_M10H_CPUS];
|
|
Borislav Petkov |
804cac |
+ pvt->ops = &family_types[F19_M10H_CPUS].ops;
|
|
Borislav Petkov |
804cac |
+ break;
|
|
Borislav Petkov |
804cac |
+ } else if (pvt->model >= 0x20 && pvt->model <= 0x2f) {
|
|
Borislav Petkov |
804cac |
fam_type = &family_types[F17_M70H_CPUS];
|
|
Borislav Petkov |
804cac |
pvt->ops = &family_types[F17_M70H_CPUS].ops;
|
|
Borislav Petkov |
804cac |
fam_type->ctl_name = "F19h_M20h";
|
|
Borislav Petkov |
804cac |
break;
|
|
Borislav Petkov |
804cac |
+ } else if (pvt->model >= 0xa0 && pvt->model <= 0xaf) {
|
|
Borislav Petkov |
804cac |
+ fam_type = &family_types[F19_M10H_CPUS];
|
|
Borislav Petkov |
804cac |
+ pvt->ops = &family_types[F19_M10H_CPUS].ops;
|
|
Borislav Petkov |
804cac |
+ fam_type->ctl_name = "F19h_MA0h";
|
|
Borislav Petkov |
804cac |
+ break;
|
|
Borislav Petkov |
804cac |
}
|
|
Borislav Petkov |
804cac |
fam_type = &family_types[F19_CPUS];
|
|
Borislav Petkov |
804cac |
pvt->ops = &family_types[F19_CPUS].ops;
|
|
Borislav Petkov |
804cac |
diff --git a/drivers/edac/amd64_edac.h b/drivers/edac/amd64_edac.h
|
|
Borislav Petkov |
804cac |
index 85aa820bc165..650cab401e21 100644
|
|
Borislav Petkov |
804cac |
--- a/drivers/edac/amd64_edac.h
|
|
Borislav Petkov |
804cac |
+++ b/drivers/edac/amd64_edac.h
|
|
Borislav Petkov |
804cac |
@@ -96,7 +96,7 @@
|
|
Borislav Petkov |
804cac |
/* Hardware limit on ChipSelect rows per MC and processors per system */
|
|
Borislav Petkov |
804cac |
#define NUM_CHIPSELECTS 8
|
|
Borislav Petkov |
804cac |
#define DRAM_RANGES 8
|
|
Borislav Petkov |
804cac |
-#define NUM_CONTROLLERS 8
|
|
Borislav Petkov |
804cac |
+#define NUM_CONTROLLERS 12
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
#define ON true
|
|
Borislav Petkov |
804cac |
#define OFF false
|
|
Borislav Petkov |
804cac |
@@ -126,6 +126,8 @@
|
|
Borislav Petkov |
804cac |
#define PCI_DEVICE_ID_AMD_17H_M70H_DF_F6 0x1446
|
|
Borislav Petkov |
804cac |
#define PCI_DEVICE_ID_AMD_19H_DF_F0 0x1650
|
|
Borislav Petkov |
804cac |
#define PCI_DEVICE_ID_AMD_19H_DF_F6 0x1656
|
|
Borislav Petkov |
804cac |
+#define PCI_DEVICE_ID_AMD_19H_M10H_DF_F0 0x14ad
|
|
Borislav Petkov |
804cac |
+#define PCI_DEVICE_ID_AMD_19H_M10H_DF_F6 0x14b3
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
/*
|
|
Borislav Petkov |
804cac |
* Function 1 - Address Map
|
|
Borislav Petkov |
804cac |
@@ -298,6 +300,7 @@ enum amd_families {
|
|
Borislav Petkov |
804cac |
F17_M60H_CPUS,
|
|
Borislav Petkov |
804cac |
F17_M70H_CPUS,
|
|
Borislav Petkov |
804cac |
F19_CPUS,
|
|
Borislav Petkov |
804cac |
+ F19_M10H_CPUS,
|
|
Borislav Petkov |
804cac |
NUM_FAMILIES,
|
|
Borislav Petkov |
804cac |
};
|
|
Borislav Petkov |
804cac |
|
|
Borislav Petkov |
804cac |
|