stm32: add support for the STM32Lx 384kb dual bank flash
[fw/openocd] / tcl / target / stm32lx_stlink.cfg
1 #
2 # STM32lx stlink pseudo target
3 #
4
5 if { [info exists CHIPNAME] == 0 } {
6    set CHIPNAME stm32lx
7 }
8
9 if { [info exists CPUTAPID] == 0 } {
10    set CPUTAPID 0x2ba01477
11 }
12
13 if { [info exists WORKAREASIZE] == 0 } {
14    set WORKAREASIZE 0x2800
15 }
16
17 source [find target/stm32_stlink.cfg]
18
19 # Flash base address is known by driver. Flash size will be probed.
20 #
21 # Please note that the larger stm32lx targets (256Kb and 384Kb) uses dual
22 # bank flash. For such targets use target/stm32lx_dual_bank.cfg.
23 #
24 # Some samples of ST's stm32lx chips are known to have incorrect flash size
25 # values programmed in their FLASH_SIZE register. The driver will warn
26 # for strange values. It is possible to override the flash size probe by
27 # defining the correct size here. Notice though that it is the size of
28 # the flash bank
29 #
30 # flash bank stm32lx <base> <size> 0 0 <target#> <variant>
31 set _FLASHNAME $_CHIPNAME.flash
32 flash bank $_FLASHNAME stm32lx 0 0 0 0 $_TARGETNAME
33
34 proc stm32l_enable_HSI {} {
35         # Enable HSI as clock source
36         echo "STM32L: Enabling HSI"
37
38         # Set HSION in RCC_CR
39         mww 0x40023800 0x00000101
40
41         # Set HSI as SYSCLK
42         mww 0x40023808 0x00000001
43 }
44
45 $_TARGETNAME configure -event reset-init {
46         stm32l_enable_HSI
47 }