From: Borislav Petkov <bp@alien8.de> To: Pu Wen <puwen@hygon.cn> Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, thomas.lendacky@amd.com, pbonzini@redhat.com, mchehab@kernel.org, mikhail.jin@gmail.com, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-edac@vger.kernel.org Subject: Re: [PATCH v5 15/16] driver/edac: enable Hygon support to AMD64 EDAC driver Date: Wed, 5 Sep 2018 12:44:05 +0200 [thread overview] Message-ID: <20180905104405.GG2237@zn.tnic> (raw) In-Reply-To: <47e08d8bab1cef667be3955941e7eedc23187ae1.1535459013.git.puwen@hygon.cn> Subject should be: EDAC, amd64: Add Hygon Dhyana support On Wed, Aug 29, 2018 at 08:45:45PM +0800, Pu Wen wrote: > To make AMD64 EDAC and MCE drivers working on Hygon platforms, add > support for Hygon by using the code path of AMD family 0x17. > > As Hygon will negotiate with AMD to make sure that only Hygon will > use family 0x18, under this consideration try to minimize code > modifications and share most codes with AMD. > > Also Hygon PCI Device ID DF_F0/DF_F6(0x1460/0x1466) of Host bridges > is needed for edac driver. > > Signed-off-by: Pu Wen <puwen@hygon.cn> > --- > drivers/edac/amd64_edac.c | 20 +++++++++++++++++++- > drivers/edac/amd64_edac.h | 4 ++++ > drivers/edac/mce_amd.c | 4 +++- > 3 files changed, 26 insertions(+), 2 deletions(-) > > diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c > index 18aeabb..d8b4b0e 100644 > --- a/drivers/edac/amd64_edac.c > +++ b/drivers/edac/amd64_edac.c > @@ -211,7 +211,7 @@ static int __set_scrub_rate(struct amd64_pvt *pvt, u32 new_bw, u32 min_rate) > > scrubval = scrubrates[i].scrubval; > > - if (pvt->fam == 0x17) { > + if (pvt->fam == 0x17 || pvt->fam == 0x18) { > __f17h_set_scrubval(pvt, scrubval); > } else if (pvt->fam == 0x15 && pvt->model == 0x60) { > f15h_select_dct(pvt, 0); > @@ -264,6 +264,7 @@ static int get_scrub_rate(struct mem_ctl_info *mci) > break; > > case 0x17: > + case 0x18: > amd64_read_pci_cfg(pvt->F6, F17H_SCR_BASE_ADDR, &scrubval); > if (scrubval & BIT(0)) { > amd64_read_pci_cfg(pvt->F6, F17H_SCR_LIMIT_ADDR, &scrubval); > @@ -1044,6 +1045,7 @@ static void determine_memory_type(struct amd64_pvt *pvt) > goto ddr3; > > case 0x17: > + case 0x18: > if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(5)) > pvt->dram_type = MEM_LRDDR4; > else if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(4)) > @@ -2200,6 +2202,16 @@ static struct amd64_family_type family_types[] = { > .dbam_to_cs = f17_base_addr_to_cs_size, > } > }, > + [HYGON_F18_CPUS] = { > + /* Hygon F18h uses the same AMD F17h support */ > + .ctl_name = "Hygon_F18h", > + .f0_id = PCI_DEVICE_ID_HYGON_18H_DF_F0, > + .f6_id = PCI_DEVICE_ID_HYGON_18H_DF_F6, > + .ops = { > + .early_channel_count = f17_early_channel_count, > + .dbam_to_cs = f17_base_addr_to_cs_size, > + } > + }, > }; > > /* > @@ -3192,6 +3204,11 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt) > pvt->ops = &family_types[F17_CPUS].ops; > break; > > + case 0x18: > + fam_type = &family_types[HYGON_F18_CPUS]; > + pvt->ops = &family_types[HYGON_F18_CPUS].ops; > + break; > + You can use the F17_CPUS array element here and overwrite the ->ctl_name string only. No need to define [HYGON_F18_CPUS] above... yet. > default: > amd64_err("Unsupported family!\n"); > return NULL; > @@ -3428,6 +3445,7 @@ static const struct x86_cpu_id amd64_cpuids[] = { > { X86_VENDOR_AMD, 0x15, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > { X86_VENDOR_AMD, 0x16, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > { X86_VENDOR_AMD, 0x17, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_HYGON, 0x18, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > { } > }; > MODULE_DEVICE_TABLE(x86cpu, amd64_cpuids); > diff --git a/drivers/edac/amd64_edac.h b/drivers/edac/amd64_edac.h > index 1d4b74e..6e5f609 100644 > --- a/drivers/edac/amd64_edac.h > +++ b/drivers/edac/amd64_edac.h > @@ -116,6 +116,9 @@ > #define PCI_DEVICE_ID_AMD_17H_DF_F0 0x1460 > #define PCI_DEVICE_ID_AMD_17H_DF_F6 0x1466 > > +#define PCI_DEVICE_ID_HYGON_18H_DF_F0 0x1460 > +#define PCI_DEVICE_ID_HYGON_18H_DF_F6 0x1466 As in the previous patch - use the AMD defines. -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.
WARNING: multiple messages have this Message-ID (diff)
From: Borislav Petkov <bp@alien8.de> To: Pu Wen <puwen@hygon.cn> Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, thomas.lendacky@amd.com, pbonzini@redhat.com, mchehab@kernel.org, mikhail.jin@gmail.com, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-edac@vger.kernel.org Subject: [v5,15/16] driver/edac: enable Hygon support to AMD64 EDAC driver Date: Wed, 5 Sep 2018 12:44:05 +0200 [thread overview] Message-ID: <20180905104405.GG2237@zn.tnic> (raw) Subject should be: EDAC, amd64: Add Hygon Dhyana support On Wed, Aug 29, 2018 at 08:45:45PM +0800, Pu Wen wrote: > To make AMD64 EDAC and MCE drivers working on Hygon platforms, add > support for Hygon by using the code path of AMD family 0x17. > > As Hygon will negotiate with AMD to make sure that only Hygon will > use family 0x18, under this consideration try to minimize code > modifications and share most codes with AMD. > > Also Hygon PCI Device ID DF_F0/DF_F6(0x1460/0x1466) of Host bridges > is needed for edac driver. > > Signed-off-by: Pu Wen <puwen@hygon.cn> > --- > drivers/edac/amd64_edac.c | 20 +++++++++++++++++++- > drivers/edac/amd64_edac.h | 4 ++++ > drivers/edac/mce_amd.c | 4 +++- > 3 files changed, 26 insertions(+), 2 deletions(-) > > diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c > index 18aeabb..d8b4b0e 100644 > --- a/drivers/edac/amd64_edac.c > +++ b/drivers/edac/amd64_edac.c > @@ -211,7 +211,7 @@ static int __set_scrub_rate(struct amd64_pvt *pvt, u32 new_bw, u32 min_rate) > > scrubval = scrubrates[i].scrubval; > > - if (pvt->fam == 0x17) { > + if (pvt->fam == 0x17 || pvt->fam == 0x18) { > __f17h_set_scrubval(pvt, scrubval); > } else if (pvt->fam == 0x15 && pvt->model == 0x60) { > f15h_select_dct(pvt, 0); > @@ -264,6 +264,7 @@ static int get_scrub_rate(struct mem_ctl_info *mci) > break; > > case 0x17: > + case 0x18: > amd64_read_pci_cfg(pvt->F6, F17H_SCR_BASE_ADDR, &scrubval); > if (scrubval & BIT(0)) { > amd64_read_pci_cfg(pvt->F6, F17H_SCR_LIMIT_ADDR, &scrubval); > @@ -1044,6 +1045,7 @@ static void determine_memory_type(struct amd64_pvt *pvt) > goto ddr3; > > case 0x17: > + case 0x18: > if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(5)) > pvt->dram_type = MEM_LRDDR4; > else if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(4)) > @@ -2200,6 +2202,16 @@ static struct amd64_family_type family_types[] = { > .dbam_to_cs = f17_base_addr_to_cs_size, > } > }, > + [HYGON_F18_CPUS] = { > + /* Hygon F18h uses the same AMD F17h support */ > + .ctl_name = "Hygon_F18h", > + .f0_id = PCI_DEVICE_ID_HYGON_18H_DF_F0, > + .f6_id = PCI_DEVICE_ID_HYGON_18H_DF_F6, > + .ops = { > + .early_channel_count = f17_early_channel_count, > + .dbam_to_cs = f17_base_addr_to_cs_size, > + } > + }, > }; > > /* > @@ -3192,6 +3204,11 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt) > pvt->ops = &family_types[F17_CPUS].ops; > break; > > + case 0x18: > + fam_type = &family_types[HYGON_F18_CPUS]; > + pvt->ops = &family_types[HYGON_F18_CPUS].ops; > + break; > + You can use the F17_CPUS array element here and overwrite the ->ctl_name string only. No need to define [HYGON_F18_CPUS] above... yet. > default: > amd64_err("Unsupported family!\n"); > return NULL; > @@ -3428,6 +3445,7 @@ static const struct x86_cpu_id amd64_cpuids[] = { > { X86_VENDOR_AMD, 0x15, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > { X86_VENDOR_AMD, 0x16, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > { X86_VENDOR_AMD, 0x17, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_HYGON, 0x18, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > { } > }; > MODULE_DEVICE_TABLE(x86cpu, amd64_cpuids); > diff --git a/drivers/edac/amd64_edac.h b/drivers/edac/amd64_edac.h > index 1d4b74e..6e5f609 100644 > --- a/drivers/edac/amd64_edac.h > +++ b/drivers/edac/amd64_edac.h > @@ -116,6 +116,9 @@ > #define PCI_DEVICE_ID_AMD_17H_DF_F0 0x1460 > #define PCI_DEVICE_ID_AMD_17H_DF_F6 0x1466 > > +#define PCI_DEVICE_ID_HYGON_18H_DF_F0 0x1460 > +#define PCI_DEVICE_ID_HYGON_18H_DF_F6 0x1466 As in the previous patch - use the AMD defines.
next prev parent reply other threads:[~2018-09-05 10:44 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-08-29 12:42 [PATCH v5 00/16] Add support for Hygon Dhyana Family 18h processor Pu Wen 2018-08-29 12:42 ` [PATCH v5 01/16] x86/cpu: create Dhyana init file and register new cpu_dev to system Pu Wen 2018-08-29 19:35 ` Andi Kleen 2018-08-30 17:40 ` Pu Wen 2018-08-30 12:35 ` Borislav Petkov 2018-08-30 18:02 ` Pu Wen 2018-08-29 12:43 ` [PATCH v5 02/16] x86/cache: get cache size/leaves and setup cache cpumap for Dhyana Pu Wen 2018-09-03 9:57 ` Borislav Petkov 2018-09-03 12:59 ` Pu Wen 2018-08-29 12:43 ` [PATCH v5 03/16] x86/mtrr: get MTRR number and support TOP_MEM2 Pu Wen 2018-09-03 19:04 ` Borislav Petkov 2018-09-04 3:02 ` Pu Wen 2018-09-04 8:02 ` Borislav Petkov 2018-09-04 12:43 ` Pu Wen 2018-08-29 12:43 ` [PATCH v5 04/16] x86/smpboot: smp init nodelay and no flush caches before sleep Pu Wen 2018-09-04 9:15 ` Borislav Petkov 2018-08-29 12:43 ` [PATCH v5 05/16] x86/pmu: enable Hygon support to PMU infrastructure Pu Wen 2018-09-04 10:48 ` Borislav Petkov 2018-09-04 13:32 ` Pu Wen 2018-08-29 12:44 ` [PATCH v5 06/16] x86/nops: init ideal_nops for Hygon Pu Wen 2018-09-04 14:01 ` Borislav Petkov 2018-08-29 12:44 ` [PATCH v5 07/16] x86/pci: add Hygon PCI vendor and northbridge support Pu Wen 2018-09-04 14:52 ` Borislav Petkov 2018-09-04 15:45 ` Pu Wen 2018-09-04 16:03 ` Borislav Petkov 2018-08-29 12:44 ` [PATCH v5 08/16] x86/apic: add modern APIC support for Hygon Pu Wen 2018-09-04 18:33 ` Borislav Petkov 2018-09-05 8:08 ` Pu Wen 2018-08-29 12:44 ` [PATCH v5 09/16] x86/bugs: add lfence mitigation to spectre v2 and no meltdown " Pu Wen 2018-09-05 9:13 ` Borislav Petkov 2018-09-05 10:40 ` Pu Wen 2018-08-29 12:44 ` [PATCH v5 10/16] x86/mce: enable Hygon support to MCE infrastructure Pu Wen 2018-08-29 12:44 ` [v5,10/16] " Pu Wen 2018-09-05 9:22 ` [PATCH v5 10/16] " Borislav Petkov 2018-09-05 9:22 ` [v5,10/16] " Borislav Petkov 2018-09-05 12:59 ` [PATCH v5 10/16] " Pu Wen 2018-09-05 12:59 ` [v5,10/16] " Pu Wen 2018-09-05 13:15 ` [PATCH v5 10/16] " Borislav Petkov 2018-09-05 13:15 ` [v5,10/16] " Borislav Petkov 2018-09-06 3:52 ` [PATCH v5 10/16] " Pu Wen 2018-09-06 3:52 ` [v5,10/16] " Pu Wen 2018-09-06 8:39 ` [PATCH v5 10/16] " Borislav Petkov 2018-09-06 8:39 ` [v5,10/16] " Borislav Petkov 2018-09-06 11:40 ` [PATCH v5 10/16] " Pu Wen 2018-09-06 11:40 ` [v5,10/16] " Pu Wen 2018-09-06 12:29 ` [PATCH v5 10/16] " Borislav Petkov 2018-09-06 12:29 ` [v5,10/16] " Borislav Petkov 2018-09-06 15:47 ` [PATCH v5 10/16] " Pu Wen 2018-09-06 15:47 ` [v5,10/16] " Pu Wen 2018-08-29 12:45 ` [PATCH v5 11/16] x86/kvm: enable Hygon support to KVM infrastructure Pu Wen 2018-09-05 10:30 ` Borislav Petkov 2018-08-29 12:45 ` [PATCH v5 12/16] x86/xen: enable Hygon support to Xen Pu Wen 2018-08-29 12:45 ` Pu Wen 2018-08-29 12:45 ` [PATCH v5 13/16] driver/acpi: enable Hygon support to ACPI driver Pu Wen 2018-08-29 12:45 ` [PATCH v5 14/16] driver/cpufreq: enable Hygon support to cpufreq driver Pu Wen 2018-08-29 12:45 ` [PATCH v5 15/16] driver/edac: enable Hygon support to AMD64 EDAC driver Pu Wen 2018-08-29 12:45 ` [v5,15/16] " Pu Wen 2018-09-05 10:44 ` Borislav Petkov [this message] 2018-09-05 10:44 ` Borislav Petkov 2018-09-05 13:03 ` [PATCH v5 15/16] " Pu Wen 2018-09-05 13:03 ` [v5,15/16] " Pu Wen 2018-08-29 12:45 ` [PATCH v5 16/16] tools/cpupower: enable Hygon support to cpupower tool Pu Wen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180905104405.GG2237@zn.tnic \ --to=bp@alien8.de \ --cc=hpa@zytor.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-edac@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mchehab@kernel.org \ --cc=mikhail.jin@gmail.com \ --cc=mingo@redhat.com \ --cc=pbonzini@redhat.com \ --cc=puwen@hygon.cn \ --cc=tglx@linutronix.de \ --cc=thomas.lendacky@amd.com \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.