tcl/board: add SPDX tag
[fw/openocd] / tcl / board / glyn_tonga2.cfg
index 783ef9fa48b3f6428f8f112307411e02bbb2301c..d847bec8a893058bd50572520d458eaca9493db7 100644 (file)
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
 #
 # Glyn Tonga2 SO-DIMM CPU module (Toshiba TMPA900CMXBG, ARM9)
 #
@@ -16,10 +18,38 @@ source [find target/tmpa900.cfg]
 # Target configuration #
 ########################
 
-$_TARGETNAME configure -event reset-init { tonga2_init }
+# Initial JTAG speed should not exceed 1/6 of the initial CPU clock
+# frequency (24MHz). Be conservative and use 1/8 of the frequency.
+# (24MHz / 8 = 3MHz)
+adapter speed 3000
 
-proc tonga2_init { } {
+$_TARGETNAME configure -event reset-start {
+       # Upon reset, set the JTAG frequency to 3MHz again, see above.
+       echo "Setting JTAG speed to 3MHz until clocks are initialized."
+       adapter speed 3000
+
+       # Halt the CPU.
+       halt
+
+       # Disable faster memory access for now.
+       arm7_9 fast_memory_access disable
+}
+
+$_TARGETNAME configure -event reset-init {
+       # Setup clocks, and initialize SRAM and DDR SDRAM.
+       tonga2_init
 
+       # At this point the CPU is running at 192MHz, increase JTAG speed.
+       # Tests showed that 15MHz works OK, higher speeds can cause problems,
+       # though. Not sure if this is a CPU issue or JTAG adapter issue.
+       echo "Increasing JTAG speed to 15MHz."
+       adapter speed 15000
+
+       # Enable faster memory access.
+       arm7_9 fast_memory_access enable
+}
+
+proc tonga2_init { } {
        ######################
        # PLL initialization #
        ######################
@@ -160,6 +190,8 @@ proc tonga2_init { } {
        # smc_direct_cmd_5 (SMC Direct Command register):
        # cmd_type = UpdateRegs, chip_select = CS1
        mww 0xf4311010 0x00c00000
+
+       echo "Clocks, SRAM, and DDR SDRAM are now initialized."
 }
 
 #######################
@@ -167,4 +199,3 @@ proc tonga2_init { } {
 #######################
 
 # TODO: Implement NAND support.
-