coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
acpi.h File Reference
#include <commonlib/helpers.h>
#include <device/device.h>
#include <uuid.h>
#include <cper.h>
#include <romstage_handoff.h>
#include <types.h>
Include dependency graph for acpi.h:

Go to the source code of this file.

Data Structures

struct  acpi_rsdp
 
struct  acpi_gen_regaddr
 
struct  acpi_table_header
 
struct  acpi_rsdt
 
struct  acpi_xsdt
 
struct  acpi_hpet
 
struct  acpi_mcfg
 
struct  acpi_tcpa
 
struct  acpi_tpm2
 
struct  acpi_mcfg_mmconfig
 
struct  acpi_hmat
 
struct  acpi_hmat_mpda
 
struct  acpi_hmat_sllbi
 
struct  acpi_hmat_msci
 
struct  acpi_srat
 
struct  acpi_srat_lapic
 
struct  acpi_srat_mem
 
struct  acpi_srat_gia
 
struct  acpi_slit
 
struct  acpi_madt
 
struct  acpi_lpit
 
struct  acpi_lpi_flags
 
struct  acpi_lpi_desc_hdr
 
struct  acpi_lpi_desc_ncst
 
struct  acpi_vfct_image_hdr
 
struct  acpi_vfct
 
struct  acpi_ivrs_info
 
struct  acpi_ivrs_ivhd
 
struct  acpi_ivrs
 
struct  acpi_crat_header
 
struct  ivhd11_iommu_attr
 
struct  acpi_ivrs_ivhd_11
 
struct  dev_scope
 
struct  dmar_entry
 
struct  dmar_rmrr_entry
 
struct  dmar_atsr_entry
 
struct  dmar_rhsa_entry
 
struct  dmar_andd_entry
 
struct  dmar_satc_entry
 
struct  acpi_dmar
 
struct  acpi_madt_lapic
 
struct  acpi_madt_lapic_nmi
 
struct  acpi_madt_ioapic
 
struct  acpi_madt_irqoverride
 
struct  acpi_madt_lx2apic
 
struct  acpi_madt_lx2apic_nmi
 
struct  acpi_dbg2_header
 
struct  acpi_dbg2_device
 
struct  acpi_fadt
 
struct  acpi_facs
 
struct  acpi_ecdt
 
struct  acpi_hest
 
struct  acpi_hest_esd
 
struct  acpi_hest_hen
 
struct  acpi_bert
 
struct  acpi_hest_generic_data
 
struct  acpi_hest_generic_data_v300
 
struct  acpi_generic_error_status
 
struct  acpi_cstate
 
struct  acpi_sw_pstate
 
struct  acpi_xpss_sw_pstate
 
struct  acpi_tstate
 
struct  acpi_lpi_state
 
struct  acpi_spmi
 
struct  acpi_gen_regaddr1
 
struct  acpi_einj_action_table
 
struct  acpi_injection_header
 
struct  acpi_einj_trigger_table
 
struct  set_error_type
 
struct  acpi_einj_smi
 
struct  acpi_einj
 

Macros

#define ACPI_TABLE_CREATOR   "COREBOOT" /* Must be exactly 8 bytes long! */
 
#define OEM_ID   "COREv4" /* Must be exactly 6 bytes long! */
 
#define ACPI_DSDT_REV_1   0x01 /* DSDT revision: ACPI v1 */
 
#define ACPI_DSDT_REV_2   0x02 /* DSDT revision: ACPI v2.0 and greater */
 
#define RSDP_SIG   "RSD PTR " /* RSDT pointer signature */
 
#define ASLC   "CORE" /* Must be exactly 4 bytes long! */
 
#define ACPI_NAME_BUFFER_SIZE   5 /* 4 chars + 1 NUL */
 
#define COREBOOT_ACPI_ID   "BOOT" /* ACPI ID for coreboot HIDs */
 
#define ACPI_ADDRESS_SPACE_MEMORY   0 /* System memory */
 
#define ACPI_ADDRESS_SPACE_IO   1 /* System I/O */
 
#define ACPI_ADDRESS_SPACE_PCI   2 /* PCI config space */
 
#define ACPI_ADDRESS_SPACE_EC   3 /* Embedded controller */
 
#define ACPI_ADDRESS_SPACE_SMBUS   4 /* SMBus */
 
#define ACPI_ADDRESS_SPACE_CMOS   5 /* SystemCMOS */
 
#define ACPI_ADDRESS_SPACE_PCI_BAR_TARGET   6 /* PciBarTarget */
 
#define ACPI_ADDRESS_SPACE_IPMI   7 /* IPMI */
 
#define ACPI_ADDRESS_SPACE_GENERAL_PURPOSE_IO   8 /* GeneralPurposeIO */
 
#define ACPI_ADDRESS_SPACE_GENERIC_SERIAL_BUS   9 /* GenericSerialBus */
 
#define ACPI_ADDRESS_SPACE_PCC   0x0A /* Platform Comm. Channel */
 
#define ACPI_ADDRESS_SPACE_FIXED   0x7f /* Functional fixed hardware */
 
#define ACPI_FFIXEDHW_VENDOR_INTEL   1 /* Intel */
 
#define ACPI_FFIXEDHW_CLASS_HLT   0 /* C1 Halt */
 
#define ACPI_FFIXEDHW_CLASS_IO_HLT   1 /* C1 I/O then Halt */
 
#define ACPI_FFIXEDHW_CLASS_MWAIT   2 /* MWAIT Native C-state */
 
#define ACPI_FFIXEDHW_FLAG_HW_COORD   1 /* Hardware Coordination bit */
 
#define ACPI_FFIXEDHW_FLAG_BM_STS   2 /* BM_STS avoidance bit */
 
#define ACPI_ACCESS_SIZE_UNDEFINED   0 /* Undefined (legacy reasons) */
 
#define ACPI_ACCESS_SIZE_BYTE_ACCESS   1
 
#define ACPI_ACCESS_SIZE_WORD_ACCESS   2
 
#define ACPI_ACCESS_SIZE_DWORD_ACCESS   3
 
#define ACPI_ACCESS_SIZE_QWORD_ACCESS   4
 
#define ACPI_REG_MSR(address, offset, width)
 
#define ACPI_REG_UNSUPPORTED   (acpi_addr_t){0}
 
#define ACPI_HID_FDC   "PNP0700"
 
#define ACPI_HID_KEYBOARD   "PNP0303"
 
#define ACPI_HID_MOUSE   "PNP0F03"
 
#define ACPI_HID_COM   "PNP0501"
 
#define ACPI_HID_LPT   "PNP0400"
 
#define ACPI_HID_PNP   "PNP0C02"
 
#define ACPI_HID_CONTAINER   "PNP0A05"
 
#define MAX_ACPI_TABLES   32
 
#define ACPI_SRAT_STRUCTURE_LAPIC   0
 
#define ACPI_SRAT_STRUCTURE_MEM   1
 
#define ACPI_SRAT_STRUCTURE_GIA   5
 
#define ACPI_SRAT_GIA_DEV_HANDLE_ACPI   0
 
#define ACPI_SRAT_GIA_DEV_HANDLE_PCI   1
 
#define ACPI_LPIT_CTR_FREQ_TSC   0
 
#define ACPI_MADT_LAPIC_NMI_ALL_PROCESSORS   0xff
 
#define ACPI_DBG2_PORT_SERIAL   0x8000
 
#define ACPI_DBG2_PORT_SERIAL_16550   0x0000
 
#define ACPI_DBG2_PORT_SERIAL_16550_DBGP   0x0001
 
#define ACPI_DBG2_PORT_SERIAL_ARM_PL011   0x0003
 
#define ACPI_DBG2_PORT_SERIAL_ARM_SBSA   0x000e
 
#define ACPI_DBG2_PORT_SERIAL_ARM_DDC   0x000f
 
#define ACPI_DBG2_PORT_SERIAL_BCM2835   0x0010
 
#define ACPI_DBG2_PORT_IEEE1394   0x8001
 
#define ACPI_DBG2_PORT_IEEE1394_STANDARD   0x0000
 
#define ACPI_DBG2_PORT_USB   0x8002
 
#define ACPI_DBG2_PORT_USB_XHCI   0x0000
 
#define ACPI_DBG2_PORT_USB_EHCI   0x0001
 
#define ACPI_DBG2_PORT_NET   0x8003
 
#define ACPI_FADT_REV_ACPI_1   1
 
#define ACPI_FADT_REV_ACPI_2   3
 
#define ACPI_FADT_REV_ACPI_3   4
 
#define ACPI_FADT_REV_ACPI_4   4
 
#define ACPI_FADT_REV_ACPI_5   5
 
#define ACPI_FADT_REV_ACPI_6   6
 
#define ACPI_FADT_MINOR_VERSION_0   0 /* coreboot currently use this version */
 
#define ACPI_FADT_C2_NOT_SUPPORTED   101
 
#define ACPI_FADT_C3_NOT_SUPPORTED   1001
 
#define ACPI_FADT_WBINVD   (1 << 0)
 
#define ACPI_FADT_WBINVD_FLUSH   (1 << 1)
 
#define ACPI_FADT_C1_SUPPORTED   (1 << 2)
 
#define ACPI_FADT_C2_MP_SUPPORTED   (1 << 3)
 
#define ACPI_FADT_POWER_BUTTON   (1 << 4)
 
#define ACPI_FADT_SLEEP_BUTTON   (1 << 5)
 
#define ACPI_FADT_FIXED_RTC   (1 << 6)
 
#define ACPI_FADT_S4_RTC_WAKE   (1 << 7)
 
#define ACPI_FADT_32BIT_TIMER   (1 << 8)
 
#define ACPI_FADT_DOCKING_SUPPORTED   (1 << 9)
 
#define ACPI_FADT_RESET_REGISTER   (1 << 10)
 
#define ACPI_FADT_SEALED_CASE   (1 << 11)
 
#define ACPI_FADT_HEADLESS   (1 << 12)
 
#define ACPI_FADT_SLEEP_TYPE   (1 << 13)
 
#define ACPI_FADT_PCI_EXPRESS_WAKE   (1 << 14)
 
#define ACPI_FADT_PLATFORM_CLOCK   (1 << 15)
 
#define ACPI_FADT_S4_RTC_VALID   (1 << 16)
 
#define ACPI_FADT_REMOTE_POWER_ON   (1 << 17)
 
#define ACPI_FADT_APIC_CLUSTER   (1 << 18)
 
#define ACPI_FADT_APIC_PHYSICAL   (1 << 19)
 
#define ACPI_FADT_HW_REDUCED_ACPI   (1 << 20)
 
#define ACPI_FADT_LOW_PWR_IDLE_S0   (1 << 21)
 
#define ACPI_FADT_LEGACY_DEVICES   (1 << 0)
 
#define ACPI_FADT_8042   (1 << 1)
 
#define ACPI_FADT_VGA_NOT_PRESENT   (1 << 2)
 
#define ACPI_FADT_MSI_NOT_SUPPORTED   (1 << 3)
 
#define ACPI_FADT_NO_PCIE_ASPM_CONTROL   (1 << 4)
 
#define ACPI_FADT_NO_CMOS_RTC   (1 << 5)
 
#define ACPI_FADT_LEGACY_FREE   0x00 /* No legacy devices (including 8042) */
 
#define ACPI_FADT_ARM_PSCI_COMPLIANT   (1 << 0)
 
#define ACPI_FADT_ARM_PSCI_USE_HVC   (1 << 1)
 
#define ACPI_FACS_S4BIOS_F   (1 << 0)
 
#define ACPI_FACS_64BIT_WAKE_F   (1 << 1)
 
#define HEST_GENERIC_ENTRY_V300   0x300
 
#define ACPI_GENERROR_SEV_RECOVERABLE   0
 
#define ACPI_GENERROR_SEV_FATAL   1
 
#define ACPI_GENERROR_SEV_CORRECTED   2
 
#define ACPI_GENERROR_SEV_NONE   3
 
#define ACPI_GENERROR_VALID_FRUID   BIT(0)
 
#define ACPI_GENERROR_VALID_FRUID_TEXT   BIT(1)
 
#define ACPI_GENERROR_VALID_TIMESTAMP   BIT(2)
 
#define GENERIC_ERR_STS_UNCORRECTABLE_VALID   BIT(0)
 
#define GENERIC_ERR_STS_CORRECTABLE_VALID   BIT(1)
 
#define GENERIC_ERR_STS_MULT_UNCORRECTABLE   BIT(2)
 
#define GENERIC_ERR_STS_MULT_CORRECTABLE   BIT(3)
 
