From d0fb80c3021e15853895e9ae45ab9368d0fb52fa Mon Sep 17 00:00:00 2001 From: wdenk Date: Sat, 11 Jan 2003 09:48:40 +0000 Subject: * Restrict baudrate settings on LWMON to higher speeds when watchdog is on * Update baudrate in bd_info when it gets changed * Add watchdog trigger points while waiting for serial port (so far only 8xx -- needed on LWMON with 100ms watchdog) * Improve command line tool to access the U-Boot's environment (figuration of the utility, using a config file) --- cpu/mpc8xx/serial.c | 33 +++++++++++++++------------------ cpu/mpc8xx/start.S | 2 +- 2 files changed, 16 insertions(+), 19 deletions(-) (limited to 'cpu') diff --git a/cpu/mpc8xx/serial.c b/cpu/mpc8xx/serial.c index 0690300b2..2871084fc 100644 --- a/cpu/mpc8xx/serial.c +++ b/cpu/mpc8xx/serial.c @@ -24,6 +24,7 @@ #include #include #include +#include #if !defined(CONFIG_8xx_CONS_NONE) /* No Console at all */ @@ -265,20 +266,16 @@ serial_putc(const char c) */ buf = (char *)tbdf->cbd_bufaddr; -#if 0 - __asm__("eieio"); - while (tbdf->cbd_sc & BD_SC_READY) - __asm__("eieio"); -#endif *buf = c; tbdf->cbd_datlen = 1; tbdf->cbd_sc |= BD_SC_READY; __asm__("eieio"); -#if 1 - while (tbdf->cbd_sc & BD_SC_READY) + + while (tbdf->cbd_sc & BD_SC_READY) { + WATCHDOG_RESET (); __asm__("eieio"); -#endif + } } int @@ -298,8 +295,10 @@ serial_getc(void) /* Wait for character to show up. */ buf = (unsigned char *)rbdf->cbd_bufaddr; + while (rbdf->cbd_sc & BD_SC_EMPTY) - ; + WATCHDOG_RESET (); + c = *buf; rbdf->cbd_sc |= BD_SC_EMPTY; @@ -524,20 +523,16 @@ serial_putc(const char c) */ buf = (char *)tbdf->cbd_bufaddr; -#if 0 - __asm__("eieio"); - while (tbdf->cbd_sc & BD_SC_READY) - __asm__("eieio"); -#endif *buf = c; tbdf->cbd_datlen = 1; tbdf->cbd_sc |= BD_SC_READY; __asm__("eieio"); -#if 1 - while (tbdf->cbd_sc & BD_SC_READY) + + while (tbdf->cbd_sc & BD_SC_READY) { __asm__("eieio"); -#endif + WATCHDOG_RESET (); + } } int @@ -557,8 +552,10 @@ serial_getc(void) /* Wait for character to show up. */ buf = (unsigned char *)rbdf->cbd_bufaddr; + while (rbdf->cbd_sc & BD_SC_EMPTY) - ; + WATCHDOG_RESET (); + c = *buf; rbdf->cbd_sc |= BD_SC_EMPTY; diff --git a/cpu/mpc8xx/start.S b/cpu/mpc8xx/start.S index a1b7effe8..213c9a9be 100644 --- a/cpu/mpc8xx/start.S +++ b/cpu/mpc8xx/start.S @@ -583,7 +583,7 @@ relocate_code: /* First our own GOT */ add r14, r14, r15 - /* the the one used by the C code */ + /* then the one used by the C code */ add r30, r30, r15 /* -- cgit v1.2.3