mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 18:04:48 +00:00
spl: Jump to image at end of board_init_r
spl_board_prepare_for_boot() is not called before jumping/invoking atf, optee, opensbi or linux images. Jump to image at the end of board_init_r() to fix this. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a60d9686f2
commit
6826c432e3
1 changed files with 7 additions and 5 deletions
|
@ -643,6 +643,8 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
|
|||
BOOT_DEVICE_NONE,
|
||||
BOOT_DEVICE_NONE,
|
||||
};
|
||||
typedef void __noreturn (*jump_to_image_t)(struct spl_image_info *);
|
||||
jump_to_image_t jump_to_image = &jump_to_image_no_args;
|
||||
struct spl_image_info spl_image;
|
||||
int ret, os;
|
||||
|
||||
|
@ -731,20 +733,20 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
|
|||
} else if (CONFIG_IS_ENABLED(ATF) && os == IH_OS_ARM_TRUSTED_FIRMWARE) {
|
||||
debug("Jumping to U-Boot via ARM Trusted Firmware\n");
|
||||
spl_fixup_fdt(spl_image_fdt_addr(&spl_image));
|
||||
spl_invoke_atf(&spl_image);
|
||||
jump_to_image = &spl_invoke_atf;
|
||||
} else if (CONFIG_IS_ENABLED(OPTEE_IMAGE) && os == IH_OS_TEE) {
|
||||
debug("Jumping to U-Boot via OP-TEE\n");
|
||||
spl_board_prepare_for_optee(spl_image_fdt_addr(&spl_image));
|
||||
jump_to_image_optee(&spl_image);
|
||||
jump_to_image = &jump_to_image_optee;
|
||||
} else if (CONFIG_IS_ENABLED(OPENSBI) && os == IH_OS_OPENSBI) {
|
||||
debug("Jumping to U-Boot via RISC-V OpenSBI\n");
|
||||
spl_invoke_opensbi(&spl_image);
|
||||
jump_to_image = &spl_invoke_opensbi;
|
||||
} else if (CONFIG_IS_ENABLED(OS_BOOT) && os == IH_OS_LINUX) {
|
||||
debug("Jumping to Linux\n");
|
||||
if (IS_ENABLED(CONFIG_SPL_OS_BOOT))
|
||||
spl_fixup_fdt((void *)SPL_PAYLOAD_ARGS_ADDR);
|
||||
spl_board_prepare_for_linux();
|
||||
jump_to_image_linux(&spl_image);
|
||||
jump_to_image = &jump_to_image_linux;
|
||||
} else {
|
||||
debug("Unsupported OS image.. Jumping nevertheless..\n");
|
||||
}
|
||||
|
@ -784,7 +786,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
|
|||
}
|
||||
|
||||
spl_board_prepare_for_boot();
|
||||
jump_to_image_no_args(&spl_image);
|
||||
jump_to_image(&spl_image);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue