cli_hush: support running bootcmd on boot retry

Introduce a new config option: RETRY_BOOTCMD. When enabled this causes
hush shell to re-run "bootcmd" when the auto-boot counter times out.

Tested-by: Danila Tikhonov <danila@jiaxyga.com> # google-sunfish
Tested-by: Jens Reidel <adrian@mainlining.org> # xiaomi-davinci
Link: https://lore.kernel.org/r/20250331-qcom-phones-v4-2-f52e57d3b8c6@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
This commit is contained in:
Caleb Connolly 2025-03-31 14:23:19 +02:00
parent fd775fb7af
commit 657e19f8f2
No known key found for this signature in database
GPG key ID: 0583312B195F64B6
3 changed files with 15 additions and 4 deletions

View file

@ -1704,6 +1704,13 @@ config RESET_TO_RETRY
After the countdown timed out, the board will be reset to restart After the countdown timed out, the board will be reset to restart
again. again.
config RETRY_BOOTCMD
bool "Run bootcmd on retry"
depends on BOOT_RETRY && HUSH_PARSER && !RESET_TO_RETRY
help
If this option is enabled, the "bootcmd" will be run after the
countdown times out.
endmenu endmenu
menu "Image support" menu "Image support"

View file

@ -1028,8 +1028,10 @@ static void get_user_input(struct in_str *i)
puts("\nTimeout waiting for command\n"); puts("\nTimeout waiting for command\n");
# ifdef CONFIG_RESET_TO_RETRY # ifdef CONFIG_RESET_TO_RETRY
do_reset(NULL, 0, 0, NULL); do_reset(NULL, 0, 0, NULL);
# elif IS_ENABLED(CONFIG_RETRY_BOOTCMD)
strcpy(console_buffer, "run bootcmd\n");
# else # else
# error "This currently only works with CONFIG_RESET_TO_RETRY enabled" # error "This only works with CONFIG_RESET_TO_RETRY or CONFIG_BOOT_RETRY_COMMAND enabled"
# endif # endif
} }
#endif #endif

View file

@ -2907,8 +2907,10 @@ static void get_user_input(struct in_str *i)
puts("\nTimeout waiting for command\n"); puts("\nTimeout waiting for command\n");
# ifdef CONFIG_RESET_TO_RETRY # ifdef CONFIG_RESET_TO_RETRY
do_reset(NULL, 0, 0, NULL); do_reset(NULL, 0, 0, NULL);
# elif IS_ENABLED(CONFIG_RETRY_BOOTCMD)
strcpy(console_buffer, "run bootcmd\n");
# else # else
# error "This currently only works with CONFIG_RESET_TO_RETRY enabled" # error "This only works with CONFIG_RESET_TO_RETRY or CONFIG_BOOT_RETRY_COMMAND enabled"
# endif # endif
} }
# endif # endif