[PATCH] sandbox_spl: Restrict use of UPL when not enabled

Simon Glass sjg at chromium.org
Wed Sep 25 14:53:46 CEST 2024


Hi Heinrich,

On Wed, 25 Sept 2024 at 13:55, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 25.09.24 12:44, Simon Glass wrote:
> > With sandbox_spl we want to use the file-based boot in CI, so that this
> > flow is tested. The recent UPL change enabled booting via that method,
> > thus overriding the file-based boot.
> >
> > Correct this by using UPL only when the --upl flag is given.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > Fixes: 91fde8e1764 ("sandbox: Add an SPL loader for UPL")
> > ---
> >
> >   arch/sandbox/cpu/spl.c | 5 +++--
> >   1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/sandbox/cpu/spl.c b/arch/sandbox/cpu/spl.c
> > index 1c33a520c64..76638362564 100644
> > --- a/arch/sandbox/cpu/spl.c
> > +++ b/arch/sandbox/cpu/spl.c
> > @@ -55,9 +55,10 @@ void board_init_f(ulong flag)
> >
> >   void board_boot_order(u32 *spl_boot_list)
> >   {
> > +     struct sandbox_state *state = state_get_current();
> > +
> >       spl_boot_list[0] = BOOT_DEVICE_VBE;
> > -     spl_boot_list[1] = BOOT_DEVICE_UPL;
> > -     spl_boot_list[2] = BOOT_DEVICE_BOARD;
> > +     spl_boot_list[1] = state->upl ? BOOT_DEVICE_UPL : BOOT_DEVICE_BOARD;
>
> Wouldn't the UPL method check if the loaded file is a universal payload,
> and if not the BOARD method would be executed?
>
> In upl_load_from_image() I am missing a check that the FIT image is
> really a universal payload, e.g. look at the spec-revision field.
>
> Considering
> https://universalpayload.github.io/spec/chapter2-payload-image-format.html#example-fit
> it seems a field uniquely identifying universal payloads (in contrast to
> non-UPL FIT images) is missing in the specification.

Yes, that could be done as a new feature. But this patch is still correct.

Regards,
Simon


More information about the U-Boot mailing list