All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [PATCH v7 8/9] acpi: Move the xsdt pointer to acpi_ctx
Date: Sun, 19 Apr 2020 14:36:56 -0600	[thread overview]
Message-ID: <20200419143624.v7.8.Ib392027f44b50a6cfdad4ce529b8479958cb302d@changeid> (raw)
In-Reply-To: <20200419203657.163143-1-sjg@chromium.org>

Put this in the context along with the other important pointers.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
---

Changes in v7: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 include/dm/acpi.h     |  2 ++
 lib/acpi/acpi_table.c | 10 ++++------
 test/dm/acpi.c        |  5 +++++
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/include/dm/acpi.h b/include/dm/acpi.h
index c6c63b8183..7563a4c60a 100644
--- a/include/dm/acpi.h
+++ b/include/dm/acpi.h
@@ -33,11 +33,13 @@
  * @rsdp: Pointer to the Root System Description Pointer, typically used when
  *	adding a new table. The RSDP holds pointers to the RSDT and XSDT.
  * @rsdt: Pointer to the Root System Description Table
+ * @xsdt: Pointer to the Extended System Description Table
  */
 struct acpi_ctx {
 	void *current;
 	struct acpi_rsdp *rsdp;
 	struct acpi_rsdt *rsdt;
+	struct acpi_xsdt *xsdt;
 };
 
 /**
diff --git a/lib/acpi/acpi_table.c b/lib/acpi/acpi_table.c
index 85193c49e4..9d2b49f8ba 100644
--- a/lib/acpi/acpi_table.c
+++ b/lib/acpi/acpi_table.c
@@ -165,7 +165,7 @@ int acpi_add_table(struct acpi_ctx *ctx, void *table)
 	 * And now the same thing for the XSDT. We use the same index as for
 	 * now we want the XSDT and RSDT to always be in sync in U-Boot
 	 */
-	xsdt = (struct acpi_xsdt *)((uintptr_t)ctx->rsdp->xsdt_address);
+	xsdt = ctx->xsdt;
 
 	/* Add table to the XSDT */
 	xsdt->entry[i] = map_to_sysmem(table);
@@ -236,8 +236,6 @@ static void acpi_write_xsdt(struct acpi_xsdt *xsdt)
 
 void acpi_setup_base_tables(struct acpi_ctx *ctx, void *start)
 {
-	struct acpi_xsdt *xsdt;
-
 	ctx->current = start;
 
 	/* Align ACPI tables to 16 byte */
@@ -248,13 +246,13 @@ void acpi_setup_base_tables(struct acpi_ctx *ctx, void *start)
 	acpi_inc_align(ctx, sizeof(struct acpi_rsdp));
 	ctx->rsdt = ctx->current;
 	acpi_inc_align(ctx, sizeof(struct acpi_rsdt));
-	xsdt = ctx->current;
+	ctx->xsdt = ctx->current;
 	acpi_inc_align(ctx, sizeof(struct acpi_xsdt));
 
 	/* clear all table memory */
 	memset((void *)start, '\0', ctx->current - start);
 
-	acpi_write_rsdp(ctx->rsdp, ctx->rsdt, xsdt);
+	acpi_write_rsdp(ctx->rsdp, ctx->rsdt, ctx->xsdt);
 	acpi_write_rsdt(ctx->rsdt);
-	acpi_write_xsdt(xsdt);
+	acpi_write_xsdt(ctx->xsdt);
 }
diff --git a/test/dm/acpi.c b/test/dm/acpi.c
index beb1b6da73..a29c3cab3e 100644
--- a/test/dm/acpi.c
+++ b/test/dm/acpi.c
@@ -160,6 +160,10 @@ static int dm_test_acpi_write_tables(struct unit_test_state *uts)
 	ut_asserteq(map_to_sysmem(dmar + 1), ctx.rsdt->entry[1]);
 	ut_asserteq(0, ctx.rsdt->entry[2]);
 
+	ut_asserteq(map_to_sysmem(dmar), ctx.xsdt->entry[0]);
+	ut_asserteq(map_to_sysmem(dmar + 1), ctx.xsdt->entry[1]);
+	ut_asserteq(0, ctx.xsdt->entry[2]);
+
 	return 0;
 }
 DM_TEST(dm_test_acpi_write_tables, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
@@ -223,6 +227,7 @@ static int dm_test_acpi_setup_base_tables(struct unit_test_state *uts)
 	ut_assertok(table_compute_checksum(rsdt, sizeof(*rsdt)));
 
 	xsdt = PTR_ALIGN((void *)rsdt + sizeof(*rsdt), 16);
+	ut_asserteq_ptr(xsdt, ctx.xsdt);
 	ut_assertok(memcmp("XSDT", xsdt->header.signature, ACPI_NAME_LEN));
 	ut_asserteq(sizeof(*xsdt), xsdt->header.length);
 	ut_assertok(table_compute_checksum(xsdt, sizeof(*xsdt)));
-- 
2.26.1.301.g55bc3eb7cb9-goog

  parent reply	other threads:[~2020-04-19 20:36 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-19 20:36 [PATCH v7 0/9] dm: Add programmatic generation of ACPI tables (part A) Simon Glass
2020-04-19 20:36 ` [PATCH v7 1/9] acpi: Add a binding for ACPI settings in the device tree Simon Glass
2020-04-21 12:25   ` Bin Meng
2020-04-21 12:29     ` Andy Shevchenko
2020-04-21 13:07   ` Antwort: " Wolfgang Wallner
2020-04-21 14:40     ` Andy Shevchenko
2020-04-21 14:56     ` Antwort: Re: " Wolfgang Wallner
2020-04-19 20:36 ` [PATCH v7 2/9] acpi: Add a method to write tables for a device Simon Glass
2020-04-19 20:36 ` [PATCH v7 3/9] acpi: Convert part of acpi_table to use acpi_ctx Simon Glass
2020-04-19 20:36 ` [PATCH v7 4/9] x86: Allow devices to write ACPI tables Simon Glass
2020-04-19 20:36 ` [PATCH v7 5/9] acpi: Drop code for missing XSDT from acpi_write_rsdp() Simon Glass
2020-04-19 20:36 ` [PATCH v7 6/9] acpi: Move acpi_add_table() to generic code Simon Glass
2020-04-19 20:36 ` [PATCH v7 7/9] acpi: Put table-setup code in its own function Simon Glass
2020-04-23  9:38   ` Bin Meng
2020-04-26 19:45     ` Simon Glass
2020-04-27  6:36     ` Antwort: " Wolfgang Wallner
2020-04-27  7:10       ` Bin Meng
2020-04-19 20:36 ` Simon Glass [this message]
2020-04-19 20:36 ` [PATCH v7 9/9] acpi: Add an acpi command Simon Glass
2020-04-21 17:42 ` [PATCH v7 0/9] dm: Add programmatic generation of ACPI tables (part A) Andy Shevchenko
2020-04-21 21:37   ` Simon Glass
2020-04-23  9:46     ` Bin Meng
2020-04-23  9:58       ` Bin Meng
2020-04-27  5:58         ` Bin Meng
2020-04-27 17:02           ` Simon Glass
2020-04-29 18:09 ` Heinrich Schuchardt
2020-05-01 13:14   ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200419143624.v7.8.Ib392027f44b50a6cfdad4ce529b8479958cb302d@changeid \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.