Files
acrn-hypervisor/hypervisor/include/arch/x86/asm/host_pm.h
Yifan Liu 43a09e86a7 hv: host_pm: Move two common APIs to common scope
Move shutdown_system to common (and rename to shutdown_host)
Move reset_host to common

Tracked-On: #8830
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
Reviewed-by: Fei Li <fei1.li@intel.com>
Acked-by: Wang Yu1 <yu1.wang@intel.com>
2025-10-30 13:30:32 +08:00

47 lines
1.3 KiB
C

/*
* Copyright (C) 2018-2022 Intel Corporation.
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef X86_HOST_PM_H
#define X86_HOST_PM_H
#include <acrn_common.h>
#define BIT_SLP_TYPx 10U
#define BIT_SLP_EN 13U
#define BIT_WAK_STS 15U
#define CF9_RESET_WARM 0x6
#define CF9_RESET_COLD 0xE
struct cpu_state_info {
uint8_t px_cnt; /* count of all Px states */
const struct acrn_pstate_data *px_data;
uint8_t cx_cnt; /* count of all Cx entries */
const struct acrn_cstate_data *cx_data;
};
struct cpu_state_table {
char model_name[64];
struct cpu_state_info state_info;
};
struct acpi_reset_reg {
struct acrn_acpi_generic_address reg;
uint8_t val;
};
struct pm_s_state_data *get_host_sstate_data(void);
void host_enter_s3(const struct pm_s_state_data *sstate_data, uint32_t pm1a_cnt_val, uint32_t pm1b_cnt_val);
void save_s5_reg_val(uint32_t pm1a_cnt_val, uint32_t pm1b_cnt_val);
void do_acpi_sx(const struct pm_s_state_data *sstate_data, uint32_t pm1a_cnt_val, uint32_t pm1b_cnt_val);
extern void asm_enter_s3(const struct pm_s_state_data *sstate_data, uint32_t pm1a_cnt_val, uint32_t pm1b_cnt_val);
extern void restore_s3_context(void);
struct cpu_state_info *get_cpu_pm_state_info(void);
struct acpi_reset_reg *get_host_reset_reg_data(void);
void init_frequency_policy(void);
void apply_frequency_policy(void);
#endif /* X86_HOST_PM_H */