[U-Boot] Debugging U-Boot with BDI2000
Tommy Wang
tommy.wang at dtims.com
Tue Dec 23 22:59:45 CET 2008
Hi,
I'm having trouble debugging U-Boot (version 2008.10) with a BDI2000 on
an Embedded Planet EP8248 board (MPC8248 processor). According to
"Embedded Linux Primer" by Christopher Hanin, early U-Boot debugging
must be done using hardware breakpoints, because it is running out of
flash at that point in time.
Following along his example, I have connected to the BDI2000 via remote
GDB and issued a 'mon break hard' command to enable hardware
breakpoints. Upon continuing, I get the errors from the BDI that all
hardware breakpoints are in use. Clearing breakpoints have no effect.
Looking in my CPU reference manual, it does mention two instruction
address breakpoint registers, as well as two data address breakpoint
registers (IABR1, IABR2, DABR1, DABR2). It does not mention (at least
that I could find) what is necessary to set these registers up and use
them.
Any tips on how to proceed would be appreciated. I have attached my BDI
configuration, as well as the error message. Thank you!
GDB Session:
~/u-boot/build% ppc-linux-gdb u-boot
GNU gdb Red Hat Linux (6.7-1rh)
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu
--target=ppc-linux".
The target architecture is set automatically (currently powerpc:common)
..
(gdb) target remote 192.168.100.130:2001
Remote debugging using 192.168.100.130:2001
_start () at start.S:163
163 li r21, BOOTFLAG_COLD /* Normal Power-On: Boot
from FLASH*/
Current language: auto; currently asm
(gdb) mon break hard
(gdb) b board_init_f
Breakpoint 1 at 0xfff049b0: file board.c, line 405.
(gdb) c
Continuing.
Warning:
Cannot insert breakpoint 1.
Error accessing memory address 0xfff049b0: Unknown error 4294967295.
BDI Session:
- TARGET: processing power-up delay
- TARGET: processing user reset request
- BDI asserts HRESET
- Reset JTAG controller passed
- Bypass check: 0x000000001 => 0x00000001
- Bypass check: 0x000000001 => 0x00000001
- JTAG exists check passed
- COP status is 0x01
- Check running state passed
- BDI scans COP freeze command
- BDI removes HRESET
- Target PVR is 0x80822014
- COP status is 0x05
- Check stopped state passed
- Check LSRL length passed
- BDI sets breakpoint at 0xFFF00100
- BDI resumes program execution
- Waiting for target stop passed
- TARGET: Target PVR is 0x80822014
- TARGET: resetting target passed
- TARGET: processing target startup ....
- TARGET: processing target startup passed
- TARGET: stepped
*** TARGET: all hardware breakpoints in use
BDI Configuration File:
;EP8248 16M of psdram config script
;----------------------------------
;written by Greg Davis
;based on the EP8260 BDI2000 script written by Steve Blakeslee
;
;
[INIT]
;
;*************************************************************
; program the SYPCR - disable the watchdog timer
;*************************************************************
WM32 0x10004 0xFFFF0681
;
;*************************************************************
; program the bcr - Bus cfg reg
;*************************************************************
WM32 0x10024 0x00908010
;
;*************************************************************
; program the SIUMCR -
;*************************************************************
WM32 0x10000 0x01240200
;
;*************************************************************
; program the SCCR - disable PCI mode & set clock divider to 16
;*************************************************************
WM32 0x10c80 0x00000001
;
;*************************************************************
; load IMMR register with the new base address (0x04700000)
; Warning: this assumes that the IMMR is located at 0xf0101A8
; due to the reset configuration. If the reset config words
; in boot Flash/ROM are set for a different address, then you
; must update this script to use the new IMMR address!
;*************************************************************
WM32 0x101A8 0xF0000000
;
;*************************************************************
; initialize the memory controller registers...
;*************************************************************
;
;*************************************************************
; initialize - FLASH BR0 & OR0 (8 Mbyte)
;*************************************************************
;WM32 0xf0010100 0xFC001801
;WM32 0xf0010104 0xFC0008B2
;
;*************************************************************
; initialize - PSDRAM BR1 & OR1 (16 Mbyte)
;*************************************************************
WM32 0xf0010108 0x00001841
WM32 0xf001010c 0xFF0030C0
;
;*************************************************************
; initialize - BCSR BR2 & OR2
;*************************************************************
WM32 0xf0010110 0xFA000801
WM32 0xf0010114 0xFFC80864
;
;*************************************************************
; program the MPTPR -
;*************************************************************
WM16 0xf0010184 0x1300
;
;*************************************************************
; SDRAM Initialization
;*************************************************************
;wait 100us before accessing
;
;*************************************************************
; initialize - PSDRAM mode reg (PSDMR)
;
; C2672522
; C267FF33 (slow timing)
;
;*************************************************************
WM32 0xf0010190 0xC267FF33
;
;*************************************************************
; program PSRT - PSDRAM refresh timer
;
; 0x4B
;
;*************************************************************
WM8 0xf001019C 0x4B
;
;*************************************************************
; SDRAM Initialization
;*************************************************************
;wait 100us before accessing
;
;Precharge all banks SMMR[OP]=101
WM8 0xf0010190 0xea
WM8 0x00000110 0xff
;
;Issue 8 CBR_Refresh commands SMMR[OP]=001
WM8 0xf0010190 0xca
WM8 0xf0010190 0xca
WM8 0xf0010190 0xca
WM8 0xf0010190 0xca
WM8 0xf0010190 0xca
WM8 0xf0010190 0xca
WM8 0xf0010190 0xca
WM8 0xf0010190 0xca
WM8 0x00000110 0xff
;
;Issue Mode set command SMMR[OP]=011
WM8 0xf0010190 0xda
WM8 0x00000110 0xff
;
;set PSDMR for normal operation
WM8 0xf0010190 0xc2
;
;clear MRS
WREG MSR 0x00000000
;
;
[TARGET]
CPUTYPE 8240 ;the CPU type (603EV,750,8240,8260)
JTAGCLOCK 0 ;use 16 MHz JTAG clock
;WORKSPACE 0x00000000 ;workspace in target RAM for fast download
BDIMODE AGENT ;the BDI working mode (LOADONLY | AGENT |
GATEWAY)
BREAKMODE HARD ;SOFT or HARD, HARD uses PPC hardware
breakpoints
VECTOR CATCH ;catch unhandled exceptions
DCACHE NOFLUSH ;data cache flushing (FLUSH | NOFLUSH)
SIO 7 9600
;
;
;Not really using this
;
[FLASH]
;CHIPTYPE AM29F ;Flash type (AM29F | AM29BX8 | AM29BX16 |
I28BX8 | I28BX16)
;CHIPSIZE 0x200000 ;The size of one flash chip in bytes (e.g.
AM29F010 = 0x20000)
;BUSWIDTH 8 ;The width of the flash memory bus in bits (8 |
16 | 32 | 64)
;
;
[HOST]
IP 192.168.100.3
FILE pcl82xx120.ep
FORMAT SREC
;START 0x80020 ;only needed for RAM booloader
LOAD MANUAL ;load code MANUAL or AUTO after reset
;
;
[REGS]
DMM1 0xF0000000
FILE reg8272.def
Tommy Wang
5605 N. MacArthur Blvd.
Suite 1100
Irving, TX 75038
601.594.9864
twang at dtims.com
Diversified Technology, Inc.
1.800.443.2667
http://www.diversifiedtechnology.com
Providing a Cohesive Approach to Embedded Solutions
Both the individual sending this e-mail and Diversified Technology, Inc.
intend that this electronic message be used exclusively by the
individual or entity to which it is addressed. This message may contain
information that is privileged or confidential and thereby exempt and
protected from unauthorized disclosure under applicable law. If the
reader of this message is not the intended recipient, be aware that any
disclosure, dissemination, distribution or copying of this
communication, or the use of its contents, is not authorized and is
strictly prohibited. If you have received this communication and are
not the intended recipient, notify the sender immediately, permanently
delete the original message from your e-mail system and do not keep a
hard copy of the message.
More information about the U-Boot
mailing list