![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <acpi/acpigen.h>
#include <assert.h>
#include <console/console.h>
#include <intelblocks/acpi.h>
#include <intelblocks/pmc_ipc.h>
#include <stdlib.h>
#include <types.h>
Go to the source code of this file.
Data Structures | |
struct | reg_info |
Macros | |
#define | LPI_S0_HELPER_UUID "c4eb40a0-6cd2-11e2-bcfd-0800200c9a66" |
#define | PEP_S0IX_UUID "57a6512e-3979-4e9d-9708-ff13b2508972" |
#define | SYSTEM_POWER_MANAGEMENT_HID "INT33A1" |
#define | SYSTEM_POWER_MANAGEMENT_CID "PNP0D80" |
#define | EC_S0IX_HOOK "\\_SB.PCI0.LPCB.EC0.S0IX" |
#define | MAINBOARD_HOOK "\\_SB.MS0X" |
#define | ENABLE_PM_BITS_HOOK "\\_SB.PCI0.EGPM" |
#define | RESTORE_PM_BITS_HOOK "\\_SB.PCI0.RGPM" |
#define | LPI_STATES_ALL 0xff |
#define | MIN_DEVICE_STATE ACPI_DEVICE_SLEEP_D0 |
#define | PEPD_SCOPE "\\_SB.PCI0" |
Functions | |
static void | read_pmc_lpm_requirements (const struct soc_pmc_lpm *lpm, struct reg_info *info) |
static void | lpi_get_constraints (void *unused) |
static void | lpi_s0ix_entry (void *unused) |
static void | lpi_s0ix_exit (void *unused) |
static void | pep_s0ix_return_lpm_requirements (void *arg) |
void | generate_acpi_power_engine_with_lpm (const struct soc_pmc_lpm *lpm) |
void | generate_acpi_power_engine (void) |
Variables | |
static void(* | lpi_s0_helpers [])(void *) |
static void(* | pep_s0ix [])(void *) |
#define LPI_S0_HELPER_UUID "c4eb40a0-6cd2-11e2-bcfd-0800200c9a66" |
#define MIN_DEVICE_STATE ACPI_DEVICE_SLEEP_D0 |
Definition at line 207 of file pep.c.
References generate_acpi_power_engine_with_lpm(), and NULL.
Referenced by pmc_fill_ssdt().
void generate_acpi_power_engine_with_lpm | ( | const struct soc_pmc_lpm * | lpm | ) |
Definition at line 179 of file pep.c.
References acpigen_emit_eisaid(), acpigen_write_device(), acpigen_write_device_end(), acpigen_write_dsm_uuid_arr(), acpigen_write_name(), acpigen_write_name_string(), acpigen_write_scope(), acpigen_write_scope_end(), ARRAY_SIZE, BIOS_INFO, DSM_UUID, free(), info, LPI_S0_HELPER_UUID, lpi_s0_helpers, NULL, pep_s0ix, PEP_S0IX_UUID, PEPD_SCOPE, printk, read_pmc_lpm_requirements(), SYSTEM_POWER_MANAGEMENT_CID, and SYSTEM_POWER_MANAGEMENT_HID.
Referenced by generate_acpi_power_engine(), and soc_pmc_fill_ssdt().
Definition at line 77 of file pep.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_write_integer(), acpigen_write_package(), acpigen_write_package_end(), LPI_STATES_ALL, MIN_DEVICE_STATE, RETURN_OP, and snprintf().
Definition at line 112 of file pep.c.
References acpigen_emit_namestring(), acpigen_write_if_cond_ref_of(), acpigen_write_if_end(), acpigen_write_integer(), EC_S0IX_HOOK, ENABLE_PM_BITS_HOOK, and MAINBOARD_HOOK.
Definition at line 133 of file pep.c.
References acpigen_emit_namestring(), acpigen_write_if_cond_ref_of(), acpigen_write_if_end(), acpigen_write_integer(), EC_S0IX_HOOK, MAINBOARD_HOOK, and RESTORE_PM_BITS_HOOK.
Definition at line 163 of file pep.c.
References acpigen_write_return_byte_buffer(), acpigen_write_return_singleton_buffer(), arg, CONFIG, and info.
|
static |
Definition at line 28 of file pep.c.
References assert, BIOS_ERR, BIT, pmc_ipc_buffer::buf, calloc(), CB_SUCCESS, CONFIG, info, soc_pmc_lpm::lpm_enable_mask, soc_pmc_lpm::lpm_ipc_offset, memset(), soc_pmc_lpm::num_req_regs, soc_pmc_lpm::num_substates, offset, PMC_IPC_CMD_RD_PMC_REG, PMC_IPC_CMD_SUBCMD_RD_PMC_REG, pmc_make_ipc_cmd(), pmc_send_ipc_cmd(), printk, and soc_pmc_lpm::req_reg_stride.
Referenced by generate_acpi_power_engine_with_lpm().
Definition at line 174 of file pep.c.
Referenced by generate_acpi_power_engine_with_lpm().