We already have a autoboot_state variable that controls barebox init behavior on startup: * ABORT: abort and fall into shell * MENU: display boot menu * BOOT: boot directly without delay * UNKNOWN: default; count down and then boot Exporting this as a device parameter allows us to support some different boot scenarios: * ABORT boot always while debugging * display MENU by default (e.g. for graphical boots) Signed-off-by: Ahmad Fatoum <ahmad@xxxxxx> --- common/startup.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/common/startup.c b/common/startup.c index c417a4d0781a..ff890fa744ab 100644 --- a/common/startup.c +++ b/common/startup.c @@ -163,6 +163,13 @@ static const char * const global_autoboot_abort_keys[] = { }; static int global_autoboot_timeout = 3; +static const char * const autoboot_states[] = { + [AUTOBOOT_UNKNOWN] = "unknown", + [AUTOBOOT_ABORT] = "abort", + [AUTOBOOT_MENU] = "menu", + [AUTOBOOT_BOOT] = "boot", +}; + static bool test_abort(void) { bool do_abort = false; @@ -194,7 +201,7 @@ static bool test_abort(void) #define INITFILE "/env/bin/init" #define MENUFILE "/env/menu/mainmenu" -static enum autoboot_state autoboot_state = AUTOBOOT_UNKNOWN; +static int autoboot_state = AUTOBOOT_UNKNOWN; /** * set_autoboot_state - set the autoboot state @@ -285,6 +292,10 @@ static int run_init(void) ARRAY_SIZE(global_autoboot_abort_keys)); globalvar_add_simple_int("autoboot_timeout", &global_autoboot_timeout, "%u"); + globalvar_add_simple_enum("autoboot", + &autoboot_state, + autoboot_states, + ARRAY_SIZE(autoboot_states)); setenv("PATH", "/env/bin"); -- 2.20.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox