summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-07-12 18:04:36 +0300
committerBin Meng <bmeng@tinylab.org>2023-07-16 18:13:17 +0300
commit43b6fa9c1464e0918004dc03be03acd3c40bcc25 (patch)
tree6b61cdb82de189a3db9a6a31be606334fd274d2e
parentd42243fe21c8847cd5c6db4e11b2aee660448451 (diff)
downloadu-boot-43b6fa9c1464e0918004dc03be03acd3c40bcc25.tar.xz
bootstd: Allow storing x86 setup information
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@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
-rw-r--r--cmd/bootflow.c2
-rw-r--r--include/bootflow.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/cmd/bootflow.c b/cmd/bootflow.c
index f33db7be5f..bf30087c7c 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 a1c16ab93b..f263173c4d 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;
};
/**