acpi: Add fill_madt to acpi_ops

Add a new method to acpi_ops to let drivers fill out ACPI MADT.
The code is unused for now until drivers implement the new ops.

TEST: Booted on QEMU sbsa using driver model generated MADT.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
This commit is contained in:
Patrick Rudolph
2024-10-23 15:19:51 +02:00
committed by Tom Rini
parent f36e29e8da
commit 763bad3e1c
5 changed files with 99 additions and 1 deletions

View File

@@ -257,11 +257,11 @@ int acpi_write_madt(struct acpi_ctx *ctx, const struct acpi_writer *entry)
header->revision = ACPI_MADT_REV_ACPI_3_0;
acpi_inc(ctx, sizeof(struct acpi_madt));
/* TODO: Get rid of acpi_fill_madt and use driver model */
current = acpi_fill_madt(madt, ctx);
/* (Re)calculate length and checksum */
header->length = (uintptr_t)current - (uintptr_t)madt;
header->checksum = table_compute_checksum((void *)madt, header->length);
acpi_add_table(ctx, madt);
ctx->current = (void *)madt + madt->header.length;