Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp5821265imm; Mon, 23 Jul 2018 06:42:43 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfD5AV1wMY+86u9w6zXdNmEyAHKHmYIqtsfmvbWEVu0Id4GTpnEdsr2u+pTyM6RdlUmBCjx X-Received: by 2002:a17:902:6e09:: with SMTP id u9-v6mr12666263plk.13.1532353362964; Mon, 23 Jul 2018 06:42:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532353362; cv=none; d=google.com; s=arc-20160816; b=kg2Cub1nFoeNf6W17szbAS+OSnrshp8IZnnPSPv+lx6Z/Zh79gduHpYEHyKJ21wfkR zbD0zL/BD/9JXYX+q7Wg5/DJ3YigAxbtw8MTnJIsYGbVj8VO6Jaea2Fn6dYEGfVJBy54 DIm9WHnevOm89pi7Wjlcx1CkowUwSFd3fCrjtCLw3rjKdP5QN8LENjiykdvSqhGmVpJW Eg5vvzP31BZFpwPf7d49QufgDWtz/A+sj89lsHGe9B1UwdVVtIwEmHf8uJMm9AOlGzpR inuqg73JAkYBiGlnWbHSGFD2kfOsevSzmuvcNMcjDBPcOkG0WV8JV9oUwq16INOS0eL/ HWZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=58iavfvdrDDcUPWwYvp+YPbqJbHTrqugp1xKY46RWtE=; b=Fpj6sJrZU8VgK/poNChEfb4U6tUgYrHi2g6e9N74xrwoEmV7ogGw9p7vwaC9dbKwmf bU0kkTgrhHfNz1HqxZpqKlcI8FN0oQis6zcbCwtseuyGzuxC/x6shiRQCfdJUtnf0GWt 071yYsd/UIuoYZsxJSamiRka7MsBfnQDEZWQvsBVkVw6hcd01RFwaJ8aLYJWVRSihWtj 0UuUrTPjm9kCkcJl1SLK/26KTrWFzSaIB1AmlpdHCv3u3Z9TiWcCBTso5+apfYsSSla9 xuU0qiGLAm/IOaHsC2i8/sKGSaSb8Gm0JA9EVmpnzIrQwI2pC6qkKPn6ekdO8Sx4bMrr jKdw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v63-v6si8363542pgd.658.2018.07.23.06.42.28; Mon, 23 Jul 2018 06:42:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388346AbeGWOl4 (ORCPT + 99 others); Mon, 23 Jul 2018 10:41:56 -0400 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 Received: from pw-vbox.higon.com (unknown [182.150.46.145]) by APP-01 (Coremail) with SMTP id qwCowAD3_5sl1lVbkm7cEA--.63S2; Mon, 23 Jul 2018 21:21:10 +0800 (CST) From: Pu Wen 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 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> X-Mailer: git-send-email 2.7.4 X-CM-TRANSID: qwCowAD3_5sl1lVbkm7cEA--.63S2 X-Coremail-Antispam: 1UD129KBjvJXoWxAryUAr4rCFy3Ar1fuFykZrb_yoWrWFW5pF Z2yrZ5JF4ru3sxA3ZrCr1kZFyfA3WUuFW7Kw1UW3sxX3WYq347Xrn7J3WxXw1DZrn5GF1S yFyS9F48WFykJFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkKb7Iv0xC_Kw4lb4IE77IF4wAFF20E14v26ryj6rWUM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xII jxv20xvEc7CjxVAFwI0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVW8JVWxJwA2z4x0Y4vEx4 A2jsIEc7CjxVAFwI0_Gr0_Gr1UM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI 64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVW8Jr0_Cr 1UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwACI402YVCY1x02628vn2kI c2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14 v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_GFv_WrylIxkG c2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6rW3Jr0E3s1lIxAIcVC2z280aVAFwI0_Gr0_ Cr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU5hmRU UUUUU== X-Originating-IP: [182.150.46.145] X-CM-SenderInfo: psxzv046klw03qof0z/ Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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