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>
This commit is contained in:
committed by
Felix Held
parent
63c6d814ce
commit
2e7e2d978b
@ -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;
|
||||
|
Reference in New Issue
Block a user