#define GENERIC_ERR_STS_ENTRY_COUNT_SHIFT   4
 
#define GENERIC_ERR_STS_ENTRY_COUNT_MAX   0x3ff
 
#define GENERIC_ERR_STS_ENTRY_COUNT_MASK
 
#define ACPI_IPMI_PCI_DEVICE_FLAG   (1 << 0)
 
#define ACPI_IPMI_INT_TYPE_SCI   (1 << 0)
 
#define ACPI_IPMI_INT_TYPE_APIC   (1 << 1)
 
#define ACPI_EINJ_CPU_CE   (1 << 0)
 
#define ACPI_EINJ_CPU_UCE   (1 << 1)
 
#define ACPI_EINJ_CPU_UCE_FATAL   (1 << 2)
 
#define ACPI_EINJ_MEM_CE   (1 << 3)
 
#define ACPI_EINJ_MEM_UCE   (1 << 4)
 
#define ACPI_EINJ_MEM_UCE_FATAL   (1 << 5)
 
#define ACPI_EINJ_PCIE_CE   (1 << 6)
 
#define ACPI_EINJ_PCIE_UCE_NON_FATAL   (1 << 7)
 
#define ACPI_EINJ_PCIE_UCE_FATAL   (1 << 8)
 
#define ACPI_EINJ_PLATFORM_CE   (1 << 9)
 
#define ACPI_EINJ_PLATFORM_UCE   (1 << 10)
 
#define ACPI_EINJ_PLATFORM_UCE_FATAL   (1 << 11)
 
#define ACPI_EINJ_VENDOR_DEFINED   (1 << 31)
 
#define ACPI_EINJ_DEFAULT_CAP
 
#define ACTION_COUNT   9
 
#define BEGIN_INJECT_OP   0x00
 
#define GET_TRIGGER_ACTION_TABLE   0x01
 
#define SET_ERROR_TYPE   0x02
 
#define GET_ERROR_TYPE   0x03
 
#define END_INJECT_OP   0x04
 
#define EXECUTE_INJECT_OP   0x05
 
#define CHECK_BUSY_STATUS   0x06
 
#define GET_CMD_STATUS   0x07
 
#define SET_ERROR_TYPE_WITH_ADDRESS   0x08
 
#define TRIGGER_ERROR   0xFF
 
#define READ_REGISTER   0x00
 
#define READ_REGISTER_VALUE   0x01
 
#define WRITE_REGISTER   0x02
 
#define WRITE_REGISTER_VALUE   0x03
 
#define NO_OP   0x04
 
#define EINJ_PARAM_NUM   6
 
#define EINJ_DEF_TRIGGER_PORT   0xb2
 
#define FLAG_PRESERVE   0x01
 
#define FLAG_IGNORE   0x00
 
#define EINJ_REG_MEMORY(address)
 
#define EINJ_REG_IO()
 

Typedefs

typedef struct acpi_rsdp acpi_rsdp_t
 
typedef struct acpi_gen_regaddr acpi_addr_t
 
typedef struct acpi_table_header acpi_header_t
 
typedef struct acpi_rsdt acpi_rsdt_t
 
typedef struct acpi_xsdt acpi_xsdt_t
 
typedef struct acpi_hpet acpi_hpet_t
 
typedef struct acpi_mcfg acpi_mcfg_t
 
typedef struct acpi_tcpa acpi_tcpa_t
 
typedef struct acpi_tpm2 acpi_tpm2_t
 
typedef struct acpi_mcfg_mmconfig acpi_mcfg_mmconfig_t
 
typedef struct acpi_hmat acpi_hmat_t
 
typedef struct acpi_hmat_mpda acpi_hmat_mpda_t
 
typedef struct acpi_hmat_sllbi acpi_hmat_sllbi_t
 
typedef struct acpi_hmat_msci acpi_hmat_msci_t
 
typedef struct acpi_srat acpi_srat_t
 
typedef struct acpi_srat_lapic acpi_srat_lapic_t
 
typedef struct acpi_srat_mem acpi_srat_mem_t
 
typedef struct acpi_srat_gia acpi_srat_gia_t
 
typedef struct acpi_slit acpi_slit_t
 
typedef struct acpi_madt acpi_madt_t
 
typedef struct acpi_lpit acpi_lpit_t
 
typedef struct acpi_lpi_flags acpi_lpi_desc_flags_t
 
typedef struct acpi_lpi_desc_hdr acpi_lpi_desc_hdr_t
 
typedef struct acpi_lpi_desc_ncst acpi_lpi_desc_ncst_t
 
typedef struct acpi_vfct_image_hdr acpi_vfct_image_hdr_t
 
typedef struct acpi_vfct acpi_vfct_t
 
typedef struct acpi_ivrs_info acpi_ivrs_info_t
 
typedef struct acpi_ivrs_ivhd acpi_ivrs_ivhd_t
 
typedef struct acpi_ivrs acpi_ivrs_t
 
typedef struct ivhd11_iommu_attr ivhd11_iommu_attr_t
 
typedef struct acpi_ivrs_ivhd_11 acpi_ivrs_ivhd11_t
 
typedef struct dev_scope dev_scope_t
 
typedef struct dmar_entry dmar_entry_t
 
typedef struct dmar_rmrr_entry dmar_rmrr_entry_t
 
typedef struct dmar_atsr_entry dmar_atsr_entry_t
 
typedef struct dmar_rhsa_entry dmar_rhsa_entry_t
 
typedef struct dmar_andd_entry dmar_andd_entry_t
 
typedef struct dmar_satc_entry dmar_satc_entry_t
 
typedef struct acpi_dmar acpi_dmar_t
 
typedef struct acpi_madt_lapic acpi_madt_lapic_t
 
typedef struct acpi_madt_lapic_nmi acpi_madt_lapic_nmi_t
 
typedef struct acpi_madt_ioapic acpi_madt_ioapic_t
 
typedef struct acpi_madt_irqoverride acpi_madt_irqoverride_t
 
typedef struct acpi_madt_lx2apic acpi_madt_lx2apic_t
 
typedef struct acpi_madt_lx2apic_nmi acpi_madt_lx2apic_nmi_t
 
typedef struct acpi_dbg2_header acpi_dbg2_header_t
 
typedef struct acpi_dbg2_device acpi_dbg2_device_t
 
typedef struct acpi_fadt acpi_fadt_t
 
typedef struct acpi_facs acpi_facs_t
 
typedef struct acpi_ecdt acpi_ecdt_t
 
typedef struct acpi_hest acpi_hest_t
 
typedef struct acpi_hest_esd acpi_hest_esd_t
 
typedef struct acpi_hest_hen acpi_hest_hen_t
 
typedef struct acpi_bert acpi_bert_t
 
typedef struct acpi_hest_generic_data acpi_hest_generic_data_t
 
typedef struct acpi_hest_generic_data_v300 acpi_hest_generic_data_v300_t
 
typedef struct acpi_generic_error_status acpi_generic_error_status_t
 
typedef struct acpi_cstate acpi_cstate_t
 
typedef struct acpi_tstate acpi_tstate_t
 
typedef struct acpi_gen_regaddr1 acpi_addr64_t
 
typedef struct acpi_einj_action_table acpi_einj_action_table_t
 
typedef struct acpi_injection_header acpi_injection_header_t
 
typedef struct acpi_einj_trigger_table acpi_einj_trigger_table_t
 
typedef struct set_error_type set_error_type_t
 
typedef struct acpi_einj_smi acpi_einj_smi_t
 
typedef struct acpi_einj acpi_einj_t
 

Enumerations

enum  acpi_device_sleep_states {
  ACPI_DEVICE_SLEEP_D0 = 0 , ACPI_DEVICE_SLEEP_D1 = 1 , ACPI_DEVICE_SLEEP_D2 = 2 , ACPI_DEVICE_SLEEP_D3 = 3 ,
  ACPI_DEVICE_SLEEP_D3_HOT = ACPI_DEVICE_SLEEP_D3 , ACPI_DEVICE_SLEEP_D3_COLD = 4
}
 
enum  coreboot_acpi_ids { COREBOOT_ACPI_ID_CBTABLE = 0x0000 , COREBOOT_ACPI_ID_MAX = 0xFFFF }
 
enum  acpi_tables {
  BERT , DBG2 , DMAR , DSDT ,
  EINJ , FACS , FADT , HEST ,
  HMAT , HPET , IVRS , MADT ,
  MCFG , RSDP , RSDT , SLIT ,
  SRAT , SSDT , TCPA , TPM2 ,
  XSDT , ECDT , LPIT , VFCT ,
  NHLT , SPMI , CRAT
}
 
enum  acpi_lpi_desc_type { ACPI_LPI_DESC_TYPE_NATIVE_CSTATE = 0x00 }
 
enum  dev_scope_type {
  SCOPE_PCI_ENDPOINT = 1 , SCOPE_PCI_SUB = 2 , SCOPE_IOAPIC = 3 , SCOPE_MSI_HPET = 4 ,
  SCOPE_ACPI_NAMESPACE_DEVICE = 5
}
 
enum  dmar_type {
  DMAR_DRHD = 0 , DMAR_RMRR = 1 , DMAR_ATSR = 2 , DMAR_RHSA = 3 ,
  DMAR_ANDD = 4 , DMAR_SATC = 5
}
 
enum  { DRHD_INCLUDE_PCI_ALL = 1 }
 
enum  { ATC_REQUIRED = 1 }
 
enum  dmar_flags { DMAR_INTR_REMAP = 1 << 0 , DMAR_X2APIC_OPT_OUT = 1 << 1 , DMA_CTRL_PLATFORM_OPT_IN_FLAG = 1 << 2 }
 
enum  acpi_apic_types {
  LOCAL_APIC , IO_APIC , IRQ_SOURCE_OVERRIDE , NMI_TYPE ,
  LOCAL_APIC_NMI , LAPIC_ADDRESS_OVERRIDE , IO_SAPIC , LOCAL_SAPIC ,
  PLATFORM_IRQ_SOURCES , LOCAL_X2APIC , LOCAL_X2APIC_NMI , GICC ,
  GICD , GIC_MSI_FRAME , GICR , GIC_ITS
}
 
enum  acpi_preferred_pm_profiles {
  PM_UNSPECIFIED = 0 , PM_DESKTOP = 1 , PM_MOBILE = 2 , PM_WORKSTATION = 3 ,
  PM_ENTERPRISE_SERVER = 4 , PM_SOHO_SERVER = 5 , PM_APPLIANCE_PC = 6 , PM_PERFORMANCE_SERVER = 7 ,
  PM_TABLET = 8
}
 
enum  acpi_lpi_state_flags { ACPI_LPI_STATE_DISABLED = 0 , ACPI_LPI_STATE_ENABLED }
 
enum  acpi_upc_type {
  UPC_TYPE_A , UPC_TYPE_MINI_AB , UPC_TYPE_EXPRESSCARD , UPC_TYPE_USB3_A ,
  UPC_TYPE_USB3_B , UPC_TYPE_USB3_MICRO_B , UPC_TYPE_USB3_MICRO_AB , UPC_TYPE_USB3_POWER_B ,
  UPC_TYPE_C_USB2_ONLY , UPC_TYPE_C_USB2_SS_SWITCH , UPC_TYPE_C_USB2_SS , UPC_TYPE_PROPRIETARY = 0xff ,
  UPC_TYPE_INTERNAL = 0xff , UPC_TYPE_UNUSED , UPC_TYPE_HUB
}
 
enum  acpi_ipmi_interface_type {
  IPMI_INTERFACE_RESERVED = 0 , IPMI_INTERFACE_KCS , IPMI_INTERFACE_SMIC , IPMI_INTERFACE_BT ,
  IPMI_INTERFACE_SSIF
}
 
enum  {
  ACPI_S0 = 0 , ACPI_S1 = 1 , ACPI_S2 = 2 , ACPI_S3 = 3 ,
  ACPI_S4 = 4 , ACPI_S5 = 5
}
 

Functions

uintptr_t get_coreboot_rsdp (void)
 
void acpi_create_einj (acpi_einj_t *einj, uintptr_t addr, u8 actions)
 
unsigned long fw_cfg_acpi_tables (unsigned long start)
 
void preload_acpi_dsdt (void)
 
unsigned long write_acpi_tables (unsigned long addr)
 
unsigned long acpi_fill_madt (unsigned long current)
 
unsigned long acpi_fill_ivrs_ioapic (acpi_ivrs_t *ivrs, unsigned long current)
 
void acpi_create_ssdt_generator (acpi_header_t *ssdt, const char *oem_table_id)
 
void acpi_write_bert (acpi_bert_t *bert, uintptr_t region, size_t length)
 
