acpi/acpi.c: Fix printing all ACPI tables

Loop over tables in xsdt instead of maintaining a list of local
variables to loop over. Some tables were not generated directly in the
write_acpi_tables function, like IVRS or SRAT. Now those tables are
printed too and the code is simpler.

Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: Ie0a6e2b6e2b72b5c8f59e730bea9b51007b507b6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75860
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Marvin Drees <marvin.drees@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Arthur Heymans 2023-06-15 17:04:16 +02:00 committed by Lean Sheng Tan
parent b5f6320c69
commit 3e523b495c
1 changed files with 2 additions and 6 deletions

View File

@ -2136,12 +2136,8 @@ unsigned long write_acpi_tables(unsigned long start)
if (CONFIG(DEBUG_ACPICA_COMPATIBLE)) { if (CONFIG(DEBUG_ACPICA_COMPATIBLE)) {
printk(BIOS_DEBUG, "Printing ACPI tables in ACPICA compatible format\n"); printk(BIOS_DEBUG, "Printing ACPI tables in ACPICA compatible format\n");
void *acpi_tables[] = { rsdt, xsdt, fadt, facs, slic, ssdt, dsdt, for (size_t i = 0; xsdt->entry[i] != 0; i++) {
mcfg, tcpa, tpm2, madt, lpit, bert }; acpidump_print((void *)(uintptr_t)xsdt->entry[i]);
for (size_t i = 0; i < ARRAY_SIZE(acpi_tables); i++) {
if (acpi_tables[i] == NULL)
continue;
acpidump_print(acpi_tables[i]);
} }
printk(BIOS_DEBUG, "Done printing ACPI tables in ACPICA compatible format\n"); printk(BIOS_DEBUG, "Done printing ACPI tables in ACPICA compatible format\n");
} }