Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2973741imm; Sun, 19 Aug 2018 09:13:07 -0700 (PDT) X-Google-Smtp-Source: AA+uWPyLKcZGVxyft1oSwYtDWIeLbSCKkv/kgHCwHrdGD8AdYrZJGSvkKZja9MqJmh5o79oU3o7w X-Received: by 2002:a65:658d:: with SMTP id u13-v6mr40066240pgv.20.1534695187153; Sun, 19 Aug 2018 09:13:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534695187; cv=none; d=google.com; s=arc-20160816; b=C1OTl8Mgdk4xE9cRmLj7mjSj1vzl8W2HhYojY24GEWCZx3YWr8RoIf4oZQ6SY1QGQJ uKDK810l6Ez4sQ3ALk6sneqi2bk+htlooR3LJ2HqWXrMPSYR5TrzH+w8n/Zz/FNdVwMT nPiyz+mrLOEqiBz7ATxQUVBYj0r7+rhpfBR3MMQ/P3i+E352YePZWPTxNu6iNkc1EHBx XBa/i5UXHGiNeRRAnWeEV6e+ZHCbT7BdYHj1cabW4h/puIt4wDn2Eov3CtLWz/hf3zVW eU6duyt+yNwNuOtcBKppXDEcZQBmVOALgdVAmqqpAqtcsw4ky4x30bF/MjRJZa0DVHAB 1mEQ== 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=Ij4ea34we1vRt78JMVL1rCbp1MJi+Swcpeou3qMOC/s=; b=E7NGVZYP4481+h99Qork9jWwqbvLENIZrV5nw+9SX/eWGrnlLsaP8KDl76moe30FQ7 3YOSADLpIBqXgdFidbIDhB5dSOsySorf1/wbRIo+jkiuwghDsfG6mxpkY8LSsthhP/Y5 XjHBx4/yrMafGEybE8BYl1nlAS/5/fN03Mt/E0u/eKCEA/C/jxMXVVHFSknddDwaC2ds k8kBRcQ3MVozYxo31e92m89VY3uc1oYTz9tWF8DGAbfk/vkrzy2/HUJjosZkAFu7ydRA 5TmBgZlEViSuk/tT1gAw6dUlqu3H7Iv81DWaFAX7wtyjifhlFKEHRdDDa8p9gqJrVg10 PxuA== 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 q8-v6si7108175pfh.353.2018.08.19.09.12.27; Sun, 19 Aug 2018 09:13:07 -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 S1726623AbeHSTU4 (ORCPT + 99 others); Sun, 19 Aug 2018 15:20:56 -0400 Received: from smtp20.cstnet.cn ([159.226.251.20]:44568 "EHLO cstnet.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726583AbeHSTU4 (ORCPT ); Sun, 19 Aug 2018 15:20:56 -0400 Received: from localhost.localdomain (unknown [110.184.154.248]) by APP-10 (Coremail) with SMTP id tACowAAXHmLflXlb0WCwAg--.52S2; Mon, 20 Aug 2018 00:08:06 +0800 (CST) From: Pu Wen To: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, thomas.lendacky@amd.com, bp@alien8.de, pbonzini@redhat.com, tony.luck@intel.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 Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, linux-edac@vger.kernel.org, linux-pm@vger.kernel.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org, Pu Wen Subject: [PATCH v4 00/16] Add support for Hygon Dhyana Family 18h processor Date: Mon, 20 Aug 2018 00:07:49 +0800 Message-Id: X-Mailer: git-send-email 2.7.4 X-CM-TRANSID: tACowAAXHmLflXlb0WCwAg--.52S2 X-Coremail-Antispam: 1UD129KBjvJXoWxAryUAr4rCFy3Ar1fuFykZrb_yoWrurWkpF ZFkrZ5tF4rur9xAasrCr1kZFyfZa18uFW7Kw1UW3sxX3WYq347Xrn7J3W7Xw1qvrn5GF1S yFya9FWxXFykJFJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUv214x267AKxVW5JVWrJwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4j 6r4UJwA2z4x0Y4vEx4A2jsIE14v26r1j6r4UM28EF7xvwVC2z280aVCY1x0267AKxVW8JV W8Jr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E 2Ix0cI8IcVAFwI0_Jw0_WrylYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV W8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2 Y2ka0xkIwI1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4 xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r4a6rW5 MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I 0E14v26F4j6r4UJwCI42IY6xAIw20EY4v20xvaj40_Wr1j6rW3Jr1lIxAIcVC2z280aVAF wI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa 7VUb9qXPUUUUU== X-Originating-IP: [110.184.154.248] 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. v3->v4: - Rebased on 4.18.3 and tested against it. - Merge patchs 05/17 perfctr and 10/17 events in v3 to patch 05/16 PMU for better patch function group. - Add hygon_get_topology_early() in patch 01/16. - Rework vendor checking and refine coding style. - Add Acked-by from Bjorn Helgaas for pci. - Add Acked-by from Rafael J. Wysocki for cpufreq and acpi. v2->v3: - Rebased on 4.18-rc8 and tested against it. - Rework vendor checking codes to improve consistency. 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 (16): x86/cpu: create Dhyana init file and register new cpu_dev to system x86/cache: get cache size/leaves and setup cache cpumap for Dhyana x86/mtrr: get MTRR number and support TOP_MEM2 x86/smpboot: smp init nodelay and no flush caches before sleep x86/pmu: enable Hygon support to PMU infrastructure 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/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 | 6 + arch/x86/events/amd/uncore.c | 15 +- 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 | 51 ++- arch/x86/kernel/apic/apic.c | 19 +- arch/x86/kernel/apic/probe_32.c | 1 + 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 | 409 +++++++++++++++++++++ arch/x86/kernel/cpu/mcheck/mce-severity.c | 3 +- arch/x86/kernel/cpu/mcheck/mce.c | 21 +- arch/x86/kernel/cpu/mtrr/cleanup.c | 3 +- arch/x86/kernel/cpu/mtrr/generic.c | 5 +- arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +- arch/x86/kernel/cpu/perfctr-watchdog.c | 2 + 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 | 5 + drivers/cpufreq/amd_freq_sensitivity.c | 9 +- drivers/edac/amd64_edac.c | 52 ++- drivers/edac/amd64_edac.h | 5 + drivers/edac/mce_amd.c | 15 +- include/linux/pci_ids.h | 2 + tools/power/cpupower/utils/cpufreq-info.c | 6 +- tools/power/cpupower/utils/helpers/amd.c | 6 +- tools/power/cpupower/utils/helpers/cpuid.c | 8 +- tools/power/cpupower/utils/helpers/helpers.h | 2 +- tools/power/cpupower/utils/helpers/misc.c | 3 +- .../cpupower/utils/idle_monitor/mperf_monitor.c | 3 +- 46 files changed, 732 insertions(+), 69 deletions(-) create mode 100644 arch/x86/kernel/cpu/hygon.c -- 2.7.4