[PATCH v3 07/18] bootstd: Allow storing x86 setup information

Simon Glass sjg at chromium.org
Wed Jul 12 17:04:36 CEST 2023


On x86 boards Linux uses a block of binary data to provide information
about the command line, memory map, etc. Provide a way to store this in
the bootflow so it can be passed on to the OS.

No attempt is made to generalise the code, since other archs don't need
this information. The field is present always, though, to avoid needing
accessors or #ifdefs when building code on other archs.

Signed-off-by: Simon Glass <sjg at chromium.org>
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
---

(no changes since v2)

Changes in v2:
- Explain why the setup information is not behind an #ifdef

 cmd/bootflow.c     | 2 ++
 include/bootflow.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/cmd/bootflow.c b/cmd/bootflow.c
index f33db7be5f2e..bf30087c7c4e 100644
--- a/cmd/bootflow.c
+++ b/cmd/bootflow.c
@@ -336,6 +336,8 @@ static int do_bootflow_info(struct cmd_tbl *cmdtp, int flag, int argc,
 	else
 		puts("(none)");
 	putc('\n');
+	if (bflow->x86_setup)
+		printf("X86 setup: %p\n", bflow->x86_setup);
 	printf("Logo:      %s\n", bflow->logo ?
 	       simple_xtoa((ulong)map_to_sysmem(bflow->logo)) : "(none)");
 	if (bflow->logo) {
diff --git a/include/bootflow.h b/include/bootflow.h
index a1c16ab93b75..f263173c4da5 100644
--- a/include/bootflow.h
+++ b/include/bootflow.h
@@ -82,6 +82,7 @@ enum bootflow_flags_t {
  * @fdt_addr: Address of loaded fdt
  * @flags: Flags for the bootflow (see enum bootflow_flags_t)
  * @cmdline: OS command line, or NULL if not known (allocated)
+ * @x86_setup: Pointer to x86 setup block inside @buf, NULL if not present
  */
 struct bootflow {
 	struct list_head bm_node;
@@ -106,6 +107,7 @@ struct bootflow {
 	ulong fdt_addr;
 	int flags;
 	char *cmdline;
+	char *x86_setup;
 };
 
 /**
-- 
2.41.0.390.g38632f3daf-goog



More information about the U-Boot mailing list