mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-21 13:08:42 +00:00
HV: add cpu model name
The cpu model name would be used to distinguish which hard coded data need to be loaded to boot_cpu_data; Signed-off-by: Victor Sun <victor.sun@intel.com> Acked-by: Kevin Tian <kevin.tian@intel.com>
This commit is contained in:
parent
860d9e6bd7
commit
5f406fb335
@ -308,6 +308,27 @@ static void set_fs_base(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void get_cpu_name(void)
|
||||
{
|
||||
cpuid(CPUID_EXTEND_FUNCTION_2,
|
||||
(uint32_t *)(boot_cpu_data.model_name),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 4),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 8),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 12));
|
||||
cpuid(CPUID_EXTEND_FUNCTION_3,
|
||||
(uint32_t *)(boot_cpu_data.model_name + 16),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 20),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 24),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 28));
|
||||
cpuid(CPUID_EXTEND_FUNCTION_4,
|
||||
(uint32_t *)(boot_cpu_data.model_name + 32),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 36),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 40),
|
||||
(uint32_t *)(boot_cpu_data.model_name + 44));
|
||||
|
||||
boot_cpu_data.model_name[48] = '\0';
|
||||
}
|
||||
|
||||
void bsp_boot_init(void)
|
||||
{
|
||||
uint64_t start_tsc = rdtsc();
|
||||
@ -375,6 +396,8 @@ void bsp_boot_init(void)
|
||||
*/
|
||||
get_cpu_capabilities();
|
||||
|
||||
get_cpu_name();
|
||||
|
||||
/* Initialize the hypervisor paging */
|
||||
init_paging();
|
||||
|
||||
@ -434,6 +457,8 @@ void bsp_boot_init(void)
|
||||
printf("API version %d.%d\r\n",
|
||||
HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION);
|
||||
|
||||
printf("Detect processor: %s\n", boot_cpu_data.model_name);
|
||||
|
||||
pr_dbg("Core %d is up", CPU_BOOT_ID);
|
||||
|
||||
/* Warn for security feature not ready */
|
||||
|
@ -236,6 +236,7 @@ struct cpuinfo_x86 {
|
||||
uint8_t x86, x86_model;
|
||||
uint64_t physical_address_mask;
|
||||
uint32_t cpuid_leaves[FEATURE_WORDS];
|
||||
char model_name[64];
|
||||
};
|
||||
|
||||
extern struct cpuinfo_x86 boot_cpu_data;
|
||||
|
@ -115,6 +115,9 @@
|
||||
#define CPUID_EXTEND_FEATURE 7
|
||||
#define CPUID_MAX_EXTENDED_FUNCTION 0x80000000
|
||||
#define CPUID_EXTEND_FUNCTION_1 0x80000001
|
||||
#define CPUID_EXTEND_FUNCTION_2 0x80000002
|
||||
#define CPUID_EXTEND_FUNCTION_3 0x80000003
|
||||
#define CPUID_EXTEND_FUNCTION_4 0x80000004
|
||||
#define CPUID_EXTEND_ADDRESS_SIZE 0x80000008
|
||||
|
||||
static inline void __cpuid(uint32_t *eax, uint32_t *ebx,
|
||||
|
Loading…
Reference in New Issue
Block a user