aboutsummaryrefslogtreecommitdiff
path: root/tcl/target
diff options
context:
space:
mode:
authorAndrew Leech <coronasensei@gmail.com>2010-11-09 08:05:02 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-11-09 08:05:55 +0100
commitfc4cbc0f988c347be298518b32643fc2fc4e692d (patch)
treeb442ab00f2be80eaa0da469aaee14c7671ba6351 /tcl/target
parent074498f836db2879d73c39615fa5dced8a6555c9 (diff)
downloadriscv-openocd-fc4cbc0f988c347be298518b32643fc2fc4e692d.zip
riscv-openocd-fc4cbc0f988c347be298518b32643fc2fc4e692d.tar.gz
riscv-openocd-fc4cbc0f988c347be298518b32643fc2fc4e692d.tar.bz2
lpc3131: target definition
Diffstat (limited to 'tcl/target')
-rw-r--r--tcl/target/lpc3131.cfg76
1 files changed, 76 insertions, 0 deletions
diff --git a/tcl/target/lpc3131.cfg b/tcl/target/lpc3131.cfg
new file mode 100644
index 0000000..5c6aa3c
--- /dev/null
+++ b/tcl/target/lpc3131.cfg
@@ -0,0 +1,76 @@
+######################################
+# Target: NXP lpc3131
+######################################
+
+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
+# Wired to seperate STDO pin on the lpc3131, externally muxed to TDO on ea3131 module
+# 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
+##################################################################
+
+jtag_nsrst_delay 1000
+jtag_ntrst_delay 0
+
+set _TARGETNAME $_CHIPNAME.cpu
+target create $_TARGETNAME arm926ejs -endian $_ENDIAN -chain-position $_TARGETNAME
+
+$_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