summaryrefslogtreecommitdiff
path: root/include/init.h
diff options
context:
space:
mode:
authorDzmitry Sankouski <dsankouski@gmail.com>2022-02-22 21:49:52 +0300
committerTom Rini <trini@konsulko.com>2022-04-04 21:53:26 +0300
commit12a3e1ada06c702c403cf1eebb063ef7a34688cd (patch)
treed58972054d39b90b0b0a92d5c9b093d0547264a6 /include/init.h
parent5c9b420ada3b4f2a08da4789571f0ea373881565 (diff)
downloadu-boot-12a3e1ada06c702c403cf1eebb063ef7a34688cd.tar.xz
arm: init: save previous bootloader data
When u-boot is used as a chain-loaded bootloader (replacing OS kernel), previous bootloader leaves data in RAM, that can be reused. For example, on recent arm linux system, when chainloading u-boot, there are initramfs and fdt in RAM prepared for OS booting. Initramfs may be modified to store u-boot's payload, thus providing the ability to use chainloaded u-boot to boot OS without any storage support. Two config options added: - SAVE_PREV_BL_INITRAMFS_START_ADDR saves initramfs start address to 'prevbl_initrd_start_addr' environment variable - SAVE_PREV_BL_FDT_ADDR saves fdt address to 'prevbl_fdt_addr' environment variable Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com> Cc: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'include/init.h')
-rw-r--r--include/init.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/init.h b/include/init.h
index 74496500d2..7b8f62c121 100644
--- a/include/init.h
+++ b/include/init.h
@@ -155,6 +155,19 @@ int arch_setup_bdinfo(void);
*/
int setup_bdinfo(void);
+#if defined(CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR) || \
+defined(CONFIG_SAVE_PREV_BL_FDT_ADDR)
+/**
+ * save_prev_bl_data - Save prev bl data in env vars.
+ *
+ * When u-boot is chain-loaded, save previous bootloader data,
+ * like initramfs address to environment variables.
+ *
+ * Return: 0 if ok; -ENODATA on error
+ */
+int save_prev_bl_data(void);
+#endif
+
/**
* cpu_secondary_init_r() - CPU-specific secondary initialization
*