void acpi_create_fadt (acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
 
void acpi_fill_fadt (acpi_fadt_t *fadt)
 Create the Fixed ACPI Description Tables (FADT) for any board with this SB. More...
 
void arch_fill_fadt (acpi_fadt_t *fadt)
 
void soc_fill_fadt (acpi_fadt_t *fadt)
 
void mainboard_fill_fadt (acpi_fadt_t *fadt)
 
void acpi_fill_gnvs (void)
 
void acpi_fill_cnvs (void)
 
unsigned long acpi_fill_lpit (unsigned long current)
 
u8 acpi_checksum (u8 *table, u32 length)
 
void acpi_add_table (acpi_rsdp_t *rsdp, void *table)
 Add an ACPI table to the RSDT (and XSDT) structure, recalculate length and checksum. More...
 
int acpi_create_madt_lapic (acpi_madt_lapic_t *lapic, u8 cpu, u8 apic)
 
int acpi_create_madt_ioapic (acpi_madt_ioapic_t *ioapic, u8 id, u32 addr, u32 gsi_base)
 
int acpi_create_madt_irqoverride (acpi_madt_irqoverride_t *irqoverride, u8 bus, u8 source, u32 gsirq, u16 flags)
 
int acpi_create_madt_lapic_nmi (acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu, u16 flags, u8 lint)
 
void acpi_create_madt (acpi_madt_t *madt)
 
unsigned long acpi_create_madt_lapics (unsigned long current)
 
int acpi_create_madt_lx2apic (acpi_madt_lx2apic_t *lapic, u32 cpu, u32 apic)
 
int acpi_create_madt_lx2apic_nmi (acpi_madt_lx2apic_nmi_t *lapic_nmi, u32 cpu, u16 flags, u8 lint)
 
int acpi_create_srat_lapic (acpi_srat_lapic_t *lapic, u8 node, u8 apic)
 
int acpi_create_srat_mem (acpi_srat_mem_t *mem, u8 node, u32 basek, u32 sizek, u32 flags)
 
int acpi_create_srat_gia_pci (acpi_srat_gia_t *gia, u32 proximity_domain, u16 seg, u8 bus, u8 dev, u8 func, u32 flags)
 
int acpi_create_mcfg_mmconfig (acpi_mcfg_mmconfig_t *mmconfig, u32 base, u16 seg_nr, u8 start, u8 end)
 
unsigned long acpi_create_srat_lapics (unsigned long current)
 
void acpi_create_srat (acpi_srat_t *srat, unsigned long(*acpi_fill_srat)(unsigned long current))
 
void acpi_create_slit (acpi_slit_t *slit, unsigned long(*acpi_fill_slit)(unsigned long current))
 
int acpi_create_hmat_mpda (acpi_hmat_mpda_t *mpda, u32 initiator, u32 memory)
 
void acpi_create_hmat (acpi_hmat_t *hmat, unsigned long(*acpi_fill_hmat)(unsigned long current))
 
void acpi_create_vfct (const struct device *device, acpi_vfct_t *vfct, unsigned long(*acpi_fill_vfct)(const struct device *device, acpi_vfct_t *vfct_struct, unsigned long current))
 
void acpi_create_ipmi (const struct device *device, struct acpi_spmi *spmi, const u16 ipmi_revision, const acpi_addr_t *addr, const enum acpi_ipmi_interface_type type, const s8 gpe_interrupt, const u32 apic_interrupt, const u32 uid)
 
void acpi_create_ivrs (acpi_ivrs_t *ivrs, unsigned long(*acpi_fill_ivrs)(acpi_ivrs_t *ivrs_struct, unsigned long current))
 
void acpi_create_crat (struct acpi_crat_header *crat, unsigned long(*acpi_fill_crat)(struct acpi_crat_header *crat_struct, unsigned long current))
 
void acpi_create_hpet (acpi_hpet_t *hpet)
 
unsigned long acpi_write_hpet (const struct device *device, unsigned long start, acpi_rsdp_t *rsdp)
 
void generate_cpu_entries (const struct device *device)
 Generate ACPI entries for Speedstep for each cpu. More...
 
void acpi_create_mcfg (acpi_mcfg_t *mcfg)
 
void acpi_create_facs (acpi_facs_t *facs)
 
void acpi_create_dbg2 (acpi_dbg2_header_t *dbg2_header, int port_type, int port_subtype, acpi_addr_t *address, uint32_t address_size, const char *device_path)
 
unsigned long acpi_write_dbg2_pci_uart (acpi_rsdp_t *rsdp, unsigned long current, const struct device *dev, uint8_t access_size)
 
void acpi_create_dmar (acpi_dmar_t *dmar, enum dmar_flags flags, unsigned long(*acpi_fill_dmar)(unsigned long))
 
unsigned long acpi_create_dmar_drhd (unsigned long current, u8 flags, u16 segment, u64 bar)
 
unsigned long acpi_create_dmar_rmrr (unsigned long current, u16 segment, u64 bar, u64 limit)
 
unsigned long acpi_create_dmar_atsr (unsigned long current, u8 flags, u16 segment)
 
unsigned long acpi_create_dmar_rhsa (unsigned long current, u64 base_addr, u32 proximity_domain)
 
unsigned long acpi_create_dmar_andd (unsigned long current, u8 device_number, const char *device_name)
 
unsigned long acpi_create_dmar_satc (unsigned long current, u8 flags, u16 segment)
 
void acpi_dmar_drhd_fixup (unsigned long base, unsigned long current)
 
void acpi_dmar_rmrr_fixup (unsigned long base, unsigned long current)
 
void acpi_dmar_atsr_fixup (unsigned long base, unsigned long current)
 
void acpi_dmar_satc_fixup (unsigned long base, unsigned long current)
 
unsigned long acpi_create_dmar_ds_pci_br (unsigned long current, u8 bus, u8 dev, u8 fn)
 
unsigned long acpi_create_dmar_ds_pci (unsigned long current, u8 bus, u8 dev, u8 fn)
 
unsigned long acpi_create_dmar_ds_ioapic (unsigned long current, u8 enumeration_id, u8 bus, u8 dev, u8 fn)
 
unsigned long acpi_create_dmar_ds_msi_hpet (unsigned long current, u8 enumeration_id, u8 bus, u8 dev, u8 fn)
 
void acpi_write_hest (acpi_hest_t *hest, unsigned long(*acpi_fill_hest)(acpi_hest_t *hest))
 
unsigned long acpi_create_hest_error_source (acpi_hest_t *hest, acpi_hest_esd_t *esd, u16 type, void *data, u16 len)
 
void acpi_create_lpit (acpi_lpit_t *lpit)
 
unsigned long acpi_create_lpi_desc_ncst (acpi_lpi_desc_ncst_t *lpi_desc, uint16_t uid)
 
enum cb_err acpi_soc_get_bert_region (void **region, size_t *length)
 
void __noreturn acpi_resume (void *wake_vec)
 
void mainboard_suspend_resume (void)
 
voidacpi_find_wakeup_vector (void)
 
uint8_t acpi_get_preferred_pm_profile (void)
 
int acpi_get_sleep_type (void)
 
int acpi_get_gpe (int gpe)
 
static int permanent_smi_handler (void)
 
static int acpi_s3_resume_allowed (void)
 
static int acpi_is_wakeup_s3 (void)
 
static uintptr_t acpi_align_current (uintptr_t current)
 
int get_acpi_table_revision (enum acpi_tables table)
 
u8 get_acpi_fadt_minor_version (void)
 

Variables

struct acpi_crat_header __packed
 

Macro Definition Documentation

◆ ACPI_ACCESS_SIZE_BYTE_ACCESS

#define ACPI_ACCESS_SIZE_BYTE_ACCESS   1

Definition at line 127 of file acpi.h.

◆ ACPI_ACCESS_SIZE_DWORD_ACCESS

#define ACPI_ACCESS_SIZE_DWORD_ACCESS   3

Definition at line 129 of file acpi.h.

◆ ACPI_ACCESS_SIZE_QWORD_ACCESS

#define ACPI_ACCESS_SIZE_QWORD_ACCESS   4

Definition at line 130 of file acpi.h.

◆ ACPI_ACCESS_SIZE_UNDEFINED

#define ACPI_ACCESS_SIZE_UNDEFINED   0 /* Undefined (legacy reasons) */

Definition at line 126 of file acpi.h.

◆ ACPI_ACCESS_SIZE_WORD_ACCESS

#define ACPI_ACCESS_SIZE_WORD_ACCESS   2

Definition at line 128 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_CMOS

#define ACPI_ADDRESS_SPACE_CMOS   5 /* SystemCMOS */

Definition at line 109 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_EC

#define ACPI_ADDRESS_SPACE_EC   3 /* Embedded controller */

Definition at line 107 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_FIXED

#define ACPI_ADDRESS_SPACE_FIXED   0x7f /* Functional fixed hardware */

Definition at line 115 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_GENERAL_PURPOSE_IO

#define ACPI_ADDRESS_SPACE_GENERAL_PURPOSE_IO   8 /* GeneralPurposeIO */

Definition at line 112 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_GENERIC_SERIAL_BUS

#define ACPI_ADDRESS_SPACE_GENERIC_SERIAL_BUS   9 /* GenericSerialBus */

Definition at line 113 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_IO

#define ACPI_ADDRESS_SPACE_IO   1 /* System I/O */

Definition at line 105 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_IPMI

#define ACPI_ADDRESS_SPACE_IPMI   7 /* IPMI */

Definition at line 111 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_MEMORY

#define ACPI_ADDRESS_SPACE_MEMORY   0 /* System memory */

Definition at line 104 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_PCC

#define ACPI_ADDRESS_SPACE_PCC   0x0A /* Platform Comm. Channel */

Definition at line 114 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_PCI

#define ACPI_ADDRESS_SPACE_PCI   2 /* PCI config space */

Definition at line 106 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_PCI_BAR_TARGET

#define ACPI_ADDRESS_SPACE_PCI_BAR_TARGET   6 /* PciBarTarget */

Definition at line 110 of file acpi.h.

◆ ACPI_ADDRESS_SPACE_SMBUS

#define ACPI_ADDRESS_SPACE_SMBUS   4 /* SMBus */

Definition at line 108 of file acpi.h.

◆ ACPI_DBG2_PORT_IEEE1394

#define ACPI_DBG2_PORT_IEEE1394   0x8001

Definition at line 676 of file acpi.h.

◆ ACPI_DBG2_PORT_IEEE1394_STANDARD

#define ACPI_DBG2_PORT_IEEE1394_STANDARD   0x0000

Definition at line 677 of file acpi.h.

◆ ACPI_DBG2_PORT_NET

#define ACPI_DBG2_PORT_NET   0x8003

Definition at line 681 of file acpi.h.

◆ ACPI_DBG2_PORT_SERIAL

#define ACPI_DBG2_PORT_SERIAL   0x8000

Definition at line 669 of file acpi.h.

◆ ACPI_DBG2_PORT_SERIAL_16550

#define ACPI_DBG2_PORT_SERIAL_16550   0x0000

Definition at line 670 of file acpi.h.

◆ ACPI_DBG2_PORT_SERIAL_16550_DBGP

#define ACPI_DBG2_PORT_SERIAL_16550_DBGP   0x0001

Definition at line 671 of file acpi.h.

◆ ACPI_DBG2_PORT_SERIAL_ARM_DDC

#define ACPI_DBG2_PORT_SERIAL_ARM_DDC   0x000f

Definition at line 674 of file acpi.h.

◆ ACPI_DBG2_PORT_SERIAL_ARM_PL011

#define ACPI_DBG2_PORT_SERIAL_ARM_PL011   0x0003

Definition at line 672 of file acpi.h.

◆ ACPI_DBG2_PORT_SERIAL_ARM_SBSA

#define ACPI_DBG2_PORT_SERIAL_ARM_SBSA   0x000e

Definition at line 673 of file acpi.h.

◆ ACPI_DBG2_PORT_SERIAL_BCM2835

#define ACPI_DBG2_PORT_SERIAL_BCM2835   0x0010

Definition at line 675 of file acpi.h.

◆ ACPI_DBG2_PORT_USB

#define ACPI_DBG2_PORT_USB   0x8002

Definition at line 678 of file acpi.h.

◆ ACPI_DBG2_PORT_USB_EHCI

#define ACPI_DBG2_PORT_USB_EHCI   0x0001

Definition at line 680 of file acpi.h.

◆ ACPI_DBG2_PORT_USB_XHCI

#define ACPI_DBG2_PORT_USB_XHCI   0x0000

Definition at line 679 of file acpi.h.

◆ ACPI_DSDT_REV_1

#define ACPI_DSDT_REV_1   0x01 /* DSDT revision: ACPI v1 */

Definition at line 36 of file acpi.h.

◆ ACPI_DSDT_REV_2

#define ACPI_DSDT_REV_2   0x02 /* DSDT revision: ACPI v2.0 and greater */

Definition at line 37 of file acpi.h.

◆ ACPI_EINJ_CPU_CE

#define ACPI_EINJ_CPU_CE   (1 << 0)

Definition at line 1101 of file acpi.h.

◆ ACPI_EINJ_CPU_UCE

#define ACPI_EINJ_CPU_UCE   (1 << 1)

Definition at line 1102 of file acpi.h.

◆ ACPI_EINJ_CPU_UCE_FATAL

#define ACPI_EINJ_CPU_UCE_FATAL   (1 << 2)

Definition at line 1103 of file acpi.h.

◆ ACPI_EINJ_DEFAULT_CAP

#define ACPI_EINJ_DEFAULT_CAP
Value:
ACPI_EINJ_PCIE_CE | ACPI_EINJ_PCIE_UCE_FATAL)
#define ACPI_EINJ_MEM_UCE
Definition: acpi.h:1105
#define ACPI_EINJ_PCIE_UCE_FATAL
Definition: acpi.h:1109
#define ACPI_EINJ_MEM_CE
Definition: acpi.h:1104

