Add more STM32F3 IDs in target/stm32f3.cfg.
authorUwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Thu, 11 Dec 2014 15:29:25 +0000 (16:29 +0100)
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>
Mon, 2 Feb 2015 10:29:01 +0000 (10:29 +0000)
Change-Id: I4c4462aa025639c4d20e6fa23c8845a69e60afc5
Signed-off-by: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Reviewed-on: http://openocd.zylin.com/2435
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
src/flash/nor/stm32f1x.c
tcl/target/stm32f3x.cfg

index 0871b30862b15d77880d5e11ac07dd5752ba2346..82f112ef7b39cc0d66f74958cf435de079fbe353 100644 (file)
@@ -894,7 +894,7 @@ static int stm32x_probe(struct flash_bank *bank)
                stm32x_info->ppage_size = 4;
                max_flash_size_in_kb = 128;
                break;
-       case 0x422: /* stm32f302xb/c */
+       case 0x422: /* stm32f302/3xb/c */
                page_size = 2048;
                stm32x_info->ppage_size = 2;
                max_flash_size_in_kb = 256;
@@ -902,6 +902,14 @@ static int stm32x_probe(struct flash_bank *bank)
                stm32x_info->option_offset = 6;
                stm32x_info->default_rdp = 0x55AA;
                break;
+       case 0x446: /* stm32f303xD/E */
+               page_size = 2048;
+               stm32x_info->ppage_size = 2;
+               max_flash_size_in_kb = 512;
+               stm32x_info->user_data_offset = 16;
+               stm32x_info->option_offset = 6;
+               stm32x_info->default_rdp = 0x55AA;
+               break;
        case 0x428: /* value line High density */
                page_size = 2048;
                stm32x_info->ppage_size = 4;
@@ -1240,6 +1248,15 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size)
                rev_str = get_stm32f0_revision(rev_id);
                break;
 
+       case 0x446:
+               device_str = "STM32F303xD/E";
+               switch (rev_id) {
+               case 0x1000:
+                       rev_str = "A";
+                       break;
+               }
+               break;
+
        case 0x448:
                device_str = "STM32F07x";
                rev_str = get_stm32f0_revision(rev_id);
index 9547d8437c6371f2aa839a43c100d99d92bb6047..318d96c656c12b370a3b95d13e4adde37a9efa2d 100644 (file)
@@ -52,14 +52,26 @@ swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPU
 if { [info exists BSTAPID] } {
    set _BSTAPID $BSTAPID
 } else {
-  # STM Document RM0316 rev 2 Section 30.6.2 says 0x06432041
-  # but STM32F303VCT6 rev Y has 0x06422041
+  # STM Document RM0316 rev 5 for STM32F302/303 B/C size
   set _BSTAPID1 0x06422041
+  # STM Document RM0313 rev 3 for STM32F37x
   set _BSTAPID2 0x06432041
+  # STM Document RM0313 rev 3 for STM32F37x Chip Revision 1.0
+  set _BSTAPID3 0x06422041
+  #  STM Document RM364 rev 1 for STM32F334
+  set _BSTAPID4 0x06438041
+  #  STM Document RM316 rev 5 for STM32F303 6/8 size
+  #  STM Document RM365 rev 3 for STM32F302 6/8 size
+  #  STM Document RM366 rev 2 for STM32F301 6/8 size
+  set _BSTAPID5 0x06439041
+  #  STM Document RM016 rev 5 for STM32F303 D/E size
+  set _BSTAPID6 0x06446041
 }
 
 if {[using_jtag]} {
- swj_newdap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID1 -expected-id $_BSTAPID2
+ swj_newdap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID1 \
+ -expected-id $_BSTAPID2 -expected-id $_BSTAPID3 -expected-id $_BSTAPID4 \
+ -expected-id $_BSTAPID5 -expected-id $_BSTAPID6
 }
 
 set _TARGETNAME $_CHIPNAME.cpu