[U-Boot] Debugging U-boot after relocation

Dunda, Matthias Matthias.Dunda at de.thalesgroup.com
Thu Nov 26 08:55:05 CET 2009


Hi again,

following up on my other message, I split them up into seperate messages, as
I think there are different reasons.

When I start the target from the BDI shell with "RESET RUN" and wait until
the "Hit any key to stop autoboot" message appears, I can then attach to the
target :

Remote debugging using jtag:3333
0x1ff731ec in ?? ()

I then discard the symbols:

(gdb) symb
Discard symbol table from `...uboot/u-boot-2009.08/u-boot'? (y or n) y
No symbol file now.

Then, I calculate the RAM address for the symbols as described in
DULG-10.1.2.:

RAM is 512 MB  --> 0x2000 0000
Monitor Len according to board specific file is 256k  --> 0x0004 0000
This yields address 0x1FFC 0000.

(gdb) add-symbol-file u-boot 0x1FFC0000
add symbol table from file "u-boot" at
        .text_addr = 0x1FFC0000
(y or n) y
Reading symbols from ...uboot/u-boot-2009.08/u-boot...done.

I then apply a breakpoint to TftpStart, which is definitely up next:

(gdb) b TftpStart
Breakpoint 1 at 0x1ffc6314: file tftp.c, line 474.

looks like an appropriate address, anyway saying

(gdb) c
Continuing.

never stops in TftpStart. The kernel is loaded by TFTP and the target can
only be halted by pressing Ctrl-C.


On the other hand, calculating the address the other way yields

(gdb) print/x ((gd_t *)$r2)->reloc_off
$4 = 0x1fff0000

adding this to TEXT_BASE which is

./board/freescale/mpc8568mds/config.mk:TEXT_BASE = 0xfff80000

results in something above 32 bit.

What am I doing wrong here?

Cheers
Matthias



More information about the U-Boot mailing list