stm32f2x flash: add STM32F401 (F4 low power) 21/1521/2
authorAndrey Yurovsky <yurovsky@gmail.com>
Mon, 22 Jul 2013 23:49:02 +0000 (16:49 -0700)
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>
Fri, 26 Jul 2013 14:19:21 +0000 (14:19 +0000)
Add support for the new STM32F401 parts.  These are similar to the
STM32F405/407 however they are a new Low Power variant with ID code
0x423 and have 256K of Flash.  Tested with a modified F4 discovery
board.

Change-Id: Ida5fb14a0832934b4d6d1ec11e602df5076edbc8
Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com>
Reviewed-on: http://openocd.zylin.com/1521
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/flash/nor/stm32f2x.c

index 719fa1a..89fad60 100644 (file)
@@ -772,6 +772,9 @@ static int stm32x_probe(struct flash_bank *bank)
                max_flash_size_in_kb = 2048;
                stm32x_info->has_large_mem = true;
                break;
+       case 0x423:
+               max_flash_size_in_kb = 256;
+               break;
        default:
                LOG_WARNING("Cannot identify target as a STM32 family.");
                return ERROR_FAIL;
@@ -911,6 +914,20 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size)
                }
                break;
 
+       case 0x423:
+               device_str = "STM32F4xx (Low Power)";
+
+               switch (rev_id) {
+               case 0x1000:
+                       rev_str = "A";
+                       break;
+
+               case 0x1001:
+                       rev_str = "Z";
+                       break;
+               }
+               break;
+
        default:
                snprintf(buf, buf_size, "Cannot identify target as a STM32F2/4\n");
                return ERROR_FAIL;