[PATCH v2 2/2] cli: flush stdin before enabling cli
Gregor Herburger
gregor.herburger at linutronix.de
Wed Apr 1 14:40:45 CEST 2026
Currently there is no possibility to flush stdin after autocommands are
executed. If in the bootcmd the stdin is changed, e.g. from nulldev to
serial, it could happen that junk characters sit in the fifo and appear
on the cli.
Add a option to clear stdin before starting the CLI.
Signed-off-by: Gregor Herburger <gregor.herburger at linutronix.de>
---
Changes in v2:
- add a common console_flush_stdin to console.c
- replace all caller of while(getchar()) with function call
cmd/Kconfig | 6 ++++++
common/cli.c | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 322ebe600c5..3dfba977544 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -47,6 +47,12 @@ config HUSH_SELECTABLE
default y if HUSH_OLD_PARSER && HUSH_MODERN_PARSER
endmenu
+config CMDLINE_FLUSH_STDIN
+ bool "Enable flushing input before starting cli"
+ help
+ When this option is enabled the stdin buffer will be flushed before
+ starting the CLI.
+
config CMDLINE_EDITING
bool "Enable command line editing"
default y
diff --git a/common/cli.c b/common/cli.c
index 4694a35cd0e..bcc7264d51a 100644
--- a/common/cli.c
+++ b/common/cli.c
@@ -295,6 +295,10 @@ err:
void cli_loop(void)
{
bootstage_mark(BOOTSTAGE_ID_ENTER_CLI_LOOP);
+
+ if (IS_ENABLED(CONFIG_CMDLINE_FLUSH_STDIN))
+ console_flush_stdin();
+
#if CONFIG_IS_ENABLED(HUSH_PARSER)
if (gd->flags & GD_FLG_HUSH_MODERN_PARSER)
parse_and_run_file();
--
2.47.3
base-commit: c704af3c8b0f37929bce8c2a4bba27d6e89919c7
branch: cmd-flush-stdin
More information about the U-Boot
mailing list