From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pu Wen Subject: [PATCH v2 00/17] Add support for Hygon Dhyana Family 18h processor Date: Mon, 23 Jul 2018 21:20:20 +0800 Message-ID: <1532352037-7151-1-git-send-email-puwen@hygon.cn> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: tglx@linutronix.de, bp@alien8.de, thomas.lendacky@amd.com, mingo@redhat.com, hpa@zytor.com, peterz@infradead.org, tony.luck@intel.com, pbonzini@redhat.com, rkrcmar@redhat.com, boris.ostrovsky@oracle.com, jgross@suse.com, rjw@rjwysocki.net, lenb@kernel.org, viresh.kumar@linaro.org, mchehab@kernel.org, trenn@suse.com, shuah@kernel.org, JBeulich@suse.com, x86@kernel.org Cc: linux-arch@vger.kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org List-Id: linux-arch.vger.kernel.org QXMgYSBuZXcgeDg2IENQVSBWZW5kb3IsIENoZW5nZHUgSGFpZ3VhbmcgSUMgRGVzaWduIENvLiwg THRkIChIeWdvbikKaXMgYSBKb2ludCBWZW50dXJlIGJldHdlZW4gQU1EIGFuZCBIYWlndWFuZyBJ bmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLiwKTHRkLiwgYW5kIGFpbXMgYXQgcHJvdmlkaW5nIGhp Z2ggcGVyZm9ybWFuY2UgeDg2IHByb2Nlc3NvciBmb3IgQ2hpbmEKc2VydmVyIG1hcmtldC4KClRo ZSBmaXJzdCBnZW5lcmF0aW9uIEh5Z29uJ3MgcHJvY2Vzc29yKERoeWFuYSkgb3JpZ2luYXRlcyBm cm9tIEFNRAp0ZWNobm9sb2d5IGFuZCBzaGFyZXMgbW9zdCBvZiB0aGUgYXJjaGl0ZWN0dXJlIHdp dGggQU1EJ3MgZmFtaWx5IDE3aCwKYnV0IHdpdGggZGlmZmVyZW50IENQVSBWZW5kb3IgSUQoIkh5 Z29uR2VudWluZSIpL1BDSUUgRGV2aWNlIFZlbmRvciBJRAooMHgxRDk0KS9GYW1pbHkgc2VyaWVz IG51bWJlciAoRmFtaWx5IDE4aCkuCgpUbyBlbmFibGUgdGhlIHN1cHBvcnQgb2YgTGludXgga2Vy bmVsIHRvIEh5Z29uJ3MgQ1BVLCB3ZSBhZGRlZCBhIG5ldwp2ZW5kb3IgdHlwZSAoWDg2X1ZFTkRP Ul9IWUdPTiwgd2l0aCB2YWx1ZSBvZiA5KSBpbiBhcmNoL3g4Ni9pbmNsdWRlLwphc20vcHJvY2Vz c29yLmgsIGFuZCBzaGFyZWQgbW9zdCBvZiBrZXJuZWwgc3VwcG9ydCBjb2RlcyB3aXRoIEFNRApm YW1pbHkgMTdoLgoKVGhpcyBwYXRjaCBzZXJpZXMgaGF2ZSBiZWVuIGFwcGxpZWQgYW5kIHRlc3Rl ZCBzdWNjZXNzZnVsbHkgaW4gSHlnb24ncwpEaHlhbmEgU29DIHNpbGljb24uIEFsc28gdGVzdGVk IG9uIEFNRCdzIEVQWUMgKEZhbWlseSAxN2gpIHByb2Nlc3Nvcgp3b3JrcyBmaW5lIGFuZCBtYWtl cyBubyBoYXJtIHRvIGV4aXN0aW5nIGNvZGVzLgoKCnYxLT52MjoKICAtIFJlYmFzZWQgb24gNC4x OC1yYzYgYW5kIHRlc3RlZCBhZ2FpbnN0IGl0LgogIC0gU3BsaXQgdGhlIHBhdGNoc2V0IHRvIHNt YWxsIHNlcmllcyBvZiBwYXRjaGVzLgogIC0gUmV3b3JrIHBhdGNoIGRlc2NyaXB0aW9ucy4KICAt IENyZWF0ZSBhIHNlcGFyYXRlZCBhcmNoL3g4Ni9rZXJuZWwvY3B1L2h5Z29uLmMgZm9yIERoeWFu YSBDUFUKICAgIGluaXRpYWxpemF0aW9uIHRvIHJlZHVjZSBsb25nLXRlcm0gbWFpbnRlbmFuY2Ug ZWZmb3J0LgoKClB1IFdlbiAoMTcpOgogIHg4Ni9jcHU6IGNyZWF0ZSBEaHlhbmEgaW5pdCBmaWxl IGFuZCByZWdpc3RlciBuZXcgY3B1X2RldiB0byBzeXN0ZW0KICB4ODYvY2FjaGU6IGdldCBEaHlh bmEgY2FjaGUgc2l6ZS9sZWF2ZXMgYW5kIHNldHVwIGNhY2hlIGNwdW1hcAogIHg4Ni9tdHJyOiBn ZXQgTVRSUiBudW1iZXIgYW5kIHN1cHBvcnQgVE9QX01FTTIKICB4ODYvc21wYm9vdDogc21wIGlu aXQgbm9kZWxheSBhbmQgbm8gZmx1c2ggY2FjaGVzIGJlZm9yZSBzbGVlcAogIHg4Ni9wZXJmY3Ry OiByZXR1cm4gcGVyZiBjb3VudGVyIGFuZCBldmVudCBzZWxlY3Rpb24gYml0IG9mZnNldAogIHg4 Ni9ub3BzOiBpbml0IGlkZWFsX25vcHMgZm9yIEh5Z29uCiAgeDg2L3BjaTogYWRkIEh5Z29uIFBD SSB2ZW5kb3IgYW5kIG5vcnRoYnJpZGdlIHN1cHBvcnQKICB4ODYvYXBpYzogYWRkIG1vZGVybiBB UElDIHN1cHBvcnQgZm9yIEh5Z29uCiAgeDg2L2J1Z3M6IGFkZCBsZmVuY2UgbWl0aWdhdGlvbiB0 byBzcGVjdHJlIHYyIGFuZCBubyBtZWx0ZG93biBmb3IKICAgIEh5Z29uCiAgeDg2L2V2ZW50czog ZW5hYmxlIEh5Z29uIHN1cHBvcnQgdG8gUE1VIGluZnJhc3RydWN0dXJlCiAgeDg2L21jZTogZW5h YmxlIEh5Z29uIHN1cHBvcnQgdG8gTUNFIGluZnJhc3RydWN0dXJlCiAgeDg2L2t2bTogZW5hYmxl IEh5Z29uIHN1cHBvcnQgdG8gS1ZNIGluZnJhc3RydWN0dXJlCiAgeDg2L3hlbjogZW5hYmxlIEh5 Z29uIHN1cHBvcnQgdG8gWGVuCiAgZHJpdmVyL2FjcGk6IGVuYWJsZSBIeWdvbiBzdXBwb3J0IHRv IEFDUEkgZHJpdmVyCiAgZHJpdmVyL2NwdWZyZXE6IGVuYWJsZSBIeWdvbiBzdXBwb3J0IHRvIGNw dWZyZXEgZHJpdmVyCiAgZHJpdmVyL2VkYWM6IGVuYWJsZSBIeWdvbiBzdXBwb3J0IHRvIEFNRDY0 IEVEQUMgZHJpdmVyCiAgdG9vbHMvY3B1cG93ZXI6IGVuYWJsZSBIeWdvbiBzdXBwb3J0IHRvIGNw dXBvd2VyIHRvb2wKCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNiArCiBhcmNoL3g4Ni9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogYXJjaC94ODYvS2NvbmZpZy5jcHUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMTMgKwogYXJjaC94ODYvZXZlbnRzL2FtZC9jb3JlLmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDQgKwogYXJjaC94ODYvZXZlbnRzL2FtZC91bmNvcmUuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIGFyY2gveDg2L2V2ZW50cy9jb3JlLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIGFyY2gveDg2L2luY2x1ZGUvYXNtL2Nh Y2hlaW5mby5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGFyY2gveDg2L2luY2x1ZGUvYXNt L2t2bV9lbXVsYXRlLmggICAgICAgICAgICAgICAgIHwgICA0ICsKIGFyY2gveDg2L2luY2x1ZGUv YXNtL21jZS5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIGFyY2gveDg2L2luY2x1 ZGUvYXNtL25vc3BlYy1icmFuY2guaCAgICAgICAgICAgICAgIHwgICA0ICstCiBhcmNoL3g4Ni9p bmNsdWRlL2FzbS9wcm9jZXNzb3IuaCAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogYXJjaC94 ODYvaW5jbHVkZS9hc20vdmlydGV4dC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGFy Y2gveDg2L2tlcm5lbC9hbHRlcm5hdGl2ZS5jICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsK IGFyY2gveDg2L2tlcm5lbC9hbWRfbmIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU0 ICsrLQogYXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5jICAgICAgICAgICAgICAgICAgICAgICAg fCAgMTMgKy0KIGFyY2gveDg2L2tlcm5lbC9jcHUvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIGFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDI4ICstCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L2NhY2hlaW5mby5jICAgICAgICAg ICAgICAgICAgICB8ICAzMSArLQogYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYyAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogYXJjaC94ODYva2VybmVsL2NwdS9jcHUuaCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogYXJjaC94ODYva2VybmVsL2NwdS9oeWdvbi5jICAg ICAgICAgICAgICAgICAgICAgICAgfCA0MDQgKysrKysrKysrKysrKysrKysrKysrCiBhcmNoL3g4 Ni9rZXJuZWwvY3B1L21jaGVjay9tY2Utc2V2ZXJpdHkuYyAgICAgICAgICB8ICAgMyArLQogYXJj aC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlLmMgICAgICAgICAgICAgICAgICAgfCAgMjAgKy0K IGFyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9jbGVhbnVwLmMgICAgICAgICAgICAgICAgIHwgICAz ICstCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvZ2VuZXJpYy5jICAgICAgICAgICAgICAgICB8 ICAgMyArLQogYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL210cnIuYyAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9jcHUvcGVyZmN0ci13YXRjaGRvZy5jICAgICAg ICAgICAgIHwgICA4ICsKIGFyY2gveDg2L2tlcm5lbC9zbXBib290LmMgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA0ICstCiBhcmNoL3g4Ni9rdm0vZW11bGF0ZS5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxMSArLQogYXJjaC94ODYvcGNpL2FtZF9idXMuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGFyY2gveDg2L3hlbi9wbXUuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2FjcGkvYWNwaV9wYWQuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2FjcGkvcHJvY2Vzc29y X2lkbGUuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2NwdWZyZXEvYWNw aS1jcHVmcmVxLmMgICAgICAgICAgICAgICAgICAgICB8ICAxMSArCiBkcml2ZXJzL2NwdWZyZXEv YW1kX2ZyZXFfc2Vuc2l0aXZpdHkuYyAgICAgICAgICAgICB8ICAgOSArLQogZHJpdmVycy9lZGFj L2FtZDY0X2VkYWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKy0KIGRyaXZlcnMv ZWRhYy9hbWQ2NF9lZGFjLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIGRyaXZl cnMvZWRhYy9tY2VfYW1kLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBp bmNsdWRlL2xpbnV4L3BjaV9pZHMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr CiB0b29scy9wb3dlci9jcHVwb3dlci91dGlscy9jcHVmcmVxLWluZm8uYyAgICAgICAgICB8ICAg NiArLQogdG9vbHMvcG93ZXIvY3B1cG93ZXIvdXRpbHMvaGVscGVycy9hbWQuYyAgICAgICAgICAg fCAgIDIgKy0KIHRvb2xzL3Bvd2VyL2NwdXBvd2VyL3V0aWxzL2hlbHBlcnMvY3B1aWQuYyAgICAg ICAgIHwgICA4ICstCiB0b29scy9wb3dlci9jcHVwb3dlci91dGlscy9oZWxwZXJzL2hlbHBlcnMu aCAgICAgICB8ICAgMiArLQogdG9vbHMvcG93ZXIvY3B1cG93ZXIvdXRpbHMvaGVscGVycy9taXNj LmMgICAgICAgICAgfCAgIDIgKy0KIC4uLi9jcHVwb3dlci91dGlscy9pZGxlX21vbml0b3IvbXBl cmZfbW9uaXRvci5jICAgIHwgICAzICstCiA0NSBmaWxlcyBjaGFuZ2VkLCA2ODIgaW5zZXJ0aW9u cygrKSwgNjUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC94ODYva2VybmVs L2NwdS9oeWdvbi5jCgotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp21.cstnet.cn ([159.226.251.21]:45710 "EHLO cstnet.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388097AbeGWOlj (ORCPT ); Mon, 23 Jul 2018 10:41:39 -0400 From: Pu Wen Subject: [PATCH v2 00/17] Add support for Hygon Dhyana Family 18h processor Date: Mon, 23 Jul 2018 21:20:20 +0800 Message-ID: <1532352037-7151-1-git-send-email-puwen@hygon.cn> Sender: linux-arch-owner@vger.kernel.org List-ID: To: tglx@linutronix.de, bp@alien8.de, thomas.lendacky@amd.com, mingo@redhat.com, hpa@zytor.com, peterz@infradead.org, tony.luck@intel.com, pbonzini@redhat.com, rkrcmar@redhat.com, boris.ostrovsky@oracle.com, jgross@suse.com, rjw@rjwysocki.net, lenb@kernel.org, viresh.kumar@linaro.org, mchehab@kernel.org, trenn@suse.com, shuah@kernel.org, JBeulich@suse.com, x86@kernel.org Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org Message-ID: <20180723132020.DvAEESFyTZVS89TzTLcXUH5IyHTz3QgiprFgYj1HBbU@z> As a new x86 CPU Vendor, Chengdu Haiguang IC Design Co., Ltd (Hygon) is a Joint Venture between AMD and Haiguang Information Technology Co., Ltd., and aims at providing high performance x86 processor for China server market. The first generation Hygon's processor(Dhyana) originates from AMD technology and shares most of the architecture with AMD's family 17h, but with different CPU Vendor ID("HygonGenuine")/PCIE Device Vendor ID (0x1D94)/Family series number (Family 18h). To enable the support of Linux kernel to Hygon's CPU, we added a new vendor type (X86_VENDOR_HYGON, with value of 9) in arch/x86/include/ asm/processor.h, and shared most of kernel support codes with AMD family 17h. This patch series have been applied and tested successfully in Hygon's Dhyana SoC silicon. Also tested on AMD's EPYC (Family 17h) processor works fine and makes no harm to existing codes. v1->v2: - Rebased on 4.18-rc6 and tested against it. - Split the patchset to small series of patches. - Rework patch descriptions. - Create a separated arch/x86/kernel/cpu/hygon.c for Dhyana CPU initialization to reduce long-term maintenance effort. Pu Wen (17): x86/cpu: create Dhyana init file and register new cpu_dev to system x86/cache: get Dhyana cache size/leaves and setup cache cpumap x86/mtrr: get MTRR number and support TOP_MEM2 x86/smpboot: smp init nodelay and no flush caches before sleep x86/perfctr: return perf counter and event selection bit offset x86/nops: init ideal_nops for Hygon x86/pci: add Hygon PCI vendor and northbridge support x86/apic: add modern APIC support for Hygon x86/bugs: add lfence mitigation to spectre v2 and no meltdown for Hygon x86/events: enable Hygon support to PMU infrastructure x86/mce: enable Hygon support to MCE infrastructure x86/kvm: enable Hygon support to KVM infrastructure x86/xen: enable Hygon support to Xen driver/acpi: enable Hygon support to ACPI driver driver/cpufreq: enable Hygon support to cpufreq driver driver/edac: enable Hygon support to AMD64 EDAC driver tools/cpupower: enable Hygon support to cpupower tool MAINTAINERS | 6 + arch/x86/Kconfig | 2 +- arch/x86/Kconfig.cpu | 13 + arch/x86/events/amd/core.c | 4 + arch/x86/events/amd/uncore.c | 12 +- arch/x86/events/core.c | 4 + arch/x86/include/asm/cacheinfo.h | 1 + arch/x86/include/asm/kvm_emulate.h | 4 + arch/x86/include/asm/mce.h | 5 + arch/x86/include/asm/nospec-branch.h | 4 +- arch/x86/include/asm/processor.h | 3 +- arch/x86/include/asm/virtext.h | 5 +- arch/x86/kernel/alternative.c | 4 + arch/x86/kernel/amd_nb.c | 54 ++- arch/x86/kernel/apic/apic.c | 13 +- arch/x86/kernel/cpu/Makefile | 1 + arch/x86/kernel/cpu/bugs.c | 28 +- arch/x86/kernel/cpu/cacheinfo.c | 31 +- arch/x86/kernel/cpu/common.c | 1 + arch/x86/kernel/cpu/cpu.h | 1 + arch/x86/kernel/cpu/hygon.c | 404 +++++++++++++++++++++ arch/x86/kernel/cpu/mcheck/mce-severity.c | 3 +- arch/x86/kernel/cpu/mcheck/mce.c | 20 +- arch/x86/kernel/cpu/mtrr/cleanup.c | 3 +- arch/x86/kernel/cpu/mtrr/generic.c | 3 +- arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +- arch/x86/kernel/cpu/perfctr-watchdog.c | 8 + arch/x86/kernel/smpboot.c | 4 +- arch/x86/kvm/emulate.c | 11 +- arch/x86/pci/amd_bus.c | 6 +- arch/x86/xen/pmu.c | 12 +- drivers/acpi/acpi_pad.c | 1 + drivers/acpi/processor_idle.c | 1 + drivers/cpufreq/acpi-cpufreq.c | 11 + drivers/cpufreq/amd_freq_sensitivity.c | 9 +- drivers/edac/amd64_edac.c | 20 +- drivers/edac/amd64_edac.h | 4 + drivers/edac/mce_amd.c | 4 +- include/linux/pci_ids.h | 2 + tools/power/cpupower/utils/cpufreq-info.c | 6 +- tools/power/cpupower/utils/helpers/amd.c | 2 +- tools/power/cpupower/utils/helpers/cpuid.c | 8 +- tools/power/cpupower/utils/helpers/helpers.h | 2 +- tools/power/cpupower/utils/helpers/misc.c | 2 +- .../cpupower/utils/idle_monitor/mperf_monitor.c | 3 +- 45 files changed, 682 insertions(+), 65 deletions(-) create mode 100644 arch/x86/kernel/cpu/hygon.c -- 2.7.4