[U-Boot-Users] trouble to build u-boot.bin with objcopy
valerian NA
valerian.cowmet at gmail.com
Wed Jun 18 17:09:48 CEST 2008
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).
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
9 .debug_line 0000607d 00000000 00000000 0001d138 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_info 00027d84 00000000 00000000 000231b5 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_abbrev 00005254 00000000 00000000 0004af39 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_aranges 00000660 00000000 00000000 00050190 2**3
CONTENTS, READONLY, DEBUGGING
13 .rodata.str1.1 0000209e 00000660 00000660 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
14 .debug_frame 000026cc 00000000 00000000 000507f0 2**2
CONTENTS, READONLY, DEBUGGING
15 .debug_loc 0000c9c7 00000000 00000000 00052ebc 2**0
CONTENTS, READONLY, DEBUGGING
16 .debug_pubnames 000016b1 00000000 00000000 0005f883 2**0
CONTENTS, READONLY, DEBUGGING
17 .debug_str 000043d5 00000000 00000000 00060f34 2**0
CONTENTS, READONLY, DEBUGGING
18 .comment 000006d6 00000000 00000000 00065309 2**0
CONTENTS, READONLY
19 .note.GNU-stack 00000000 00000000 00000000 000659df 2**0
CONTENTS, READONLY
20 .gnu.attributes 00000384 00000000 00000000 000659df 2**0
CONTENTS, READONLY
21 .debug_ranges 00000f60 00000000 00000000 00065d63 2**0
CONTENTS, READONLY, DEBUGGING
Just a command to show you how objs are compiled :
powerpc-linux-gnu-gcc -g -Os -fPIC -ffixed-r14 -meabi -D__KERNEL__
-DTEXT_BASE=0xFC000000 -I/a/good/path/to/include2 -I/a/good/path/to/include
-I/a/good/path/to/include -fno-builtin -ffreestanding -nostdinc
-isystem/usr/freescale-gcc-4.2.3/bin/../lib/gcc/powerpc-linux-gnu/4.2.3/include
-pipe -DCONFIG_PPC -D__powerpc__ -DCONFIG_8260 -DCONFIG_CPM2 -ffixed-r2
-ffixed-r29 -mstring -mcpu=603e -mmultiple -Wall -Wstrict-prototypes -c -o
/a/good/path/to/common/cmd_mac.o cmd_mac.c
And another command to see how u-boot is built :
powerpc-linux-gnu-ld -Bstatic -T /a/good/path/to/a/u-boot.lds -Ttext
0xFC000000 -n $UNDEF_SYM cpu/mpc8260/start.o \
--start-group lib_generic/libgeneric.a
board/rmp100/librmp100.a cpu/mpc8260/libmpc8260.a lib_ppc/libppc.a
fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a
fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a
rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/nand/libnand.a
drivers/nand_legacy/libnand_legacy.a drivers/sk98lin/libsk98lin.a
post/libpost.a post/cpu/libcpu.a common/libcommon.a --end-group -L
/usr/freescale-gcc-4.2.3/bin/../lib/gcc/powerpc-linux-gnu/4.2.3 -lgcc \
-Map u-boot.map -o u-boot
If I do it with .a files compiled with gcc3 and after I do objcopy it works
but if I do it with .a files compiled with gcc4 it freezes.
NB :
- with gcc3, u-boot.bin has a size of 121KiB
- UNDEF_SYM=
-u__u_boot_cmd_autoscr -u__u_boot_cmd_bootm -u__u_boot_cmd_diskboot
-u__u_boot_cmd_end -u__u_boot_cmd_go -u__u_boot_cmd_help -u__u_boot_cmd_ide
-u__u_boot_cmd_printenv -u__u_boot_cmd_question_mark -u__u_boot_cmd_reset
-u__u_boot_cmd_setenv -u__u_boot_cmd_start -u__u_boot_cmd_version
- I know u-boot 1.1.6 is an older version but I have to use it not another
Thanks a lot for your attention and your futurs ideas...
Val.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20080618/22ef2ce8/attachment.htm
More information about the U-Boot
mailing list