f30253c1166ee231c0670376a58bce6019d14198
[fw/openocd] / tcl / board / stm3210e_eval.cfg
1 # This is an STM32 eval board with a single STM32F103ZET6 chip.
2 # http://www.st.com/internet/evalboard/product/204176.jsp
3
4 # increase working area to 32KB for faster flash programming
5 set WORKAREASIZE 0x8000
6
7 source [find target/stm32f1x.cfg]
8
9 #
10 # configure FSMC Bank 1 (NOR/PSRAM Bank 2) NOR flash
11 # M29W128GL70ZA6E
12 #
13
14 set _FLASHNAME $_CHIPNAME.norflash
15 flash bank $_FLASHNAME cfi 0x64000000 0x01000000 2 2 $_TARGETNAME
16
17 proc stm32_enable_fsmc {} {
18
19         echo "Enabling FSMC Bank 1 (NOR/PSRAM Bank 2)"
20
21         # enable gpio (defg) clocks for fsmc
22         # RCC_APB2ENR
23         mww 0x40021018 0x000001E0
24
25         # enable fsmc clock
26         # RCC_AHBENR
27         mww 0x40021014 0x00000114
28
29         # configure gpio to alternate function
30         # GPIOD_CRL
31         mww 0x40011400 0x44BB44BB
32         # GPIOD_CRH
33         mww 0x40011404 0xBBBBBBBB
34
35         # GPIOE_CRL
36         mww 0x40011800 0xBBBBB444
37         # GPIOE_CRH
38         mww 0x40011804 0xBBBBBBBB
39
40         # GPIOF_CRL
41         mww 0x40011C00 0x44BBBBBB
42         # GPIOF_CRH
43         mww 0x40011C04 0xBBBB4444
44
45         # GPIOG_CRL
46         mww 0x40012000 0x44BBBBBB
47         # GPIOG_CRH
48         mww 0x40012004 0x444444B4
49
50         # setup fsmc timings
51         # FSMC_BCR1
52         mww 0xA0000008 0x00001058
53
54         # FSMC_BTR1
55         mww 0xA000000C 0x10000502
56
57         # FSMC_BCR1 - enable fsmc
58         mww 0xA0000008 0x00001059
59 }
60
61 $_TARGETNAME configure -event reset-init {
62         stm32_enable_fsmc
63 }