2013-11-18 21:51:38 +01:00
|
|
|
##################################################################
|
|
|
|
# Settings taken from OpenOCD Version 0.7.0
|
|
|
|
##################################################################
|
|
|
|
##################################################################
|
|
|
|
# daemon configuration
|
|
|
|
##################################################################
|
|
|
|
telnet_port 4444
|
|
|
|
gdb_port 3333
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# interface taken from scripts/interface/arm-usb-ocd.cfg
|
|
|
|
##################################################################
|
|
|
|
#
|
|
|
|
# Olimex ARM-USB-OCD
|
|
|
|
#
|
|
|
|
# http://www.olimex.com/dev/arm-usb-ocd.html
|
|
|
|
#
|
|
|
|
|
|
|
|
interface ft2232
|
|
|
|
ft2232_device_desc "Olimex OpenOCD JTAG"
|
|
|
|
ft2232_layout "olimex-jtag"
|
|
|
|
ft2232_vid_pid 0x15BA 0x0003
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# Board-specific stuff
|
|
|
|
##################################################################
|
|
|
|
|
|
|
|
adapter_khz 1000
|
|
|
|
reset_config trst_and_srst srst_pulls_trst
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# target taken from scripts/target/lpc3131.cfg
|
|
|
|
##################################################################
|
|
|
|
|
|
|
|
if { [info exists CHIPNAME] } {
|
|
|
|
set _CHIPNAME $CHIPNAME
|
|
|
|
} else {
|
|
|
|
set _CHIPNAME lpc3131
|
|
|
|
}
|
|
|
|
|
|
|
|
if { [info exists ENDIAN] } {
|
|
|
|
set _ENDIAN $ENDIAN
|
|
|
|
} else {
|
|
|
|
set _ENDIAN little
|
|
|
|
}
|
|
|
|
|
|
|
|
# ARM926EJS core
|
|
|
|
if { [info exists CPUTAPID] } {
|
|
|
|
set _CPUTAPID $CPUTAPID
|
|
|
|
} else {
|
|
|
|
set _CPUTAPID 0x07926f0f
|
|
|
|
}
|
|
|
|
|
|
|
|
# Scan Tap
|
2020-02-22 19:31:14 +01:00
|
|
|
# Wired to separate STDO pin on the lpc3131, externally muxed to TDO on ea3131 module
|
2013-11-18 21:51:38 +01:00
|
|
|
# JTAGSEL pin must be 0 to activate, which reassigns arm tdo to a pass through.
|
|
|
|
if { [info exists SJCTAPID] } {
|
|
|
|
set _SJCTAPID $SJCTAPID
|
|
|
|
} else {
|
|
|
|
set _SJCTAPID 0x1541E02B
|
|
|
|
}
|
|
|
|
|
|
|
|
jtag newtap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# various symbol definitions, to avoid hard-wiring addresses
|
|
|
|
##################################################################
|
|
|
|
|
|
|
|
global lpc313x
|
|
|
|
set lpc313x [ dict create ]
|
|
|
|
|
|
|
|
# Physical addresses for controllers and memory
|
|
|
|
dict set lpc313x sram0 0x11028000
|
|
|
|
dict set lpc313x sram1 0x11040000
|
|
|
|
dict set lpc313x uart 0x15001000
|
|
|
|
dict set lpc313x cgu 0x13004000
|
|
|
|
dict set lpc313x ioconfig 0x13003000
|
|
|
|
dict set lpc313x sysconfig 0x13002800
|
|
|
|
dict set lpc313x wdt 0x13002400
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# Target configuration
|
|
|
|
##################################################################
|
|
|
|
|
|
|
|
adapter_nsrst_delay 1000
|
|
|
|
jtag_ntrst_delay 0
|
|
|
|
|
|
|
|
set _TARGETNAME $_CHIPNAME.cpu
|
2014-04-14 00:22:22 +02:00
|
|
|
target create $_TARGETNAME arm926ejs -endian $_ENDIAN -chain-position $_TARGETNAME
|
2013-11-18 21:51:38 +01:00
|
|
|
|
|
|
|
$_TARGETNAME invoke-event halted
|
|
|
|
|
|
|
|
$_TARGETNAME configure -work-area-phys [dict get $lpc313x sram0] -work-area-size 0x30000 -work-area-backup 0
|
|
|
|
|
|
|
|
$_TARGETNAME configure -event reset-init {
|
|
|
|
echo "\nRunning reset init script for LPC3131\n"
|
|
|
|
halt
|
|
|
|
wait_halt
|
|
|
|
reg cpsr 0xa00000d3 ;#Supervisor mode
|
|
|
|
reg pc 0x11029000
|
|
|
|
poll
|
|
|
|
sleep 500
|
|
|
|
}
|
|
|
|
|
|
|
|
arm7_9 fast_memory_access enable
|
|
|
|
arm7_9 dcc_downloads enable
|