summaryrefslogtreecommitdiff
path: root/cpu
diff options
context:
space:
mode:
authorwdenk <wdenk>2003-01-11 09:48:40 +0000
committerwdenk <wdenk>2003-01-11 09:48:40 +0000
commitd0fb80c3021e15853895e9ae45ab9368d0fb52fa (patch)
treea4e65529732e8058b15a0cef175f65312ec3eedd /cpu
parenta25f862ba8b9d8440973d0204c19fec859f953f3 (diff)
downloadu-boot-imx-d0fb80c3021e15853895e9ae45ab9368d0fb52fa.zip
u-boot-imx-d0fb80c3021e15853895e9ae45ab9368d0fb52fa.tar.gz
u-boot-imx-d0fb80c3021e15853895e9ae45ab9368d0fb52fa.tar.bz2
* 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)
Diffstat (limited to 'cpu')
-rw-r--r--cpu/mpc8xx/serial.c33
-rw-r--r--cpu/mpc8xx/start.S2
2 files changed, 16 insertions, 19 deletions
diff --git a/cpu/mpc8xx/serial.c b/cpu/mpc8xx/serial.c
index 0690300..2871084 100644
--- a/cpu/mpc8xx/serial.c
+++ b/cpu/mpc8xx/serial.c
@@ -24,6 +24,7 @@
#include <common.h>
#include <commproc.h>
#include <command.h>
+#include <watchdog.h>
#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 a1b7eff..213c9a9 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
/*