diff options
| author | Dzmitry Sankouski <[email protected]> | 2022-02-22 21:49:52 +0300 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2022-04-04 14:53:26 -0400 |
| commit | 12a3e1ada06c702c403cf1eebb063ef7a34688cd (patch) | |
| tree | d58972054d39b90b0b0a92d5c9b093d0547264a6 /include/init.h | |
| parent | 5c9b420ada3b4f2a08da4789571f0ea373881565 (diff) | |
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 <[email protected]>
Cc: Tom Rini <[email protected]>
Diffstat (limited to 'include/init.h')
| -rw-r--r-- | include/init.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/init.h b/include/init.h index 74496500d29..7b8f62c1218 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 * |
