From cfc87903b237ef6e4568469653450f60dbffa87e Mon Sep 17 00:00:00 2001 From: "Li, Fei1" Date: Fri, 20 Apr 2018 08:42:50 +0800 Subject: [PATCH] hv: cpuid: add cpuid_level Get maximum input value for basic cpuid information. Signed-off-by: Li, Fei1 Acked-by: Eddie Dong --- hypervisor/arch/x86/cpu.c | 4 ++++ hypervisor/include/arch/x86/cpu.h | 1 + 2 files changed, 5 insertions(+) diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index a460d55a1..55f63dc10 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -128,6 +128,10 @@ static void get_cpu_capabilities(void) uint32_t eax, unused; uint32_t family, model; + cpuid(CPUID_VENDORSTRING, + &boot_cpu_data.cpuid_level, + &unused, &unused, &unused); + cpuid(CPUID_FEATURES, &eax, &unused, &boot_cpu_data.cpuid_leaves[FEAT_1_ECX], &boot_cpu_data.cpuid_leaves[FEAT_1_EDX]); diff --git a/hypervisor/include/arch/x86/cpu.h b/hypervisor/include/arch/x86/cpu.h index d4361f8d8..7bb63587c 100644 --- a/hypervisor/include/arch/x86/cpu.h +++ b/hypervisor/include/arch/x86/cpu.h @@ -244,6 +244,7 @@ struct cpuinfo_x86 { uint8_t x86, x86_model; uint8_t x86_virt_bits; uint8_t x86_phys_bits; + uint32_t cpuid_level; uint32_t extended_cpuid_level; uint64_t physical_address_mask; uint32_t cpuid_leaves[FEATURE_WORDS];