[U-Boot] [PATCH 2/2] sysboot: Call bootm booti bootz then go on label_boot
As do_bootm/do_booti/do_bootz will not return if the boot succeded, always call them if enable by the config. Also add a fallback to go if the binary is a raw one. Signed-off-by: Emmanuel Vadot --- cmd/pxe.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cmd/pxe.c b/cmd/pxe.c index 7043ad11fd..0ca6a964bc 100644 --- a/cmd/pxe.c +++ b/cmd/pxe.c @@ -796,12 +796,14 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) do_bootm(cmdtp, 0, bootm_argc, bootm_argv); #ifdef CONFIG_CMD_BOOTI /* Try booting an AArch64 Linux kernel image */ - else - do_booti(cmdtp, 0, bootm_argc, bootm_argv); -#elif defined(CONFIG_CMD_BOOTZ) + do_booti(cmdtp, 0, bootm_argc, bootm_argv); +#endif +#if defined(CONFIG_CMD_BOOTZ) /* Try booting a Image */ - else - do_bootz(cmdtp, 0, bootm_argc, bootm_argv); + do_bootz(cmdtp, 0, bootm_argc, bootm_argv); +#endif +#if defined(CONFIG_CMD_GO) + do_go(cmdtp, 0, bootm_argc, bootm_argv); #endif unmap_sysmem(buf); return 1; -- 2.15.1 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 2/2] sysboot: Call bootm booti bootz then go on label_boot
Hi Emmanuel, On 2 January 2018 at 14:27, Emmanuel Vadot wrote: > As do_bootm/do_booti/do_bootz will not return if the boot succeded, always > call them if enable by the config. > Also add a fallback to go if the binary is a raw one. Do we not know which type of binary it is? It seems like we should have some error checking here. > > Signed-off-by: Emmanuel Vadot > --- > cmd/pxe.c | 12 +++- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/cmd/pxe.c b/cmd/pxe.c > index 7043ad11fd..0ca6a964bc 100644 > --- a/cmd/pxe.c > +++ b/cmd/pxe.c > @@ -796,12 +796,14 @@ static int label_boot(cmd_tbl_t *cmdtp, struct > pxe_label *label) > do_bootm(cmdtp, 0, bootm_argc, bootm_argv); > #ifdef CONFIG_CMD_BOOTI > /* Try booting an AArch64 Linux kernel image */ > - else > - do_booti(cmdtp, 0, bootm_argc, bootm_argv); > -#elif defined(CONFIG_CMD_BOOTZ) > + do_booti(cmdtp, 0, bootm_argc, bootm_argv); > +#endif > +#if defined(CONFIG_CMD_BOOTZ) > /* Try booting a Image */ > - else > - do_bootz(cmdtp, 0, bootm_argc, bootm_argv); > + do_bootz(cmdtp, 0, bootm_argc, bootm_argv); > +#endif > +#if defined(CONFIG_CMD_GO) > + do_go(cmdtp, 0, bootm_argc, bootm_argv); > #endif > unmap_sysmem(buf); > return 1; > -- > 2.15.1 > Regards, Simon ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 2/2] sysboot: Call bootm booti bootz then go on label_boot
On Sun, 7 Jan 2018 21:39:01 -0700 Simon Glass wrote: > Hi Emmanuel, > > On 2 January 2018 at 14:27, Emmanuel Vadot wrote: > > As do_bootm/do_booti/do_bootz will not return if the boot succeded, always > > call them if enable by the config. > > Also add a fallback to go if the binary is a raw one. > > Do we not know which type of binary it is? For which case ? > It seems like we should have some error checking here. Each bootX function check the header/magic/etc ... What kind of error checking do you want to add ? > > > > Signed-off-by: Emmanuel Vadot > > --- > > cmd/pxe.c | 12 +++- > > 1 file changed, 7 insertions(+), 5 deletions(-) > > > > diff --git a/cmd/pxe.c b/cmd/pxe.c > > index 7043ad11fd..0ca6a964bc 100644 > > --- a/cmd/pxe.c > > +++ b/cmd/pxe.c > > @@ -796,12 +796,14 @@ static int label_boot(cmd_tbl_t *cmdtp, struct > > pxe_label *label) > > do_bootm(cmdtp, 0, bootm_argc, bootm_argv); > > #ifdef CONFIG_CMD_BOOTI > > /* Try booting an AArch64 Linux kernel image */ > > - else > > - do_booti(cmdtp, 0, bootm_argc, bootm_argv); > > -#elif defined(CONFIG_CMD_BOOTZ) > > + do_booti(cmdtp, 0, bootm_argc, bootm_argv); > > +#endif > > +#if defined(CONFIG_CMD_BOOTZ) > > /* Try booting a Image */ > > - else > > - do_bootz(cmdtp, 0, bootm_argc, bootm_argv); > > + do_bootz(cmdtp, 0, bootm_argc, bootm_argv); > > +#endif > > +#if defined(CONFIG_CMD_GO) > > + do_go(cmdtp, 0, bootm_argc, bootm_argv); > > #endif > > unmap_sysmem(buf); > > return 1; > > -- > > 2.15.1 > > > > Regards, > Simon -- Emmanuel Vadot ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 2/2] sysboot: Call bootm booti bootz then go on label_boot
Hi Emmanuel, On 8 January 2018 at 03:05, Emmanuel Vadot wrote: > On Sun, 7 Jan 2018 21:39:01 -0700 > Simon Glass wrote: > >> Hi Emmanuel, >> >> On 2 January 2018 at 14:27, Emmanuel Vadot wrote: >> > As do_bootm/do_booti/do_bootz will not return if the boot succeded, always >> > call them if enable by the config. >> > Also add a fallback to go if the binary is a raw one. >> >> Do we not know which type of binary it is? > > For which case ? > >> It seems like we should have some error checking here. > > Each bootX function check the header/magic/etc ... > What kind of error checking do you want to add ? Well, it looks like you have a fallback so that if the image does not pass any of the header/magic checks you just jump to it,. Won't that crash if (e.g.) someone uses a valid image but one for which support is turned off in the U-Boot build? I'm not sure of the solution, but perhaps we should have a CONFIG option to enable this fallback? > >> > >> > Signed-off-by: Emmanuel Vadot >> > --- >> > cmd/pxe.c | 12 +++- >> > 1 file changed, 7 insertions(+), 5 deletions(-) >> > >> > diff --git a/cmd/pxe.c b/cmd/pxe.c >> > index 7043ad11fd..0ca6a964bc 100644 >> > --- a/cmd/pxe.c >> > +++ b/cmd/pxe.c >> > @@ -796,12 +796,14 @@ static int label_boot(cmd_tbl_t *cmdtp, struct >> > pxe_label *label) >> > do_bootm(cmdtp, 0, bootm_argc, bootm_argv); >> > #ifdef CONFIG_CMD_BOOTI >> > /* Try booting an AArch64 Linux kernel image */ >> > - else >> > - do_booti(cmdtp, 0, bootm_argc, bootm_argv); >> > -#elif defined(CONFIG_CMD_BOOTZ) >> > + do_booti(cmdtp, 0, bootm_argc, bootm_argv); >> > +#endif >> > +#if defined(CONFIG_CMD_BOOTZ) >> > /* Try booting a Image */ >> > - else >> > - do_bootz(cmdtp, 0, bootm_argc, bootm_argv); >> > + do_bootz(cmdtp, 0, bootm_argc, bootm_argv); >> > +#endif >> > +#if defined(CONFIG_CMD_GO) >> > + do_go(cmdtp, 0, bootm_argc, bootm_argv); >> > #endif >> > unmap_sysmem(buf); >> > return 1; >> > -- >> > 2.15.1 Regards, Simon ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot