lpc2148: redo to the new target configuration scheme
authorØyvind Harboe <oyvind.harboe@zylin.com>
Tue, 21 Dec 2010 19:59:12 +0000 (20:59 +0100)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Wed, 22 Dec 2010 16:44:22 +0000 (17:44 +0100)
Define a proc which PCBs can easily override.

Also demonstrates how to add multiple TAP exepcted-id's
using arguments.

Added 0x3f0f0f0f as expected TAP-id. Old LPC2148 silicon
I happened to have on my desk?

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
tcl/target/lpc2148.cfg

index 8062cdde8e7fde662fee9a9fe6cdfd1c6f990159..7665ee755078b499456a2120cabddca2c3711690 100644 (file)
@@ -1,50 +1,45 @@
-# Use RCLK. If RCLK is not available fall back to 500kHz.
-#
-# Depending on cabling you might be able to eek this up to 2000kHz.
-jtag_rclk 500
-
-if { [info exists CHIPNAME] } {
-   set _CHIPNAME $CHIPNAME
-} else {
-   set _CHIPNAME lpc2148
-}
-
-if { [info exists CPUTAPID ] } {
-   set _CPUTAPID $CPUTAPID
-} else {
-   set _CPUTAPID 0x4f1f0f0f
+# Proc that can be invoked to create a special version of
+# the LPC2148
+proc setup_lpc2148 {chipname tapids} {
+       # Use RCLK. If RCLK is not available fall back to 500kHz.
+       #
+       # Depending on cabling you might be able to eek this up to 2000kHz.
+       jtag_rclk 500
+       
+       adapter_nsrst_delay 200
+       jtag_ntrst_delay 200
+       
+       # NOTE!!! LPCs need reset pulled while RTCK is low. 0 to activate
+       # JTAG, power-on reset is not enough, i.e. you need to perform a
+       # reset before being able to talk to the LPC2148, attach is not possible.
+       reset_config trst_and_srst
+       
+       eval "jtag newtap $chipname cpu -irlen 4 -ircapture 0x1 -irmask 0xf $tapids"
+       
+       target create $chipname.cpu arm7tdmi -chain-position $chipname.cpu
+       
+       $chipname.cpu configure -work-area-phys 0x40000000 -work-area-size 0x4000 -work-area-backup 0
+       
+       $chipname.cpu configure -event reset-init {
+               # Force target into ARM state
+               arm core_state arm
+       
+               # Do not remap 0x0000-0x0020 to anything but the flash (i.e. select
+               # "User Flash Mode" where interrupt vectors are _not_ remapped,
+               # and reside in flash instead).
+               #
+               # See section 7.1 on page 32 ("Memory Mapping control register") in
+               # "UM10139: Volume 1: LPC214x User Manual", Rev. 02 -- 25 July 2006.
+               # http://www.standardics.nxp.com/support/documents/microcontrollers/pdf/user.manual.lpc2141.lpc2142.lpc2144.lpc2146.lpc2148.pdf
+               mwb 0xE01FC040 0x01
+       }
+       
+       # flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc checksum]
+       flash bank $chipname.flash lpc2000 0x0 0x7d000 0 0 $chipname.cpu lpc2000_v2 14765 calc_checksum
 }
 
-adapter_nsrst_delay 200
-jtag_ntrst_delay 200
-
-# NOTE!!! LPCs need reset pulled while RTCK is low. 0 to activate
-# JTAG, power-on reset is not enough, i.e. you need to perform a
-# reset before being able to talk to the LPC2148, attach is not possible.
-
-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
-
-$_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x4000 -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 (i.e. select
-       # "User Flash Mode" where interrupt vectors are _not_ remapped,
-       # and reside in flash instead).
-       #
-       # See section 7.1 on page 32 ("Memory Mapping control register") in
-       # "UM10139: Volume 1: LPC214x User Manual", Rev. 02 -- 25 July 2006.
-       # http://www.standardics.nxp.com/support/documents/microcontrollers/pdf/user.manual.lpc2141.lpc2142.lpc2144.lpc2146.lpc2148.pdf
-       mwb 0xE01FC040 0x01
+# Default settings
+proc init_targets {} {
+       setup_lpc2148 lpc2148 "-expected-id 0x3f0f0f0f -expected-id 0x4f1f0f0f"
 }
-
-# flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc checksum]
-set _FLASHNAME $_CHIPNAME.flash
-flash bank $_FLASHNAME lpc2000 0x0 0x7d000 0 0 $_TARGETNAME lpc2000_v2 14765 calc_checksum

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)