* [U-Boot-Users] debug u-boot using bdi2000
@ 2006-10-13 17:41 Reeve Yang
2006-10-13 18:05 ` Ben Warren
0 siblings, 1 reply; 9+ messages in thread
From: Reeve Yang @ 2006-10-13 17:41 UTC (permalink / raw)
To: u-boot
I'm trying to use bdi2000+gdb to debug u-boot. The image is ROM image on
flash, whenever I connect gdb to bdi, I saw execution stops at:
_start: /* time t 0 */
li r21, BOOTFLAG_COLD /* Normal Power-On: Boot from FLASH*/ ===>here
nop
b boot_cold
Then though I can set break point, e.g. cpu_init_f, but when continue
running break point never stops execution and u-boot just runs by itself.
Does it mean I can only debug ram image? does anyone has experience on this
could shed some lights?
Thanks.
- Reeve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20061013/8bd18da5/attachment.htm
^ permalink raw reply [flat|nested] 9+ messages in thread* [U-Boot-Users] debug u-boot using bdi2000 2006-10-13 17:41 [U-Boot-Users] debug u-boot using bdi2000 Reeve Yang @ 2006-10-13 18:05 ` Ben Warren 2006-10-13 18:12 ` Reeve Yang 0 siblings, 1 reply; 9+ messages in thread From: Ben Warren @ 2006-10-13 18:05 UTC (permalink / raw) To: u-boot On Fri, 2006-10-13 at 17:41 +0000, Reeve Yang wrote: > I'm trying to use bdi2000+gdb to debug u-boot. The image is ROM image > on flash, whenever I connect gdb to bdi, I saw execution stops at: > > _start: /* time t 0 */ > li r21, BOOTFLAG_COLD /* Normal Power-On: Boot from FLASH*/ > ===>here > nop > b boot_cold > > Then though I can set break point, e.g. cpu_init_f, but when continue > running break point never stops execution and u-boot just runs by > itself. > > Does it mean I can only debug ram image? does anyone has experience on > this could shed some lights? > > Thanks. > > - Reeve Remember to use hardware breakpoints, and that your CPU (you didn't mention what type) may only have one. You'll have to clear it after reaching each breakpoint. Read the BREAKMODE and STEPMODE entries (TARGET chapter) in your BDI manual. Also, can you single step through the ROM code? regards, Ben ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot-Users] debug u-boot using bdi2000 2006-10-13 18:05 ` Ben Warren @ 2006-10-13 18:12 ` Reeve Yang 2006-10-13 18:23 ` Reeve Yang 2006-10-13 18:34 ` Ben Warren 0 siblings, 2 replies; 9+ messages in thread From: Reeve Yang @ 2006-10-13 18:12 UTC (permalink / raw) To: u-boot My CPU is MPC8345E, it's same as MPC8349E with e300 core. Yes, it only supports on hardware break point. I tried it and it didn't work either. When I try to single step the code, I got following message on gdb session: Cannot find bounds of current function Is it possible to debug ROM image? Can bdi2000 debug ram image directly? I assume the "load" command is to load image into any memory space, including ram, right? On 10/13/06, Ben Warren <bwarren@qstreams.com> wrote: > > On Fri, 2006-10-13 at 17:41 +0000, Reeve Yang wrote: > > I'm trying to use bdi2000+gdb to debug u-boot. The image is ROM image > > on flash, whenever I connect gdb to bdi, I saw execution stops at: > > > > _start: /* time t 0 */ > > li r21, BOOTFLAG_COLD /* Normal Power-On: Boot from FLASH*/ > > ===>here > > nop > > b boot_cold > > > > Then though I can set break point, e.g. cpu_init_f, but when continue > > running break point never stops execution and u-boot just runs by > > itself. > > > > Does it mean I can only debug ram image? does anyone has experience on > > this could shed some lights? > > > > Thanks. > > > > - Reeve > Remember to use hardware breakpoints, and that your CPU (you didn't > mention what type) may only have one. You'll have to clear it after > reaching each breakpoint. Read the BREAKMODE and STEPMODE entries > (TARGET chapter) in your BDI manual. Also, can you single step through > the ROM code? > > regards, > Ben > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.denx.de/pipermail/u-boot/attachments/20061013/d1442c72/attachment.htm ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot-Users] debug u-boot using bdi2000 2006-10-13 18:12 ` Reeve Yang @ 2006-10-13 18:23 ` Reeve Yang 2006-10-13 18:44 ` Ben Warren 2006-10-13 18:34 ` Ben Warren 1 sibling, 1 reply; 9+ messages in thread From: Reeve Yang @ 2006-10-13 18:23 UTC (permalink / raw) To: u-boot Shall I use bdi telnet interface to set hardware break point or use gdb, or they are the same? I set break point mode into "HARD", then using gdb set break point, it never stops; if I use bdi interface to set, I saw following message when continue in gdb: (gdb) c Continuing. Warning: Cannot insert breakpoint -31. Error accessing memory address 0xfff00100: Unknown error 4294967295. I think we should be able to use software break point in RAM image, right? I really appreciate if you could give a hand on this issue. I need it urgently to debug further issues. Regards, - Reeve On 10/13/06, Reeve Yang <yang.reeve@gmail.com> wrote: > > My CPU is MPC8345E, it's same as MPC8349E with e300 core. Yes, it only > supports on hardware break point. I tried it and it didn't work either. When > I try to single step the code, I got following message on gdb session: > > Cannot find bounds of current function > > Is it possible to debug ROM image? Can bdi2000 debug ram image directly? I > assume the "load" command is to load image into any memory space, including > ram, right? > > On 10/13/06, Ben Warren <bwarren@qstreams.com> wrote: > > > > On Fri, 2006-10-13 at 17:41 +0000, Reeve Yang wrote: > > > I'm trying to use bdi2000+gdb to debug u-boot. The image is ROM image > > > on flash, whenever I connect gdb to bdi, I saw execution stops at: > > > > > > _start: /* time t 0 */ > > > li r21, BOOTFLAG_COLD /* Normal Power-On: Boot from FLASH*/ > > > ===>here > > > nop > > > b boot_cold > > > > > > Then though I can set break point, e.g. cpu_init_f, but when continue > > > running break point never stops execution and u-boot just runs by > > > itself. > > > > > > Does it mean I can only debug ram image? does anyone has experience on > > > this could shed some lights? > > > > > > Thanks. > > > > > > - Reeve > > Remember to use hardware breakpoints, and that your CPU (you didn't > > mention what type) may only have one. You'll have to clear it after > > reaching each breakpoint. Read the BREAKMODE and STEPMODE entries > > (TARGET chapter) in your BDI manual. Also, can you single step through > > the ROM code? > > > > regards, > > Ben > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.denx.de/pipermail/u-boot/attachments/20061013/b1d8c61a/attachment.htm ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot-Users] debug u-boot using bdi2000 2006-10-13 18:23 ` Reeve Yang @ 2006-10-13 18:44 ` Ben Warren 0 siblings, 0 replies; 9+ messages in thread From: Ben Warren @ 2006-10-13 18:44 UTC (permalink / raw) To: u-boot On Fri, 2006-10-13 at 18:23 +0000, Reeve Yang wrote: > Shall I use bdi telnet interface to set hardware break point or use > gdb, or they are the same? I think you can only set/change the mode using BDI, but am not a GDB expert. > I set break point mode into "HARD", then using gdb set break point, > it never stops; if I use bdi interface to set, I saw following message > when continue in gdb: > > (gdb) c > Continuing. > Warning: > Cannot insert breakpoint -31. > Error accessing memory address 0xfff00100: Unknown error 4294967295. Does your BDI session mention at this point that there are no available breakpoints? Before setting a breakpoint in GDB, type "del". This will clear any existing breakpoints. The equivalent command in BDI land is "ci" > > I think we should be able to use software break point in RAM image, > right? I really appreciate if you could give a hand on this issue. I > need it urgently to debug further issues. > You can use either type in RAM, but you'll find soft ones to be much more convenient. You obviously have bigger issues to work through first. Have you contacted Abatron (or your Abatron representative) for help? They're usually extremely helpful. regards, Ben ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot-Users] debug u-boot using bdi2000 2006-10-13 18:12 ` Reeve Yang 2006-10-13 18:23 ` Reeve Yang @ 2006-10-13 18:34 ` Ben Warren 2006-10-13 18:38 ` Timur Tabi 1 sibling, 1 reply; 9+ messages in thread From: Ben Warren @ 2006-10-13 18:34 UTC (permalink / raw) To: u-boot On Fri, 2006-10-13 at 18:12 +0000, Reeve Yang wrote: > My CPU is MPC8345E, it's same as MPC8349E with e300 core. Yes, it only > supports on hardware break point. I tried it and it didn't work > either. When I try to single step the code, I got following message on > gdb session: > > Cannot find bounds of current function > > Is it possible to debug ROM image? Can bdi2000 debug ram image > directly? I assume the "load" command is to load image into any memory > space, including ram, right? > I don't know how well supported your CPU is (I've never heard of it, but that's not saying much) Anyway, I've debugged ROM on a couple of different MPC8349s, but not with 100% success. I can single-step with the BDI, and can single-step assembly code, but not C code using gdb. Probably operator error, but this is about your problem... You can certainly debug in RAM. The DULG explains how. In case it helps, here's my config file. Not much there! [INIT] [TARGET] CPUTYPE 8349 ;the CPU type JTAGCLOCK 0 ;use 16 MHz JTAG clock POWERUP 2000 ;start delay after power-up detected in ms WAKEUP 500 ;give reset time to complete STARTUP RESET ;halt immediately at the boot vector BOOTADDR 0x00000100 ;boot address used for start-up BREAKMODE HARD breakpoint STEPMODE HWBP MMU XLAT 0xc0000000 ;enable address translation PTBASE 0x000000f0 SIO 8023 115200 [HOST] IP 10.69.69.21 LOAD MANUAL ;load code MANUAL or AUTO after reset PROMPT BDI_8349> [FLASH] CHIPTYPE MIRRORX16 ;Flash type: Spansion CHIPSIZE 0x800000 ;The size of one flash chip in bytes BUSWIDTH 16 WORKSPACE 0x1000 ;workspace in DDR RAM ERASE 0xfe000000 0x2000 8 ;erase small sectors ERASE 0xfe010000 0x10000 3 ;erase 3 big sectors for U-boot [REGS] FILE $reg8349e.def ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot-Users] debug u-boot using bdi2000 2006-10-13 18:34 ` Ben Warren @ 2006-10-13 18:38 ` Timur Tabi 2006-10-13 18:48 ` Ben Warren 0 siblings, 1 reply; 9+ messages in thread From: Timur Tabi @ 2006-10-13 18:38 UTC (permalink / raw) To: u-boot Ben Warren wrote: > I don't know how well supported your CPU is (I've never heard of it, but > that's not saying much) Anyway, I've debugged ROM on a couple of > different MPC8349s, but not with 100% success. I can single-step with > the BDI, and can single-step assembly code, but not C code using gdb. I don't know about PowerPC processors, but on x86, single-stepping assembly code is completely different from single-stepping C code. With assembly, the debugger typically enables instruction interrupts, where an interrupt is generated after each instruction is executed. This does not require modifying memory. With C code, a single line of C code is usually multiple assembly instructions, so the debugger (gdb in this case) places a breakpoint at the appropriate spot. -- Timur Tabi Linux Kernel Developer @ Freescale ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot-Users] debug u-boot using bdi2000 2006-10-13 18:38 ` Timur Tabi @ 2006-10-13 18:48 ` Ben Warren 2006-10-13 18:52 ` Brent Cook 0 siblings, 1 reply; 9+ messages in thread From: Ben Warren @ 2006-10-13 18:48 UTC (permalink / raw) To: u-boot On Fri, 2006-10-13 at 13:38 -0500, Timur Tabi wrote: > Ben Warren wrote: > > > I don't know how well supported your CPU is (I've never heard of it, but > > that's not saying much) Anyway, I've debugged ROM on a couple of > > different MPC8349s, but not with 100% success. I can single-step with > > the BDI, and can single-step assembly code, but not C code using gdb. > > I don't know about PowerPC processors, but on x86, single-stepping assembly code is completely different from single-stepping C code. With assembly, the debugger typically enables instruction interrupts, where an interrupt is generated after each instruction is executed. This does not require modifying memory. > > With C code, a single line of C code is usually multiple assembly instructions, so the debugger (gdb in this case) places a breakpoint at the appropriate spot. > That's some good insight, and would certainly explain my problem. Thanks! Ben -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.denx.de/pipermail/u-boot/attachments/20061013/d6074d06/attachment.htm ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot-Users] debug u-boot using bdi2000 2006-10-13 18:48 ` Ben Warren @ 2006-10-13 18:52 ` Brent Cook 0 siblings, 0 replies; 9+ messages in thread From: Brent Cook @ 2006-10-13 18:52 UTC (permalink / raw) To: u-boot On Friday 13 October 2006 13:48, Ben Warren wrote: > On Fri, 2006-10-13 at 13:38 -0500, Timur Tabi wrote: > > Ben Warren wrote: > > > I don't know how well supported your CPU is (I've never heard of it, > > > but that's not saying much) Anyway, I've debugged ROM on a couple of > > > different MPC8349s, but not with 100% success. I can single-step with > > > the BDI, and can single-step assembly code, but not C code using gdb. > > > > I don't know about PowerPC processors, but on x86, single-stepping > > assembly code is completely different from single-stepping C code. With > > assembly, the debugger typically enables instruction interrupts, where an > > interrupt is generated after each instruction is executed. This does not > > require modifying memory. > > > > With C code, a single line of C code is usually multiple assembly > > instructions, so the debugger (gdb in this case) places a breakpoint at > > the appropriate spot. > > That's some good insight, and would certainly explain my problem. > Thanks! > > Ben I find it really helpful when debugging C code in ROM to have the output of 'cross-compiler-objdump -d u-boot | less' handy for looking up functions and such. It's not too hard to get familiar with your CPU's ABI either, after a bit of this. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-10-13 18:52 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-10-13 17:41 [U-Boot-Users] debug u-boot using bdi2000 Reeve Yang 2006-10-13 18:05 ` Ben Warren 2006-10-13 18:12 ` Reeve Yang 2006-10-13 18:23 ` Reeve Yang 2006-10-13 18:44 ` Ben Warren 2006-10-13 18:34 ` Ben Warren 2006-10-13 18:38 ` Timur Tabi 2006-10-13 18:48 ` Ben Warren 2006-10-13 18:52 ` Brent Cook
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox