]> www.infradead.org Git - users/borneoa/openocd-next.git/commitdiff
flash/stm32l4x: support STM32C05/09x devices
authorHAOUES Ahmed <ahmed.haoues@st.com>
Tue, 25 Mar 2025 13:29:30 +0000 (14:29 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 19 Apr 2025 09:24:17 +0000 (09:24 +0000)
STM32C05/09x devices are similar to STM32C03/07x devices

Change-Id: I77c803356c32f06699c14622828585609c90a136
Signed-off-by: HAOUES Ahmed <ahmed.haoues@st.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8618
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Tested-by: jenkins
src/flash/nor/stm32l4x.c
src/flash/nor/stm32l4x.h

index fa57db8bbf5d11cf0d99471d80a96f278a59c79c..f16333201bfcc1e400e9af95ce332e3dabb1a7db 100644 (file)
@@ -303,10 +303,18 @@ static const struct stm32l4_rev stm32c03xx_revs[] = {
        { 0x1000, "A" }, { 0x1001, "Z" },
 };
 
+static const struct stm32l4_rev stm32c05xx_revs[] = {
+       { 0x1000, "A" },
+};
+
 static const struct stm32l4_rev stm32c071xx_revs[] = {
        { 0x1001, "Z" },
 };
 
+static const struct stm32l4_rev stm32c09xx_revs[] = {
+       { 0x1000, "A" },
+};
+
 static const struct stm32l4_rev stm32g05_g06xx_revs[] = {
        { 0x1000, "A" },
 };
@@ -450,6 +458,18 @@ static const struct stm32l4_part_info stm32l4_parts[] = {
          .otp_base              = 0x1FFF7000,
          .otp_size              = 1024,
        },
+       {
+         .id                    = DEVID_STM32C05XX,
+         .revs                  = stm32c05xx_revs,
+         .num_revs              = ARRAY_SIZE(stm32c05xx_revs),
+         .device_str            = "STM32C05xx",
+         .max_flash_size_kb     = 64,
+         .flags                 = F_NONE,
+         .flash_regs_base       = 0x40022000,
+         .fsize_addr            = 0x1FFF75A0,
+         .otp_base              = 0x1FFF7000,
+         .otp_size              = 1024,
+       },
        {
          .id                    = DEVID_STM32C071XX,
          .revs                  = stm32c071xx_revs,
@@ -462,6 +482,18 @@ static const struct stm32l4_part_info stm32l4_parts[] = {
          .otp_base              = 0x1FFF7000,
          .otp_size              = 1024,
        },
+       {
+         .id                    = DEVID_STM32C09XX,
+         .revs                  = stm32c09xx_revs,
+         .num_revs              = ARRAY_SIZE(stm32c09xx_revs),
+         .device_str            = "STM32C09xx",
+         .max_flash_size_kb     = 256,
+         .flags                 = F_NONE,
+         .flash_regs_base       = 0x40022000,
+         .fsize_addr            = 0x1FFF75A0,
+         .otp_base              = 0x1FFF7000,
+         .otp_size              = 1024,
+       },
        {
          .id                    = DEVID_STM32U53_U54XX,
          .revs                  = stm32u53_u54xx_revs,
@@ -2021,7 +2053,9 @@ static int stm32l4_probe(struct flash_bank *bank)
        case DEVID_STM32L43_L44XX:
        case DEVID_STM32C01XX:
        case DEVID_STM32C03XX:
+       case DEVID_STM32C05XX:
        case DEVID_STM32C071XX:
+       case DEVID_STM32C09XX:
        case DEVID_STM32G05_G06XX:
        case DEVID_STM32G07_G08XX:
        case DEVID_STM32U031XX:
index 3199d4f6dc1b1007aa6c36e0937300a0447e360a..07b3615a2466d69136fa342f5ecee08aed2c6e09 100644 (file)
@@ -88,6 +88,8 @@
 #define DEVID_STM32L47_L48XX   0x415
 #define DEVID_STM32L43_L44XX   0x435
 #define DEVID_STM32C01XX               0x443
+#define DEVID_STM32C05XX        0x44C
+#define DEVID_STM32C09XX        0x44D
 #define DEVID_STM32C03XX               0x453
 #define DEVID_STM32U53_U54XX   0x455
 #define DEVID_STM32G05_G06XX   0x456