[PATCH] netconsole: various improvements
Tony Dinh
mibodhi at gmail.com
Sat Mar 18 22:46:25 CET 2023
- When Netconsole is running, stdin/stdout/stderr are set to nc. Reset
stdin/stdout/stderr to serial (a sane deffault) before booting kernel.
- Enable net_timeout when netconsole starts will give a better user
experience if netconsole server is not running.
Signed-off-by: Tony Dinh <mibodhi at gmail.com>
---
boot/bootm.c | 16 +++++++++++++++-
drivers/net/netconsole.c | 2 +-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/boot/bootm.c b/boot/bootm.c
index 2eec60ec7b..c4a3aaf1bd 100644
--- a/boot/bootm.c
+++ b/boot/bootm.c
@@ -473,7 +473,21 @@ ulong bootm_disable_interrupts(void)
*/
iflag = disable_interrupts();
#ifdef CONFIG_NETCONSOLE
- /* Stop the ethernet stack if NetConsole could have left it up */
+ /*
+ * Make sure that the starting kernel message printed out.
+ * Reset stdin/out/err back to serial and stop the ethernet
+ * stack if NetConsole could have left it up
+ */
+ char *s;
+ int ret;
+
+ s = env_get("stdout");
+ if (strcmp(s, "nc") == 0) {
+ printf("\n\nStarting kernel ...\n");
+ ret = env_set("stdin", "serial");
+ ret = env_set("stdout", "serial");
+ ret = env_set("stderr", "serial");
+ }
eth_halt();
#endif
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 151bc55e07..2091014918 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -20,7 +20,7 @@ static int input_size; /* char count in input buffer */
static int input_offset; /* offset to valid chars in input buffer */
static int input_recursion;
static int output_recursion;
-static int net_timeout;
+static int net_timeout = 1;
static uchar nc_ether[6]; /* server enet address */
static struct in_addr nc_ip; /* server ip */
static short nc_out_port; /* target output port */
--
2.30.2
More information about the U-Boot
mailing list