]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sandbox: Add a flag to enable UPL
authorSimon Glass <sjg@chromium.org>
Wed, 7 Aug 2024 22:47:37 +0000 (16:47 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 9 Aug 2024 22:03:20 +0000 (16:03 -0600)
UPL significantly alters the boot flow for sandbox. Add a flag to enable
this so that it can be enabled only on tests which need it.

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/sandbox/cpu/start.c
arch/sandbox/include/asm/state.h

index 0920ed55965d30cf1d81169a4e43d5ee5d8aaaff..9ad5d46271a61248343aef8ac659f7c6383f0398 100644 (file)
@@ -431,6 +431,14 @@ static int sandbox_cmdline_cb_autoboot_keyed(struct sandbox_state *state,
 }
 SANDBOX_CMDLINE_OPT(autoboot_keyed, 0, "Allow keyed autoboot");
 
+static int sandbox_cmdline_cb_upl(struct sandbox_state *state, const char *arg)
+{
+       state->upl = true;
+
+       return 0;
+}
+SANDBOX_CMDLINE_OPT(upl, 0, "Enable Universal Payload (UPL)");
+
 static void setup_ram_buf(struct sandbox_state *state)
 {
        /* Zero the RAM buffer if we didn't read it, to keep valgrind happy */
@@ -540,6 +548,9 @@ int sandbox_main(int argc, char *argv[])
                        goto err;
        }
 
+       if (state->upl)
+               gd->flags |= GD_FLG_UPL;
+
 #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
        gd->malloc_base = CFG_MALLOC_F_ADDR;
 #endif
@@ -558,7 +569,7 @@ int sandbox_main(int argc, char *argv[])
        log_debug("debug: %s\n", __func__);
 
        /* Do pre- and post-relocation init */
-       board_init_f(0);
+       board_init_f(gd->flags);
 
        board_init_r(gd->new_gd, 0);
 
index c84a1f7060f47752941a2ed9704fe660a445ed57..6b50473ed41c25c67dca32776418499452195690 100644 (file)
@@ -97,6 +97,7 @@ struct sandbox_state {
        bool autoboot_keyed;            /* Use keyed-autoboot feature */
        bool disable_eth;               /* Disable Ethernet devices */
        bool disable_sf_bootdevs;       /* Don't bind SPI flash bootdevs */
+       bool upl;                       /* Enable Universal Payload (UPL) */
 
        /* Pointer to information for each SPI bus/cs */
        struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS]