diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h index 7bfb96875c..a13304201f 100644 --- a/xen/arch/x86/efi/efi-boot.h +++ b/xen/arch/x86/efi/efi-boot.h @@ -8,6 +8,7 @@ #include #include #include +#include static struct file __initdata ucode; static multiboot_info_t __initdata mbi = { @@ -673,6 +674,8 @@ static void __init efi_arch_cpu(void) uint32_t eax = cpuid_eax(0x80000000); uint32_t *caps = boot_cpu_data.x86_capability; + boot_tsc_stamp = rdtsc(); + caps[cpufeat_word(X86_FEATURE_HYPERVISOR)] = cpuid_ecx(1); if ( (eax >> 16) == 0x8000 && eax > 0x80000000 ) diff --git a/xen/include/asm-x86/setup.h b/xen/include/asm-x86/setup.h index 28257bc5c8..642a5e8460 100644 --- a/xen/include/asm-x86/setup.h +++ b/xen/include/asm-x86/setup.h @@ -10,6 +10,7 @@ extern char __2M_init_start[], __2M_init_end[]; extern char __2M_rwdata_start[], __2M_rwdata_end[]; extern unsigned long xenheap_initial_phys_start; +extern uint64_t boot_tsc_stamp; void early_cpu_init(void); void early_time_init(void);