[U-Boot] [PATCH 2/2] sysboot: Call bootm booti bootz then go on label_boot
Simon Glass
sjg at chromium.org
Mon Jan 8 22:11:26 UTC 2018
Hi Emmanuel,
On 8 January 2018 at 03:05, Emmanuel Vadot <manu at bidouilliste.com> wrote:
> On Sun, 7 Jan 2018 21:39:01 -0700
> Simon Glass <sjg at chromium.org> wrote:
>
>> Hi Emmanuel,
>>
>> On 2 January 2018 at 14:27, Emmanuel Vadot <manu at freebsd.org> 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 <manu at freebsd.org>
>> > ---
>> > 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
More information about the U-Boot
mailing list