public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH] cli: flush stdin before enabling cli
@ 2026-03-31 11:03 Gregor Herburger
  2026-03-31 18:11 ` Tom Rini
  2026-04-01  9:28 ` Quentin Schulz
  0 siblings, 2 replies; 6+ messages in thread
From: Gregor Herburger @ 2026-03-31 11:03 UTC (permalink / raw)
  To: u-boot
  Cc: Gregor Herburger, Andrew Goodbody, Heiko Schocher,
	Heinrich Schuchardt, Ilias Apalodimas, Kory Maincent (TI.com),
	Mikhail Kshevetskiy, Quentin Schulz, Tom Rini

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@linutronix.de>

---

 cmd/Kconfig  | 7 +++++++
 common/cli.c | 6 ++++++
 2 files changed, 13 insertions(+)

diff --git a/cmd/Kconfig b/cmd/Kconfig
index 322ebe600c5..e08fbf27358 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -47,6 +47,13 @@ config HUSH_SELECTABLE
 	default y if HUSH_OLD_PARSER && HUSH_MODERN_PARSER
 endmenu
 
+config CMDLINE_FLUSH_STDIN
+	bool "Enable flushing input before starting cli"
+	default n
+	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..42d27ed87e7 100644
--- a/common/cli.c
+++ b/common/cli.c
@@ -295,6 +295,12 @@ err:
 void cli_loop(void)
 {
 	bootstage_mark(BOOTSTAGE_ID_ENTER_CLI_LOOP);
+
+	if (IS_ENABLED(CONFIG_CMDLINE_FLUSH_STDIN)) {
+		while (tstc())
+			(void)getchar();
+	}
+
 #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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-04-01 12:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-31 11:03 [PATCH] cli: flush stdin before enabling cli Gregor Herburger
2026-03-31 18:11 ` Tom Rini
2026-04-01  5:32   ` Gregor Herburger
2026-04-01  9:28 ` Quentin Schulz
2026-04-01 10:46   ` Gregor Herburger
2026-04-01 11:18     ` Quentin Schulz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox