Skip to content
Snippets Groups Projects
Commit 1a2d9b30 authored by Stefan Roese's avatar Stefan Roese Committed by Wolfgang Denk
Browse files

ns16550: Add WATCHDOG_RESET to putc for short watchdog timeout boards


Call watchdog_reset() upon newline. This is done here in putc
since the environment code uses a single puts() to print the complete
envrironment upon "printenv". So we can't put this watchdog call
in puts().

This is needed for boards with a very short watchdog timeout, like the
lwmon5 with a 100ms timeout. Without this patch this board resets in the
commands with long outputs, like "printenv" or "fdt print".

Note that the image size is not increased with this patch when
CONFIG_HW_WATCHDOG or CONFIG_WATCHDOG are not defined since the compiler
optimizes this additional code away.

Signed-off-by: default avatarStefan Roese <sr@denx.de>

Fix typo in comment.
Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
parent 4bbfd3e2
No related branches found
No related tags found
No related merge requests found
...@@ -70,6 +70,15 @@ void NS16550_putc (NS16550_t com_port, char c) ...@@ -70,6 +70,15 @@ void NS16550_putc (NS16550_t com_port, char c)
{ {
while ((serial_in(&com_port->lsr) & UART_LSR_THRE) == 0); while ((serial_in(&com_port->lsr) & UART_LSR_THRE) == 0);
serial_out(c, &com_port->thr); serial_out(c, &com_port->thr);
/*
* Call watchdog_reset() upon newline. This is done here in putc
* since the environment code uses a single puts() to print the complete
* environment upon "printenv". So we can't put this watchdog call
* in puts().
*/
if (c == '\n')
WATCHDOG_RESET();
} }
#ifndef CONFIG_NS16550_MIN_FUNCTIONS #ifndef CONFIG_NS16550_MIN_FUNCTIONS
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment