Skip to contentSkip to conversation

axm SPL image too big

U-Boot Albert ARIBAUD 3 participants 5 messages Jan 12, 2016 – Jan 13, 2016

lore
Share & tools
lore
#0 lore raw

(cc:ing Heiko as the maintainer for axm/taurus)

Hello,

AXM is currently the only board failing 'buildman arm aarch64':

+arm-unknown-linux-gnueabi-ld.bfd: SPL image too big +make[2]: *** [spl/u-boot-spl] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2

Apparently SPL is already being built in Thumb instruction set, so no way to gain anything that way.

What else can we do to get SPL size back under limit?

Amicalement,

Signature · 1 line
Albert.
#1 lore raw

Hello Albert,

Am 12.01.2016 um 11:26 schrieb Albert ARIBAUD:

Quoted 11 lines

(cc:ing Heiko as the maintainer for axm/taurus)

Hello,

AXM is currently the only board failing 'buildman arm aarch64':

(quoted diff) +4 -0
+arm-unknown-linux-gnueabi-ld.bfd: SPL image too big
+make[2]: *** [spl/u-boot-spl] Error 1
+make[1]: *** [spl/u-boot-spl] Error 2
+make: *** [sub-make] Error 2
Quoted 2 lines

Apparently SPL is already being built in Thumb instruction set, so no way to gain anything that way.

I know, it was tricky to get SPL into 4k ...

Quoted 1 line

What else can we do to get SPL size back under limit?

Hmm.. what is your exact toolchain?

I see for the axm board:

With eldk-5.4
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
212583 23792 23552 259927 3f757 u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14568 1212 1140 16920 4218 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $

With eldk-5.5
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
210690 23672 23556 257918 3ef7e u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14472 1212 1140 16824 41b8 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $

for the taurus board:
eldk-5.4
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
284516 25500 1272228 1582244 1824a4 u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14488 1212 1140 16840 41c8 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $
eldk-5.5
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
282155 25380 1274580 1582115 182423 u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14392 1212 1140 16744 4168 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $
bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#2 lore raw

Hello Heiko,

Quoted 14 lines · Heiko Schocher

Hello Albert,

Am 12.01.2016 um 11:26 schrieb Albert ARIBAUD:

Quoted 11 lines

(cc:ing Heiko as the maintainer for axm/taurus)

Hello,

AXM is currently the only board failing 'buildman arm aarch64':

(quoted diff) +4 -0
+arm-unknown-linux-gnueabi-ld.bfd: SPL image too big
+make[2]: *** [spl/u-boot-spl] Error 1
+make[1]: *** [spl/u-boot-spl] Error 2
+make: *** [sub-make] Error 2
Quoted 8 lines
Quoted 2 lines

Apparently SPL is already being built in Thumb instruction set, so no way to gain anything that way.

I know, it was tricky to get SPL into 4k ...

Quoted 1 line

What else can we do to get SPL size back under limit?

Hmm.. what is your exact toolchain?

I tested with the buildman-fetched gcc, -v gives 'gcc version 4.9.0 (GCC)'.

I've deleted the toolchain and re-fetched it again through buildman in case there was an issue with the install, and am getting the same result.

I've also tested with the latest ARM gcc package available with Ubuntu, that is, 'gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu1)', again with the same result.

Quoted 10 lines

I see for the axm board:

With eldk-5.4
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
212583 23792 23552 259927 3f757 u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14568 1212 1140 16920 4218 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $

Confirmed right now that with eldk 5.4's gcc 4.7.2 axm builds fine.

Quoted 8 lines

With eldk-5.5
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
210690 23672 23556 257918 3ef7e u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14472 1212 1140 16824 41b8 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $

Confirmed right now that with eldk 5.5's (or 5.5.3's) gcc 4.8.1 axm builds fine.

The issue appears with gcc 4.9 and 5.2.1 (and I suspect any version between 4.9 and 5.2.1 and beyond 5.2.1)

Quoted 5 lines

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

Amicalement,

Signature · 1 line
Albert.
#3 lore raw

Hello Albert,

Am 12.01.2016 um 15:25 schrieb Albert ARIBAUD:

Quoted 59 lines

Hello Heiko,

Quoted 14 lines · Heiko Schocher

Hello Albert,

Am 12.01.2016 um 11:26 schrieb Albert ARIBAUD:

Quoted 11 lines

(cc:ing Heiko as the maintainer for axm/taurus)

Hello,

AXM is currently the only board failing 'buildman arm aarch64':

(quoted diff) +4 -0
+arm-unknown-linux-gnueabi-ld.bfd: SPL image too big
+make[2]: *** [spl/u-boot-spl] Error 1
+make[1]: *** [spl/u-boot-spl] Error 2
+make: *** [sub-make] Error 2
Quoted 8 lines
Quoted 2 lines

Apparently SPL is already being built in Thumb instruction set, so no way to gain anything that way.

I know, it was tricky to get SPL into 4k ...

Quoted 1 line

What else can we do to get SPL size back under limit?

Hmm.. what is your exact toolchain?

