1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- Notes for the Qemu MIPS port
- I) Example usage:
- # ln -s u-boot.bin mips_bios.bin
- start it:
- qemu-system-mips -L . /dev/null -nographic
- or
- if you use a qemu version after commit 4224
- create image:
- # dd of=flash bs=1k count=4k if=/dev/zero
- # dd of=flash bs=1k conv=notrunc if=u-boot.bin
- start it:
- # qemu-system-mips -M mips -pflash flash -monitor null -nographic
- II) How to debug U-Boot
- In order to debug U-Boot you need to start qemu with gdb server support (-s)
- and waiting the connection to start the CPU (-S)
- # qemu-system-mips -S -s -M mips -pflash flash -monitor null -nographic
- in an other console you start gdb
- 1) Debugging of U-Boot Before Relocation
- Before relocation, the addresses in the ELF file can be used without any problems
- buy connecting to the gdb server localhost:1234
- # mipsel-unknown-linux-gnu-gdb u-boot
- GNU gdb 6.6
- Copyright (C) 2006 Free Software Foundation, Inc.
- GDB is free software, covered by the GNU General Public License, and you are
- welcome to change it and/or distribute copies of it under certain conditions.
- Type "show copying" to see the conditions.
- There is absolutely no warranty for GDB. Type "show warranty" for details.
- This GDB was configured as "--host=i486-linux-gnu --target=mipsel-unknown-linux-gnu"...
- (gdb) target remote localhost:1234
- Remote debugging using localhost:1234
- _start () at start.S:64
- 64 RVECENT(reset,0) /* U-boot entry point */
- Current language: auto; currently asm
- (gdb) b board.c:289
- Breakpoint 1 at 0xbfc00cc8: file board.c, line 289.
- (gdb) c
- Continuing.
- Breakpoint 1, board_init_f (bootflag=<value optimized out>) at board.c:290
- 290 relocate_code (addr_sp, id, addr);
- Current language: auto; currently c
- (gdb) p/x addr
- $1 = 0x87fa0000
- 2) Debugging of U-Boot After Relocation
- For debugging U-Boot after relocation we need to know the address to which
- U-Boot relocates itself to 0x87fa0000 by default.
- And replace the symbol table to this offset.
- (gdb) symbol-file
- Discard symbol table from `/private/u-boot-arm/u-boot'? (y or n) y
- Error in re-setting breakpoint 1:
- No symbol table is loaded. Use the "file" command.
- No symbol file now.
- (gdb) add-symbol-file u-boot 0x87fa0000
- add symbol table from file "u-boot" at
- .text_addr = 0x87fa0000
- (y or n) y
- Reading symbols from /private/u-boot-arm/u-boot...done.
- Breakpoint 1 at 0x87fa0cc8: file board.c, line 289.
- (gdb) c
- Continuing.
- Program received signal SIGINT, Interrupt.
- 0xffffffff87fa0de4 in udelay (usec=<value optimized out>) at time.c:78
- 78 while ((tmo - read_c0_count()) < 0x7fffffff)
|