For IH_OS_OPENSBI and IH_OS_LINUX, there is no chance to stash bootstare record because it will not return after jumping to the image. Hence, this patch moves the location of bootstage_stash before jumping to image.
Signed-off-by: Chanho Park <chanho61.p...@samsung.com> --- common/spl/spl.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/common/spl/spl.c b/common/spl/spl.c index 0062f3f45d9a..364d439f65e2 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -850,6 +850,14 @@ void board_init_r(gd_t *dummy1, ulong dummy2) ret); } + bootstage_mark_name(get_bootstage_id(false), "end phase"); +#ifdef CONFIG_BOOTSTAGE_STASH + ret = bootstage_stash((void *)CONFIG_BOOTSTAGE_STASH_ADDR, + CONFIG_BOOTSTAGE_STASH_SIZE); + if (ret) + debug("Failed to stash bootstage: err=%d\n", ret); +#endif + switch (spl_image.os) { case IH_OS_U_BOOT: debug("Jumping to %s...\n", spl_phase_name(spl_next_phase())); @@ -890,13 +898,6 @@ void board_init_r(gd_t *dummy1, ulong dummy2) debug("SPL malloc() used 0x%lx bytes (%ld KB)\n", gd->malloc_ptr, gd->malloc_ptr / 1024); #endif - bootstage_mark_name(get_bootstage_id(false), "end phase"); -#ifdef CONFIG_BOOTSTAGE_STASH - ret = bootstage_stash((void *)CONFIG_BOOTSTAGE_STASH_ADDR, - CONFIG_BOOTSTAGE_STASH_SIZE); - if (ret) - debug("Failed to stash bootstage: err=%d\n", ret); -#endif if (IS_ENABLED(CONFIG_SPL_VIDEO_REMOVE)) { struct udevice *dev; -- 2.39.2