Signed-off-by: Øyvind Harboe <oyvind.har...@zylin.com>
---
 tcl/target/lpc2378.cfg |   42 +++---------------------------------------
 tcl/target/lpc2478.cfg |   47 ++++-------------------------------------------
 tcl/target/lpc2x78.cfg |   32 ++++++++++++++++++++++++++++++++
 3 files changed, 39 insertions(+), 82 deletions(-)
 create mode 100644 tcl/target/lpc2x78.cfg

diff --git a/tcl/target/lpc2378.cfg b/tcl/target/lpc2378.cfg
index 21fdd1b..924c317 100644
--- a/tcl/target/lpc2378.cfg
+++ b/tcl/target/lpc2378.cfg
@@ -1,43 +1,7 @@
 # NXP LPC2378 ARM7TDMI-S with 512kB Flash and 32kB Local On-Chip SRAM (58kB 
total), clocked with 4MHz internal RC oscillator
 
-if { [info exists CHIPNAME] } {
-       set  _CHIPNAME $CHIPNAME
-} else {
-       set  _CHIPNAME lpc2378
+source [find target/lpc2x78.cfg]
+proc init_targets {cclk} {
+       setup_lpc2x78 lpc2478 0x4f1f0f0f 0x8000 500 0x0007D000 4000
 }
 
-if { [info exists CPUTAPID ] } {
-       set _CPUTAPID $CPUTAPID
-} else {
-       set _CPUTAPID 0x4f1f0f0f
-}
-
-#delays on reset lines
-adapter_nsrst_delay 200
-jtag_ntrst_delay 200
-
-reset_config trst_and_srst
-
-jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 
$_CPUTAPID
-
-set _TARGETNAME $_CHIPNAME.cpu
-target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME
-
-# LPC2378 has 32kB of SRAM on its main system bus (so-called Local On-Chip 
SRAM)
-$_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x8000 
-work-area-backup 0
-
-$_TARGETNAME configure -event reset-init {
-       # Force target into ARM state
-       arm core_state arm
-       #do not remap 0x0000-0x0020 to anything but the flash
-       mwb 0xE01FC040 0x01
-}
-
-# LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader.
-# After reset the chip uses its internal 4MHz RC oscillator
-# flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> 
[calc checksum]
-set _FLASHNAME $_CHIPNAME.flash
-flash bank $_FLASHNAME lpc2000 0x0 0x0007D000 0 0 $_TARGETNAME lpc2000_v2 4000 
calc_checksum
-
-# 4MHz / 6 = 666kHz, so use 500
-adapter_khz 500
diff --git a/tcl/target/lpc2478.cfg b/tcl/target/lpc2478.cfg
index 3b14c87..59aca12 100644
--- a/tcl/target/lpc2478.cfg
+++ b/tcl/target/lpc2478.cfg
@@ -1,46 +1,7 @@
 # NXP LPC2478 ARM7TDMI-S with 512kB Flash and 64kB Local On-Chip SRAM (98kB 
total), clocked with 4MHz internal RC oscillator
 
-if { [info exists CHIPNAME] } {
-       set  _CHIPNAME $CHIPNAME
-} else {
-       set  _CHIPNAME lpc2478
+source [find target/lpc2x78.cfg]
+#cclk is required to set up flash correctly
+proc setup_lpc2478 {cclk} {
+       setup_lpc2x78 lpc2478 0x4f1f0f0f 0x10000 500 0x7E000 $cclk
 }
-
-if { [info exists CPUTAPID ] } {
-       set _CPUTAPID $CPUTAPID
-} else {
-       set _CPUTAPID 0x4f1f0f0f
-}
-
-if { [info exists CCLK ] } {
-       set _CCLK $CCLK
-} else {
-    error "You must specify the CCLK that will be used for flash programming!"
-}
-
-#delays on reset lines
-adapter_nsrst_delay 100
-jtag_ntrst_delay 100
-
-reset_config trst_and_srst
-
-jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 
$_CPUTAPID
-
-set _TARGETNAME $_CHIPNAME.cpu
-target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME
-
-# LPC2478 has 64kB of SRAM on its main system bus (so-called Local On-Chip 
SRAM)
-$_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x10000 
-work-area-backup 0
-
-$_TARGETNAME configure -event reset-init {
-       # Force target into ARM state
-       arm core_state arm
-       # Do not remap 0x0000-0x0020 to anything but the Flash
-       mwb 0xE01FC040 0x01
-}
-
-# LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader.
-# flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> 
[calc checksum]
-set _FLASHNAME $_CHIPNAME.flash
-flash bank $_FLASHNAME lpc2000 0x0 0x7E000 0 0 $_TARGETNAME lpc2000_v2 $_CCLK 
calc_checksum
-
diff --git a/tcl/target/lpc2x78.cfg b/tcl/target/lpc2x78.cfg
new file mode 100644
index 0000000..f70de27
--- /dev/null
+++ b/tcl/target/lpc2x78.cfg
@@ -0,0 +1,32 @@
+# NXP LPC2378 ARM7TDMI-S with 512kB Flash and 32kB Local On-Chip SRAM (58kB 
total), clocked with 4MHz internal RC oscillator
+
+proc setup_lpc2x78 {chipname cputapid sramsize jtagrate flashsize cclk} {
+       #delays on reset lines
+       adapter_nsrst_delay 200
+       jtag_ntrst_delay 200
+       
+       reset_config trst_and_srst
+       
+       jtag newtap $chipname cpu -irlen 4 -ircapture 0x1 -irmask 0xf 
-expected-id $cputapid
+       
+       set _TARGETNAME $chipname.cpu
+       target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME
+       
+       # LPC2378 has 32kB of SRAM on its main system bus (so-called Local 
On-Chip SRAM)
+       $_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 
$sramsize -work-area-backup 0
+       
+       $_TARGETNAME configure -event reset-init {
+               # Force target into ARM state
+               arm core_state arm
+               #do not remap 0x0000-0x0020 to anything but the flash
+               mwb 0xE01FC040 0x01
+       }
+       
+       # LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader.
+       # After reset the chip uses its internal 4MHz RC oscillator
+       # flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> 
<clock> [calc checksum]
+       set _FLASHNAME $chipname.flash
+       flash bank $_FLASHNAME lpc2000 0x0 $flashsize 0 0 $_TARGETNAME 
lpc2000_v2 $cclk calc_checksum
+       
+       adapter_khz $jtagrate
+}
-- 
1.7.0.4

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to