878d0cb043
Split out OSK5912 board support from the omap5912 target config, and make it pass sanity checks on my (Rev C/original) hardware: - Fix syntax error ("-irlen" not "irlen") - Provide real TAP ids for the ARM926ejs and the C55x dsp - Label both CPUs appropriately (DSP, ARM) - List both flash chips The scan chain looks like this (note truncated DSP instruction code): TapName | Enabled | IdCode Expected IrLen IrCap IrMask Instr ---|--------------------|---------|------------|------------|------|------|------|--------- 0 | omap5912.dsp | Y | 0x03df1d81 | 0x03df1d81 | 0x26 | 0x00 | 0x00 | 0xffffffff 1 | omap5912.arm | Y | 0x0692602f | 0x0692602f | 0x04 | 0x01 | 0x00 | 0x0c 2 | omap5912.unknown | Y | 0x00000000 | 0x00000000 | 0x08 | 0x00 | 0x00 | 0xff I still don't know what that third TAP is; maybe an early version of an ICEpick JTAG router. git-svn-id: svn://svn.berlios.de/openocd/trunk@1974 b42882b7-edfa-0310-969c-e2dbd0fdcd60
58 lines
1.3 KiB
INI
58 lines
1.3 KiB
INI
# TI OMAP5912 dual core processor
|
|
# http://focus.ti.com/docs/prod/folders/print/omap5912.html
|
|
|
|
if { [info exists CHIPNAME] } {
|
|
set _CHIPNAME $CHIPNAME
|
|
} else {
|
|
set _CHIPNAME omap5912
|
|
}
|
|
|
|
if { [info exists ENDIAN] } {
|
|
set _ENDIAN $ENDIAN
|
|
} else {
|
|
# this defaults to a bigendian
|
|
set _ENDIAN little
|
|
}
|
|
|
|
if { [info exists CPUTAPID ] } {
|
|
set _CPUTAPID $CPUTAPID
|
|
} else {
|
|
# NOTE: validated with XOMAP5912 part
|
|
set _CPUTAPID 0x0692602f
|
|
}
|
|
|
|
# NOTE: presumes irlen 38 is the C55x DSP, matching BSDL for
|
|
# its standalone siblings (like TMS320VC5502) of the same era
|
|
|
|
#jtag scan chain
|
|
jtag newtap $_CHIPNAME dsp -irlen 38 -ircapture 0x0 -irmask 0x0 -expected-id 0x03df1d81
|
|
jtag newtap $_CHIPNAME arm -irlen 4 -ircapture 0x1 -irmask 0x0 -expected-id $_CPUTAPID
|
|
jtag newtap $_CHIPNAME unknown -irlen 8 -ircapture 0x0 -irmask 0x0
|
|
|
|
set _TARGETNAME $_CHIPNAME.arm
|
|
target create $_TARGETNAME arm926ejs -endian $_ENDIAN -chain-position $_TARGETNAME
|
|
|
|
proc omap5912_reset {} {
|
|
#
|
|
# halt target
|
|
#
|
|
poll
|
|
sleep 1
|
|
halt
|
|
wait_halt
|
|
#
|
|
# disable wdt
|
|
#
|
|
mww 0xfffec808 0x000000f5
|
|
mww 0xfffec808 0x000000a0
|
|
|
|
mww 0xfffeb048 0x0000aaaa
|
|
sleep 500
|
|
mww 0xfffeb048 0x00005555
|
|
sleep 500
|
|
}
|
|
|
|
# omap5912 lcd frame buffer as working area
|
|
$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 \
|
|
-work-area-size 0x3e800 -work-area-backup 0
|