Definition at line 1114 of file acpi.h.

◆ ACPI_EINJ_MEM_CE

#define ACPI_EINJ_MEM_CE   (1 << 3)

Definition at line 1104 of file acpi.h.

◆ ACPI_EINJ_MEM_UCE

#define ACPI_EINJ_MEM_UCE   (1 << 4)

Definition at line 1105 of file acpi.h.

◆ ACPI_EINJ_MEM_UCE_FATAL

#define ACPI_EINJ_MEM_UCE_FATAL   (1 << 5)

Definition at line 1106 of file acpi.h.

◆ ACPI_EINJ_PCIE_CE

#define ACPI_EINJ_PCIE_CE   (1 << 6)

Definition at line 1107 of file acpi.h.

◆ ACPI_EINJ_PCIE_UCE_FATAL

#define ACPI_EINJ_PCIE_UCE_FATAL   (1 << 8)

Definition at line 1109 of file acpi.h.

◆ ACPI_EINJ_PCIE_UCE_NON_FATAL

#define ACPI_EINJ_PCIE_UCE_NON_FATAL   (1 << 7)

Definition at line 1108 of file acpi.h.

◆ ACPI_EINJ_PLATFORM_CE

#define ACPI_EINJ_PLATFORM_CE   (1 << 9)

Definition at line 1110 of file acpi.h.

◆ ACPI_EINJ_PLATFORM_UCE

#define ACPI_EINJ_PLATFORM_UCE   (1 << 10)

Definition at line 1111 of file acpi.h.

◆ ACPI_EINJ_PLATFORM_UCE_FATAL

#define ACPI_EINJ_PLATFORM_UCE_FATAL   (1 << 11)

Definition at line 1112 of file acpi.h.

◆ ACPI_EINJ_VENDOR_DEFINED

#define ACPI_EINJ_VENDOR_DEFINED   (1 << 31)

Definition at line 1113 of file acpi.h.

◆ ACPI_FACS_64BIT_WAKE_F

#define ACPI_FACS_64BIT_WAKE_F   (1 << 1)

Definition at line 862 of file acpi.h.

◆ ACPI_FACS_S4BIOS_F

#define ACPI_FACS_S4BIOS_F   (1 << 0)

Definition at line 861 of file acpi.h.

◆ ACPI_FADT_32BIT_TIMER

#define ACPI_FADT_32BIT_TIMER   (1 << 8)

Definition at line 800 of file acpi.h.

◆ ACPI_FADT_8042

#define ACPI_FADT_8042   (1 << 1)

Definition at line 819 of file acpi.h.

◆ ACPI_FADT_APIC_CLUSTER

#define ACPI_FADT_APIC_CLUSTER   (1 << 18)

Definition at line 810 of file acpi.h.

◆ ACPI_FADT_APIC_PHYSICAL

#define ACPI_FADT_APIC_PHYSICAL   (1 << 19)

Definition at line 811 of file acpi.h.

◆ ACPI_FADT_ARM_PSCI_COMPLIANT

#define ACPI_FADT_ARM_PSCI_COMPLIANT   (1 << 0)

Definition at line 827 of file acpi.h.

◆ ACPI_FADT_ARM_PSCI_USE_HVC

#define ACPI_FADT_ARM_PSCI_USE_HVC   (1 << 1)

Definition at line 828 of file acpi.h.

◆ ACPI_FADT_C1_SUPPORTED

#define ACPI_FADT_C1_SUPPORTED   (1 << 2)

Definition at line 794 of file acpi.h.

◆ ACPI_FADT_C2_MP_SUPPORTED

#define ACPI_FADT_C2_MP_SUPPORTED   (1 << 3)

Definition at line 795 of file acpi.h.

◆ ACPI_FADT_C2_NOT_SUPPORTED

#define ACPI_FADT_C2_NOT_SUPPORTED   101

Definition at line 788 of file acpi.h.

◆ ACPI_FADT_C3_NOT_SUPPORTED

#define ACPI_FADT_C3_NOT_SUPPORTED   1001

Definition at line 789 of file acpi.h.

◆ ACPI_FADT_DOCKING_SUPPORTED

#define ACPI_FADT_DOCKING_SUPPORTED   (1 << 9)

Definition at line 801 of file acpi.h.

◆ ACPI_FADT_FIXED_RTC

#define ACPI_FADT_FIXED_RTC   (1 << 6)

Definition at line 798 of file acpi.h.

◆ ACPI_FADT_HEADLESS

#define ACPI_FADT_HEADLESS   (1 << 12)

Definition at line 804 of file acpi.h.

◆ ACPI_FADT_HW_REDUCED_ACPI

#define ACPI_FADT_HW_REDUCED_ACPI   (1 << 20)

Definition at line 813 of file acpi.h.

◆ ACPI_FADT_LEGACY_DEVICES

#define ACPI_FADT_LEGACY_DEVICES   (1 << 0)

Definition at line 818 of file acpi.h.

◆ ACPI_FADT_LEGACY_FREE

#define ACPI_FADT_LEGACY_FREE   0x00 /* No legacy devices (including 8042) */

Definition at line 824 of file acpi.h.

◆ ACPI_FADT_LOW_PWR_IDLE_S0

#define ACPI_FADT_LOW_PWR_IDLE_S0   (1 << 21)

Definition at line 814 of file acpi.h.

◆ ACPI_FADT_MINOR_VERSION_0

#define ACPI_FADT_MINOR_VERSION_0   0 /* coreboot currently use this version */

Definition at line 785 of file acpi.h.

◆ ACPI_FADT_MSI_NOT_SUPPORTED

#define ACPI_FADT_MSI_NOT_SUPPORTED   (1 << 3)

Definition at line 821 of file acpi.h.

◆ ACPI_FADT_NO_CMOS_RTC

#define ACPI_FADT_NO_CMOS_RTC   (1 << 5)

Definition at line 823 of file acpi.h.

◆ ACPI_FADT_NO_PCIE_ASPM_CONTROL

#define ACPI_FADT_NO_PCIE_ASPM_CONTROL   (1 << 4)

Definition at line 822 of file acpi.h.

◆ ACPI_FADT_PCI_EXPRESS_WAKE

#define ACPI_FADT_PCI_EXPRESS_WAKE   (1 << 14)

Definition at line 806 of file acpi.h.

◆ ACPI_FADT_PLATFORM_CLOCK

#define ACPI_FADT_PLATFORM_CLOCK   (1 << 15)

Definition at line 807 of file acpi.h.

◆ ACPI_FADT_POWER_BUTTON

#define ACPI_FADT_POWER_BUTTON   (1 << 4)

Definition at line 796 of file acpi.h.

◆ ACPI_FADT_REMOTE_POWER_ON

#define ACPI_FADT_REMOTE_POWER_ON   (1 << 17)

Definition at line 809 of file acpi.h.

◆ ACPI_FADT_RESET_REGISTER

#define ACPI_FADT_RESET_REGISTER   (1 << 10)

Definition at line 802 of file acpi.h.

◆ ACPI_FADT_REV_ACPI_1

#define ACPI_FADT_REV_ACPI_1   1

Definition at line 771 of file acpi.h.

◆ ACPI_FADT_REV_ACPI_2

#define ACPI_FADT_REV_ACPI_2   3

Definition at line 772 of file acpi.h.

◆ ACPI_FADT_REV_ACPI_3

#define ACPI_FADT_REV_ACPI_3   4

Definition at line 773 of file acpi.h.

◆ ACPI_FADT_REV_ACPI_4

#define ACPI_FADT_REV_ACPI_4   4

Definition at line 774 of file acpi.h.

◆ ACPI_FADT_REV_ACPI_5

#define ACPI_FADT_REV_ACPI_5   5

Definition at line 775 of file acpi.h.

◆ ACPI_FADT_REV_ACPI_6

#define ACPI_FADT_REV_ACPI_6   6

Definition at line 776 of file acpi.h.

◆ ACPI_FADT_S4_RTC_VALID

#define ACPI_FADT_S4_RTC_VALID   (1 << 16)

Definition at line 808 of file acpi.h.

◆ ACPI_FADT_S4_RTC_WAKE

#define ACPI_FADT_S4_RTC_WAKE   (1 << 7)

Definition at line 799 of file acpi.h.

◆ ACPI_FADT_SEALED_CASE

#define ACPI_FADT_SEALED_CASE   (1 << 11)

Definition at line 803 of file acpi.h.

◆ ACPI_FADT_SLEEP_BUTTON

#define ACPI_FADT_SLEEP_BUTTON   (1 << 5)

Definition at line 797 of file acpi.h.

◆ ACPI_FADT_SLEEP_TYPE

#define ACPI_FADT_SLEEP_TYPE   (1 << 13)

Definition at line 805 of file acpi.h.

◆ ACPI_FADT_VGA_NOT_PRESENT

#define ACPI_FADT_VGA_NOT_PRESENT   (1 << 2)

Definition at line 820 of file acpi.h.

◆ ACPI_FADT_WBINVD

#define ACPI_FADT_WBINVD   (1 << 0)

Definition at line 792 of file acpi.h.

◆ ACPI_FADT_WBINVD_FLUSH

#define ACPI_FADT_WBINVD_FLUSH   (1 << 1)

Definition at line 793 of file acpi.h.

◆ ACPI_FFIXEDHW_CLASS_HLT

#define ACPI_FFIXEDHW_CLASS_HLT   0 /* C1 Halt */

Definition at line 117 of file acpi.h.

◆ ACPI_FFIXEDHW_CLASS_IO_HLT

#define ACPI_FFIXEDHW_CLASS_IO_HLT   1 /* C1 I/O then Halt */

Definition at line 118 of file acpi.h.

◆ ACPI_FFIXEDHW_CLASS_MWAIT

#define ACPI_FFIXEDHW_CLASS_MWAIT   2 /* MWAIT Native C-state */

Definition at line 119 of file acpi.h.

◆ ACPI_FFIXEDHW_FLAG_BM_STS

#define ACPI_FFIXEDHW_FLAG_BM_STS   2 /* BM_STS avoidance bit */

Definition at line 121 of file acpi.h.

◆ ACPI_FFIXEDHW_FLAG_HW_COORD

#define ACPI_FFIXEDHW_FLAG_HW_COORD   1 /* Hardware Coordination bit */

Definition at line 120 of file acpi.h.

◆ ACPI_FFIXEDHW_VENDOR_INTEL

#define ACPI_FFIXEDHW_VENDOR_INTEL   1 /* Intel */

Definition at line 116 of file acpi.h.

◆ ACPI_GENERROR_SEV_CORRECTED

#define ACPI_GENERROR_SEV_CORRECTED   2

Definition at line 946 of file acpi.h.

◆ ACPI_GENERROR_SEV_FATAL

#define ACPI_GENERROR_SEV_FATAL   1

Definition at line 945 of file acpi.h.

◆ ACPI_GENERROR_SEV_NONE

#define ACPI_GENERROR_SEV_NONE   3

Definition at line 947 of file acpi.h.

◆ ACPI_GENERROR_SEV_RECOVERABLE

#define ACPI_GENERROR_SEV_RECOVERABLE   0

Definition at line 944 of file acpi.h.

◆ ACPI_GENERROR_VALID_FRUID

