
On 10/22/24 14:00, Simon Glass wrote:
Sandbox is its own architecture, but sometimes we want to mimic the host architecture, e.g. when running an EFI app not built by U-Boot.
Add a -N/--native flag which tells sandbox to reflect the architecture of the host.
Signed-off-by: Simon Glass sjg@chromium.org
Changes in v8:
Add new patch to control on-host behaviour
arch/sandbox/cpu/start.c | 10 ++++++++++ arch/sandbox/include/asm/state.h | 1 + 2 files changed, 11 insertions(+)
diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c index 81752edc9f8..2940768cd1c 100644 --- a/arch/sandbox/cpu/start.c +++ b/arch/sandbox/cpu/start.c @@ -449,6 +449,16 @@ static void setup_ram_buf(struct sandbox_state *state) gd->ram_size = state->ram_size; }
+static int sandbox_cmdline_cb_native(struct sandbox_state *state,
const char *arg)
+{
- state->native = true;
- return 0;
+} +SANDBOX_CMDLINE_OPT_SHORT(native, 'N', 0,
"Use native mode (host-based EFI boot filename)");
We should not need an option for default behavior.
Please, turn the logic around to avoid users seeing unexpected results:
+SANDBOX_CMDLINE_OPT_SHORT(non-compliant, 'N', 0,
"Non-compliant sandbox, for testing only");
Best regards
Heinrich
- void state_show(struct sandbox_state *state) { char **p;
diff --git a/arch/sandbox/include/asm/state.h b/arch/sandbox/include/asm/state.h index e7dc01759e8..dc21a623106 100644 --- a/arch/sandbox/include/asm/state.h +++ b/arch/sandbox/include/asm/state.h @@ -101,6 +101,7 @@ struct sandbox_state { bool disable_eth; /* Disable Ethernet devices */ bool disable_sf_bootdevs; /* Don't bind SPI flash bootdevs */ bool upl; /* Enable Universal Payload (UPL) */
bool native; /* Adjust to reflect host arch */
/* Pointer to information for each SPI bus/cs */ struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS]