diff --exclude CVS --exclude .git -uNr u-boot-2009.08-rc2/cpu/arm_cortexa8/omap3/sys_info.c u-boot-2009.08-rc2.modified/cpu/arm_cortexa8/omap3/sys_info.c
--- u-boot-2009.08-rc2/cpu/arm_cortexa8/omap3/sys_info.c	2009-08-10 04:39:12.000000000 -0400
+++ u-boot-2009.08-rc2.modified/cpu/arm_cortexa8/omap3/sys_info.c	2013-02-26 11:23:00.004779006 -0500
@@ -34,12 +34,23 @@
 extern omap3_sysinfo sysinfo;
 static struct sdrc *sdrc_base = (struct sdrc *)OMAP34XX_SDRC_BASE;
 static struct ctrl *ctrl_base = (struct ctrl *)OMAP34XX_CTRL_BASE;
-static char *rev_s[CPU_3XX_MAX_REV] = {
+static char *rev_s[] = {
 				"1.0",
 				"2.0",
 				"2.1",
 				"3.0",
-				"3.1"};
+				"3.1",
+				NULL,
+				NULL,
+				"3.1.2"};
+
+/* Return CPU revision string for known revisions or unknown */
+static char *get_rev_str(u32 rev)
+{
+	if (rev >= ARRAY_SIZE(rev_s) || !rev_s[rev])
+		return "Unknown";
+	return rev_s[rev];
+}
 
 /*****************************************************************
  * dieid_num_r(void) - read and set die ID
@@ -292,7 +303,7 @@
 	}
 
 	printf("OMAP%s-%s ES%s, CPU-OPP2 L3-165MHz\n",
-			cpu_s, sec_s, rev_s[get_cpu_rev()]);
+		cpu_s, sec_s, get_rev_str(get_cpu_rev()));
 
 	return 0;
 }
diff --exclude CVS --exclude .git -uNr u-boot-2009.08-rc2/include/asm-arm/arch-omap3/omap3.h u-boot-2009.08-rc2.modified/include/asm-arm/arch-omap3/omap3.h
--- u-boot-2009.08-rc2/include/asm-arm/arch-omap3/omap3.h	2013-02-26 11:23:55.744777258 -0500
+++ u-boot-2009.08-rc2.modified/include/asm-arm/arch-omap3/omap3.h	2013-02-26 11:22:51.344779277 -0500
@@ -175,7 +175,7 @@
 #define CPU_3XX_ES21		2
 #define CPU_3XX_ES30		3
 #define CPU_3XX_ES31		4
-#define CPU_3XX_MAX_REV		(CPU_3XX_ES31 + 1)
+#define CPU_3XX_ES312		7
 
 #define CPU_3XX_ID_SHIFT	28
 