#define ACPI_GENERROR_VALID_FRUID   BIT(0)

Definition at line 950 of file acpi.h.

◆ ACPI_GENERROR_VALID_FRUID_TEXT

#define ACPI_GENERROR_VALID_FRUID_TEXT   BIT(1)

Definition at line 951 of file acpi.h.

◆ ACPI_GENERROR_VALID_TIMESTAMP

#define ACPI_GENERROR_VALID_TIMESTAMP   BIT(2)

Definition at line 952 of file acpi.h.

◆ ACPI_HID_COM

#define ACPI_HID_COM   "PNP0501"

Definition at line 148 of file acpi.h.

◆ ACPI_HID_CONTAINER

#define ACPI_HID_CONTAINER   "PNP0A05"

Definition at line 151 of file acpi.h.

◆ ACPI_HID_FDC

#define ACPI_HID_FDC   "PNP0700"

Definition at line 145 of file acpi.h.

◆ ACPI_HID_KEYBOARD

#define ACPI_HID_KEYBOARD   "PNP0303"

Definition at line 146 of file acpi.h.

◆ ACPI_HID_LPT

#define ACPI_HID_LPT   "PNP0400"

Definition at line 149 of file acpi.h.

◆ ACPI_HID_MOUSE

#define ACPI_HID_MOUSE   "PNP0F03"

Definition at line 147 of file acpi.h.

◆ ACPI_HID_PNP

#define ACPI_HID_PNP   "PNP0C02"

Definition at line 150 of file acpi.h.

◆ ACPI_IPMI_INT_TYPE_APIC

#define ACPI_IPMI_INT_TYPE_APIC   (1 << 1)

Definition at line 1070 of file acpi.h.

◆ ACPI_IPMI_INT_TYPE_SCI

#define ACPI_IPMI_INT_TYPE_SCI   (1 << 0)

Definition at line 1069 of file acpi.h.

◆ ACPI_IPMI_PCI_DEVICE_FLAG

#define ACPI_IPMI_PCI_DEVICE_FLAG   (1 << 0)

Definition at line 1068 of file acpi.h.

◆ ACPI_LPIT_CTR_FREQ_TSC

#define ACPI_LPIT_CTR_FREQ_TSC   0

Definition at line 387 of file acpi.h.

◆ ACPI_MADT_LAPIC_NMI_ALL_PROCESSORS

#define ACPI_MADT_LAPIC_NMI_ALL_PROCESSORS   0xff

Definition at line 627 of file acpi.h.

◆ ACPI_NAME_BUFFER_SIZE

#define ACPI_NAME_BUFFER_SIZE   5 /* 4 chars + 1 NUL */

Definition at line 59 of file acpi.h.

◆ ACPI_REG_MSR

#define ACPI_REG_MSR (   address,
  offset,
  width 
)
Value:
.space_id = ACPI_ADDRESS_SPACE_FIXED, \
.addrl = address, \
.bit_offset = offset, \
.bit_width = width, \
}
static int width
Definition: bochs.c:42
static size_t offset
Definition: flashconsole.c:16
uint64_t address
Definition: fw_cfg_if.h:0
struct acpi_gen_regaddr acpi_addr_t
#define ACPI_ACCESS_SIZE_QWORD_ACCESS
Definition: acpi.h:130
#define ACPI_ADDRESS_SPACE_FIXED
Definition: acpi.h:115

Definition at line 133 of file acpi.h.

◆ ACPI_REG_UNSUPPORTED

#define ACPI_REG_UNSUPPORTED   (acpi_addr_t){0}

Definition at line 142 of file acpi.h.

◆ ACPI_SRAT_GIA_DEV_HANDLE_ACPI

#define ACPI_SRAT_GIA_DEV_HANDLE_ACPI   0

Definition at line 342 of file acpi.h.

◆ ACPI_SRAT_GIA_DEV_HANDLE_PCI

#define ACPI_SRAT_GIA_DEV_HANDLE_PCI   1

Definition at line 343 of file acpi.h.

◆ ACPI_SRAT_STRUCTURE_GIA

#define ACPI_SRAT_STRUCTURE_GIA   5

Definition at line 299 of file acpi.h.

◆ ACPI_SRAT_STRUCTURE_LAPIC

#define ACPI_SRAT_STRUCTURE_LAPIC   0

Definition at line 297 of file acpi.h.

◆ ACPI_SRAT_STRUCTURE_MEM

#define ACPI_SRAT_STRUCTURE_MEM   1

Definition at line 298 of file acpi.h.

◆ ACPI_TABLE_CREATOR

#define ACPI_TABLE_CREATOR   "COREBOOT" /* Must be exactly 8 bytes long! */

Definition at line 34 of file acpi.h.

◆ ACTION_COUNT

#define ACTION_COUNT   9

Definition at line 1118 of file acpi.h.

◆ ASLC

#define ASLC   "CORE" /* Must be exactly 4 bytes long! */

Definition at line 57 of file acpi.h.

◆ BEGIN_INJECT_OP

#define BEGIN_INJECT_OP   0x00

Definition at line 1119 of file acpi.h.

◆ CHECK_BUSY_STATUS

#define CHECK_BUSY_STATUS   0x06

Definition at line 1125 of file acpi.h.

◆ COREBOOT_ACPI_ID

#define COREBOOT_ACPI_ID   "BOOT" /* ACPI ID for coreboot HIDs */

Definition at line 65 of file acpi.h.

◆ EINJ_DEF_TRIGGER_PORT

#define EINJ_DEF_TRIGGER_PORT   0xb2

Definition at line 1195 of file acpi.h.

◆ EINJ_PARAM_NUM

#define EINJ_PARAM_NUM   6

Definition at line 1180 of file acpi.h.

◆ EINJ_REG_IO

#define EINJ_REG_IO ( )
Value:
{ \
.space_id = ACPI_ADDRESS_SPACE_IO, \
.bit_width = 0x10, \
.bit_offset = 0, \
.access_size = ACPI_ACCESS_SIZE_WORD_ACCESS, \
.addr = EINJ_DEF_TRIGGER_PORT} /* HW dependent code can override this also */
#define ACPI_ACCESS_SIZE_WORD_ACCESS
Definition: acpi.h:128
#define ACPI_ADDRESS_SPACE_IO
Definition: acpi.h:105
#define EINJ_DEF_TRIGGER_PORT
Definition: acpi.h:1195

Definition at line 1208 of file acpi.h.

◆ EINJ_REG_MEMORY

#define EINJ_REG_MEMORY (   address)
Value:
{ \
.bit_width = 64, \
.bit_offset = 0, \
.addr = address}
#define ACPI_ADDRESS_SPACE_MEMORY
Definition: acpi.h:104

Definition at line 1200 of file acpi.h.

◆ END_INJECT_OP

#define END_INJECT_OP   0x04

Definition at line 1123 of file acpi.h.

◆ EXECUTE_INJECT_OP

#define EXECUTE_INJECT_OP   0x05

Definition at line 1124 of file acpi.h.

◆ FLAG_IGNORE

#define FLAG_IGNORE   0x00

Definition at line 1197 of file acpi.h.

◆ FLAG_PRESERVE

#define FLAG_PRESERVE   0x01

Definition at line 1196 of file acpi.h.

◆ GENERIC_ERR_STS_CORRECTABLE_VALID

#define GENERIC_ERR_STS_CORRECTABLE_VALID   BIT(1)

Definition at line 974 of file acpi.h.

◆ GENERIC_ERR_STS_ENTRY_COUNT_MASK

#define GENERIC_ERR_STS_ENTRY_COUNT_MASK
Value:
#define GENERIC_ERR_STS_ENTRY_COUNT_SHIFT
Definition: acpi.h:977
#define GENERIC_ERR_STS_ENTRY_COUNT_MAX
Definition: acpi.h:978

Definition at line 979 of file acpi.h.

◆ GENERIC_ERR_STS_ENTRY_COUNT_MAX

#define GENERIC_ERR_STS_ENTRY_COUNT_MAX   0x3ff

Definition at line 978 of file acpi.h.

◆ GENERIC_ERR_STS_ENTRY_COUNT_SHIFT

#define GENERIC_ERR_STS_ENTRY_COUNT_SHIFT   4

Definition at line 977 of file acpi.h.

◆ GENERIC_ERR_STS_MULT_CORRECTABLE

#define GENERIC_ERR_STS_MULT_CORRECTABLE   BIT(3)

Definition at line 976 of file acpi.h.

◆ GENERIC_ERR_STS_MULT_UNCORRECTABLE

#define GENERIC_ERR_STS_MULT_UNCORRECTABLE   BIT(2)

Definition at line 975 of file acpi.h.

◆ GENERIC_ERR_STS_UNCORRECTABLE_VALID

#define GENERIC_ERR_STS_UNCORRECTABLE_VALID   BIT(0)

Definition at line 973 of file acpi.h.

◆ GET_CMD_STATUS

#define GET_CMD_STATUS   0x07

Definition at line 1126 of file acpi.h.

◆ GET_ERROR_TYPE

#define GET_ERROR_TYPE   0x03

Definition at line 1122 of file acpi.h.

◆ GET_TRIGGER_ACTION_TABLE

#define GET_TRIGGER_ACTION_TABLE   0x01

Definition at line 1120 of file acpi.h.

◆ HEST_GENERIC_ENTRY_V300

#define HEST_GENERIC_ENTRY_V300   0x300

Definition at line 941 of file acpi.h.

◆ MAX_ACPI_TABLES

#define MAX_ACPI_TABLES   32

Definition at line 167 of file acpi.h.

◆ NO_OP

#define NO_OP   0x04

Definition at line 1135 of file acpi.h.

◆ OEM_ID

#define OEM_ID   "COREv4" /* Must be exactly 6 bytes long! */

Definition at line 35 of file acpi.h.

◆ READ_REGISTER

#define READ_REGISTER   0x00

Definition at line 1131 of file acpi.h.

◆ READ_REGISTER_VALUE

#define READ_REGISTER_VALUE   0x01

Definition at line 1132 of file acpi.h.

◆ RSDP_SIG

#define RSDP_SIG   "RSD PTR " /* RSDT pointer signature */

Definition at line 56 of file acpi.h.

◆ SET_ERROR_TYPE

#define SET_ERROR_TYPE   0x02

Definition at line 1121 of file acpi.h.

◆ SET_ERROR_TYPE_WITH_ADDRESS

#define SET_ERROR_TYPE_WITH_ADDRESS   0x08

Definition at line 1127 of file acpi.h.

◆ TRIGGER_ERROR

#define TRIGGER_ERROR   0xFF

Definition at line 1128 of file acpi.h.

◆ WRITE_REGISTER

#define WRITE_REGISTER   0x02

Definition at line 1133 of file acpi.h.

◆ WRITE_REGISTER_VALUE

#define WRITE_REGISTER_VALUE   0x03

Definition at line 1134 of file acpi.h.

Typedef Documentation

◆ acpi_addr64_t

◆ acpi_addr_t

typedef struct acpi_gen_regaddr acpi_addr_t

◆ acpi_bert_t

typedef struct acpi_bert acpi_bert_t

◆ acpi_cstate_t

typedef struct acpi_cstate acpi_cstate_t

◆ acpi_dbg2_device_t

◆ acpi_dbg2_header_t

◆ acpi_dmar_t

typedef struct acpi_dmar acpi_dmar_t

◆ acpi_ecdt_t

typedef struct acpi_ecdt acpi_ecdt_t

◆ acpi_einj_action_table_t

◆ acpi_einj_smi_t

◆ acpi_einj_t

typedef struct acpi_einj acpi_einj_t

◆ acpi_einj_trigger_table_t

◆ acpi_facs_t

typedef struct acpi_facs acpi_facs_t

◆ acpi_fadt_t

typedef struct acpi_fadt acpi_fadt_t

◆ acpi_generic_error_status_t

◆ acpi_header_t

◆ acpi_hest_esd_t

◆ acpi_hest_generic_data_t

◆ acpi_hest_generic_data_v300_t

◆ acpi_hest_hen_t

◆ acpi_hest_t

typedef struct acpi_hest acpi_hest_t

◆ acpi_hmat_mpda_t

◆ acpi_hmat_msci_t

◆ acpi_hmat_sllbi_t

◆ acpi_hmat_t

typedef struct acpi_hmat acpi_hmat_t

◆ acpi_hpet_t

typedef struct acpi_hpet acpi_hpet_t

◆ acpi_injection_header_t

◆ acpi_ivrs_info_t

◆ acpi_ivrs_ivhd11_t

◆ acpi_ivrs_ivhd_t

◆ acpi_ivrs_t

