From d162e75ceb92de346951b979cee5941bdd6ef651 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Thu, 18 Dec 2014 11:12:09 +0100 Subject: stm32f4.c: Add STM32F411 ID. --- src/stm32f1.c | 16 +++++++++++++--- src/stm32f4.c | 5 +++-- src/stm32l1.c | 9 ++++++--- 3 files changed, 22 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/stm32f1.c b/src/stm32f1.c index 237135f..d02a26d 100644 --- a/src/stm32f1.c +++ b/src/stm32f1.c @@ -59,8 +59,10 @@ static const char stm32f1_driver_str[] = "STM32, Medium density."; static const char stm32hd_driver_str[] = "STM32, High density."; static const char stm32f3_driver_str[] = "STM32F3xx"; static const char stm32f03_driver_str[] = "STM32F03x"; +static const char stm32f04_driver_str[] = "STM32F04x"; static const char stm32f05_driver_str[] = "STM32F05x"; static const char stm32f07_driver_str[] = "STM32F07x"; +static const char stm32f09_driver_str[] = "STM32F09x"; static const char stm32f1_xml_memory_map[] = "" /* "idcode = adiv5_ap_mem_read(adiv5_target_ap(target), DBGMCU_IDCODE_F0) & 0xfff; switch(target->idcode) { - case 0x444: /* STM32F03 */ - case 0x440: /* STM32F05 */ - case 0x448: /* STM32F07 */ + case 0x444: /* STM32F03 RM0091 Rev.7 */ + case 0x445: /* STM32F04 RM0091 Rev.7 */ + case 0x440: /* STM32F05 RM0091 Rev.7 */ + case 0x448: /* STM32F07 RM0091 Rev.7 */ + case 0x442: /* STM32F09 RM0091 Rev.7 */ switch(target->idcode) { case 0x444: /* STM32F03 */ target->driver = stm32f03_driver_str; break; + case 0x445: /* STM32F04 */ + target->driver = stm32f04_driver_str; + break; case 0x440: /* STM32F05 */ target->driver = stm32f05_driver_str; break; case 0x448: /* STM32F07 */ target->driver = stm32f07_driver_str; break; + case 0x442: /* STM32F09 */ + target->driver = stm32f09_driver_str; + break; } target->xml_mem_map = stm32f1_xml_memory_map; target->flash_erase = stm32md_flash_erase; diff --git a/src/stm32f4.c b/src/stm32f4.c index 892af41..4f27859 100644 --- a/src/stm32f4.c +++ b/src/stm32f4.c @@ -170,8 +170,9 @@ bool stm32f4_probe(struct target_s *target) case 0x411: /* Documented to be 0x413! This is what I read... */ case 0x413: /* F407VGT6 */ case 0x419: /* 427/437 */ - case 0x423: /* F401 */ - case 0x433: /* F401RET6U */ + case 0x423: /* F401 B/C RM0368 Rev.3 */ + case 0x431: /* F411 RM0383 Rev.4 */ + case 0x433: /* F401 D/E RM0368 Rev.3 */ target->xml_mem_map = stm32f4_xml_memory_map; target->driver = stm32f4_driver_str; target->flash_erase = stm32f4_flash_erase; diff --git a/src/stm32l1.c b/src/stm32l1.c index 873d9b9..0472885 100644 --- a/src/stm32l1.c +++ b/src/stm32l1.c @@ -91,9 +91,12 @@ bool stm32l1_probe(struct target_s *target) idcode = adiv5_ap_mem_read(adiv5_target_ap(target), STM32L1_DBGMCU_IDCODE); switch(idcode & 0xFFF) { - case 0x416: /* Medium density */ - case 0x427: /* Medium+ density*/ - case 0x436: /* Medium+/High density */ + case 0x416: /* CAT. 1 device */ + case 0x429: /* CAT. 2 device */ + case 0x427: /* CAT. 3 device */ + case 0x436: /* CAT. 4 device */ + case 0x437: /* CAT. 5 device */ + target->idcode = idcode & 0xFFF; target->driver = stm32l1_driver_str; target->xml_mem_map = stm32l1_xml_memory_map; target->flash_erase = stm32l1_flash_erase; -- cgit v1.2.3