diff --git a/README b/README
index d8bd784..36853e5 100644
--- a/README
+++ b/README
@@ -3356,6 +3356,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 7d1927e..1d563bb 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -498,6 +498,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
@@ -625,6 +635,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();
