sandbox: Add -i option to enter interactive mode
authorSimon Glass <sjg@chromium.org>
Sun, 10 Nov 2013 17:27:02 +0000 (10:27 -0700)
committerSimon Glass <sjg@chromium.org>
Thu, 9 Jan 2014 00:24:53 +0000 (17:24 -0700)
Normally when U-Boot starts with a command (-c option) it quits when the
command completes. Normally this is what is requires, since the test is
likely complete.

Provide an option to jump into the console instead, so that debugging or
other tasks may be performed before quitting.

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

index 895c4d82b0dd654bd70cbc4b91c62ba3d5c5d952..579ece44711ea40e7134f6b70750e0a48157cec2 100644 (file)
@@ -77,7 +77,8 @@ int sandbox_main_loop_init(void)
        /* Execute command if required */
        if (state->cmd) {
                run_command_list(state->cmd, -1, 0);
-               os_exit(state->exit_type);
+               if (!state->interactive)
+                       os_exit(state->exit_type);
        }
 
        return 0;
@@ -98,6 +99,15 @@ static int sandbox_cmdline_cb_fdt(struct sandbox_state *state, const char *arg)
 }
 SANDBOX_CMDLINE_OPT_SHORT(fdt, 'd', 1, "Specify U-Boot's control FDT");
 
+static int sandbox_cmdline_cb_interactive(struct sandbox_state *state,
+                                         const char *arg)
+{
+       state->interactive = true;
+       return 0;
+}
+
+SANDBOX_CMDLINE_OPT_SHORT(interactive, 'i', 0, "Enter interactive mode");
+
 int main(int argc, char *argv[])
 {
        struct sandbox_state *state;
index a38820bdeeb919180497b1d73d8078c12cd56edc..df196b79f6dfd8a3a2796c1e3aba994c90e8d299 100644 (file)
@@ -7,6 +7,7 @@
 #define __SANDBOX_STATE_H
 
 #include <config.h>
+#include <stdbool.h>
 
 /* How we exited U-Boot */
 enum exit_type_id {
@@ -23,6 +24,7 @@ struct sandbox_spi_info {
 /* The complete state of the test system */
 struct sandbox_state {
        const char *cmd;                /* Command to execute */
+       bool interactive;               /* Enable cmdline after execute */
        const char *fdt_fname;          /* Filename of FDT binary */
        enum exit_type_id exit_type;    /* How we exited U-Boot */
        const char *parse_err;          /* Error to report from parsing */