* 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)
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 @@
 	*/
 
 	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 @@
 	/* 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 @@
 	*/
 
 	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 @@
 	/* 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;