fvp: Initialise UART earlier

The UART used to be initialised in bl1_platform_setup(). This is too
late because there are some calls to the assert() macro, which needs
to print some messages on the console, before that.

This patch moves the UART initialisation code to
bl1_early_platform_setup().

Fixes ARM-software/tf-issues#49

Change-Id: I98c83a803866372806d2a9c2e1ed80f2ef5b3bcc
diff --git a/docs/porting-guide.md b/docs/porting-guide.md
index 460dbcc..c9e4a50 100644
--- a/docs/porting-guide.md
+++ b/docs/porting-guide.md
@@ -446,8 +446,8 @@
 for performing any remaining platform-specific setup that can occur after the
 MMU and data cache have been enabled.
 
-In the ARM FVP port, it zeros out the ZI section, enables the system level
-implementation of the generic timer counter and initializes the console.
+In the ARM FVP port, it zeros out the ZI section and enables the system level
+implementation of the generic timer counter.
 
 This function is also responsible for initializing the storage abstraction layer
 which is used to load further bootloader images.
diff --git a/plat/fvp/bl1_plat_setup.c b/plat/fvp/bl1_plat_setup.c
index 1cee705..d4fd81b 100644
--- a/plat/fvp/bl1_plat_setup.c
+++ b/plat/fvp/bl1_plat_setup.c
@@ -100,6 +100,9 @@
 
 	/* Initialize the platform config for future decision making */
 	platform_config_setup();
+
+	/* Initialize the console */
+	console_init(PL011_UART0_BASE);
 }
 
 /*******************************************************************************
@@ -114,11 +117,6 @@
 
 	/* Enable and initialize the System level generic timer */
 	mmio_write_32(SYS_CNTCTL_BASE + CNTCR_OFF, CNTCR_EN);
-
-	/* Initialize the console */
-	console_init(PL011_UART0_BASE);
-
-	return;
 }