7 #ifndef __ACPI_ACPI_H__
8 #define __ACPI_ACPI_H__
14 #if CONFIG(ACPI_INTEL_HARDWARE_SLEEP_VALUES)
15 #define SLP_EN (1 << 13)
16 #define SLP_TYP_SHIFT 10
17 #define SLP_TYP (7 << SLP_TYP_SHIFT)
23 #elif CONFIG(ACPI_AMD_HARDWARE_SLEEP_VALUES)
24 #define SLP_EN (1 << 13)
25 #define SLP_TYP_SHIFT 10
26 #define SLP_TYP (7 << SLP_TYP_SHIFT)
34 #define ACPI_TABLE_CREATOR "COREBOOT"
35 #define OEM_ID "COREv4"
36 #define ACPI_DSDT_REV_1 0x01
37 #define ACPI_DSDT_REV_2 0x02
39 #if !defined(__ASSEMBLER__) && !defined(__ACPI__)
56 #define RSDP_SIG "RSD PTR "
59 #define ACPI_NAME_BUFFER_SIZE 5
65 #define COREBOOT_ACPI_ID "BOOT"
75 BERT,
DBG2,
DMAR,
DSDT,
EINJ,
FACS,
FADT,
HEST,
HMAT,
HPET,
IVRS,
MADT,
76 MCFG,
RSDP,
RSDT,
SLIT,
SRAT,
SSDT,
TCPA,
TPM2,
XSDT,
ECDT,
LPIT,
104 #define ACPI_ADDRESS_SPACE_MEMORY 0
105 #define ACPI_ADDRESS_SPACE_IO 1
106 #define ACPI_ADDRESS_SPACE_PCI 2
107 #define ACPI_ADDRESS_SPACE_EC 3
108 #define ACPI_ADDRESS_SPACE_SMBUS 4
109 #define ACPI_ADDRESS_SPACE_CMOS 5
110 #define ACPI_ADDRESS_SPACE_PCI_BAR_TARGET 6
111 #define ACPI_ADDRESS_SPACE_IPMI 7
112 #define ACPI_ADDRESS_SPACE_GENERAL_PURPOSE_IO 8
113 #define ACPI_ADDRESS_SPACE_GENERIC_SERIAL_BUS 9
114 #define ACPI_ADDRESS_SPACE_PCC 0x0A
115 #define ACPI_ADDRESS_SPACE_FIXED 0x7f
116 #define ACPI_FFIXEDHW_VENDOR_INTEL 1
117 #define ACPI_FFIXEDHW_CLASS_HLT 0
118 #define ACPI_FFIXEDHW_CLASS_IO_HLT 1
119 #define ACPI_FFIXEDHW_CLASS_MWAIT 2
120 #define ACPI_FFIXEDHW_FLAG_HW_COORD 1
121 #define ACPI_FFIXEDHW_FLAG_BM_STS 2
126 #define ACPI_ACCESS_SIZE_UNDEFINED 0
127 #define ACPI_ACCESS_SIZE_BYTE_ACCESS 1
128 #define ACPI_ACCESS_SIZE_WORD_ACCESS 2
129 #define ACPI_ACCESS_SIZE_DWORD_ACCESS 3
130 #define ACPI_ACCESS_SIZE_QWORD_ACCESS 4
133 #define ACPI_REG_MSR(address, offset, width) \
135 .space_id = ACPI_ADDRESS_SPACE_FIXED, \
136 .access_size = ACPI_ACCESS_SIZE_QWORD_ACCESS, \
138 .bit_offset = offset, \
139 .bit_width = width, \
142 #define ACPI_REG_UNSUPPORTED (acpi_addr_t){0}
145 #define ACPI_HID_FDC "PNP0700"
146 #define ACPI_HID_KEYBOARD "PNP0303"
147 #define ACPI_HID_MOUSE "PNP0F03"
148 #define ACPI_HID_COM "PNP0501"
149 #define ACPI_HID_LPT "PNP0400"
150 #define ACPI_HID_PNP "PNP0C02"
151 #define ACPI_HID_CONTAINER "PNP0A05"
167 #define MAX_ACPI_TABLES 32
297 #define ACPI_SRAT_STRUCTURE_LAPIC 0
298 #define ACPI_SRAT_STRUCTURE_MEM 1
299 #define ACPI_SRAT_STRUCTURE_GIA 5
342 #define ACPI_SRAT_GIA_DEV_HANDLE_ACPI 0
343 #define ACPI_SRAT_GIA_DEV_HANDLE_PCI 1
387 #define ACPI_LPIT_CTR_FREQ_TSC 0
627 #define ACPI_MADT_LAPIC_NMI_ALL_PROCESSORS 0xff
669 #define ACPI_DBG2_PORT_SERIAL 0x8000
670 #define ACPI_DBG2_PORT_SERIAL_16550 0x0000
671 #define ACPI_DBG2_PORT_SERIAL_16550_DBGP 0x0001
672 #define ACPI_DBG2_PORT_SERIAL_ARM_PL011 0x0003
673 #define ACPI_DBG2_PORT_SERIAL_ARM_SBSA 0x000e
674 #define ACPI_DBG2_PORT_SERIAL_ARM_DDC 0x000f
675 #define ACPI_DBG2_PORT_SERIAL_BCM2835 0x0010
676 #define ACPI_DBG2_PORT_IEEE1394 0x8001
677 #define ACPI_DBG2_PORT_IEEE1394_STANDARD 0x0000
678 #define ACPI_DBG2_PORT_USB 0x8002
679 #define ACPI_DBG2_PORT_USB_XHCI 0x0000
680 #define ACPI_DBG2_PORT_USB_EHCI 0x0001
681 #define ACPI_DBG2_PORT_NET 0x8003
771 #define ACPI_FADT_REV_ACPI_1 1
772 #define ACPI_FADT_REV_ACPI_2 3
773 #define ACPI_FADT_REV_ACPI_3 4
774 #define ACPI_FADT_REV_ACPI_4 4
775 #define ACPI_FADT_REV_ACPI_5 5
776 #define ACPI_FADT_REV_ACPI_6 6
785 #define ACPI_FADT_MINOR_VERSION_0 0
788 #define ACPI_FADT_C2_NOT_SUPPORTED 101
789 #define ACPI_FADT_C3_NOT_SUPPORTED 1001
792 #define ACPI_FADT_WBINVD (1 << 0)
793 #define ACPI_FADT_WBINVD_FLUSH (1 << 1)
794 #define ACPI_FADT_C1_SUPPORTED (1 << 2)
795 #define ACPI_FADT_C2_MP_SUPPORTED (1 << 3)
796 #define ACPI_FADT_POWER_BUTTON (1 << 4)
797 #define ACPI_FADT_SLEEP_BUTTON (1 << 5)
798 #define ACPI_FADT_FIXED_RTC (1 << 6)
799 #define ACPI_FADT_S4_RTC_WAKE (1 << 7)
800 #define ACPI_FADT_32BIT_TIMER (1 << 8)
801 #define ACPI_FADT_DOCKING_SUPPORTED (1 << 9)
802 #define ACPI_FADT_RESET_REGISTER (1 << 10)
803 #define ACPI_FADT_SEALED_CASE (1 << 11)
804 #define ACPI_FADT_HEADLESS (1 << 12)
805 #define ACPI_FADT_SLEEP_TYPE (1 << 13)
806 #define ACPI_FADT_PCI_EXPRESS_WAKE (1 << 14)
807 #define ACPI_FADT_PLATFORM_CLOCK (1 << 15)
808 #define ACPI_FADT_S4_RTC_VALID (1 << 16)
809 #define ACPI_FADT_REMOTE_POWER_ON (1 << 17)
810 #define ACPI_FADT_APIC_CLUSTER (1 << 18)
811 #define ACPI_FADT_APIC_PHYSICAL (1 << 19)
813 #define ACPI_FADT_HW_REDUCED_ACPI (1 << 20)
814 #define ACPI_FADT_LOW_PWR_IDLE_S0 (1 << 21)
818 #define ACPI_FADT_LEGACY_DEVICES (1 << 0)
819 #define ACPI_FADT_8042 (1 << 1)
820 #define ACPI_FADT_VGA_NOT_PRESENT (1 << 2)
821 #define ACPI_FADT_MSI_NOT_SUPPORTED (1 << 3)
822 #define ACPI_FADT_NO_PCIE_ASPM_CONTROL (1 << 4)
823 #define ACPI_FADT_NO_CMOS_RTC (1 << 5)
824 #define ACPI_FADT_LEGACY_FREE 0x00
827 #define ACPI_FADT_ARM_PSCI_COMPLIANT (1 << 0)
828 #define ACPI_FADT_ARM_PSCI_USE_HVC (1 << 1)
861 #define ACPI_FACS_S4BIOS_F (1 << 0)
862 #define ACPI_FACS_64BIT_WAKE_F (1 << 1)
941 #define HEST_GENERIC_ENTRY_V300 0x300
944 #define ACPI_GENERROR_SEV_RECOVERABLE 0
945 #define ACPI_GENERROR_SEV_FATAL 1
946 #define ACPI_GENERROR_SEV_CORRECTED 2
947 #define ACPI_GENERROR_SEV_NONE 3
950 #define ACPI_GENERROR_VALID_FRUID BIT(0)
951 #define ACPI_GENERROR_VALID_FRUID_TEXT BIT(1)
952 #define ACPI_GENERROR_VALID_TIMESTAMP BIT(2)
973 #define GENERIC_ERR_STS_UNCORRECTABLE_VALID BIT(0)
974 #define GENERIC_ERR_STS_CORRECTABLE_VALID BIT(1)
975 #define GENERIC_ERR_STS_MULT_UNCORRECTABLE BIT(2)
976 #define GENERIC_ERR_STS_MULT_CORRECTABLE BIT(3)
977 #define GENERIC_ERR_STS_ENTRY_COUNT_SHIFT 4
978 #define GENERIC_ERR_STS_ENTRY_COUNT_MAX 0x3ff
979 #define GENERIC_ERR_STS_ENTRY_COUNT_MASK \
980 (GENERIC_ERR_STS_ENTRY_COUNT_MAX \
981 << GENERIC_ERR_STS_ENTRY_COUNT_SHIFT)
1068 #define ACPI_IPMI_PCI_DEVICE_FLAG (1 << 0)
1069 #define ACPI_IPMI_INT_TYPE_SCI (1 << 0)
1070 #define ACPI_IPMI_INT_TYPE_APIC (1 << 1)
1101 #define ACPI_EINJ_CPU_CE (1 << 0)
1102 #define ACPI_EINJ_CPU_UCE (1 << 1)
1103 #define ACPI_EINJ_CPU_UCE_FATAL (1 << 2)
1104 #define ACPI_EINJ_MEM_CE (1 << 3)
1105 #define ACPI_EINJ_MEM_UCE (1 << 4)
1106 #define ACPI_EINJ_MEM_UCE_FATAL (1 << 5)
1107 #define ACPI_EINJ_PCIE_CE (1 << 6)
1108 #define ACPI_EINJ_PCIE_UCE_NON_FATAL (1 << 7)
1109 #define ACPI_EINJ_PCIE_UCE_FATAL (1 << 8)
1110 #define ACPI_EINJ_PLATFORM_CE (1 << 9)
1111 #define ACPI_EINJ_PLATFORM_UCE (1 << 10)
1112 #define ACPI_EINJ_PLATFORM_UCE_FATAL (1 << 11)
1113 #define ACPI_EINJ_VENDOR_DEFINED (1 << 31)
1114 #define ACPI_EINJ_DEFAULT_CAP (ACPI_EINJ_MEM_CE | ACPI_EINJ_MEM_UCE | \
1115 ACPI_EINJ_PCIE_CE | ACPI_EINJ_PCIE_UCE_FATAL)
1118 #define ACTION_COUNT 9
1119 #define BEGIN_INJECT_OP 0x00
1120 #define GET_TRIGGER_ACTION_TABLE 0x01
1121 #define SET_ERROR_TYPE 0x02
1122 #define GET_ERROR_TYPE 0x03
1123 #define END_INJECT_OP 0x04
1124 #define EXECUTE_INJECT_OP 0x05
1125 #define CHECK_BUSY_STATUS 0x06
1126 #define GET_CMD_STATUS 0x07
1127 #define SET_ERROR_TYPE_WITH_ADDRESS 0x08
1128 #define TRIGGER_ERROR 0xFF
1131 #define READ_REGISTER 0x00
1132 #define READ_REGISTER_VALUE 0x01
1133 #define WRITE_REGISTER 0x02
1134 #define WRITE_REGISTER_VALUE 0x03
1180 #define EINJ_PARAM_NUM 6
1195 #define EINJ_DEF_TRIGGER_PORT 0xb2
1196 #define FLAG_PRESERVE 0x01
1197 #define FLAG_IGNORE 0x00
1200 #define EINJ_REG_MEMORY(address) \
1202 .space_id = ACPI_ADDRESS_SPACE_MEMORY, \
1205 .access_size = ACPI_ACCESS_SIZE_QWORD_ACCESS, \
1208 #define EINJ_REG_IO() \
1210 .space_id = ACPI_ADDRESS_SPACE_IO, \
1211 .bit_width = 0x10, \
1213 .access_size = ACPI_ACCESS_SIZE_WORD_ACCESS, \
1214 .addr = EINJ_DEF_TRIGGER_PORT}
1258 u16 flags,
u8 lint);
1263 u16 flags,
u8 lint);
1274 u16 seg_nr,
u8 start,
u8 end);
1290 unsigned long (*acpi_fill_hmat)(
unsigned long current));
1294 unsigned long (*acpi_fill_vfct)(
const struct device *
device,
1296 unsigned long current));
1300 const u16 ipmi_revision,
1303 const s8 gpe_interrupt,
1304 const u32 apic_interrupt,
1309 unsigned long current));
1313 unsigned long current));
1327 int port_type,
int port_subtype,
1342 u32 proximity_domain);
1388 #if CONFIG(ACPI_INTEL_HARDWARE_SLEEP_VALUES) \
1389 || CONFIG(ACPI_AMD_HARDWARE_SLEEP_VALUES)
1391 static inline int acpi_sleep_from_pm1(
uint32_t pm1_cnt)
1416 return CONFIG(HAVE_SMI_HANDLER);
1421 return CONFIG(HAVE_ACPI_RESUME);
cb_err
coreboot error codes
struct set_error_type set_error_type_t
struct acpi_madt_lx2apic acpi_madt_lx2apic_t
struct acpi_einj_action_table acpi_einj_action_table_t
@ ACPI_DEVICE_SLEEP_D3_HOT
@ ACPI_DEVICE_SLEEP_D3_COLD
unsigned long acpi_create_lpi_desc_ncst(acpi_lpi_desc_ncst_t *lpi_desc, uint16_t uid)
struct acpi_injection_header acpi_injection_header_t
void acpi_create_madt(acpi_madt_t *madt)
unsigned long fw_cfg_acpi_tables(unsigned long start)
struct acpi_generic_error_status acpi_generic_error_status_t
void acpi_create_srat(acpi_srat_t *srat, unsigned long(*acpi_fill_srat)(unsigned long current))
struct acpi_einj acpi_einj_t
struct acpi_hmat_msci acpi_hmat_msci_t
struct acpi_mcfg acpi_mcfg_t
struct acpi_einj_smi acpi_einj_smi_t
void arch_fill_fadt(acpi_fadt_t *fadt)
struct acpi_madt_lx2apic_nmi acpi_madt_lx2apic_nmi_t
static uintptr_t acpi_align_current(uintptr_t current)
struct acpi_xsdt acpi_xsdt_t
@ IPMI_INTERFACE_RESERVED
@ ACPI_LPI_DESC_TYPE_NATIVE_CSTATE
unsigned long acpi_create_dmar_ds_ioapic(unsigned long current, u8 enumeration_id, u8 bus, u8 dev, u8 fn)
unsigned long acpi_create_madt_lapics(unsigned long current)
int acpi_create_madt_lx2apic_nmi(acpi_madt_lx2apic_nmi_t *lapic_nmi, u32 cpu, u16 flags, u8 lint)
void acpi_create_lpit(acpi_lpit_t *lpit)
struct acpi_dmar acpi_dmar_t
struct acpi_madt_lapic_nmi acpi_madt_lapic_nmi_t
void acpi_dmar_satc_fixup(unsigned long base, unsigned long current)
struct acpi_dbg2_device acpi_dbg2_device_t
unsigned long acpi_create_dmar_rmrr(unsigned long current, u16 segment, u64 bar, u64 limit)
void acpi_create_ivrs(acpi_ivrs_t *ivrs, unsigned long(*acpi_fill_ivrs)(acpi_ivrs_t *ivrs_struct, unsigned long current))
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_create_srat_lapics(unsigned long current)
void acpi_create_mcfg(acpi_mcfg_t *mcfg)
uintptr_t get_coreboot_rsdp(void)
struct acpi_hest_hen acpi_hest_hen_t
static int permanent_smi_handler(void)
void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
void acpi_create_facs(acpi_facs_t *facs)
@ ACPI_LPI_STATE_DISABLED
void generate_cpu_entries(const struct device *device)
Generate ACPI entries for Speedstep for each cpu.
unsigned long acpi_write_dbg2_pci_uart(acpi_rsdp_t *rsdp, unsigned long current, const struct device *dev, uint8_t access_size)
void __noreturn acpi_resume(void *wake_vec)
void preload_acpi_dsdt(void)
void acpi_dmar_drhd_fixup(unsigned long base, 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_add_table(acpi_rsdp_t *rsdp, void *table)
Add an ACPI table to the RSDT (and XSDT) structure, recalculate length and checksum.
struct acpi_hmat acpi_hmat_t
struct acpi_lpi_desc_ncst acpi_lpi_desc_ncst_t
@ UPC_TYPE_C_USB2_SS_SWITCH
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_slit(acpi_slit_t *slit, unsigned long(*acpi_fill_slit)(unsigned long current))
unsigned long acpi_create_dmar_ds_msi_hpet(unsigned long current, u8 enumeration_id, u8 bus, u8 dev, u8 fn)
struct acpi_gen_regaddr acpi_addr_t
unsigned long acpi_create_dmar_ds_pci(unsigned long current, u8 bus, u8 dev, u8 fn)
acpi_preferred_pm_profiles
struct acpi_vfct acpi_vfct_t
unsigned long acpi_create_dmar_ds_pci_br(unsigned long current, u8 bus, u8 dev, u8 fn)
struct dmar_atsr_entry dmar_atsr_entry_t
u8 acpi_checksum(u8 *table, u32 length)
void acpi_fill_fadt(acpi_fadt_t *fadt)
Create the Fixed ACPI Description Tables (FADT) for any board with this SB.
void acpi_create_dmar(acpi_dmar_t *dmar, enum dmar_flags flags, unsigned long(*acpi_fill_dmar)(unsigned long))
struct acpi_hest_esd acpi_hest_esd_t
struct acpi_mcfg_mmconfig acpi_mcfg_mmconfig_t
int acpi_create_madt_lx2apic(acpi_madt_lx2apic_t *lapic, u32 cpu, u32 apic)
void acpi_fill_gnvs(void)
void acpi_create_crat(struct acpi_crat_header *crat, unsigned long(*acpi_fill_crat)(struct acpi_crat_header *crat_struct, unsigned long current))
unsigned long acpi_fill_ivrs_ioapic(acpi_ivrs_t *ivrs, unsigned long current)
struct dmar_satc_entry dmar_satc_entry_t
struct acpi_vfct_image_hdr acpi_vfct_image_hdr_t
void acpi_write_bert(acpi_bert_t *bert, uintptr_t region, size_t length)
void * acpi_find_wakeup_vector(void)
int acpi_create_srat_mem(acpi_srat_mem_t *mem, u8 node, u32 basek, u32 sizek, u32 flags)
static int acpi_is_wakeup_s3(void)
struct dmar_rhsa_entry dmar_rhsa_entry_t
struct acpi_ivrs_info acpi_ivrs_info_t
static int acpi_s3_resume_allowed(void)
int acpi_get_gpe(int gpe)
uint8_t acpi_get_preferred_pm_profile(void)
struct acpi_facs acpi_facs_t
void mainboard_fill_fadt(acpi_fadt_t *fadt)
struct acpi_tstate acpi_tstate_t
struct acpi_srat_gia acpi_srat_gia_t
struct acpi_hest acpi_hest_t
int acpi_create_madt_lapic(acpi_madt_lapic_t *lapic, u8 cpu, u8 apic)
struct acpi_srat_mem acpi_srat_mem_t
@ DMA_CTRL_PLATFORM_OPT_IN_FLAG
void acpi_create_einj(acpi_einj_t *einj, uintptr_t addr, u8 actions)
int acpi_create_srat_lapic(acpi_srat_lapic_t *lapic, u8 node, u8 apic)
struct acpi_srat_lapic acpi_srat_lapic_t
struct acpi_madt_irqoverride acpi_madt_irqoverride_t
int acpi_get_sleep_type(void)
struct acpi_madt_lapic acpi_madt_lapic_t
struct acpi_ecdt acpi_ecdt_t
unsigned long acpi_create_dmar_atsr(unsigned long current, u8 flags, u16 segment)
void acpi_create_ssdt_generator(acpi_header_t *ssdt, const char *oem_table_id)
struct acpi_tpm2 acpi_tpm2_t
unsigned long acpi_write_hpet(const struct device *device, unsigned long start, acpi_rsdp_t *rsdp)
struct acpi_table_header acpi_header_t
void acpi_fill_cnvs(void)
unsigned long acpi_create_hest_error_source(acpi_hest_t *hest, acpi_hest_esd_t *esd, u16 type, void *data, u16 len)
struct acpi_rsdt acpi_rsdt_t
struct acpi_ivrs_ivhd acpi_ivrs_ivhd_t
void acpi_create_hpet(acpi_hpet_t *hpet)
struct acpi_madt_ioapic acpi_madt_ioapic_t
struct acpi_gen_regaddr1 acpi_addr64_t
unsigned long acpi_fill_madt(unsigned long current)
struct acpi_tcpa acpi_tcpa_t
int get_acpi_table_revision(enum acpi_tables table)
int acpi_create_madt_irqoverride(acpi_madt_irqoverride_t *irqoverride, u8 bus, u8 source, u32 gsirq, u16 flags)
struct acpi_srat acpi_srat_t
int acpi_create_srat_gia_pci(acpi_srat_gia_t *gia, u32 proximity_domain, u16 seg, u8 bus, u8 dev, u8 func, u32 flags)
struct ivhd11_iommu_attr ivhd11_iommu_attr_t
int acpi_create_madt_ioapic(acpi_madt_ioapic_t *ioapic, u8 id, u32 addr, u32 gsi_base)
struct acpi_hmat_sllbi acpi_hmat_sllbi_t
struct acpi_einj_trigger_table acpi_einj_trigger_table_t
struct acpi_hmat_mpda acpi_hmat_mpda_t
u8 get_acpi_fadt_minor_version(void)
struct acpi_lpi_desc_hdr acpi_lpi_desc_hdr_t
void acpi_create_hmat(acpi_hmat_t *hmat, unsigned long(*acpi_fill_hmat)(unsigned long current))
struct acpi_fadt acpi_fadt_t
struct acpi_bert acpi_bert_t
struct acpi_hest_generic_data_v300 acpi_hest_generic_data_v300_t
void acpi_dmar_rmrr_fixup(unsigned long base, unsigned long current)
void acpi_dmar_atsr_fixup(unsigned long base, unsigned long current)
@ COREBOOT_ACPI_ID_CBTABLE
struct acpi_rsdp acpi_rsdp_t
struct acpi_ivrs_ivhd_11 acpi_ivrs_ivhd11_t
unsigned long acpi_create_dmar_rhsa(unsigned long current, u64 base_addr, u32 proximity_domain)
int acpi_create_madt_lapic_nmi(acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu, u16 flags, u8 lint)
struct dmar_andd_entry dmar_andd_entry_t
struct dmar_rmrr_entry dmar_rmrr_entry_t
struct dmar_entry dmar_entry_t
unsigned long acpi_create_dmar_drhd(unsigned long current, u8 flags, u16 segment, u64 bar)
unsigned long write_acpi_tables(unsigned long addr)
struct acpi_crat_header __packed
enum cb_err acpi_soc_get_bert_region(void **region, size_t *length)
struct acpi_dbg2_header acpi_dbg2_header_t
int acpi_create_hmat_mpda(acpi_hmat_mpda_t *mpda, u32 initiator, u32 memory)
void soc_fill_fadt(acpi_fadt_t *fadt)
struct acpi_lpi_flags acpi_lpi_desc_flags_t
struct acpi_hest_generic_data acpi_hest_generic_data_t
unsigned long acpi_fill_lpit(unsigned long current)
void acpi_write_hest(acpi_hest_t *hest, unsigned long(*acpi_fill_hest)(acpi_hest_t *hest))
struct acpi_slit acpi_slit_t
void mainboard_suspend_resume(void)
struct acpi_madt acpi_madt_t
int acpi_create_mcfg_mmconfig(acpi_mcfg_mmconfig_t *mmconfig, u32 base, u16 seg_nr, u8 start, u8 end)
unsigned long acpi_create_dmar_satc(unsigned long current, u8 flags, u16 segment)
struct dev_scope dev_scope_t
struct acpi_cstate acpi_cstate_t
struct acpi_ivrs acpi_ivrs_t
unsigned long acpi_create_dmar_andd(unsigned long current, u8 device_number, const char *device_name)
@ SCOPE_ACPI_NAMESPACE_DEVICE
struct acpi_hpet acpi_hpet_t
struct acpi_lpit acpi_lpit_t
static unsigned long acpi_fill_srat(unsigned long current)
static unsigned long acpi_fill_slit(unsigned long current)
static unsigned long acpi_fill_hest(acpi_hest_t *hest)
static unsigned long acpi_fill_dmar(unsigned long current)
static const PCI_SUBCLASS memory[]
static unsigned long acpi_fill_crat(struct acpi_crat_header *crat, unsigned long current)
int romstage_handoff_is_resume(void)
#define ENV_ROMSTAGE_OR_BEFORE
unsigned long acpi_fill_ivrs(acpi_ivrs_t *ivrs, unsigned long current)
unsigned long long uint64_t
uint16_t base_address_offset
uint16_t namespace_string_length
uint16_t address_size_offset
uint16_t namespace_string_offset
dmar_entry_t structure[0]
set_error_type_t setaddrtable
u64 err_inject[EINJ_PARAM_NUM]
acpi_einj_action_table_t trigger_action[1]
acpi_einj_action_table_t action_table[ACTION_COUNT]
acpi_injection_header_t inj_header
u32 x_firmware_waking_vector_l
u32 x_firmware_waking_vector_h
u32 firmware_waking_vector
acpi_addr_t x_pm2_cnt_blk
acpi_addr_t x_pm1b_cnt_blk
u64 hypervisor_vendor_identity
acpi_addr_t x_pm1a_evt_blk
acpi_addr_t sleep_control_reg
acpi_addr_t x_pm1b_evt_blk
acpi_addr_t sleep_status_reg
acpi_addr_t x_pm1a_cnt_blk
u32 max_section_per_record
cper_timestamp_t timestamp
u32 sw2poll_threshold_win
u32 sw2poll_threshold_val
u32 proximity_domain_initiator
u32 proximity_domain_memory
u32 num_initiator_domains
uint32_t efr_reg_image_low
uint32_t efr_reg_image_high
uint16_t pci_segment_group
struct ivhd11_iommu_attr iommu_attributes
uint16_t capability_offset
uint16_t pci_segment_group
uint32_t iommu_feature_info
uint16_t capability_offset
struct acpi_ivrs_ivhd ivhd
uint64_t counter_frequency
acpi_lpi_desc_hdr_t header
acpi_lpi_desc_flags_t flags
acpi_addr_t residency_counter
acpi_addr_t entry_trigger
uint32_t counter_not_available
u32 worst_case_wakeup_latency_us
u32 arch_context_lost_flags
acpi_addr_t residency_counter_register
u32 residency_counter_frequency_hz
acpi_addr_t usage_counter_register
u16 pci_segment_group_number
u32 entry[MAX_ACPI_TABLES]
u16 specification_revision
u32 global_system_interrupt
u8 proximity_domain_31_8[3]
acpi_vfct_image_hdr_t image_hdr
u64 entry[MAX_ACPI_TABLES]
struct dev_scope::@187 path[0]
uint32_t perf_counter_banks