M68K Vectors

Peter LaDow pladow at gmail.com
Thu Jul 25 23:35:19 CEST 2024


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.

-- 
To love for the sake of being loved is human, but to love for the sake
of loving is angelic. -- Alphonse de Lamartine.


More information about the U-Boot mailing list