- 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 <mibo...@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