[U-Boot] [PATCH] defconfig: taurus_defconfig: disable SPL

Yang, Wenyou
2015-12-09T09:06:57Z

Hello Heiko,

> -----Original Message-----
> From: Heiko Schocher [mailto:hs at denx.de]
> Sent: 2015?12?9? 16:46
> To: Yang, Wenyou <Wenyou.Yang@atmel.com>
> Cc: U-Boot Mailing List <u-boot@lists.denx.de>; andreas.devel at googlemail.com;
> Meier, Roger <r.meier@siemens.com>
> Subject: Re: [PATCH] defconfig: taurus_defconfig: disable SPL
>
> Hello Wenyou,
>
> Am 09.12.2015 um 09:34 schrieb Yang, Wenyou:
> > Hi
> >
> >> -----Original Message-----
> >> From: Heiko Schocher [mailto:hs at denx.de]
> >> Sent: 2015?12?9? 16:00
> >> To: Yang, Wenyou <Wenyou.Yang@atmel.com>
> >> Cc: U-Boot Mailing List <u-boot@lists.denx.de>;
> >> andreas.devel at googlemail.com; Meier, Roger <r.meier@siemens.com>
> >> Subject: Re: [PATCH] defconfig: taurus_defconfig: disable SPL
> >>
> >> Hello Wenyou,
> >>
> >> Am 09.12.2015 um 08:43 schrieb Yang, Wenyou:
> >>> Hello Heiko,
> >>>
> >>>> -----Original Message-----
> >>>> From: Heiko Schocher [mailto:hs at denx.de]
> >>>> Sent: 2015?12?9? 15:39
> >>>> To: Yang, Wenyou <Wenyou.Yang@atmel.com>
> >>>> Cc: U-Boot Mailing List <u-boot@lists.denx.de>;
> >>>> andreas.devel at googlemail.com; Meier, Roger <r.meier@siemens.com>
> >>>> Subject: Re: [PATCH] defconfig: taurus_defconfig: disable SPL
> >>>>
> >>>> Hello Wenyou,
> >>>>
> >>>> Am 09.12.2015 um 08:15 schrieb Wenyou Yang:
> >>>>> Build SPL with taurus_defconfig defconfig file.
> >>>>> It build fails with following log message:
> >>>>>
> >>>>> ---8< ----
> >>>>> $ make mrproper
> >>>>> $ make taurus_defconfig
> >>>>> $ make SPL
> >>>>> [...]
> >>>>> LD spl/lib/built-in.o
> >>>>> LDS spl/u-boot-spl.lds
> >>>>> LD spl/u-boot-spl
> >>>>> arm-none-linux-gnueabi-ld: SPL image too big
> >>>>> make[1]: *** [spl/u-boot-spl] Error 1
> >>>>> make: *** [spl/u-boot-spl] Error 2
> >>>>> --->8----
> >>>>>
> >>>>> This board code is not ready for SPL for now, so disable CONFIG_SPL.
> >>>>>
> >>>>> Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
> >>>>> ---
> >>>>>
> >>>>> configs/taurus_defconfig | 1 -
> >>>>> 1 file changed, 1 deletion(-)
> >>>>
> >>>> NACK.
> >>>>
> >>>> With which toolchain?
> >>>
> >>> The toolchain is Sourcery CodeBench Lite 2013.05-24. Here is the
> >>> toolchain information,
> >>>
> >>> ---8<-----
> >>> $ arm-none-linux-gnueabi-gcc -v
> >>> Using built-in specs.
> >>> COLLECT_GCC=arm-none-linux-gnueabi-gcc
> >>> COLLECT_LTO_WRAPPER=/home/wyang/opt/arm-
> >> 2013.05/bin/../libexec/gcc/arm
> >>> -none-linux-gnueabi/4.7.3/lto-wrapper
> >>> Target: arm-none-linux-gnueabi
> >>> Configured with:
> >>> /scratch/jbrown/2013.05-arm-linux-release/src/gcc-4.7-2013.05/config
> >>> ur e --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu
> >>> --target=arm-none-linux-gnueabi --enable-threads
> >>> --disable-libmudflap --disable-libssp --disable-libstdcxx-pch
> >>> --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as
> >>> --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm}
> >>> %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-
> >>> fu nwind-tables} -D__CS_SOURCERYGXX_MAJ__=2013 -
> >> D__CS_SOURCERYGXX_MIN__=5
> >>> -D__CS_SOURCERYGXX_REV__=24 %{O2:%{!fno-remove-local-statics:
> >>> -fremove-local-statics}}
> >>> %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics:
> >>> -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared
> >>> --enable-lto --enable-symvers=gnu --enable-__cxa_atexit
> >>> --with-pkgversion='Sourcery CodeBench Lite 2013.05-24'
> >>> --with-bugurl=https://sourcery.mentor.com/GNUToolchain/
> >>> --disable-nls --prefix=/opt/codesourcery
> >>> --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --w
> >> i
> >> th-build-sysroot=/scratch/jbrown/2013.05-arm-linux-release/install/ar
> >> m-none-linux- gnueabi/libc
> >> --with-gmp=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-
> >> 2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-
> >> gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-
> >> mpfr=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm
> >> -none-
> >> linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-
> >> i686-pc- linux-gnu/usr
> >> --with-mpc=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-
> >> 2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-
> >> gnueabi.extras/host-libs-i686-pc-linux-gnu/usr
> >> --with-ppl=/scratch/jbrown/2013.05-
> >> arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.
> >> 05-24- arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr
> >> --with-host- libstdcxx='-static-libgcc
> >> -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-
> >> cloog=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-ar
> >> m-none- linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extr
> >> a
> >> s/host-libs-i686-pc-linux-gnu/usr
> >> --with-libelf=/scratch/jbrown/2013.05-arm-linux-
> >> release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-
> >> none- linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr
> >> --disable-libgomp --disable- libitm
> >> --enable-poison-system-directories --with-build-time-
> >> tools=/scratch/jbrown/2013.05-arm-linux-release/install/arm-none-linu
> >> x- gnueabi/bin
> >> --with-build-time-tools=/scratch/jbrown/2013.05-arm-linux-
> >> release/install/arm-none-linux-gnueabi/bin
> >>> Thread model: posix
> >>> gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-24)
> >>> --->8---------
> >>
> >> Just tried with
> >>
> >> hs at localhost:u-boot [master] $ arm-unknown-linux-gnueabi-gcc -v
> >> Using built-in specs.
> >> COLLECT_GCC=arm-unknown-linux-gnueabi-gcc
> >>
> COLLECT_LTO_WRAPPER=/home/hs/data/Entwicklung/zug/cacheperformance/c
> >> rosstool/tools-linaro-5.2-20151110/arm-unknown-linux-gnueabi/libexec/
> >> gcc/arm- unknown-linux-gnueabi/5.2.1/lto-wrapper
> >> Target: arm-unknown-linux-gnueabi
> >> Configured with:
> >> /home/hs/data/Entwicklung/zug/cacheperformance/crosstool/.build/src/g
> >> cc-
> >> custom/configure
> >> --build=x86_64-build_unknown-linux-gnu
> >> --host=x86_64-build_unknown-linux-gnu
> >> --target=arm-unknown-linux-gnueabi
> >> --prefix=/home/hs/data/Entwicklung/zug/cacheperformance/crosstool/too
> >> ls-linaro- 5.2-20151110/arm-unknown-linux-gnueabi
> >> --with-sysroot=/home/hs/data/Entwicklung/zug/cacheperformance/crossto
> >> ol/tools-
> >> linaro-5.2-20151110/arm-unknown-linux-gnueabi/arm-unknown-linux-
> >> gnueabi/sysroot
> >> --enable-languages=c --with-pkgversion='crosstool-NG 1.21.0'
> >> --enable- __cxa_atexit --disable-libmudflap --disable-libgomp
> >> --disable-libssp --disable- libquadmath --disable-libquadmath-support
> >> --disable-libsanitizer --with-
> >> gmp=/home/hs/data/Entwicklung/zug/cacheperformance/crosstool/.build/a
> >> rm-
> >> unknown-linux-gnueabi/buildtools
> >> --with-
> >> mpfr=/home/hs/data/Entwicklung/zug/cacheperformance/crosstool/.build/
> >> arm-
> >> unknown-linux-gnueabi/buildtools
> >> --with-
> >> mpc=/home/hs/data/Entwicklung/zug/cacheperformance/crosstool/.build/a
> >> rm-
> >> unknown-linux-gnueabi/buildtools
> >> --with-ppl=no --with-isl=no --with-cloog=no --with-
> >> libelf=/home/hs/data/Entwicklung/zug/cacheperformance/crosstool/.buil
> >> d/arm-
> >> unknown-linux-gnueabi/buildtools
> >> --enable-threads=posix --enable-target-optspace --disable-nls
> >> --disable-multilib --
> >> with-local-
> >> prefix=/home/hs/data/Entwicklung/zug/cacheperformance/crosstool/tools
> >> -linaro-
> >> 5.2-20151110/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysr
> >> oot
> >> --enable-c99 --enable-long-long
> >> Thread model: posix
> >> gcc version 5.2.1 20151110 (crosstool-NG 1.21.0) hs at localhost:u-boot
> >> [master] $
> >>
> >> hs at localhost:u-boot [master] $ make taurus_defconfig
> >> HOSTCC scripts/basic/fixdep
> >> make all HOSTCC scripts/kconfig/conf.o
> >>
> >> SHIPPED scripts/kconfig/zconf.tab.c
> >> SHIPPED scripts/kconfig/zconf.lex.c
> >> SHIPPED scripts/kconfig/zconf.hash.c
> >> HOSTCC scripts/kconfig/zconf.tab.o
> >> HOSTLD scripts/kconfig/conf
> >> #
> >> # configuration written to .config
> >> #
> >> hs at localhost:u-boot [master] $ make all scripts/kconfig/conf
> >> --silentoldconfig Kconfig [...]
> >> LD spl/u-boot-spl
> >> OBJCOPY spl/u-boot-spl.bin
> >> CFG spl/u-boot-spl.cfg
> >> MKIMAGE boot.bin
> >> MKIMAGE u-boot.img
> >> hs at localhost:u-boot [master] $
> >> hs at localhost:u-boot [master] $ ls -al spl/u-boot-spl.bin -rwxrwxr-x.
> >> 1 hs hs 15824 9. Dez 08:56 spl/u-boot-spl.bin hs at localhost:u-boot
> >> [master] $
> >>
> >> Use another toolchain? How big is your spl/u-boot-spl.bin ?
> >
> > I will try another toolchain.
> > The size of spl/u-boot-spl.bin is 16048 generated by my current toolchain.
> >
> > ---8<-----
> > $ ls -l spl/u-boot-spl.bin
> > -rwxrwxr-x 1 wyang wyang 16048 Dec 9 16:16 spl/u-boot-spl.bin
> > --->8----
> >
> > Maybe the "CONFIG_SPL_MAX_SIZE" should be changed to bigger one, not
> above 16K. It will be OK.
>
> There are only 16K sram for SPL ... we need some bytes also for the stack ...
Yes, there are 512 bytes reserved for the stack. I think 256 bytes is enough.

Anyway, it can succeed to compile with your toolchain.

>
> bye,
> Heiko
> >
> >>
> >> bye,
> >> Heiko
> >>>
> >>>>
> >>>> Here current build of u-boot on travis-ci.org:
> >>>> with eldk-5.4:
> >>>> https://travis-ci.org/u-boot/u-boot/jobs/95590341
> >>>> https://travis-ci.org/u-boot/u-boot/jobs/95590311
> >>>>
> >>>> bye,
> >>>> Heiko
> >>>>>
> >>>>> diff --git a/configs/taurus_defconfig b/configs/taurus_defconfig
> >>>>> index
> >>>>> d59912c..557b066 100644
> >>>>> --- a/configs/taurus_defconfig
> >>>>> +++ b/configs/taurus_defconfig
> >>>>> @@ -1,7 +1,6 @@
> >>>>> CONFIG_ARM=y
> >>>>> CONFIG_ARCH_AT91=y
> >>>>> CONFIG_TARGET_TAURUS=y
> >>>>> -CONFIG_SPL=y
> >>>>>
> >>>>
> >>
> CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9G20,MACH_TYPE=2067,BOARD_
> >>>> TAURUS"
> >>>>> CONFIG_SYS_PROMPT="U-Boot> "
> >>>>> # CONFIG_CMD_BDI is not set
> >>>>>

Best Regards,
Wenyou Yang