Patchwork [U-Boot] mpc5200: spl_boot.c: Change init oder to first enable printf

login
register
mail settings
Submitter Stefan Roese
Date Dec. 6, 2012, 1:41 p.m.
Message ID <1354801317-10736-1-git-send-email-sr@denx.de>
Download mbox | patch
Permalink /patch/204227/
State Accepted
Delegated to: Wolfgang Denk
Headers show

Comments

Stefan Roese - Dec. 6, 2012, 1:41 p.m.
On MPC5200, the initial RAM (and gd) is located in the internal
SRAM. So we can actually call the preloader console init code
before calling initdram(). This makes serial output (printf)
available very early, even before SDRAM init, which has been
an U-Boot priciple from day 1.

Signed-off-by: Stefan Roese <sr@denx.de>
---
 arch/powerpc/cpu/mpc5xxx/spl_boot.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
Wolfgang Denk - March 9, 2013, 1:45 p.m.
Dear Stefan Roese,

In message <1354801317-10736-1-git-send-email-sr@denx.de> you wrote:
> On MPC5200, the initial RAM (and gd) is located in the internal
> SRAM. So we can actually call the preloader console init code
> before calling initdram(). This makes serial output (printf)
> available very early, even before SDRAM init, which has been
> an U-Boot priciple from day 1.
> 
> Signed-off-by: Stefan Roese <sr@denx.de>
> ---
>  arch/powerpc/cpu/mpc5xxx/spl_boot.c | 20 ++++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)

Applied to u-boot-mpc5xxx repo, thanks.

Best regards,

Wolfgang Denk

Patch

diff --git a/arch/powerpc/cpu/mpc5xxx/spl_boot.c b/arch/powerpc/cpu/mpc5xxx/spl_boot.c
index 9f14127..080bd58 100644
--- a/arch/powerpc/cpu/mpc5xxx/spl_boot.c
+++ b/arch/powerpc/cpu/mpc5xxx/spl_boot.c
@@ -41,13 +41,12 @@  void board_init_f(ulong bootflag)
 	end_align = (u32)__spl_flash_end;
 
 	/*
-	 * First we need to initialize the SDRAM, so that the real
-	 * U-Boot or the OS (Linux) can be loaded
+	 * On MPC5200, the initial RAM (and gd) is located in the internal
+	 * SRAM. So we can actually call the preloader console init code
+	 * before calling initdram(). This makes serial output (printf)
+	 * available very early, even before SDRAM init, which has been
+	 * an U-Boot priciple from day 1.
 	 */
-	initdram(0);
-
-	/* Clear bss */
-	memset(__bss_start, '\0', __bss_end__ - __bss_start);
 
 	/*
 	 * Init global_data pointer. Has to be done before calling
@@ -71,6 +70,15 @@  void board_init_f(ulong bootflag)
 	preloader_console_init();
 
 	/*
+	 * First we need to initialize the SDRAM, so that the real
+	 * U-Boot or the OS (Linux) can be loaded
+	 */
+	initdram(0);
+
+	/* Clear bss */
+	memset(__bss_start, '\0', __bss_end__ - __bss_start);
+
+	/*
 	 * Call board_init_r() (SPL framework version) to load and boot
 	 * real U-Boot or OS
 	 */