[U-Boot] Coldfire: MCF5270: Compiling u-boot 2009.03-rc2 with gcc 4.3.3 and binutils 2.19.1 results in a u-boot that fails relocation to RAM.
Richard Retanubun
RichardRetanubun at RuggedCom.com
Thu Mar 19 15:54:42 CET 2009
Greetings,
I am trying to x86 cross-compile u-boot 2009.03-rc2 for the MCF5270 with gcc 4.3.3 and binutils 2.19.1 results in a u-boot that
fails its relocation to RAM. My boot sequence is this
U-Boot 2009.03-rc2dvl-00030-g28b1dbe (Mar 19 2009 - 10:21:06)
CPU: Freescale ColdFire MCF5270 rev. 1, at 150 MHz
Board: Ruggedcom MCF5270
I2C: ready
DRAM: 8 MB
>> This is what usually follows after, but fails <<
FLASH: 4 MB
In: serial
Out: serial
Err: serial
MAC: ethaddr 00:00:00:00:0F:00
Net: FEC0 [PRIME]
Hit any key to stop autoboot: 0
My gcc-4.3.3 compile flags are:
===============================
make -C drivers/serial/
make[1]: Entering directory `/home/richardretanubun/workspace/u-boot/drivers/serial'
make[1]: Leaving directory `/home/richardretanubun/workspace/u-boot/drivers/serial'
make[1]: Entering directory `/home/richardretanubun/workspace/u-boot/drivers/serial'
m68k-uclinux-gcc -g -Os -ffixed-d7 -msep-data -D__KERNEL__
-DTEXT_BASE=0xFFC00000 -I/home/richardretanubun/workspace/u-boot/include
-fno-builtin -ffreestanding -nostdinc -isystem /usr/local/m68k-uclinux-tools/lib/gcc/m68k-uclinux/4.3.3/include -pipe
-DCONFIG_M68K -D__M68K__ -mcpu=5271 -Wall -Wstrict-prototypes -fno-stack-protector -c -o mcfuart.o mcfuart.c
m68k-uclinux-ar crv libserial.a mcfuart.o a - mcfuart.o
make[1]: Leaving directory `/home/richardretanubun/workspace/u-boot/drivers/serial'
My gcc-4.1.1 compile flags are:
===============================
make -C drivers/serial/
make[1]: Entering directory `/home/richardretanubun/workspace/u-boot/drivers/serial'
make[1]: Leaving directory `/home/richardretanubun/workspace/u-boot/drivers/serial'
make[1]: Entering directory `/home/richardretanubun/workspace/u-boot/drivers/serial'
m68k-elf-gcc -g -Os -ffixed-d7 -msep-data -D__KERNEL__
-DTEXT_BASE=0xFFC00000 -I/home/richardretanubun/workspace/u-boot/include
-fno-builtin -ffreestanding -nostdinc -isystem /opt/m68knommu/usr/local/m68k-uclinux-tools/bin/../lib/gcc/m68k-uclinux/4.1.1/include -pipe
-DCONFIG_M68K -D__M68K__ -m5307 -Wall -Wstrict-prototypes -fno-stack-protector -c -o mcfuart.o mcfuart.c
m68k-elf-ar crv libserial.a mcfuart.o a - mcfuart.o
make[1]: Leaving directory `/home/richardretanubun/workspace/u-boot/drivers/serial'
Things of note
1. /cpu/mcf52x2/config.mk: the pre gcc-4.2.x, the cpu type is -m5307 and now it is -mcpu=5271
2. If I do objdump -d on the ELF, the newer toolchain seems to align code on 16-bit boundary, while the old one align code on 32-bit boundary.
3. With gcc-4.3.3. if I enforce -m5307, I got an error:
start.S:144: Error: operands mismatch -- statement `movec %d0,%RAMBAR1' ignored
Faking RAMBAR1 to RAMBAR bypasses this error, but the resulting binary won't boot (e.g. no single printf is printed after a reset).
Questions:
1. What am I missing?
2. What are the recommended tool-chain for building M5270 coldfire for u-boot?
Thanks very much for your time,
- Richard
More information about the U-Boot
mailing list