aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTarek BOCHKATI <tarek.bouchkati@st.com>2023-05-31 15:16:35 +0100
committerTomas Vanek <vanekt@fbl.cz>2023-09-19 05:17:09 +0000
commit870769b0ba9f4dae6ada9d8b1a40d75bd83aaa06 (patch)
tree2dbc1bc3ca1dd64fa70f3a19a276cbb115c52f06 /src
parentfb52ba4fa1ea4f5bcf4b72ac85af4fe2fada7ee7 (diff)
downloadriscv-openocd-870769b0ba9f4dae6ada9d8b1a40d75bd83aaa06.zip
riscv-openocd-870769b0ba9f4dae6ada9d8b1a40d75bd83aaa06.tar.gz
riscv-openocd-870769b0ba9f4dae6ada9d8b1a40d75bd83aaa06.tar.bz2
flash/stm32l4x: support STM32WBA5xx devices
STM32WBA5x have a single bank flash up to 1MB Change-Id: I3d720e202f0fdd89ecd8aa7224653ca5a7ae187b Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@st.com> Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7694 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/flash/nor/stm32l4x.c25
-rw-r--r--src/flash/nor/stm32l4x.h1
2 files changed, 26 insertions, 0 deletions
diff --git a/src/flash/nor/stm32l4x.c b/src/flash/nor/stm32l4x.c
index 4414cf5..96757a9 100644
--- a/src/flash/nor/stm32l4x.c
+++ b/src/flash/nor/stm32l4x.c
@@ -58,6 +58,9 @@
/* STM32WBxxx series for reference.
*
+ * RM0493 (STM32WBA52x)
+ * http://www.st.com/resource/en/reference_manual/dm00821869.pdf
+ *
* RM0434 (STM32WB55/WB35x)
* http://www.st.com/resource/en/reference_manual/dm00318631.pdf
*
@@ -346,6 +349,10 @@ static const struct stm32l4_rev stm32u57_u58xx_revs[] = {
{ 0x2001, "X" }, { 0x3000, "C" },
};
+static const struct stm32l4_rev stm32wba5x_revs[] = {
+ { 0x1000, "A" },
+};
+
static const struct stm32l4_rev stm32wb1xx_revs[] = {
{ 0x1000, "A" }, { 0x2000, "B" },
};
@@ -580,6 +587,18 @@ static const struct stm32l4_part_info stm32l4_parts[] = {
.otp_size = 512,
},
{
+ .id = DEVID_STM32WBA5X,
+ .revs = stm32wba5x_revs,
+ .num_revs = ARRAY_SIZE(stm32wba5x_revs),
+ .device_str = "STM32WBA5x",
+ .max_flash_size_kb = 1024,
+ .flags = F_QUAD_WORD_PROG | F_HAS_TZ | F_HAS_L5_FLASH_REGS,
+ .flash_regs_base = 0x40022000,
+ .fsize_addr = 0x0FF907A0,
+ .otp_base = 0x0FF90000,
+ .otp_size = 512,
+ },
+ {
.id = DEVID_STM32WB1XX,
.revs = stm32wb1xx_revs,
.num_revs = ARRAY_SIZE(stm32wb1xx_revs),
@@ -1993,6 +2012,12 @@ static int stm32l4_probe(struct flash_bank *bank)
stm32l4_info->bank1_sectors = num_pages / 2;
}
break;
+ case DEVID_STM32WBA5X:
+ /* single bank flash */
+ page_size_kb = 8;
+ num_pages = flash_size_kb / page_size_kb;
+ stm32l4_info->bank1_sectors = num_pages;
+ break;
case DEVID_STM32WB5XX:
case DEVID_STM32WB3XX:
/* single bank flash */
diff --git a/src/flash/nor/stm32l4x.h b/src/flash/nor/stm32l4x.h
index 278038d..3dc0909 100644
--- a/src/flash/nor/stm32l4x.h
+++ b/src/flash/nor/stm32l4x.h
@@ -103,6 +103,7 @@
#define DEVID_STM32L55_L56XX 0x472
#define DEVID_STM32G49_G4AXX 0x479
#define DEVID_STM32U57_U58XX 0x482
+#define DEVID_STM32WBA5X 0x492
#define DEVID_STM32WB1XX 0x494
#define DEVID_STM32WB5XX 0x495
#define DEVID_STM32WB3XX 0x496