[U-Boot-Users] trouble to build u-boot.bin with objcopy

Jerry Van Baren gerald.vanbaren at ge.com
Wed Jun 18 17:23:02 CEST 2008


valerian NA wrote:
> Hi all,
> 
> I work with a linux cross-compiler (codesourcery with gcc 4.2.3) for 
> embedded powerpc targets (mpc8248).
> So I tried to compile u-boot (version 1.1.6). It works fine with another 
> and older version of gcc (3.3.2) but with the new cross-compiler (4.2.3) 
> I have trouble to do this part :
> powerpc-linux-gnu-objcopy --gap-fill 0xff -O binary u-boot u-boot.bin
> 
> This command freezes and uses a lot of memory without sucess (maybe I 
> have not enough disk space).

Symptom of an inadvertent *large* gap in your "LOAD" sections.

> I decided to launch without "--gap-fill" to see the reaction :
> powerpc-linux-gnu-objcopy -O binary u-boot u-boot.bin
> It creates u-boot.bin file, and the system (host ls -al) tells that this 
> file has a size nearest to 4GiB
> 
> So I think it's a problem in the mapping of u-boot :
> powerpc-linux-gnu-objdump -h u-boot
> 
> u-boot:     file format elf32-powerpc
> 
> Sections:
> Idx Name          Size      VMA       LMA       File off  Algn
>   0 .text         00017e18  fc000000  fc000000  00002138  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>   1 .reloc        00000804  fc018000  fc018000  0001a138  2**0
>                   CONTENTS, ALLOC, LOAD, DATA
>   2 .data         00001060  fc018804  fc018804  0001a93c  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   3 .data.rel.ro.local 0000003c  fc019864  fc019864  0001b99c  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   4 .data.rel     0000003c  fc0198a0  fc0198a0  0001b9d8  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   5 .data.rel.local 00000634  fc0198dc  fc0198dc  0001ba14  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   6 .ppcenv       00000200  fc019f10  fc019f10  0001c048  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   7 .u_boot_cmd   000000dc  fc01a110  fc01a110  0001c248  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   8 .bss          00001bf8  fc01b000  fc01b000  0001d138  2**3
>                   ALLOC

[snip]

>  13 .rodata.str1.1 0000209e  00000660  00000660  00000094  2**0
>                   CONTENTS, ALLOC, LOAD, READONLY, DATA

What is .rodata.str1.1?  Is it new to gcc 4.2.3?  It is being located at 
the start of memory where all the rest of your "LOAD" sections are at 
the end of memory.  The result: 4GB binary images.  You need to locate 
this is a better location (close to the rest of the "LOAD" sections).

[snip]

> Thanks a lot for your attention and your futurs ideas...
> 
> Val.

HTH,
gvb




More information about the U-Boot mailing list