I tested with the buildman-fetched gcc, -v gives 'gcc version 4.9.0 (GCC)'.

I've deleted the toolchain and re-fetched it again through buildman in case there was an issue with the install, and am getting the same result.

I've also tested with the latest ARM gcc package available with Ubuntu, that is, 'gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu1)', again with the same result.

Quoted 10 lines

I see for the axm board:

With eldk-5.4
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
212583 23792 23552 259927 3f757 u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14568 1212 1140 16920 4218 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $

Confirmed right now that with eldk 5.4's gcc 4.7.2 axm builds fine.

Quoted 8 lines

With eldk-5.5
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
210690 23672 23556 257918 3ef7e u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14472 1212 1140 16824 41b8 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $

Quoted 5 lines

Confirmed right now that with eldk 5.5's (or 5.5.3's) gcc 4.8.1 axm builds fine.

The issue appears with gcc 4.9 and 5.2.1 (and I suspect any version between 4.9 and 5.2.1 and beyond 5.2.1)

Yes :-(

Tested with linaro 5.2 using:
hs at localhost:u-boot [master] $ arm-unknown-linux-gnueabi-gcc --version arm-unknown-linux-gnueabi-gcc (crosstool-NG 1.21.0) 5.2.1 20151005 Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

hs at localhost:u-boot [master] $

and size is:
hs at localhost:u-boot [master] $ arm-unknown-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14734 1212 1140 17086 42be spl/u-boot-spl
hs at localhost:u-boot [master] $

aprox 0x100 bigger than with eldk-5.5 ... :-(

But I have only 16k sram on at91sam9g20 ... Ok, there are 2 such areas, but between them is a hole :-( damn...

Adding Andreas to cc, may he has an idea?

Do gcc 4.9 need other settings for optimizing code?

bye,
Heiko

Signature · 3 lines
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#4 lore raw
Quoted 85 lines · Heiko Schocher

Hello Albert,

Am 12.01.2016 um 15:25 schrieb Albert ARIBAUD:

Quoted 59 lines

Hello Heiko,

Quoted 14 lines · Heiko Schocher

Hello Albert,

Am 12.01.2016 um 11:26 schrieb Albert ARIBAUD:

Quoted 11 lines

(cc:ing Heiko as the maintainer for axm/taurus)

Hello,

AXM is currently the only board failing 'buildman arm aarch64':

(quoted diff) +4 -0
+arm-unknown-linux-gnueabi-ld.bfd: SPL image too big
+make[2]: *** [spl/u-boot-spl] Error 1
+make[1]: *** [spl/u-boot-spl] Error 2
+make: *** [sub-make] Error 2
Quoted 8 lines
Quoted 2 lines

Apparently SPL is already being built in Thumb instruction set, so no way to gain anything that way.

I know, it was tricky to get SPL into 4k ...

Quoted 1 line

What else can we do to get SPL size back under limit?

Hmm.. what is your exact toolchain?

I tested with the buildman-fetched gcc, -v gives 'gcc version 4.9.0 (GCC)'.

I've deleted the toolchain and re-fetched it again through buildman in case there was an issue with the install, and am getting the same result.

I've also tested with the latest ARM gcc package available with Ubuntu, that is, 'gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu1)', again with the same result.

Quoted 10 lines

I see for the axm board:

With eldk-5.4
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
212583 23792 23552 259927 3f757 u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14568 1212 1140 16920 4218 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $

Confirmed right now that with eldk 5.4's gcc 4.7.2 axm builds fine.

Quoted 8 lines

With eldk-5.5
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
text data bss dec hex filename
210690 23672 23556 257918 3ef7e u-boot
pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14472 1212 1140 16824 41b8 spl/u-boot-spl
pollux:u-boot-smartweb hs [master] $

Quoted 5 lines

Confirmed right now that with eldk 5.5's (or 5.5.3's) gcc 4.8.1 axm builds fine.

The issue appears with gcc 4.9 and 5.2.1 (and I suspect any version between 4.9 and 5.2.1 and beyond 5.2.1)

Yes :-(

Tested with linaro 5.2 using:
hs at localhost:u-boot [master] $ arm-unknown-linux-gnueabi-gcc --version arm-unknown-linux-gnueabi-gcc (crosstool-NG 1.21.0) 5.2.1 20151005 Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

hs at localhost:u-boot [master] $

and size is:
hs at localhost:u-boot [master] $ arm-unknown-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14734 1212 1140 17086 42be spl/u-boot-spl
hs at localhost:u-boot [master] $

Quoted 8 lines

aprox 0x100 bigger than with eldk-5.5 ... :-(

But I have only 16k sram on at91sam9g20 ... Ok, there are 2 such areas, but between them is a hole :-( damn...

Adding Andreas to cc, may he has an idea?

Do gcc 4.9 need other settings for optimizing code?

I think the first step in debugging (as I've done this before) is bump the limit up so you can link and then examine the map file to look for suspicious things to try and discard (or strings to play around with so they can be never included, along with the function that was already discarded).

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160113/7c5ba301/attachment.sig>