aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt2023-12-16 09:11:58 +0100
committerSimon Glass2024-01-07 13:48:30 -0700
commitc5924b1cd3a6eb980cea59e5f663bb614686b55d (patch)
treebf4eee9ad1be276165305283fc1df356b0b3fd7f
parenta083ae71e085535e2caa0fd5de991bddced6dc94 (diff)
cmd: acpi: fix listing DSDT and FACS
If field X_FIRMWARE_CTRL is filled, field FIRMWARE must be ignored. If field X_DSDT is filled, field DSDT must be ignored. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org> Rebased on -next to use nomap: Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--cmd/acpi.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/cmd/acpi.c b/cmd/acpi.c
index 79e9335b5db..1eca7fe7734 100644
--- a/cmd/acpi.c
+++ b/cmd/acpi.c
@@ -53,9 +53,13 @@ static int dump_table_name(const char *sig)
static void list_fadt(struct acpi_fadt *fadt)
{
- if (fadt->dsdt)
+ if (fadt->header.revision >= 3 && fadt->x_dsdt)
+ dump_hdr(nomap_sysmem(fadt->x_dsdt, 0));
+ else if (fadt->dsdt)
dump_hdr(nomap_sysmem(fadt->dsdt, 0));
- if (fadt->firmware_ctrl)
+ if (fadt->header.revision >= 3 && fadt->x_firmware_ctrl)
+ dump_hdr(nomap_sysmem(fadt->x_firmware_ctrl, 0));
+ else if (fadt->firmware_ctrl)
dump_hdr(nomap_sysmem(fadt->firmware_ctrl, 0));
}