summaryrefslogtreecommitdiff
path: root/src/acpi
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2022-03-03 22:28:27 +0100
committerFelix Held <felix-coreboot@felixheld.de>2022-03-09 14:21:01 +0000
commit2e7e2d978bb2cc29b8b0335d46b3ed90ed36bbcc (patch)
tree8a22a8eac3c14bcfa9645e0ff267b619defa8ae7 /src/acpi
parent63c6d814ce0511d95d4f3ce57bce64743bc084d8 (diff)
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 <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/62573 Reviewed-by: Lance Zhao Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/acpi')
-rw-r--r--src/acpi/acpi.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c
index e03c7f4913..78d5f07045 100644
--- a/src/acpi/acpi.c
+++ b/src/acpi/acpi.c
@@ -1582,6 +1582,13 @@ void preload_acpi_dsdt(void)
cbfs_preload(file);
}
+static uintptr_t coreboot_rsdp;
+
+uintptr_t get_coreboot_rsdp(void)
+{
+ return coreboot_rsdp;
+}
+
unsigned long write_acpi_tables(unsigned long start)
{
unsigned long current;
@@ -1689,6 +1696,7 @@ unsigned long write_acpi_tables(unsigned long start)
/* We need at least an RSDP and an RSDT Table */
rsdp = (acpi_rsdp_t *) current;
+ coreboot_rsdp = (uintptr_t)rsdp;
current += sizeof(acpi_rsdp_t);
current = acpi_align_current(current);
rsdt = (acpi_rsdt_t *) current;