Merge with rsync://git-user@source.denx.net/git/u-boot.git
diff --git a/CHANGELOG b/CHANGELOG
index f1ef6d9..acd36fa 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -34,6 +34,14 @@
     Eliminates the CONFIG_MPC8560 option entirely.  Distributes the
     new CONFIG_CPM2 option to each 8260 board.
 
+* Fix sysmon POST problem: check I2C error codes
+  This fixes a problem of displaying bogus voltages when the voltages
+  are so low that the I2C devices start failing while the rest of the
+  system keeps running.
+
+* Patch by Cedric Vincent, 6 Jul 2005:
+  Fix CFG_CMD_SETGETDCR handling in "common/cmd_dcr.c"
+
 * Patch by Jon Loeliger, 20 Jul 2005:
   Add missing PCI IO port definitions.
 
diff --git a/common/cmd_dcr.c b/common/cmd_dcr.c
index a91db66..3e4e08f 100644
--- a/common/cmd_dcr.c
+++ b/common/cmd_dcr.c
@@ -29,7 +29,7 @@
 #include <config.h>
 #include <command.h>
 
-#if defined(CONFIG_4xx) && defined(CFG_CMD_SETGETDCR)
+#if defined(CONFIG_4xx) && (CONFIG_COMMANDS & CFG_CMD_SETGETDCR)
 
 /* ======================================================================
  * Interpreter command to retrieve an IBM PPC 4xx Device Control Register
diff --git a/post/sysmon.c b/post/sysmon.c
index 8758ccd..72fcac3 100644
--- a/post/sysmon.c
+++ b/post/sysmon.c
@@ -185,6 +185,10 @@
 	char *p, sign;
 	int dec, frac;
 
+	if (val == -1) {
+		return "I/O ERROR";
+	}
+
 	if (unit_val < 0) {
 		sign = '-';
 		unit_val = -unit_val;
@@ -297,8 +301,13 @@
 		}
 
 		val = t->sysmon->read(t->sysmon, t->addr);
-		t->val_valid = val >= t->val_min && val <= t->val_max;
-		t->val_valid_alt = val >= t->val_min_alt && val <= t->val_max_alt;
+		if (val != -1) {
+			t->val_valid = val >= t->val_min && val <= t->val_max;
+			t->val_valid_alt = val >= t->val_min_alt && val <= t->val_max_alt;
+		} else {
+			t->val_valid = 0;
+			t->val_valid_alt = 0;
+		}
 
 		if (t->exec_after) {
 			t->exec_after(t);