summaryrefslogtreecommitdiff
path: root/tcl/target/lpc2xxx.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'tcl/target/lpc2xxx.cfg')
-rw-r--r--tcl/target/lpc2xxx.cfg41
1 files changed, 41 insertions, 0 deletions
diff --git a/tcl/target/lpc2xxx.cfg b/tcl/target/lpc2xxx.cfg
new file mode 100644
index 00000000..6a736381
--- /dev/null
+++ b/tcl/target/lpc2xxx.cfg
@@ -0,0 +1,41 @@
+# Common setup for the LPC2xxx parts
+
+# parameters:
+# - chip_name - name of the chip, e.g. lpc2103
+# - cputapids - TAP IDs of the core, should be quoted if more than one, e.g. 0x4f1f0f0f or "0x3f0f0f0f 0x4f1f0f0f"
+# - flash_size - size of on-chip flash (available for code, not including the bootloader) in bytes, e.g. 0x8000
+# - flash_variant - "type" of LPC2xxx device, lpc2000_v1 (LPC22xx and older LPC21xx) or lpc2000_v2 (LPC213x, LPC214x, LPC210[123], LPC23xx and LPC24xx)
+# - workarea_size - size of work-area in RAM for flashing procedures, must not exceed the size of RAM available at 0x40000000, e.g. 0x2000
+# - core_freq_khz - frequency of core in kHz during flashing, usually equal to connected crystal or internal oscillator, e.g. 12000
+# - adapter_freq_khz - frequency of debug adapter in kHz, should be 8x slower than core_freq_khz, e.g. 1000
+
+proc setup_lpc2xxx {chip_name cputapids flash_size flash_variant workarea_size core_freq_khz adapter_freq_khz} {
+ reset_config trst_and_srst
+
+ # reset delays
+ adapter_nsrst_delay 100
+ jtag_ntrst_delay 100
+
+ adapter_khz $adapter_freq_khz
+
+ foreach i $cputapids {
+ append expected_ids "-expected-id " $i " "
+ }
+
+ eval "jtag newtap $chip_name cpu -irlen 4 -ircapture 0x1 -irmask 0xf $expected_ids"
+
+ set _TARGETNAME $chip_name.cpu
+ target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME
+
+ $_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size $workarea_size -work-area-backup 0
+
+ # flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc checksum]
+ set _FLASHNAME $chip_name.flash
+ flash bank $_FLASHNAME lpc2000 0x0 $flash_size 0 0 $_TARGETNAME $flash_variant $core_freq_khz calc_checksum
+}
+
+proc init_targets {} {
+ # FIX!!! read out CPUTAPID here and choose right setup. In addition to the
+ # CPUTAPID some querying of the target would be required.
+ return -error "This is a generic LPC2xxx configuration file, use a specific target file."
+}