sandbox: Don't try distro_bootcmd by default
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Thu, 30 Apr 2015 20:16:09 +0000 (22:16 +0200)
committerSimon Glass <sjg@chromium.org>
Wed, 6 May 2015 18:48:36 +0000 (12:48 -0600)
For the distro_bootcmds to succeed on the sandbox a bit of setup is
required (e.g. network configured or host image bound), so running them
by default isn't that useful.

Add a -b/--boot command to the sandbox binary, which triggers the
distro_bootcmds to run after the other command-line commands.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-by: Simon Glass <sjg@chromium.org>
arch/sandbox/cpu/start.c
arch/sandbox/include/asm/state.h
include/configs/sandbox.h

index ec010402d77f47f40b2ca3950d4cb9a5e52355c4..b23d08b5a1bb33ace30f67029b3336f0c6ed8564 100644 (file)
@@ -77,12 +77,18 @@ int sandbox_main_loop_init(void)
        struct sandbox_state *state = state_get_current();
 
        /* Execute command if required */
-       if (state->cmd) {
-               int retval;
+       if (state->cmd || state->run_distro_boot) {
+               int retval = 0;
 
                cli_init();
 
-               retval = run_command_list(state->cmd, -1, 0);
+               if (state->cmd)
+                       retval = run_command_list(state->cmd, -1, 0);
+
+               if (state->run_distro_boot)
+                       retval = cli_simple_run_command("run distro_bootcmd",
+                                                       0);
+
                if (!state->interactive)
                        os_exit(retval);
        }
@@ -90,6 +96,14 @@ int sandbox_main_loop_init(void)
        return 0;
 }
 
+static int sandbox_cmdline_cb_boot(struct sandbox_state *state,
+                                     const char *arg)
+{
+       state->run_distro_boot = true;
+       return 0;
+}
+SANDBOX_CMDLINE_OPT_SHORT(boot, 'b', 0, "Run distro boot commands");
+
 static int sandbox_cmdline_cb_command(struct sandbox_state *state,
                                      const char *arg)
 {
index a0c24ba1e053fec66990626812332a60302b6276..a57480a996f33bf9b5b419e50235fdd44f4305f7 100644 (file)
@@ -42,6 +42,7 @@ struct sandbox_spi_info {
 struct sandbox_state {
        const char *cmd;                /* Command to execute */
        bool interactive;               /* Enable cmdline after execute */
+       bool run_distro_boot;           /* Automatically run distro bootcommands */
        const char *fdt_fname;          /* Filename of FDT binary */
        const char *parse_err;          /* Error to report from parsing */
        int argc;                       /* Program arguments */
index ef0efc579591cd829b25f341b3905ad6317c0ca8..f5361d1091b659d11b14e3a2f580fff003d48c18 100644 (file)
        func(HOST, host, 1) \
        func(HOST, host, 0)
 
+#define CONFIG_BOOTCOMMAND ""
+
 #include <config_distro_bootcmd.h>
 
 #define CONFIG_KEEP_SERVERADDR