generalplus: Add configuration file for General Plus GP326XXXA series 58/2058/4
authorAndrey Smirnov <andrew.smirnov@gmail.com>
Fri, 21 Mar 2014 02:00:24 +0000 (19:00 -0700)
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>
Mon, 5 May 2014 20:23:45 +0000 (20:23 +0000)
Add configuration file for General Plus GP326XXXA series. Tested on
GP326833A on GPC-1737B board.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Change-Id: I1ad0e22598b01317bbc823870a7a262e9192c595
Reviewed-on: http://openocd.zylin.com/2058
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
tcl/target/gp326xxxa.cfg [new file with mode: 0644]

diff --git a/tcl/target/gp326xxxa.cfg b/tcl/target/gp326xxxa.cfg
new file mode 100644 (file)
index 0000000..e801cc8
--- /dev/null
@@ -0,0 +1,94 @@
+#
+# Support for General Plus GP326XXXA chips
+#
+
+if { [info exists CHIPNAME] } {
+   set _CHIPNAME $CHIPNAME
+} else {
+   set _CHIPNAME gp326xxxa
+}
+
+if { [info exists ENDIAN] } {
+   set _ENDIAN $ENDIAN
+} else {
+   set _ENDIAN little
+}
+
+if { [info exists CPUTAPID] } {
+   set _CPUTAPID $CPUTAPID
+} else {
+   set _CPUTAPID 0x4f1f0f0f
+}
+
+jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
+
+set _TARGETNAME $_CHIPNAME.cpu
+
+target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi
+
+# Use internal SRAM as a work area
+$_TARGETNAME configure -work-area-phys 0xf8000000 -work-area-size 0x8000 -work-area-backup 0
+
+# The chip has both lines connected together
+reset_config trst_and_srst srst_pulls_trst
+# This delay is needed otherwise communication with the target would
+# be unreliable
+adapter_nsrst_delay 100
+
+# Set the adapter speed ridiculously low just in case we are
+# running off of a 32kHz clock
+adapter_khz 2
+
+proc gp32xxxa_halt_and_reset_control_registers {} {
+       # System control registers
+       set P_SYSTEM_CTRL_NEW       0xD0000008
+       set P_SYSTEM_CTRL           0xD000000C
+       set P_SYSTEM_CLK_EN0        0xD0000010
+       set P_SYSTEM_CLK_EN1        0xD0000014
+       set P_SYSTEM_RESET_FLAG     0xD0000018
+       set P_SYSTEM_CLK_CTRL       0xD000001C
+       set P_SYSTEM_LVR_CTRL       0xD0000020
+       set P_SYSTEM_WATCHDOG_CTRL  0xD0000024
+       set P_SYSTEM_PLLEN          0xD000005C
+
+       # Since we can't use SRST without pulling TRST
+       # we can't assume the state of the clock configuration
+       # or watchdog settings. So reset them before porceeding
+
+       # Set the adapter speed ridiculously low just in case we are
+       # running off of a 32kHz clock
+       adapter_khz 2
+
+       # Disable any advanced features at this stage
+       arm7_9 dcc_downloads disable
+       arm7_9 fast_memory_access disable
+
+       # Do a "soft reset"
+       soft_reset_halt
+       # Reset all system control registers to their default "after-reset" values
+       mwh $P_SYSTEM_WATCHDOG_CTRL  0x0000
+       mwh $P_SYSTEM_LVR_CTRL       0x0000
+
+       mwh $P_SYSTEM_CTRL_NEW       0x0001
+       mwh $P_SYSTEM_CTRL           0x0001
+       # Clear all reset flags by writing 1's
+       mwh $P_SYSTEM_RESET_FLAG     0x001C
+
+       mwh $P_SYSTEM_CLK_CTRL       0x8000
+       mwh $P_SYSTEM_CLK_EN0        0xFFFF
+       mwh $P_SYSTEM_CLK_EN1        0xFFFF
+       mwh $P_SYSTEM_PLLEN          0x0010
+
+       # Unfortunately there's no register that would allow us to
+       # know if PLL is locked. So just wait for 100ms in hopes that
+       # it would be enough.
+       sleep 100
+
+       # Now that we know that we are running at 48Mhz
+       # Increase JTAG speed and enable speed optimization features
+       adapter_khz 5000
+       arm7_9 dcc_downloads enable
+       arm7_9 fast_memory_access enable
+}
+
+$_TARGETNAME configure -event reset-end { gp32xxxa_halt_and_reset_control_registers }

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)