Re: [PATCH v5 01/16] x86/cpu: create Dhyana init file and register new cpu_dev to system

From: Borislav Petkov
Date: Thu Aug 30 2018 - 08:35:49 EST


On Wed, Aug 29, 2018 at 08:42:49PM +0800, Pu Wen wrote:
> Add x86 architecture support for new processor Hygon Dhyana Family 18h.
> Rework to create a separated file(arch/x86/kernel/cpu/hygon.c) from the
> AMD init one(arch/x86/kernel/cpu/amd.c) to initialize Dhyana CPU. In
> this way we can remove old AMD architecture support codes from Hygon
> code path and generate a clear initialization flow for Hygon processors.
> It also reduce long-term maintenance effort.
> Also add Maintainer information for hygon.c in accordance.
>
> To identify Hygon processors, add a new vendor type X86_VENDOR_HYGON(9)
> for system recognition.
>
> To enable Hygon processor config, add a separated Kconfig entry
> (CPU_SUP_HYGON) for Dhyana CPU in kernel config setup.
>
> Signed-off-by: Pu Wen <puwen@xxxxxxxx>
> ---
> MAINTAINERS | 6 +
> arch/x86/Kconfig.cpu | 13 ++
> arch/x86/include/asm/processor.h | 3 +-
> arch/x86/kernel/cpu/Makefile | 1 +
> arch/x86/kernel/cpu/hygon.c | 408 +++++++++++++++++++++++++++++++++++++++
> 5 files changed, 430 insertions(+), 1 deletion(-)
> create mode 100644 arch/x86/kernel/cpu/hygon.c
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index a5b256b..9c1d920 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -6759,6 +6759,12 @@ S: Maintained
> F: mm/memory-failure.c
> F: mm/hwpoison-inject.c
>
> +HYGON PROCESSOR SUPPORT
> +M: Pu Wen <puwen@xxxxxxxx>
> +L: linux-arch@xxxxxxxxxxxxxxx

This is probably the wrong ML. You either have your own or use lkml, I'd
say.

> +S: Supported
> +F: arch/x86/kernel/cpu/hygon.c
> +
> Hyper-V CORE AND DRIVERS
> M: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx>
> M: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
> index 638411f..2e92267 100644
> --- a/arch/x86/Kconfig.cpu
> +++ b/arch/x86/Kconfig.cpu
> @@ -426,6 +426,19 @@ config CPU_SUP_AMD
>
> If unsure, say N.
>
> +config CPU_SUP_HYGON
> + default y
> + bool "Support Hygon processors" if PROCESSOR_SELECT
> + help
> + This enables detection, tunings and quirks for Hygon processors
> +
> + You need this enabled if you want your kernel to run on an
> + Hygon CPU. Disabling this option on other types of CPUs
> + makes the kernel a tiny bit smaller. Disabling it on an Hygon
> + CPU might render the kernel unbootable.
> +
> + If unsure, say N.
> +
> config CPU_SUP_CENTAUR
> default y
> bool "Support Centaur processors" if PROCESSOR_SELECT
> diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
> index c242972..9f18cdb 100644
> --- a/arch/x86/include/asm/processor.h
> +++ b/arch/x86/include/asm/processor.h
> @@ -153,7 +153,8 @@ enum cpuid_regs_idx {
> #define X86_VENDOR_CENTAUR 5
> #define X86_VENDOR_TRANSMETA 7
> #define X86_VENDOR_NSC 8
> -#define X86_VENDOR_NUM 9
> +#define X86_VENDOR_HYGON 9
> +#define X86_VENDOR_NUM 10
>
> #define X86_VENDOR_UNKNOWN 0xff
>
> diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
> index 347137e..1f5d229 100644
> --- a/arch/x86/kernel/cpu/Makefile
> +++ b/arch/x86/kernel/cpu/Makefile
> @@ -30,6 +30,7 @@ obj-$(CONFIG_X86_FEATURE_NAMES) += capflags.o powerflags.o
>
> obj-$(CONFIG_CPU_SUP_INTEL) += intel.o intel_pconfig.o
> obj-$(CONFIG_CPU_SUP_AMD) += amd.o
> +obj-$(CONFIG_CPU_SUP_HYGON) += hygon.o
> obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o
> obj-$(CONFIG_CPU_SUP_CENTAUR) += centaur.o
> obj-$(CONFIG_CPU_SUP_TRANSMETA_32) += transmeta.o
> diff --git a/arch/x86/kernel/cpu/hygon.c b/arch/x86/kernel/cpu/hygon.c
> new file mode 100644
> index 0000000..ae90d1f
> --- /dev/null
> +++ b/arch/x86/kernel/cpu/hygon.c
> @@ -0,0 +1,408 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Hygon Processor Support for Linux
> + *
> + * Copyright (c) Chengdu Haiguang IC Design Co., Ltd.
> + *
> + * Author: 2018 Pu Wen <puwen@xxxxxxxx>

Year goes with the copyright.

Otherwise looks ok.

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--