From 2e7e2d978bb2cc29b8b0335d46b3ed90ed36bbcc Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Thu, 3 Mar 2022 22:28:27 +0100 Subject: coreboot_tables.c: Expose the ACPI RSDP The ACPI RSDP can only be found in: - legacy BIOS region - via UEFI service On some systems like ARM that legacy BIOS region is not an option, so to avoid needing UEFI it makes sense to expose the RSDP via a coreboot table entry. This also adds the respective unit test. Change-Id: I591312a2c48f0cbbb03b2787e4b365e9c932afff Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/c/coreboot/+/62573 Reviewed-by: Lance Zhao Reviewed-by: Angel Pons Reviewed-by: Nico Huber Reviewed-by: Tim Wawrzynczak Tested-by: build bot (Jenkins) --- src/commonlib/include/commonlib/coreboot_tables.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/commonlib') diff --git a/src/commonlib/include/commonlib/coreboot_tables.h b/src/commonlib/include/commonlib/coreboot_tables.h index 91da8e01fa..01b12f3a48 100644 --- a/src/commonlib/include/commonlib/coreboot_tables.h +++ b/src/commonlib/include/commonlib/coreboot_tables.h @@ -85,6 +85,7 @@ enum { LB_TAG_BOARD_CONFIG = 0x0040, LB_TAG_ACPI_CNVS = 0x0041, LB_TAG_TYPE_C_INFO = 0x0042, + LB_TAG_ACPI_RSDP = 0x0043, /* The following options are CMOS-related */ LB_TAG_CMOS_OPTION_TABLE = 0x00c8, LB_TAG_OPTION = 0x00c9, @@ -574,4 +575,15 @@ struct lb_tpm_physical_presence { uint8_t tpm_version; /* 1: TPM1.2, 2: TPM2.0 */ uint8_t ppi_version; /* BCD encoded */ } __packed; + + +/* + * Handoff the ACPI RSDP + */ +struct lb_acpi_rsdp { + uint32_t tag; + uint32_t size; + struct lb_uint64 rsdp_pointer; /* Address of the ACPI RSDP */ +}; + #endif -- cgit v1.2.3