lpc3131: target definition
authorAndrew Leech <coronasensei@gmail.com>
Tue, 9 Nov 2010 07:05:02 +0000 (08:05 +0100)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Tue, 9 Nov 2010 07:05:55 +0000 (08:05 +0100)
tcl/target/lpc3131.cfg [new file with mode: 0644]

diff --git a/tcl/target/lpc3131.cfg b/tcl/target/lpc3131.cfg
new file mode 100644 (file)
index 0000000..5c6aa3c
--- /dev/null
@@ -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