diff options
author | Simon Glass <sjg@chromium.org> | 2014-02-27 13:26:16 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2014-03-17 20:05:48 -0600 |
commit | bda7773f044a13cf69cbbcb016285dd217b981c3 (patch) | |
tree | 72fcc9a8ce7f2651656c761096764b1452327349 | |
parent | 47f5fcfb4169a8ff6e8c81738b77f8572f972e75 (diff) | |
download | u-boot-bda7773f044a13cf69cbbcb016285dd217b981c3.tar.gz u-boot-bda7773f044a13cf69cbbcb016285dd217b981c3.tar.bz2 u-boot-bda7773f044a13cf69cbbcb016285dd217b981c3.zip |
sandbox: Add -j option to indicate a jump from a previous U-Boot
In order to support the 'go' command we allow the jumping U-Boot to pass its
filename to the new U-Boot image. This can then be used to delete that image
if required.
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | arch/sandbox/cpu/start.c | 16 | ||||
-rw-r--r-- | arch/sandbox/include/asm/state.h | 3 |
2 files changed, 18 insertions, 1 deletions
diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c index 1df21d49fa..2d19fe795e 100644 --- a/arch/sandbox/cpu/start.c +++ b/arch/sandbox/cpu/start.c @@ -107,6 +107,22 @@ static int sandbox_cmdline_cb_interactive(struct sandbox_state *state, SANDBOX_CMDLINE_OPT_SHORT(interactive, 'i', 0, "Enter interactive mode"); +static int sandbox_cmdline_cb_jump(struct sandbox_state *state, + const char *arg) +{ + state->jumped = 1; + + /* + * TODO(sjg@chromium.org): Note this causes problems for gdb which + * wants to read debug data from the image. + * + * os_unlink(arg); + */ + + return 0; +} +SANDBOX_CMDLINE_OPT_SHORT(jump, 'j', 1, "Jumped from previous U-Boot"); + static int sandbox_cmdline_cb_memory(struct sandbox_state *state, const char *arg) { diff --git a/arch/sandbox/include/asm/state.h b/arch/sandbox/include/asm/state.h index e8e4fea1b5..304104e058 100644 --- a/arch/sandbox/include/asm/state.h +++ b/arch/sandbox/include/asm/state.h @@ -30,7 +30,8 @@ struct sandbox_state { enum exit_type_id exit_type; /* How we exited U-Boot */ const char *parse_err; /* Error to report from parsing */ int argc; /* Program arguments */ - char **argv; + char **argv; /* Command line arguments */ + bool jumped; /* Jumped from previous U_Boot */ uint8_t *ram_buf; /* Emulated RAM buffer */ unsigned int ram_size; /* Size of RAM buffer */ const char *ram_buf_fname; /* Filename to use for RAM buffer */ |