From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 208A4C46460 for ; Sat, 11 Aug 2018 13:26:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C06A12238D for ; Sat, 11 Aug 2018 13:26:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C06A12238D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=hygon.cn Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727411AbeHKQAd (ORCPT ); Sat, 11 Aug 2018 12:00:33 -0400 Received: from smtp17.cstnet.cn ([159.226.251.17]:35787 "EHLO cstnet.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727324AbeHKQAd (ORCPT ); Sat, 11 Aug 2018 12:00:33 -0400 Received: from pw-vbox.higon.com (unknown [182.150.46.145]) by APP-09 (Coremail) with SMTP id swCowADHrR3K425bTWVfAA--.879S2; Sat, 11 Aug 2018 21:25:37 +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 v3 00/17] Add support for Hygon Dhyana Family 18h processor Date: Sat, 11 Aug 2018 21:25:16 +0800 Message-Id: X-Mailer: git-send-email 2.7.4 X-CM-TRANSID: swCowADHrR3K425bTWVfAA--.879S2 X-Coremail-Antispam: 1UD129KBjvJXoWxAryUAr4rCFy3Ar1fuFykZrb_yoWrCr18pF Z2yrZ5tF4ru3sxA3srCr1kZFyfZa18uFW7Gw1UW3sxX3WYq347Xrn7J3W7Xw1qvrn5GF1S yFya9F48WFykJFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUv014x267AKxVW5JVWrJwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4j 6F4UM28EF7xvwVC2z280aVAFwI0_Jr0_Gr1l84ACjcxK6I8E87Iv6xkF7I0E14v26r4j6r 4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0 I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r 4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4 0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_GFv_Wryl IxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxV AFwI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6rW3Jr0E3s1lIxAIcVC2z280aVAFwI0_ Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VUj EoGJUUUUU== 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. 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 (17): 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/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 | 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 | 404 +++++++++++++++++++++ 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 | 6 +- arch/x86/kvm/emulate.c | 11 +- arch/x86/pci/amd_bus.c | 6 +- arch/x86/xen/pmu.c | 15 +- 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 | 45 ++- drivers/edac/amd64_edac.h | 5 + drivers/edac/mce_amd.c | 12 +- include/linux/pci_ids.h | 2 + tools/power/cpupower/utils/cpufreq-info.c | 6 +- tools/power/cpupower/utils/helpers/amd.c | 4 +- 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, 719 insertions(+), 70 deletions(-) create mode 100644 arch/x86/kernel/cpu/hygon.c -- 2.7.4