mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
14442a159c
Add support for generating VMX feature names in capflags.c and use the resulting x86_vmx_flags to print the VMX flags in /proc/cpuinfo. Don't print VMX flags if no bits are set in word 0, which holds Pin Controls. Pin Control's INTR and NMI exiting are fundamental pillars of VMX, if they are not supported then the CPU is broken, it does not actually support VMX, or the kernel wasn't built with support for the target CPU. Print the features in a dedicated "vmx flags" line to avoid polluting the common "flags" and to avoid having to prefix all flags with "vmx_", which results in horrendously long names. Keep synthetic VMX flags in cpufeatures to preserve /proc/cpuinfo's ABI for those flags. This means that "flags" and "vmx flags" will have duplicate entries for tpr_shadow (virtual_tpr), vnmi, ept, flexpriority, vpid and ept_ad, but caps the pollution of "flags" at those six VMX features. The vendor-specific code that populates the synthetic flags will be consolidated in a future patch to further minimize the lasting damage. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20191221044513.21680-12-sean.j.christopherson@intel.com
66 lines
1.9 KiB
Makefile
66 lines
1.9 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for x86-compatible CPU details, features and quirks
|
|
#
|
|
|
|
# Don't trace early stages of a secondary CPU boot
|
|
ifdef CONFIG_FUNCTION_TRACER
|
|
CFLAGS_REMOVE_common.o = -pg
|
|
CFLAGS_REMOVE_perf_event.o = -pg
|
|
endif
|
|
|
|
# If these files are instrumented, boot hangs during the first second.
|
|
KCOV_INSTRUMENT_common.o := n
|
|
KCOV_INSTRUMENT_perf_event.o := n
|
|
|
|
# Make sure load_percpu_segment has no stackprotector
|
|
nostackp := $(call cc-option, -fno-stack-protector)
|
|
CFLAGS_common.o := $(nostackp)
|
|
|
|
obj-y := cacheinfo.o scattered.o topology.o
|
|
obj-y += common.o
|
|
obj-y += rdrand.o
|
|
obj-y += match.o
|
|
obj-y += bugs.o
|
|
obj-y += aperfmperf.o
|
|
obj-y += cpuid-deps.o
|
|
obj-y += umwait.o
|
|
|
|
obj-$(CONFIG_PROC_FS) += proc.o
|
|
obj-$(CONFIG_X86_FEATURE_NAMES) += capflags.o powerflags.o
|
|
|
|
obj-$(CONFIG_IA32_FEAT_CTL) += feat_ctl.o
|
|
ifdef CONFIG_CPU_SUP_INTEL
|
|
obj-y += intel.o intel_pconfig.o tsx.o
|
|
obj-$(CONFIG_PM) += intel_epb.o
|
|
endif
|
|
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
|
|
obj-$(CONFIG_CPU_SUP_UMC_32) += umc.o
|
|
obj-$(CONFIG_CPU_SUP_ZHAOXIN) += zhaoxin.o
|
|
|
|
obj-$(CONFIG_X86_MCE) += mce/
|
|
obj-$(CONFIG_MTRR) += mtrr/
|
|
obj-$(CONFIG_MICROCODE) += microcode/
|
|
obj-$(CONFIG_X86_CPU_RESCTRL) += resctrl/
|
|
|
|
obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o
|
|
|
|
obj-$(CONFIG_HYPERVISOR_GUEST) += vmware.o hypervisor.o mshyperv.o
|
|
obj-$(CONFIG_ACRN_GUEST) += acrn.o
|
|
|
|
ifdef CONFIG_X86_FEATURE_NAMES
|
|
quiet_cmd_mkcapflags = MKCAP $@
|
|
cmd_mkcapflags = $(CONFIG_SHELL) $(srctree)/$(src)/mkcapflags.sh $@ $^
|
|
|
|
cpufeature = $(src)/../../include/asm/cpufeatures.h
|
|
vmxfeature = $(src)/../../include/asm/vmxfeatures.h
|
|
|
|
$(obj)/capflags.c: $(cpufeature) $(vmxfeature) $(src)/mkcapflags.sh FORCE
|
|
$(call if_changed,mkcapflags)
|
|
endif
|
|
targets += capflags.c
|