Message ID | 20241022120032.196311-5-sjg@chromium.org |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | efi: Add a test for EFI bootmeth | expand |
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]
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)"); + 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]
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(+)