Hi Chanho, On Mon, 28 Aug 2023 at 03:46, Chanho Park <[email protected]> wrote: > > 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. >
Please fix your implementation instead. You must jump to the OS at the end of this function and not before. In fact I have a patch to move bootstage later in this function! > Signed-off-by: Chanho Park <[email protected]> > --- > 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 > Regards, Simon

