aboutsummaryrefslogtreecommitdiff
path: root/tcl/target
diff options
context:
space:
mode:
authorTomas Vanek <vanekt@fbl.cz>2018-03-12 23:42:23 +0100
committerTomas Vanek <vanekt@fbl.cz>2018-06-15 20:07:33 +0100
commit20d18d415da304c65ce4dd0da7d555f5160ff92b (patch)
tree1b087c42f079dc4353d148b31bf55af4228b9ec3 /tcl/target
parent62b088df4eeb30997278a45f3ee5abc5d9ea2aff (diff)
downloadriscv-openocd-20d18d415da304c65ce4dd0da7d555f5160ff92b.zip
riscv-openocd-20d18d415da304c65ce4dd0da7d555f5160ff92b.tar.gz
riscv-openocd-20d18d415da304c65ce4dd0da7d555f5160ff92b.tar.bz2
tcl/target/stm32f7x: configure faster system clock in reset-init
STM32F7xx devices need faster clock for flash programming over JTAG transport. Using reset default 16 MHz clock resulted in lot of DAP WAITs and substantial decrease of flashing performance. Adapted to the restructured dap support (see 2231da8ec4e7d7ae9b652f3dd1a7104f5a110f3f). Change-Id: Ida6915331dd924c9c0d08822fd94c04ad408cdc5 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: http://openocd.zylin.com/4464 Tested-by: jenkins Reviewed-by: Christopher Head <chead@zaber.com>
Diffstat (limited to 'tcl/target')
-rwxr-xr-xtcl/target/stm32f7x.cfg24
1 files changed, 24 insertions, 0 deletions
diff --git a/tcl/target/stm32f7x.cfg b/tcl/target/stm32f7x.cfg
index dc310da..98f3eea 100755
--- a/tcl/target/stm32f7x.cfg
+++ b/tcl/target/stm32f7x.cfg
@@ -82,3 +82,27 @@ $_TARGETNAME configure -event trace-config {
# assignment
mmw 0xE0042004 0x00000020 0
}
+
+$_TARGETNAME configure -event reset-init {
+ # Configure PLL to boost clock to HSI x 10 (160 MHz)
+ mww 0x40023804 0x08002808 ;# RCC_PLLCFGR 16 Mhz /10 (M) * 128 (N) /2(P)
+ mww 0x40023C00 0x00000107 ;# FLASH_ACR = PRFTBE | 7(Latency)
+ mmw 0x40023800 0x01000000 0 ;# RCC_CR |= PLLON
+ sleep 10 ;# Wait for PLL to lock
+ mww 0x40023808 0x00009400 ;# RCC_CFGR_PPRE1 = 5(div 4), PPRE2 = 4(div 2)
+ mmw 0x40023808 0x00000002 0 ;# RCC_CFGR |= RCC_CFGR_SW_PLL
+
+ # Boost SWD frequency
+ # Do not boost JTAG frequency and slow down JTAG memory access or flash write algo
+ # suffers from DAP WAITs
+ if {[using_jtag]} {
+ [[target current] cget -dap] memaccess 16
+ } {
+ adapter_khz 8000
+ }
+}
+
+$_TARGETNAME configure -event reset-start {
+ # Reduce speed since CPU speed will slow down to 16MHz with the reset
+ adapter_khz 2000
+}