diff --git a/README b/README
index d57ee91ca3b5fdd9406febd29bf5d088fc7e6106..9c261680d4d43dcd215d45e28d80741a70fd13eb 100644
--- a/README
+++ b/README
@@ -3462,6 +3462,11 @@ use the "saveenv" command to store a valid environment.
 		when U-Boot starts up. The board function checkboard() is called
 		to do this.
 
+- CONFIG_DISPLAY_BOARDINFO_LATE
+		Similar to the previous option, but display this information
+		later, once stdio is running and output goes to the LCD, if
+		present.
+
 Low Level (hardware related) configuration options:
 ---------------------------------------------------
 
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index a1eb7993ad8dc4d29727db1e18759a480646128a..ec5c35f13125afc9c4f74a51ac233a4d084a8e1f 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -489,6 +489,16 @@ static int should_load_env(void)
 #endif
 }
 
+#if defined(CONFIG_DISPLAY_BOARDINFO_LATE) && defined(CONFIG_OF_CONTROL)
+static void display_fdt_model(const void *blob)
+{
+	const char *model;
+
+	model = (char *)fdt_getprop(blob, 0, "model", NULL);
+	printf("Model: %s\n", model ? model : "<unknown>");
+}
+#endif
+
 /************************************************************************
  *
  * This is the next part if the initialization sequence: we are now
@@ -612,6 +622,15 @@ void board_init_r(gd_t *id, ulong dest_addr)
 
 	console_init_r();	/* fully init console as a device */
 
+#ifdef CONFIG_DISPLAY_BOARDINFO_LATE
+# ifdef CONFIG_OF_CONTROL
+	/* Put this here so it appears on the LCD, now it is ready */
+	display_fdt_model(gd->fdt_blob);
+# else
+	checkboard();
+# endif
+#endif
+
 #if defined(CONFIG_ARCH_MISC_INIT)
 	/* miscellaneous arch dependent initialisations */
 	arch_misc_init();