11 #define SMM_IO_TRAP_PORT_OFFSET 16
12 #define SMM_IO_TRAP_PORT_ADDRESS_MASK 0xffff
13 #define SMM_IO_TRAP_RW (1 << 0)
14 #define SMM_IO_TRAP_VALID (1 << 1)
25 amd64_smm_state_save_area_t *
state;
30 for (core = 0; core < CONFIG_MAX_CPUS; core++) {
32 smm_io_trap =
state->smm_io_trap_offset;
53 amd64_smm_state_save_area_t *io_smi;
60 sub_command = (io_smi->rax >> 8) & 0xff;
63 reg_ebx = io_smi->rbx;
66 io_smi->rax =
gsmi_exec(sub_command, ®_ebx);
72 amd64_smm_state_save_area_t *io_smi;
79 sub_command = (io_smi->rax >> 8) & 0xff;
82 reg_ebx = io_smi->rbx;
void * smm_get_save_state(int cpu)
static struct smmstore_params_info info
uint32_t smmstore_exec(uint8_t command, void *param)
u32 gsmi_exec(u8 command, u32 *param)
#define APM_CNT_ELOG_GSMI
uint16_t pm_acpi_smi_cmd_port(void)
static u16 get_io_address(u32 info)
#define SMM_IO_TRAP_PORT_OFFSET
void handle_smi_store(void)
#define SMM_IO_TRAP_VALID
void handle_smi_gsmi(void)
static void * find_save_state(int cmd)
#define SMM_IO_TRAP_PORT_ADDRESS_MASK