[PATCH] sandbox_spl: Restrict use of UPL when not enabled
Heinrich Schuchardt
xypron.glpk at gmx.de
Wed Sep 25 13:50:37 CEST 2024
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.
Best regards
Heinrich
> }
>
> static int spl_board_load_file(struct spl_image_info *spl_image,
More information about the U-Boot
mailing list