typedef struct acpi_ivrs acpi_ivrs_t

◆ acpi_lpi_desc_flags_t

◆ acpi_lpi_desc_hdr_t

◆ acpi_lpi_desc_ncst_t

◆ acpi_lpit_t

typedef struct acpi_lpit acpi_lpit_t

◆ acpi_madt_ioapic_t

◆ acpi_madt_irqoverride_t

◆ acpi_madt_lapic_nmi_t

◆ acpi_madt_lapic_t

◆ acpi_madt_lx2apic_nmi_t

◆ acpi_madt_lx2apic_t

◆ acpi_madt_t

typedef struct acpi_madt acpi_madt_t

◆ acpi_mcfg_mmconfig_t

◆ acpi_mcfg_t

typedef struct acpi_mcfg acpi_mcfg_t

◆ acpi_rsdp_t

typedef struct acpi_rsdp acpi_rsdp_t

◆ acpi_rsdt_t

typedef struct acpi_rsdt acpi_rsdt_t

◆ acpi_slit_t

typedef struct acpi_slit acpi_slit_t

◆ acpi_srat_gia_t

◆ acpi_srat_lapic_t

◆ acpi_srat_mem_t

◆ acpi_srat_t

typedef struct acpi_srat acpi_srat_t

◆ acpi_tcpa_t

typedef struct acpi_tcpa acpi_tcpa_t

◆ acpi_tpm2_t

typedef struct acpi_tpm2 acpi_tpm2_t

◆ acpi_tstate_t

typedef struct acpi_tstate acpi_tstate_t

◆ acpi_vfct_image_hdr_t

◆ acpi_vfct_t

typedef struct acpi_vfct acpi_vfct_t

◆ acpi_xsdt_t

typedef struct acpi_xsdt acpi_xsdt_t

◆ dev_scope_t

typedef struct dev_scope dev_scope_t

◆ dmar_andd_entry_t

◆ dmar_atsr_entry_t

◆ dmar_entry_t

typedef struct dmar_entry dmar_entry_t

◆ dmar_rhsa_entry_t

◆ dmar_rmrr_entry_t

◆ dmar_satc_entry_t

◆ ivhd11_iommu_attr_t

◆ set_error_type_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DRHD_INCLUDE_PCI_ALL 

Definition at line 514 of file acpi.h.

◆ anonymous enum

anonymous enum
Enumerator
ATC_REQUIRED 

Definition at line 518 of file acpi.h.

◆ anonymous enum

anonymous enum
Enumerator
ACPI_S0 
ACPI_S1 
ACPI_S2 
ACPI_S3 
ACPI_S4 
ACPI_S5 

Definition at line 1379 of file acpi.h.

◆ acpi_apic_types

Enumerator
LOCAL_APIC 
IO_APIC 
IRQ_SOURCE_OVERRIDE 
NMI_TYPE 
LOCAL_APIC_NMI 
LAPIC_ADDRESS_OVERRIDE 
IO_SAPIC 
LOCAL_SAPIC 
PLATFORM_IRQ_SOURCES 
LOCAL_X2APIC 
LOCAL_X2APIC_NMI 
GICC 
GICD 
GIC_MSI_FRAME 
GICR 
GIC_ITS 

Definition at line 588 of file acpi.h.

◆ acpi_device_sleep_states

Enumerator
ACPI_DEVICE_SLEEP_D0 
ACPI_DEVICE_SLEEP_D1 
ACPI_DEVICE_SLEEP_D2 
ACPI_DEVICE_SLEEP_D3 
ACPI_DEVICE_SLEEP_D3_HOT 
ACPI_DEVICE_SLEEP_D3_COLD 

Definition at line 47 of file acpi.h.

◆ acpi_ipmi_interface_type

Enumerator
IPMI_INTERFACE_RESERVED 
IPMI_INTERFACE_KCS 
IPMI_INTERFACE_SMIC 
IPMI_INTERFACE_BT 
IPMI_INTERFACE_SSIF 

Definition at line 1060 of file acpi.h.

◆ acpi_lpi_desc_type

Enumerator
ACPI_LPI_DESC_TYPE_NATIVE_CSTATE 

Definition at line 374 of file acpi.h.

◆ acpi_lpi_state_flags

Enumerator
ACPI_LPI_STATE_DISABLED 
ACPI_LPI_STATE_ENABLED 

Definition at line 1018 of file acpi.h.

◆ acpi_preferred_pm_profiles

Enumerator
PM_UNSPECIFIED 
PM_DESKTOP 
PM_MOBILE 
PM_WORKSTATION 
PM_ENTERPRISE_SERVER 
PM_SOHO_SERVER 
PM_APPLIANCE_PC 
PM_PERFORMANCE_SERVER 
PM_TABLET 

Definition at line 832 of file acpi.h.

◆ acpi_tables

Enumerator
BERT 
DBG2 
DMAR 
DSDT 
EINJ 
FACS 
FADT 
HEST 
HMAT 
HPET 
IVRS 
MADT 
MCFG 
RSDP 
RSDT 
SLIT 
SRAT 
SSDT 
TCPA 
TPM2 
XSDT 
ECDT 
LPIT 
VFCT 
NHLT 
SPMI 
CRAT 

Definition at line 73 of file acpi.h.

◆ acpi_upc_type

Enumerator
UPC_TYPE_A 
UPC_TYPE_MINI_AB 
UPC_TYPE_EXPRESSCARD 
UPC_TYPE_USB3_A 
UPC_TYPE_USB3_B 
UPC_TYPE_USB3_MICRO_B 
UPC_TYPE_USB3_MICRO_AB 
UPC_TYPE_USB3_POWER_B 
UPC_TYPE_C_USB2_ONLY 
UPC_TYPE_C_USB2_SS_SWITCH 
UPC_TYPE_C_USB2_SS 
UPC_TYPE_PROPRIETARY 
UPC_TYPE_INTERNAL 
UPC_TYPE_UNUSED 
UPC_TYPE_HUB 

Definition at line 1038 of file acpi.h.

◆ coreboot_acpi_ids

Enumerator
COREBOOT_ACPI_ID_CBTABLE 
COREBOOT_ACPI_ID_MAX 

Definition at line 68 of file acpi.h.

◆ dev_scope_type

Enumerator
SCOPE_PCI_ENDPOINT 
SCOPE_PCI_SUB 
SCOPE_IOAPIC 
SCOPE_MSI_HPET 
SCOPE_ACPI_NAMESPACE_DEVICE 

Definition at line 485 of file acpi.h.

◆ dmar_flags

enum dmar_flags
Enumerator
DMAR_INTR_REMAP 
DMAR_X2APIC_OPT_OUT 
DMA_CTRL_PLATFORM_OPT_IN_FLAG 

Definition at line 522 of file acpi.h.

◆ dmar_type

enum dmar_type
Enumerator
DMAR_DRHD 
DMAR_RMRR 
DMAR_ATSR 
DMAR_RHSA 
DMAR_ANDD 
DMAR_SATC 

Definition at line 505 of file acpi.h.

Function Documentation

◆ acpi_add_table()

◆ acpi_align_current()

◆ acpi_checksum()

◆ acpi_create_crat()

void acpi_create_crat ( struct acpi_crat_header crat,
unsigned long(*)(struct acpi_crat_header *crat_struct, unsigned long current)  acpi_fill_crat 
)

Definition at line 1112 of file acpi.c.

References acpi_checksum(), acpi_fill_crat(), ACPI_TABLE_CREATOR, asl_revision, ASLC, CRAT, get_acpi_table_revision(), header, acpi_crat_header::header, memcpy(), memset(), and OEM_ID.

Referenced by agesa_write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dbg2()

void acpi_create_dbg2 ( acpi_dbg2_header_t dbg2_header,
int  port_type,
int  port_subtype,
acpi_addr_t address,
uint32_t  address_size,
const char *  device_path 
)

Definition at line 1160 of file acpi.c.

References acpi_checksum(), ACPI_TABLE_CREATOR, address, asl_revision, ASLC, DBG2, device, acpi_dbg2_header::devices_count, acpi_dbg2_header::devices_offset, get_acpi_table_revision(), header, acpi_dbg2_header::header, memcpy(), memset(), OEM_ID, strlen(), and strncpy().

Referenced by acpi_write_dbg2_pci_uart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar()

void acpi_create_dmar ( acpi_dmar_t dmar,
enum dmar_flags  flags,
unsigned long(*)(unsigned long)  acpi_fill_dmar 
)

Definition at line 607 of file acpi.c.

References acpi_checksum(), acpi_fill_dmar(), ACPI_TABLE_CREATOR, asl_revision, ASLC, cpu_phys_address_size(), DMAR, get_acpi_table_revision(), header, acpi_dmar::header, memcpy(), memset(), and OEM_ID.

Referenced by northbridge_write_acpi_tables(), sa_write_acpi_tables(), and systemagent_write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_andd()

unsigned long acpi_create_dmar_andd ( unsigned long  current,
u8  device_number,
const char *  device_name 
)

Definition at line 692 of file acpi.c.

References dmar_andd_entry::device_name, dmar_andd_entry::device_number, DMAR_ANDD, dmar_andd_entry::length, memcpy(), memset(), strlen(), and dmar_andd_entry::type.

Here is the call graph for this function:

◆ acpi_create_dmar_atsr()

unsigned long acpi_create_dmar_atsr ( unsigned long  current,
u8  flags,
u16  segment 
)

Definition at line 666 of file acpi.c.

References DMAR_ATSR, dmar_atsr_entry::flags, dmar_atsr_entry::length, memset(), dmar_atsr_entry::segment, and dmar_atsr_entry::type.

Referenced by acpi_create_dmar_ds_pci_br_for_port().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_drhd()

unsigned long acpi_create_dmar_drhd ( unsigned long  current,
u8  flags,
u16  segment,
u64  bar 
)

Definition at line 638 of file acpi.c.

References dmar_entry::bar, DMAR_DRHD, dmar_entry::flags, dmar_entry::length, memset(), dmar_entry::segment, and dmar_entry::type.

Referenced by acpi_create_drhd(), acpi_fill_dmar(), and soc_fill_dmar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_ds_ioapic()

unsigned long acpi_create_dmar_ds_ioapic ( unsigned long  current,
u8  enumeration_id,
u8  bus,
u8  dev,
u8  fn 
)

Definition at line 775 of file acpi.c.

References acpi_create_dmar_ds(), and SCOPE_IOAPIC.

Referenced by acpi_create_drhd(), acpi_fill_dmar(), and soc_fill_dmar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_ds_msi_hpet()

unsigned long acpi_create_dmar_ds_msi_hpet ( unsigned long  current,
u8  enumeration_id,
u8  bus,
u8  dev,
u8  fn 
)

Definition at line 782 of file acpi.c.

References acpi_create_dmar_ds(), and SCOPE_MSI_HPET.

Referenced by acpi_create_drhd(), acpi_fill_dmar(), and soc_fill_dmar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_ds_pci()

unsigned long acpi_create_dmar_ds_pci ( unsigned long  current,
u8  bus,
u8  dev,
u8  fn 
)

Definition at line 768 of file acpi.c.

References acpi_create_dmar_ds(), and SCOPE_PCI_ENDPOINT.

Referenced by acpi_create_drhd(), acpi_create_rmrr(), acpi_fill_dmar(), and soc_fill_dmar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_ds_pci_br()

unsigned long acpi_create_dmar_ds_pci_br ( unsigned long  current,
u8  bus,
u8  dev,
u8  fn 
)

Definition at line 761 of file acpi.c.

References acpi_create_dmar_ds(), and SCOPE_PCI_SUB.

Referenced by acpi_create_dmar_ds_pci_br_for_port(), and soc_fill_dmar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_rhsa()

unsigned long acpi_create_dmar_rhsa ( unsigned long  current,
u64  base_addr,
u32  proximity_domain 
)

Definition at line 679 of file acpi.c.

References dmar_rhsa_entry::base_address, DMAR_RHSA, dmar_rhsa_entry::length, memset(), dmar_rhsa_entry::proximity_domain, and dmar_rhsa_entry::type.

Referenced by acpi_create_rhsa().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_rmrr()

unsigned long acpi_create_dmar_rmrr ( unsigned long  current,
u16  segment,
u64  bar,
u64  limit 
)

Definition at line 652 of file acpi.c.

References dmar_rmrr_entry::bar, DMAR_RMRR, dmar_rmrr_entry::length, dmar_rmrr_entry::limit, memset(), dmar_rmrr_entry::segment, and dmar_rmrr_entry::type.

Referenced by acpi_create_igfx_rmrr(), acpi_create_rmrr(), acpi_fill_dmar(), and soc_fill_dmar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_dmar_satc()

