diff --git a/arch/i386/lib/board.c b/arch/i386/lib/board.c
index 1fd422f2ff8d5076142918f81388760b94c858b8..32f013aefdc2c8bdeb0c3cd05a7033ed75d52093 100644
--- a/arch/i386/lib/board.c
+++ b/arch/i386/lib/board.c
@@ -162,9 +162,6 @@ init_fnc_t *init_sequence[] = {
 	dram_init,		/* configure available RAM banks */
 	interrupt_init,		/* set up exceptions */
 	timer_init,
-	env_init,		/* initialize environment */
-	init_baudrate,		/* initialze baudrate settings */
-	serial_init,		/* serial communications setup */
 	display_banner,
 	display_dram_config,
 
@@ -197,6 +194,18 @@ void board_init_f(ulong boot_flags)
 
 	gd->flags = boot_flags;
 
+	if (env_init() != 0)
+		hang();
+
+	if (init_baudrate() != 0)
+		hang();
+
+	if (serial_init() != 0)
+		hang();
+
+	if (console_init_f() != 0)
+		hang();
+
 	if (dram_init_f() != 0)
 		hang();