diff options
| author | Tom Rini <[email protected]> | 2024-03-28 08:54:34 -0400 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2024-03-28 08:54:34 -0400 |
| commit | 24eb391e1ae4b8886e9db4f71417b44030325eb9 (patch) | |
| tree | 0fb5fd1d61e5ac3014212f16ba8998efdf1eb7ff /include | |
| parent | ab8d9ca3044acf51d8ff3bf3c4718c48f30ad606 (diff) | |
| parent | 6eca28b61af1835e70a6feb86f86a0b18b1708c6 (diff) | |
Merge tag 'acpi-next-20240328' of https://source.denx.de/u-boot/custodians/u-boot-efi into next
Pull request acpi-next-20240328
ACPI:
* rename fields rename aslc_id, aslc_revision to match ACPI specification
* remove duplicate declaration of acpi_fill_header()
* document fields of HETP table
* MAINTAINERS: add include/acpi/ to ACPI
SMBIOS:
* provide wake-up type in SMBIOS table
* display wake-up type in smbios command
Diffstat (limited to 'include')
| -rw-r--r-- | include/acpi/acpi_table.h | 95 | ||||
| -rw-r--r-- | include/smbios.h | 27 |
2 files changed, 87 insertions, 35 deletions
diff --git a/include/acpi/acpi_table.h b/include/acpi/acpi_table.h index e67562ef654..15fd61a51d7 100644 --- a/include/acpi/acpi_table.h +++ b/include/acpi/acpi_table.h @@ -57,17 +57,41 @@ struct __packed acpi_table_header { char oem_id[6]; /* OEM identification */ char oem_table_id[8]; /* OEM table identification */ u32 oem_revision; /* OEM revision number */ - char aslc_id[4]; /* ASL compiler vendor ID */ - u32 aslc_revision; /* ASL compiler revision number */ + char creator_id[4]; /* ASL compiler vendor ID */ + u32 creator_revision; /* ASL compiler revision number */ }; +/** + * struct acpi_gen_regaddr - generic address structure (GAS) + */ struct acpi_gen_regaddr { - u8 space_id; /* Address space ID */ - u8 bit_width; /* Register size in bits */ - u8 bit_offset; /* Register bit offset */ - u8 access_size; /* Access size */ - u32 addrl; /* Register address, low 32 bits */ - u32 addrh; /* Register address, high 32 bits */ + /** + * @space_id: address space ID + * + * See table "Operation Region Address Space Identifiers" in the ACPI + * specification. + */ + u8 space_id; + /** @bit_width: size in bits of the register */ + u8 bit_width; + /** @bit_offset: bit offset of the register */ + u8 bit_offset; + /** + * @access_size: access size + * + * * 0 - undefined + * * 1 - byte access + * * 2 - word (2 bytes) access + * * 3 - Dword (4 bytes) access + * * 4 - Qword (8 bytes) access + * + * See ACPI_ACCESS_SIZE_*_ACCESS macros. + */ + u8 access_size; + /** @addrl: register address, low 32 bits */ + u32 addrl; + /** @addrh: register address, high 32 bits */ + u32 addrh; }; /* A maximum number of 32 ACPI tables ought to be enough for now */ @@ -85,15 +109,26 @@ struct __packed acpi_xsdt { u64 entry[MAX_ACPI_TABLES]; }; -/* HPET timers */ -struct __packed acpi_hpet { +/** + * struct acpi_hpet: High Precision Event Timers (HETP) + * + * The structure is defined in the + * "IA-PC HPET (High Precision Event Timers) Specification", rev 1.0a, Oct 2004 + */ +struct acpi_hpet { + /** @header: table header */ struct acpi_table_header header; + /** @id hardware ID of Event Timer Block */ u32 id; + /** @addr: address of Event Timer Block */ struct acpi_gen_regaddr addr; + /** @number: HPET sequence number */ u8 number; + /** @min_tick: minimum clock ticks without lost interrupts */ u16 min_tick; + /** @attributes: page protection and OEM atttribute */ u8 attributes; -}; +} __packed; struct __packed acpi_tpm2 { struct acpi_table_header header; @@ -364,7 +399,7 @@ enum { * This holds information about the Generic Interrupt Controller (GIC) CPU * interface. See ACPI Spec v6.3 section 5.2.12.14 */ -struct __packed acpi_madr_gicc { +struct acpi_madr_gicc { u8 type; u8 length; u16 reserved; @@ -383,7 +418,7 @@ struct __packed acpi_madr_gicc { u8 efficiency; u8 reserved2; u16 spi_overflow_irq; -}; +} __packed; /** * struct __packed acpi_madr_gicc - GIC distributor (type 0xc) @@ -391,7 +426,7 @@ struct __packed acpi_madr_gicc { * This holds information about the Generic Interrupt Controller (GIC) * Distributor interface. See ACPI Spec v6.3 section 5.2.12.15 */ -struct __packed acpi_madr_gicd { +struct acpi_madr_gicd { u8 type; u8 length; u16 reserved; @@ -400,7 +435,7 @@ struct __packed acpi_madr_gicd { u32 reserved2; u8 gic_version; u8 reserved3[3]; -}; +} __packed; /* MCFG (PCI Express MMIO config space BAR description table) */ struct acpi_mcfg { @@ -653,7 +688,7 @@ struct __packed acpi_spcr { * * See ACPI Spec v6.3 section 5.2.24 for details */ -struct __packed acpi_gtdt { +struct acpi_gtdt { struct acpi_table_header header; u64 cnt_ctrl_base; u32 reserved0; @@ -670,7 +705,7 @@ struct __packed acpi_gtdt { u32 plat_timer_offset; u32 virt_el2_gsiv; u32 virt_el2_flags; -}; +} __packed; /** * struct acpi_bgrt - Boot Graphics Resource Table (BGRT) @@ -680,7 +715,7 @@ struct __packed acpi_gtdt { * * See ACPI Spec v6.3 section 5.2.22 for details */ -struct __packed acpi_bgrt { +struct acpi_bgrt { struct acpi_table_header header; u16 version; u8 status; @@ -688,7 +723,7 @@ struct __packed acpi_bgrt { u64 addr; u32 offset_x; u32 offset_y; -}; +} __packed; /* Types for PPTT */ #define ACPI_PPTT_TYPE_PROC 0 @@ -709,22 +744,22 @@ struct __packed acpi_bgrt { * * See ACPI Spec v6.3 section 5.2.29 for details */ -struct __packed acpi_pptt_header { +struct acpi_pptt_header { u8 type; /* ACPI_PPTT_TYPE_... */ u8 length; u16 reserved; -}; +} __packed; /** * struct acpi_pptt_proc - a processor as described by PPTT */ -struct __packed acpi_pptt_proc { +struct acpi_pptt_proc { struct acpi_pptt_header hdr; u32 flags; u32 parent; u32 proc_id; u32 num_resources; -}; +} __packed; /* Cache flags for acpi_pptt_cache */ #define ACPI_PPTT_SIZE_VALID BIT(0) @@ -751,7 +786,7 @@ struct __packed acpi_pptt_proc { /** * struct acpi_pptt_cache - a cache as described by PPTT */ -struct __packed acpi_pptt_cache { +struct acpi_pptt_cache { struct acpi_pptt_header hdr; u32 flags; u32 next_cache_level; @@ -760,7 +795,7 @@ struct __packed acpi_pptt_cache { u8 assoc; u8 attributes; u16 line_size; -}; +} __packed; /* Tables defined/reserved by ACPI and generated by U-Boot */ enum acpi_tables { @@ -829,16 +864,6 @@ void acpi_create_dbg2(struct acpi_dbg2_header *dbg2, const char *device_path); /** - * acpi_fill_header() - Set up a new table header - * - * This sets all fields except length, revision, checksum and aslc_revision - * - * @header: ACPI header to update - * @signature: Table signature to use (4 characters) - */ -void acpi_fill_header(struct acpi_table_header *header, char *signature); - -/** * acpi_align() - Align the ACPI output pointer to a 16-byte boundary * * @ctx: ACPI context diff --git a/include/smbios.h b/include/smbios.h index 3df8827b60d..a4fda9df7bd 100644 --- a/include/smbios.h +++ b/include/smbios.h @@ -108,6 +108,33 @@ struct __packed smbios_type0 { char eos[SMBIOS_STRUCT_EOS_BYTES]; }; +/** + * enum smbios_wakeup_type - wake-up type + * + * These constants are used for the Wake-Up Type field in the SMBIOS + * System Information (Type 1) structure. + */ +enum smbios_wakeup_type { + /** @SMBIOS_WAKEUP_TYPE_RESERVED: Reserved */ + SMBIOS_WAKEUP_TYPE_RESERVED, + /** @SMBIOS_WAKEUP_TYPE_OTHER: Other */ + SMBIOS_WAKEUP_TYPE_OTHER, + /** @SMBIOS_WAKEUP_TYPE_UNKNOWN: Unknown */ + SMBIOS_WAKEUP_TYPE_UNKNOWN, + /** @SMBIOS_WAKEUP_TYPE_APM_TIMER: APM Timer */ + SMBIOS_WAKEUP_TYPE_APM_TIMER, + /** @SMBIOS_WAKEUP_TYPE_MODEM_RING: Modem Ring */ + SMBIOS_WAKEUP_TYPE_MODEM_RING, + /** @SMBIOS_WAKEUP_TYPE_LAN_REMOTE: LAN Remote */ + SMBIOS_WAKEUP_TYPE_LAN_REMOTE, + /** @SMBIOS_WAKEUP_TYPE_POWER_SWITCH: Power Switch */ + SMBIOS_WAKEUP_TYPE_POWER_SWITCH, + /** @SMBIOS_WAKEUP_TYPE_PCI_PME: PCI PME# */ + SMBIOS_WAKEUP_TYPE_PCI_PME, + /** @SMBIOS_WAKEUP_TYPE_AC_POWER_RESTORED: AC Power Restored */ + SMBIOS_WAKEUP_TYPE_AC_POWER_RESTORED, +}; + struct __packed smbios_type1 { u8 type; u8 length; |