unsigned long acpi_create_dmar_satc ( unsigned long  current,
u8  flags,
u16  segment 
)

Definition at line 706 of file acpi.c.

References DMAR_SATC, dmar_satc_entry::flags, dmar_satc_entry::length, memset(), dmar_satc_entry::segment_number, and dmar_satc_entry::type.

Here is the call graph for this function:

◆ acpi_create_einj()

void acpi_create_einj ( acpi_einj_t einj,
uintptr_t  addr,
u8  actions 
)

Definition at line 863 of file acpi.c.

References acpi_gen_regaddr1::access_size, ACPI_ACCESS_SIZE_QWORD_ACCESS, ACPI_ADDRESS_SPACE_MEMORY, acpi_checksum(), ACPI_EINJ_DEFAULT_CAP, ACPI_TABLE_CREATOR, acpi_einj_action_table::action, ACTION_COUNT, acpi_einj::action_table, addr, acpi_gen_regaddr1::addr, asl_revision, ASLC, BEGIN_INJECT_OP, BIOS_DEBUG, acpi_gen_regaddr1::bit_offset, acpi_gen_regaddr1::bit_width, CHECK_BUSY_STATUS, acpi_einj_smi::cmd_sts, acpi_injection_header::einj_header_size, EINJ_REG_IO, EINJ_REG_MEMORY, END_INJECT_OP, acpi_injection_header::entry_count, acpi_einj_trigger_table::entry_count, acpi_einj_smi::err_inj_cap, acpi_einj_smi::err_inject, EXECUTE_INJECT_OP, FLAG_IGNORE, FLAG_PRESERVE, acpi_einj_action_table::flags, GET_CMD_STATUS, GET_ERROR_TYPE, GET_TRIGGER_ACTION_TABLE, header, acpi_einj::header, acpi_einj_trigger_table::header_size, acpi_einj::inj_header, acpi_einj_action_table::instruction, acpi_einj_action_table::mask, memcpy(), memset(), NO_OP, OEM_ID, acpi_einj_smi::op_state, acpi_einj_smi::op_status, printk, READ_REGISTER, READ_REGISTER_VALUE, acpi_einj_action_table::reg, acpi_einj_trigger_table::revision, SET_ERROR_TYPE, SET_ERROR_TYPE_WITH_ADDRESS, acpi_einj_smi::setaddrtable, acpi_gen_regaddr1::space_id, acpi_einj_trigger_table::table_size, acpi_einj_trigger_table::trigger_action, acpi_einj_smi::trigger_action_table, TRIGGER_ERROR, acpi_einj_action_table::value, WRITE_REGISTER, and WRITE_REGISTER_VALUE.

Here is the call graph for this function:

◆ acpi_create_facs()

◆ acpi_create_fadt()

◆ acpi_create_hest_error_source()

◆ acpi_create_hmat()

void acpi_create_hmat ( acpi_hmat_t hmat,
unsigned long(*)(unsigned long current)  acpi_fill_hmat 
)

Definition at line 579 of file acpi.c.

References acpi_checksum(), ACPI_TABLE_CREATOR, asl_revision, ASLC, get_acpi_table_revision(), header, acpi_hmat::header, HMAT, memcpy(), memset(), and OEM_ID.

Here is the call graph for this function:

◆ acpi_create_hmat_mpda()

int acpi_create_hmat_mpda ( acpi_hmat_mpda_t mpda,
u32  initiator,
u32  memory 
)

◆ acpi_create_hpet()

void acpi_create_hpet ( acpi_hpet_t hpet)

Definition at line 819 of file acpi.c.

References ACPI_ADDRESS_SPACE_MEMORY, acpi_checksum(), ACPI_TABLE_CREATOR, addr, acpi_hpet::addr, asl_revision, ASLC, get_acpi_table_revision(), header, acpi_hpet::header, HPET, HPET_BASE_ADDRESS, acpi_hpet::id, memcpy(), memset(), acpi_hpet::min_tick, acpi_hpet::number, OEM_ID, and read32p().

Referenced by acpi_write_hpet().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_ipmi()

◆ acpi_create_ivrs()

void acpi_create_ivrs ( acpi_ivrs_t ivrs,
unsigned long(*)(acpi_ivrs_t *ivrs_struct, unsigned long current)  acpi_fill_ivrs 
)

Definition at line 1083 of file acpi.c.

References acpi_checksum(), acpi_fill_ivrs(), ACPI_TABLE_CREATOR, asl_revision, ASLC, get_acpi_table_revision(), header, acpi_ivrs::header, IVRS, memcpy(), memset(), and OEM_ID.

Referenced by agesa_write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_lpi_desc_ncst()

unsigned long acpi_create_lpi_desc_ncst ( acpi_lpi_desc_ncst_t lpi_desc,
uint16_t  uid 
)

Definition at line 1559 of file acpi.c.

References ACPI_LPI_DESC_TYPE_NATIVE_CSTATE, acpi_lpi_desc_ncst::header, acpi_lpi_desc_hdr::length, memset(), acpi_lpi_desc_hdr::type, and acpi_lpi_desc_hdr::uid.

Referenced by acpi_fill_lpit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_lpit()

void acpi_create_lpit ( acpi_lpit_t lpit)

Definition at line 1531 of file acpi.c.

References acpi_checksum(), acpi_fill_lpit(), ACPI_TABLE_CREATOR, asl_revision, ASLC, get_acpi_table_revision(), header, acpi_lpit::header, LPIT, memcpy(), memset(), and OEM_ID.

Referenced by write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_madt()

void acpi_create_madt ( acpi_madt_t madt)

Definition at line 227 of file acpi.c.

References acpi_checksum(), acpi_fill_madt(), ACPI_TABLE_CREATOR, asl_revision, ASLC, CONFIG, cpu_get_lapic_addr(), acpi_madt::flags, get_acpi_table_revision(), header, acpi_madt::header, acpi_madt::lapic_addr, MADT, memcpy(), memset(), and OEM_ID.

Referenced by write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_madt_ioapic()

int acpi_create_madt_ioapic ( acpi_madt_ioapic_t ioapic,
u8  id,
u32  addr,
u32  gsi_base 
)

◆ acpi_create_madt_irqoverride()

int acpi_create_madt_irqoverride ( acpi_madt_irqoverride_t irqoverride,
u8  bus,
u8  source,
u32  gsirq,
u16  flags 
)

◆ acpi_create_madt_lapic()

int acpi_create_madt_lapic ( acpi_madt_lapic_t lapic,
u8  cpu,
u8  apic 
)

◆ acpi_create_madt_lapic_nmi()

int acpi_create_madt_lapic_nmi ( acpi_madt_lapic_nmi_t lapic_nmi,
u8  cpu,
u16  flags,
u8  lint 
)

◆ acpi_create_madt_lapics()

unsigned long acpi_create_madt_lapics ( unsigned long  current)

Definition at line 144 of file acpi.c.

References acpi_create_madt_lapic(), acpi_create_madt_lx2apic(), all_devices, device_path::apic, apic_path::apic_id, ARRAY_SIZE, bubblesort(), device::bus, bus::dev, DEVICE_PATH_APIC, DEVICE_PATH_CPU_CLUSTER, device::enabled, device::next, NUM_ASCENDING, device::path, and device_path::type.

Referenced by acpi_fill_madt().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_madt_lx2apic()

int acpi_create_madt_lx2apic ( acpi_madt_lx2apic_t lapic,
u32  cpu,
u32  apic 
)

◆ acpi_create_madt_lx2apic_nmi()

int acpi_create_madt_lx2apic_nmi ( acpi_madt_lx2apic_nmi_t lapic_nmi,
u32  cpu,
u16  flags,
u8  lint 
)

◆ acpi_create_mcfg()

void acpi_create_mcfg ( acpi_mcfg_t mcfg)

Definition at line 268 of file acpi.c.

References acpi_checksum(), acpi_fill_mcfg(), ACPI_TABLE_CREATOR, asl_revision, ASLC, CONFIG, get_acpi_table_revision(), header, acpi_mcfg::header, MCFG, memcpy(), memset(), and OEM_ID.

Referenced by write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_mcfg_mmconfig()

int acpi_create_mcfg_mmconfig ( acpi_mcfg_mmconfig_t mmconfig,
u32  base,
u16  seg_nr,
u8  start,
u8  end 
)

Definition at line 108 of file acpi.c.

References base, acpi_mcfg_mmconfig::base_address, acpi_mcfg_mmconfig::base_reserved, acpi_mcfg_mmconfig::end_bus_number, memset(), acpi_mcfg_mmconfig::pci_segment_group_number, and acpi_mcfg_mmconfig::start_bus_number.

Referenced by acpi_fill_mcfg().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_slit()

void acpi_create_slit ( acpi_slit_t slit,
unsigned long(*)(unsigned long current)  acpi_fill_slit 
)

Definition at line 790 of file acpi.c.

References acpi_checksum(), acpi_fill_slit(), ACPI_TABLE_CREATOR, asl_revision, ASLC, get_acpi_table_revision(), header, acpi_slit::header, memcpy(), memset(), OEM_ID, and SLIT.

Referenced by northbridge_write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_srat()

void acpi_create_srat ( acpi_srat_t srat,
unsigned long(*)(unsigned long current)  acpi_fill_srat 
)

Definition at line 532 of file acpi.c.

References acpi_checksum(), acpi_fill_srat(), ACPI_TABLE_CREATOR, asl_revision, ASLC, get_acpi_table_revision(), header, acpi_srat::header, memcpy(), memset(), OEM_ID, and SRAT.

Referenced by northbridge_write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_srat_gia_pci()

int acpi_create_srat_gia_pci ( acpi_srat_gia_t gia,
u32  proximity_domain,
u16  seg,
u8  bus,
u8  dev,
u8  func,
u32  flags 
)

◆ acpi_create_srat_lapic()

int acpi_create_srat_lapic ( acpi_srat_lapic_t lapic,
u8  node,
u8  apic 
)

Definition at line 485 of file acpi.c.

References acpi_srat_lapic::apic_id, acpi_srat_lapic::flags, acpi_srat_lapic::length, memset(), acpi_srat_lapic::proximity_domain_7_0, and acpi_srat_lapic::type.

Referenced by acpi_create_srat_lapics().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_srat_lapics()

unsigned long acpi_create_srat_lapics ( unsigned long  current)

Definition at line 22 of file nb_acpi.c.

References acpi_create_srat_lapic(), all_devices, device_path::apic, apic_path::apic_id, BIOS_DEBUG, device::bus, cpu_index(), bus::dev, DEVICE_PATH_APIC, DEVICE_PATH_CPU_CLUSTER, device::enabled, device::next, apic_path::node_id, device::path, printk, and device_path::type.

Referenced by acpi_fill_srat().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_create_srat_mem()

◆ acpi_create_ssdt_generator()

◆ acpi_create_vfct()

void acpi_create_vfct ( const struct device device,
acpi_vfct_t vfct,
unsigned long(*)(const struct device *device, acpi_vfct_t *vfct_struct, unsigned long current)  acpi_fill_vfct 
)

Definition at line 999 of file acpi.c.

References acpi_checksum(), ACPI_TABLE_CREATOR, asl_revision, ASLC, get_acpi_table_revision(), header, acpi_vfct::header, memcpy(), memset(), OEM_ID, and VFCT.

Here is the call graph for this function:

◆ acpi_dmar_atsr_fixup()

void acpi_dmar_atsr_fixup ( unsigned long  base,
unsigned long  current 
)

Definition at line 731 of file acpi.c.

References base, and dmar_atsr_entry::length.

Referenced by acpi_create_atsr().

Here is the caller graph for this function:

◆ acpi_dmar_drhd_fixup()

void acpi_dmar_drhd_fixup ( unsigned long  base,
unsigned long  current 
)

Definition at line 719 of file acpi.c.

References base, and dmar_entry::length.

Referenced by acpi_create_drhd(), acpi_fill_dmar(), and soc_fill_dmar().

Here is the caller graph for this function:

◆ acpi_dmar_rmrr_fixup()

void acpi_dmar_rmrr_fixup ( unsigned long  base,
unsigned long  current 
)

Definition at line 725 of file acpi.c.

References base, and dmar_rmrr_entry::length.

Referenced by acpi_create_rmrr(), acpi_fill_dmar(), and soc_fill_dmar().

Here is the caller graph for this function:

◆ acpi_dmar_satc_fixup()

void acpi_dmar_satc_fixup ( unsigned long  base,
unsigned long  current 
)

Definition at line 737 of file acpi.c.

