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 <[email protected]>
---

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]

Reply via email to