From 4e6c0b41661acbc737915a9894b228ba1a1372a9 Mon Sep 17 00:00:00 2001 From: Liao Xuan Date: Thu, 16 May 2024 03:06:42 -0400 Subject: [PATCH 1/5] anolis: x86/cpu: Get LLC ID for Hygon family 18h model 10h ANBZ: #9404 Get LLC ID from ApicId[3]. Signed-off-by: Liao Xuan --- arch/x86/kernel/cpu/cacheinfo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/cacheinfo.c b/arch/x86/kernel/cpu/cacheinfo.c index 60fd78e6ac77..171557704038 100644 --- a/arch/x86/kernel/cpu/cacheinfo.c +++ b/arch/x86/kernel/cpu/cacheinfo.c @@ -691,7 +691,8 @@ void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu) if (!cpuid_edx(0x80000006)) return; - if (c->x86_model < 0x5) { + if (c->x86_model < 0x5 || + (c->x86_model >= 0x10 && c->x86_model <= 0x1f)) { /* * LLC is at the core complex level. * Core complex ID is ApicId[3] for these processors. -- Gitee From 9ab5ca50a88844b5cd76243059cf612f9c1a100f Mon Sep 17 00:00:00 2001 From: Liao Xuan Date: Wed, 5 Jun 2024 05:51:45 -0400 Subject: [PATCH 2/5] anolis: x86/amd_nb: Add support for Hygon family 18h model 10h ANBZ: #9404 Add root and DF F1/F3/F4 device IDs for Hygon family 18h model 10h processors. Signed-off-by: Liao Xuan --- arch/x86/kernel/amd_nb.c | 5 +++++ include/linux/pci_ids.h | 1 + 2 files changed, 6 insertions(+) diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c index 08a3c81bac31..3961ffe9eec0 100644 --- a/arch/x86/kernel/amd_nb.c +++ b/arch/x86/kernel/amd_nb.c @@ -23,9 +23,11 @@ #define PCI_DEVICE_ID_AMD_19H_DF_F4 0x1654 #define PCI_DEVICE_ID_HYGON_18H_M05H_ROOT 0x14a0 +#define PCI_DEVICE_ID_HYGON_18H_M10H_ROOT 0x14c0 #define PCI_DEVICE_ID_HYGON_18H_M04H_DF_F1 0x1491 #define PCI_DEVICE_ID_HYGON_18H_M05H_DF_F1 0x14b1 #define PCI_DEVICE_ID_HYGON_18H_M05H_DF_F4 0x14b4 +#define PCI_DEVICE_ID_HYGON_18H_M10H_DF_F4 0x14d4 #define PCI_DEVICE_ID_HYGON_18H_M06H_DF_F5 0x14b5 /* Protect the PCI config register pairs used for SMN and DF indirect access. */ @@ -80,6 +82,7 @@ static const struct pci_device_id hygon_root_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_AMD_17H_ROOT) }, { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_AMD_17H_M30H_ROOT) }, { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_HYGON_18H_M05H_ROOT) }, + { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_HYGON_18H_M10H_ROOT) }, {} }; @@ -87,6 +90,7 @@ static const struct pci_device_id hygon_nb_misc_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_AMD_17H_DF_F3) }, { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_AMD_17H_M30H_DF_F3) }, { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_HYGON_18H_M05H_DF_F3) }, + { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_HYGON_18H_M10H_DF_F3) }, {} }; @@ -94,6 +98,7 @@ static const struct pci_device_id hygon_nb_link_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_AMD_17H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_AMD_17H_M30H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_HYGON_18H_M05H_DF_F4) }, + { PCI_DEVICE(PCI_VENDOR_ID_HYGON, PCI_DEVICE_ID_HYGON_18H_M10H_DF_F4) }, {} }; diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 986e231753c3..fd116b23befe 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -2572,6 +2572,7 @@ #define PCI_VENDOR_ID_HYGON 0x1d94 #define PCI_DEVICE_ID_HYGON_18H_M05H_HDA 0x14a9 #define PCI_DEVICE_ID_HYGON_18H_M05H_DF_F3 0x14b3 +#define PCI_DEVICE_ID_HYGON_18H_M10H_DF_F3 0x14d3 #define PCI_VENDOR_ID_TEKRAM 0x1de1 #define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29 -- Gitee From 3555450a9ebfd907b1c6f4955c107d9a6f553a46 Mon Sep 17 00:00:00 2001 From: Liao Xuan Date: Wed, 26 Jun 2024 02:45:43 -0400 Subject: [PATCH 3/5] anolis: EDAC/amd64: Add support for Hygon family 18h model 10h ANBZ: #9404 Add Hygon family 18h model 10h processor support for amd64_edac. Signed-off-by: Liao Xuan --- drivers/edac/amd64_edac.c | 14 ++++++++++++++ drivers/edac/amd64_edac.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index 7e7fb0066a48..03553ceaf12e 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c @@ -2424,6 +2424,16 @@ static struct amd64_family_type family_types[] = { .dbam_to_cs = f17_addr_mask_to_cs_size, } }, + [F18_M10H_CPUS] = { + .ctl_name = "F18h_M10h", + .f0_id = PCI_DEVICE_ID_HYGON_18H_M10H_DF_F0, + .f6_id = PCI_DEVICE_ID_HYGON_18H_M10H_DF_F6, + .max_mcs = 2, + .ops = { + .early_channel_count = f17_early_channel_count, + .dbam_to_cs = f17_addr_mask_to_cs_size, + } + }, [F19_CPUS] = { .ctl_name = "F19h", .f0_id = PCI_DEVICE_ID_AMD_19H_DF_F0, @@ -3542,6 +3552,10 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt) pvt->ops = &family_types[F18_M06H_CPUS].ops; family_types[F18_M06H_CPUS].ctl_name = "F18h_M07h"; break; + } else if (pvt->model == 0x10) { + fam_type = &family_types[F18_M10H_CPUS]; + pvt->ops = &family_types[F18_M10H_CPUS].ops; + break; } fam_type = &family_types[F17_CPUS]; pvt->ops = &family_types[F17_CPUS].ops; diff --git a/drivers/edac/amd64_edac.h b/drivers/edac/amd64_edac.h index 13955ff01698..bfac6734f155 100644 --- a/drivers/edac/amd64_edac.h +++ b/drivers/edac/amd64_edac.h @@ -129,6 +129,8 @@ #define PCI_DEVICE_ID_HYGON_18H_M06H_DF_F0 0x14b0 #define PCI_DEVICE_ID_HYGON_18H_M06H_DF_F6 0x14b6 +#define PCI_DEVICE_ID_HYGON_18H_M10H_DF_F0 0x14d0 +#define PCI_DEVICE_ID_HYGON_18H_M10H_DF_F6 0x14d6 /* * Function 1 - Address Map @@ -303,6 +305,7 @@ enum amd_families { F17_M30H_CPUS, F17_M70H_CPUS, F18_M06H_CPUS, + F18_M10H_CPUS, F19_CPUS, F19_M10H_CPUS, NUM_FAMILIES, -- Gitee From 216f9e05724fe7d748a8b6f496d336a1eff51489 Mon Sep 17 00:00:00 2001 From: Liao Xuan Date: Thu, 16 May 2024 03:55:41 -0400 Subject: [PATCH 4/5] anolis: hwmon/k10temp: Add support for Hygon family 18h model 10h ANBZ: #9404 Add 18H_M10H DF F3 device ID to get the temperature for Hygon family 18h model 10h processor. Signed-off-by: Liao Xuan --- drivers/hwmon/k10temp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/hwmon/k10temp.c b/drivers/hwmon/k10temp.c index ff443fbd7a08..1f1701645810 100644 --- a/drivers/hwmon/k10temp.c +++ b/drivers/hwmon/k10temp.c @@ -587,6 +587,7 @@ static const struct pci_device_id k10temp_id_table[] = { { PCI_VDEVICE(HYGON, PCI_DEVICE_ID_AMD_17H_DF_F3) }, { PCI_VDEVICE(HYGON, PCI_DEVICE_ID_AMD_17H_M30H_DF_F3) }, { PCI_VDEVICE(HYGON, PCI_DEVICE_ID_HYGON_18H_M05H_DF_F3) }, + { PCI_VDEVICE(HYGON, PCI_DEVICE_ID_HYGON_18H_M10H_DF_F3) }, {} }; MODULE_DEVICE_TABLE(pci, k10temp_id_table); -- Gitee From 06782067ce57261b9b5df3a166fdaa2bcabb939a Mon Sep 17 00:00:00 2001 From: Liao Xuan Date: Wed, 5 Jun 2024 05:55:56 -0400 Subject: [PATCH 5/5] anolis: ALSA: hda: Add support for Hygon family 18h model 10h HD-Audio ANBZ: #9404 Add the new PCI ID 0x1d94 0x14c9 for Hygon family 18h model 10h HDA controller. Signed-off-by: Liao Xuan --- sound/pci/hda/hda_intel.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 9e321ec0e3f7..34f9ecbd5ad8 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -2865,6 +2865,7 @@ static const struct pci_device_id azx_ids[] = { /* Hygon HDAudio */ { PCI_DEVICE(0x1d94, 0x14a9), .driver_data = AZX_DRIVER_HYGON | AZX_DCAPS_POSFIX_LPIB | AZX_DCAPS_NO_MSI }, + { PCI_DEVICE(0x1d94, 0x14c9), .driver_data = AZX_DRIVER_HYGON }, { 0, } }; MODULE_DEVICE_TABLE(pci, azx_ids); -- Gitee