Message ID | 1473242174-5807-6-git-send-email-Qianyu.Gong@nxp.com |
---|---|
State | Accepted |
Delegated to: | York Sun |
Headers | show |
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
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
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
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
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 --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
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(-)