
I'm trying to add support for a custom Colfire based board. I have things building, but the final linked vectors in start.S do not point to _start. In start.S I have:
_vectors: .long 0x00000000 /* Flash offset is 0 until we setup CS0 */ .long _START
.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
Dumping the symbols in the final u-boot yields:
$ m68k-linux-gnu-nm -n u-boot 00000000 A __fixup_entries 00000000 A __got2_entries 00000000 t _vectors 00000400 T _start 0000047e T relocate_code 000004ae t fixloop
But then dumping the raw binary:
u-boot: file format elf32-m68k
Contents of section .text: 00000 00000000 00000000 00000516 00000516 ................ 00010 00000516 00000516 00000516 00000516 ................ 00020 00000516 00000516 00000516 00000516 ................ 00030 00000516 00000516 00000516 00000516 ................
Note at offset 4 it is 0x00000000, not 0x00000400 as I'd expect.
The final linker script has:
OUTPUT_ARCH(m68k) ENTRY(_start) SECTIONS { .text : { arch/m68k/cpu/mcf548x/start.o (.text*) . = DEFINED(env_offset) ? env_offset : .; env/embedded.o(.text*); *(.text*) }
It is difficult to search the archives, and so far I haven't found anything. Any help would be appreciated.