References base, and dmar_satc_entry::length.

◆ acpi_fill_cnvs()

void acpi_fill_cnvs ( void  )

Referenced by write_acpi_tables().

Here is the caller graph for this function:

◆ acpi_fill_fadt()

void acpi_fill_fadt ( acpi_fadt_t fadt)

Create the Fixed ACPI Description Tables (FADT) for any board with this SB.

Reference: ACPIspec40a, 5.2.9, page 118

Definition at line 58 of file acpi.c.

References acpi_gen_regaddr::access_size, AccWidthUint16, ACPI_ACCESS_SIZE_BYTE_ACCESS, ACPI_ACCESS_SIZE_DWORD_ACCESS, ACPI_ACCESS_SIZE_UNDEFINED, ACPI_ACCESS_SIZE_WORD_ACCESS, ACPI_ADDRESS_SPACE_IO, ACPI_BASE_ADDRESS, acpi_fadt::acpi_disable, ACPI_DISABLE, acpi_fadt::acpi_enable, ACPI_ENABLE, ACPI_FADT_32BIT_TIMER, ACPI_FADT_8042, ACPI_FADT_C1_SUPPORTED, ACPI_FADT_C2_MP_SUPPORTED, ACPI_FADT_C2_NOT_SUPPORTED, ACPI_FADT_C3_NOT_SUPPORTED, ACPI_FADT_DOCKING_SUPPORTED, ACPI_FADT_LEGACY_DEVICES, ACPI_FADT_LEGACY_FREE, ACPI_FADT_LOW_PWR_IDLE_S0, ACPI_FADT_MSI_NOT_SUPPORTED, ACPI_FADT_PCI_EXPRESS_WAKE, ACPI_FADT_PLATFORM_CLOCK, ACPI_FADT_REMOTE_POWER_ON, ACPI_FADT_S4_RTC_VALID, ACPI_FADT_S4_RTC_WAKE, ACPI_FADT_SEALED_CASE, ACPI_FADT_SLEEP_BUTTON, ACPI_FADT_WBINVD, ACPI_GPE0_BLK, ACPI_IO_BASE, ACPI_PM1_CNT_BLK, ACPI_PM_EVT_BLK, ACPI_PM_TMR_BLK, ACPI_SCI_IRQ, acpi_sci_irq(), ACPI_SMI_CMD_DISABLE, ACPI_SMI_CMD_ENABLE, ACPI_SMI_CTL_PORT, acpi_gen_regaddr::addrh, acpi_gen_regaddr::addrl, APM_CNT, APM_CNT_ACPI_DISABLE, APM_CNT_ACPI_ENABLE, acpi_fadt::ARM_boot_arch, B_QNC_LPC_GPE0BLK_MASK, B_QNC_LPC_PM1BLK_MASK, BIOS_DEBUG, BIOS_SPEW, BIT0, BIT1, BIT2, BIT4, acpi_gen_regaddr::bit_offset, acpi_gen_regaddr::bit_width, acpi_fadt::century, chip, device::chip_info, soc_amd_cezanne_config::common_config, soc_amd_sabrina_config::common_config, CONFIG, config_of_soc, acpi_fadt::day_alrm, DEFAULT_PMBASE, southbridge_intel_lynxpoint_config::docking_supported, acpi_fadt::duty_offset, acpi_fadt::duty_width, soc_amd_common_config::fadt_boot_arch, FADT_BOOT_ARCH, soc_amd_common_config::fadt_flags, acpi_fadt::flags, get_pmbase(), acpi_fadt::gpe0_blk, acpi_fadt::gpe0_blk_len, GPE0_EN, GPE0_REG_MAX, GPE0_STS, GPSTS, HUDSON_ACPI_IO_BASE, acpi_fadt::iapc_boot_arch, LP_GPE0_STS_1, lpc_get_pmbase(), acpi_fadt::mon_alrm, outl(), acpi_fadt::p_lvl2_lat, acpi_fadt::p_lvl3_lat, pch_is_lp(), PCI_DEVICE_NUMBER_QNC_LPC, PCI_FUNCTION_NUMBER_QNC_LPC, pci_read_config16(), pci_read_config32(), pcidev_on_root(), permanent_smi_handler(), PM1_CNT, acpi_fadt::pm1_cnt_len, acpi_fadt::pm1_evt_len, PM1_STS, PM1_TMR, acpi_fadt::pm1a_cnt_blk, acpi_fadt::pm1a_evt_blk, PM2_CNT, acpi_fadt::pm2_cnt_blk, acpi_fadt::pm2_cnt_len, PM2A_CNT_BLK, acpi_fadt::pm_tmr_blk, acpi_fadt::pm_tmr_len, pmbase, PMCNTRL, PMTMR, printk, PST_CONTROL, acpi_fadt::pstate_cnt, R_QNC_LPC_GPE0BLK, R_QNC_LPC_PM1BLK, R_QNC_PM1BLK_PM1C, R_QNC_PM1BLK_PM1S, R_QNC_PM1BLK_PM1T, acpi_fadt::res2, acpi_fadt::reset_reg, RTC_ALT_CENTURY, RTC_DATE_ALARM, soc_amd_cezanne_config::s0ix_enable, soc_amd_sabrina_config::s0ix_enable, acpi_fadt::sci_int, acpi_fadt::smi_cmd, soc_get_common_config(), acpi_gen_regaddr::space_id, val, acpi_fadt::x_firmware_ctl_h, acpi_fadt::x_firmware_ctl_l, acpi_fadt::x_gpe0_blk, acpi_fadt::x_pm1a_cnt_blk, acpi_fadt::x_pm1a_evt_blk, acpi_fadt::x_pm2_cnt_blk, and acpi_fadt::x_pm_tmr_blk.

Referenced by acpi_create_fadt().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_fill_gnvs()

void acpi_fill_gnvs ( void  )

Definition at line 64 of file gnvs.c.

References acpigen_pop_len(), acpigen_write_opregion(), acpigen_write_scope(), dnvs, gnvs, mainboard_fill_gnvs(), OPREGION, size_of_dnvs(), soc_fill_gnvs(), and SYSTEMMEMORY.

Referenced by write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_fill_ivrs_ioapic()

◆ acpi_fill_lpit()

◆ acpi_fill_madt()

◆ acpi_find_wakeup_vector()

void* acpi_find_wakeup_vector ( void  )

Definition at line 1881 of file acpi.c.

References acpi_is_wakeup_s3(), BIOS_ALERT, BIOS_DEBUG, acpi_rsdt::entry, acpi_fadt::firmware_ctrl, acpi_facs::firmware_waking_vector, acpi_rsdt::header, acpi_table_header::length, NULL, printk, acpi_rsdp::rsdt_address, strncmp(), and valid_rsdp().

Referenced by bs_os_resume_check().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_get_gpe()

int acpi_get_gpe ( int  gpe)

Definition at line 1944 of file acpi.c.

References ACPI_BASE_ADDRESS, GPE0_STS, GPE_MAX, inl(), mask, outl(), stopwatch_expired(), and stopwatch_init_msecs_expire().

Referenced by tis_plat_irq_status().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_get_preferred_pm_profile()

uint8_t acpi_get_preferred_pm_profile ( void  )

Definition at line 14 of file acpi_pm.c.

References PM_DESKTOP, PM_MOBILE, PM_TABLET, PM_UNSPECIFIED, SMBIOS_ENCLOSURE_CONVERTIBLE, SMBIOS_ENCLOSURE_DESKTOP, SMBIOS_ENCLOSURE_DETACHABLE, SMBIOS_ENCLOSURE_LAPTOP, SMBIOS_ENCLOSURE_TABLET, SMBIOS_ENCLOSURE_UNKNOWN, and smbios_mainboard_enclosure_type().

Referenced by acpi_create_fadt().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_get_sleep_type()

◆ acpi_is_wakeup_s3()

static int acpi_is_wakeup_s3 ( void  )
inlinestatic

Definition at line 1424 of file acpi.h.

References acpi_get_sleep_type(), ACPI_S3, acpi_s3_resume_allowed(), ENV_ROMSTAGE_OR_BEFORE, and romstage_handoff_is_resume().

Here is the call graph for this function:

◆ acpi_resume()

void __noreturn acpi_resume ( void wake_vec)

Definition at line 18 of file acpi_s3.c.

References __wakeup, __wakeup_size, acpi_do_wakeup, die(), mainboard_suspend_resume(), memcpy(), post_code, POST_OS_RESUME, set_boot_successful(), timestamp_add_now(), TS_ACPI_WAKE_JUMP, and WAKEUP_BASE.

Referenced by bs_os_resume().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_s3_resume_allowed()

static int acpi_s3_resume_allowed ( void  )
inlinestatic

Definition at line 1419 of file acpi.h.

References CONFIG.

Referenced by acpi_is_wakeup_s3(), agesawrapper_post_device(), and southbridge_detect_s3_resume().

Here is the caller graph for this function:

◆ acpi_soc_get_bert_region()

enum cb_err acpi_soc_get_bert_region ( void **  region,
size_t length 
)

Definition at line 1 of file bert.c.

References bert_errors_region(), bert_should_generate_acpi_table(), BIOS_DEBUG, BIOS_ERR, BIOS_SPEW, CB_ERR, CB_SUCCESS, cl_get_total_data_size(), collect_pmc_and_cpu_crashlog_from_srams(), CONFIG, discover_crashlog(), length, and printk.

Referenced by write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_write_bert()

void acpi_write_bert ( acpi_bert_t bert,
uintptr_t  region,
size_t  length 
)

Definition at line 1458 of file acpi.c.

References acpi_checksum(), ACPI_TABLE_CREATOR, asl_revision, ASLC, BERT, acpi_bert::error_region, get_acpi_table_revision(), header, acpi_bert::header, length, memcpy(), memset(), OEM_ID, and acpi_bert::region_length.

Referenced by write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_write_dbg2_pci_uart()

◆ acpi_write_hest()

void acpi_write_hest ( acpi_hest_t hest,
unsigned long(*)(acpi_hest_t *hest)  acpi_fill_hest 
)

Definition at line 1433 of file acpi.c.

References acpi_checksum(), acpi_fill_hest(), ACPI_TABLE_CREATOR, asl_revision, ASLC, get_acpi_table_revision(), header, acpi_hest::header, HEST, memcpy(), memset(), and OEM_ID.

Referenced by agesa_write_acpi_tables(), and hest_create().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acpi_write_hpet()

unsigned long acpi_write_hpet ( const struct device device,
unsigned long  start,
acpi_rsdp_t rsdp 
)

Definition at line 1141 of file acpi.c.

References acpi_add_table(), acpi_create_hpet(), ALIGN_UP, BIOS_DEBUG, and printk.

Referenced by broadwell_write_acpi_tables(), southbridge_write_acpi_tables(), and southcluster_write_acpi_tables().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arch_fill_fadt()

◆ fw_cfg_acpi_tables()

◆ generate_cpu_entries()

void generate_cpu_entries ( const struct device device)

◆ get_acpi_fadt_minor_version()

u8 get_acpi_fadt_minor_version ( void  )

Definition at line 1949 of file acpi.c.

References ACPI_FADT_MINOR_VERSION_0.

Referenced by acpi_create_fadt().

Here is the caller graph for this function:

◆ get_acpi_table_revision()

◆ get_coreboot_rsdp()

uintptr_t get_coreboot_rsdp ( void  )

Definition at line 1587 of file acpi.c.

References coreboot_rsdp.

Referenced by lb_add_acpi_rsdp().

Here is the caller graph for this function:

◆ mainboard_fill_fadt()

void mainboard_fill_fadt ( acpi_fadt_t fadt)

◆ mainboard_suspend_resume()

void mainboard_suspend_resume ( void  )

Definition at line 9 of file acpi_pm.c.

References APM_CNT_ACPI_ENABLE, APM_CNT_FINALIZE, apm_control(), EC_ACPI_ENABLE, EC_CMD_NOTIFY_ACPI_ENTER, EC_SMI_DISABLE, ec_write_cmd(), and send_ec_command().

Referenced by acpi_resume().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ permanent_smi_handler()

static int permanent_smi_handler ( void  )
inlinestatic

Definition at line 1414 of file acpi.h.

References CONFIG.

Referenced by acpi_fill_fadt().

Here is the caller graph for this function:

◆ preload_acpi_dsdt()

void preload_acpi_dsdt ( void  )

Definition at line 1574 of file acpi.c.

References BIOS_DEBUG, cbfs_preload(), CONFIG, and printk.

Here is the call graph for this function:

◆ soc_fill_fadt()

◆ write_acpi_tables()

Variable Documentation

◆ __packed