diff mbox

[U-Boot,v6,5/9] armv8: fsl-layerscape: spl: remove BSS clearing and board_init_r

Message ID 1473242174-5807-6-git-send-email-Qianyu.Gong@nxp.com
State Accepted
Delegated to: York Sun
Headers show

Commit Message

Gong Qianyu Sept. 7, 2016, 9:56 a.m. UTC
As per the top level U-Boot README "Board Initialisation Flow"
section, board_init_f() should return without calling board_init_r()
directly.
Clearing BSS and calling board_init_r() will be done in crt0_64.S.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
---
v6:
 - No change.
v5:
 - New Patch.

 arch/arm/cpu/armv8/fsl-layerscape/spl.c | 5 -----
 1 file changed, 5 deletions(-)

Comments

York Sun Sept. 8, 2016, 5:06 p.m. UTC | #1
On 09/07/2016 03:08 AM, Gong Qianyu wrote:
> As per the top level U-Boot README "Board Initialisation Flow"
> section, board_init_f() should return without calling board_init_r()
> directly.
> Clearing BSS and calling board_init_r() will be done in crt0_64.S.
>
> Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
> ---
> v6:
>  - No change.
> v5:
>  - New Patch.
>
>  arch/arm/cpu/armv8/fsl-layerscape/spl.c | 5 -----
>  1 file changed, 5 deletions(-)
>
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> index 19e34fa..b8e1d75 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> @@ -62,13 +62,8 @@ void board_init_f(ulong dummy)
>  	i2c_init_all();
>  #endif
>  	dram_init();
> -
> -	/* Clear the BSS */
> -	memset(__bss_start, 0, __bss_end - __bss_start);
> -
>  #ifdef CONFIG_LAYERSCAPE_NS_ACCESS
>  	enable_layerscape_ns_access();
>  #endif
> -	board_init_r(NULL, 0);
>  }
>  #endif
>

Qianyu,

This looks OK but it breaks LS2080ARDB NAND boot. Please investigate.

York
Gong Qianyu Sept. 9, 2016, 6:12 a.m. UTC | #2
Hi York,

> -----Original Message-----
> From: york sun
> Sent: Friday, September 09, 2016 1:07 AM
> To: Q.Y. Gong <qianyu.gong@nxp.com>; u-boot@lists.denx.de
> Cc: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>; Vincent Hu
> <mingkai.hu@nxp.com>; S.H. Xie <shaohui.xie@nxp.com>; Z.Q. Hou
> <zhiqiang.hou@nxp.com>; Wenbin Song <wenbin.song@nxp.com>; Shengzhou Liu
> <shengzhou.liu@nxp.com>
> Subject: Re: [Patch v6 5/9] armv8: fsl-layerscape: spl: remove BSS clearing and
> board_init_r
> 
> On 09/07/2016 03:08 AM, Gong Qianyu wrote:
> > As per the top level U-Boot README "Board Initialisation Flow"
> > section, board_init_f() should return without calling board_init_r()
> > directly.
> > Clearing BSS and calling board_init_r() will be done in crt0_64.S.
> >
> > Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
> > ---
> > v6:
> >  - No change.
> > v5:
> >  - New Patch.
> >
> >  arch/arm/cpu/armv8/fsl-layerscape/spl.c | 5 -----
> >  1 file changed, 5 deletions(-)
> >
> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> > b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> > index 19e34fa..b8e1d75 100644
> > --- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
> > @@ -62,13 +62,8 @@ void board_init_f(ulong dummy)
> >  	i2c_init_all();
> >  #endif
> >  	dram_init();
> > -
> > -	/* Clear the BSS */
> > -	memset(__bss_start, 0, __bss_end - __bss_start);
> > -
> >  #ifdef CONFIG_LAYERSCAPE_NS_ACCESS
> >  	enable_layerscape_ns_access();
> >  #endif
> > -	board_init_r(NULL, 0);
> >  }
> >  #endif
> >
> 
> Qianyu,
> 
> This looks OK but it breaks LS2080ARDB NAND boot. Please investigate.
> 
> York

I can boot it up with this patch set on star server: LS2085ARDB-1. 
I also tested the single patch and no issue.

This is my U-Boot command:
=>tftp 82000000 b52263/ls2080ardb/u-boot-with-spl.bin;nand erase 80000 180000;nand write 82000000 80000 120000;qixis_reset nand

Regards,
Qianyu
York Sun Sept. 13, 2016, 8:45 p.m. UTC | #3
On 09/08/2016 11:12 PM, Q.Y. Gong wrote:
>
> I can boot it up with this patch set on star server: LS2085ARDB-1.
> I also tested the single patch and no issue.
>
> This is my U-Boot command:
> =>tftp 82000000 b52263/ls2080ardb/u-boot-with-spl.bin;nand erase 80000 180000;nand write 82000000 80000 120000;qixis_reset nand
>

It looks like I have a bad combination of toolchain and code. First I 
have to revert commit "ARM: Rework and correct barrier definitions", 
then I can make it boot with older toolchains

Linaro GCC 4.9-2015.03, and Linaro GCC 4.9-2014.09

But I cannot use a newer toolchain with the same code, for example 
gcc-linaro-4.9-2016.02, gcc-linaro-5.3-2016.02. What's your toolchain 
version?

York
Gong Qianyu Sept. 14, 2016, 7:32 a.m. UTC | #4
Hi York,


I'm still using an older version of toolchain(4.9-2014.07).


But I just tried to use the gcc-linaro-4.9-2016.02.

It couldn't boot up even without my patchset(hang in SPL).


Regards,

Qianyu
York Sun Sept. 14, 2016, 3:55 p.m. UTC | #5
Qianyu,

On 09/14/2016 12:32 AM, Q.Y. Gong wrote:
>
> Hi York,
>
>
> I'm still using an older version of toolchain(4.9-2014.07).
>
>
> But I just tried to use the gcc-linaro-4.9-2016.02.
>
> It couldn't boot up even without my patchset(hang in SPL).

I think you may just reproduced the issue I have seen. Try to revert 
a78cd8613204188991c192b8dae2de0aae3b1722, ARM: Rework and correct 
barrier definitions. See discussion 
http://lists.denx.de/pipermail/u-boot/2016-September/265593.html.

York
diff mbox

Patch

diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
index 19e34fa..b8e1d75 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
@@ -62,13 +62,8 @@  void board_init_f(ulong dummy)
 	i2c_init_all();
 #endif
 	dram_init();
-
-	/* Clear the BSS */
-	memset(__bss_start, 0, __bss_end - __bss_start);
-
 #ifdef CONFIG_LAYERSCAPE_NS_ACCESS
 	enable_layerscape_ns_access();
 #endif
-	board_init_r(NULL, 0);
 }
 #endif