mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-21 00:38:28 +00:00
HV: add board specific cpu state table to support Px Cx
Currently the Px Cx supported SoCs which listed in cpu_state_tbl.c is limited, and it is not a wise option to build a huge state table data base to support Px/Cx for other SoCs. This patch give a alternative solution that build a board specific cpu state table in board.c which could be auto-generated by offline tool, then the CPU Px/Cx of customer board could be enabled; Hypervisor will search the cpu state table in cpu_state_tbl[] first, if not found then go check board_cpu_state_tbl. If no matched cpu state table is found then Px/Cx will not be supported; Tracked-On: #3477 Signed-off-by: Victor Sun <victor.sun@intel.com>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#define BOARD_H
|
||||
|
||||
#include <types.h>
|
||||
#include <host_pm.h>
|
||||
|
||||
/* forward declarations */
|
||||
struct acrn_vm;
|
||||
@@ -18,6 +19,7 @@ struct platform_clos_info {
|
||||
|
||||
extern struct platform_clos_info platform_clos_array[];
|
||||
extern uint16_t platform_clos_num;
|
||||
extern const struct cpu_state_table board_cpu_state_tbl;
|
||||
|
||||
/* board specific functions */
|
||||
void create_prelaunched_vm_e820(struct acrn_vm *vm);
|
||||
|
@@ -19,6 +19,11 @@ struct cpu_state_info {
|
||||
const struct cpu_cx_data *cx_data;
|
||||
};
|
||||
|
||||
struct cpu_state_table {
|
||||
char model_name[64];
|
||||
struct cpu_state_info state_info;
|
||||
};
|
||||
|
||||
struct pm_s_state_data *get_host_sstate_data(void);
|
||||
void host_enter_s3(struct pm_s_state_data *sstate_data, uint32_t pm1a_cnt_val, uint32_t pm1b_cnt_val);
|
||||
extern void asm_enter_s3(struct pm_s_state_data *sstate_data, uint32_t pm1a_cnt_val, uint32_t pm1b_cnt_val);
|
||||
|
Reference in New Issue
Block a user