aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Fertser <fercerpav@gmail.com>2015-01-23 23:17:06 +0300
committerPaul Fertser <fercerpav@gmail.com>2015-02-12 12:56:46 +0000
commite899dcbfcff390bf5ec6ec09da3fe1771e3e75c0 (patch)
tree9461dc5ab4325942bcd9b108a4cfa2cecb307cea
parentc4113b5f3da6bfbc544648cfdde6d3df01b0d7b4 (diff)
downloadriscv-openocd-e899dcbfcff390bf5ec6ec09da3fe1771e3e75c0.zip
riscv-openocd-e899dcbfcff390bf5ec6ec09da3fe1771e3e75c0.tar.gz
riscv-openocd-e899dcbfcff390bf5ec6ec09da3fe1771e3e75c0.tar.bz2
flash/nor/stm32lx: add all the IDs and revisions from current RM
RM0038 Rev.12 lists these new parts and introduces the category naming scheme. RM0367 Rev.2 (STM32L0x3 RM) doesn't add any new codes. Change-Id: Id95dd48dda64d5f108dac57d265d29a7db3a1bd1 Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> Reviewed-on: http://openocd.zylin.com/2495 Tested-by: jenkins
-rw-r--r--src/flash/nor/stm32lx.c33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/flash/nor/stm32lx.c b/src/flash/nor/stm32lx.c
index 061ccb9..7b0b0cc 100644
--- a/src/flash/nor/stm32lx.c
+++ b/src/flash/nor/stm32lx.c
@@ -136,25 +136,30 @@ struct stm32lx_flash_bank {
};
static const struct stm32lx_rev stm32_416_revs[] = {
- { 0x1000, "A" }, { 0x1008, "Y" }, { 0x1018, "X" }, { 0x1038, "W" },
- { 0x1078, "V" },
+ { 0x1000, "A" }, { 0x1008, "Y" }, { 0x1038, "W" }, { 0x1078, "V" },
};
static const struct stm32lx_rev stm32_417_revs[] = {
{ 0x1000, "A" }, { 0x1008, "Z" },
};
static const struct stm32lx_rev stm32_427_revs[] = {
- { 0x1018, "A" },
+ { 0x1000, "A" }, { 0x1018, "Y" }, { 0x1038, "X" },
+};
+static const struct stm32lx_rev stm32_429_revs[] = {
+ { 0x1000, "A" }, { 0x1018, "Z" },
};
static const struct stm32lx_rev stm32_436_revs[] = {
{ 0x1000, "A" }, { 0x1008, "Z" }, { 0x1018, "Y" },
};
+static const struct stm32lx_rev stm32_437_revs[] = {
+ { 0x1000, "A" },
+};
static const struct stm32lx_part_info stm32lx_parts[] = {
{
.id = 0x416,
.revs = stm32_416_revs,
.num_revs = ARRAY_SIZE(stm32_416_revs),
- .device_str = "STM32L1xx (Low/Medium Density)",
+ .device_str = "STM32L1xx (Cat.1 - Low/Medium Density)",
.page_size = 256,
.pages_per_sector = 16,
.max_flash_size_kb = 128,
@@ -178,7 +183,7 @@ static const struct stm32lx_part_info stm32lx_parts[] = {
.id = 0x427,
.revs = stm32_427_revs,
.num_revs = ARRAY_SIZE(stm32_427_revs),
- .device_str = "STM32L1xx (Medium+ Density)",
+ .device_str = "STM32L1xx (Cat.3 - Medium+ Density)",
.page_size = 256,
.pages_per_sector = 16,
.max_flash_size_kb = 256,
@@ -188,10 +193,22 @@ static const struct stm32lx_part_info stm32lx_parts[] = {
.fsize_base = 0x1FF800CC,
},
{
+ .id = 0x429,
+ .revs = stm32_429_revs,
+ .num_revs = ARRAY_SIZE(stm32_429_revs),
+ .device_str = "STM32L1xx (Cat.2)",
+ .page_size = 256,
+ .pages_per_sector = 16,
+ .max_flash_size_kb = 128,
+ .has_dual_banks = false,
+ .flash_base = 0x40023C00,
+ .fsize_base = 0x1FF8004C,
+ },
+ {
.id = 0x436,
.revs = stm32_436_revs,
.num_revs = ARRAY_SIZE(stm32_436_revs),
- .device_str = "STM32L1xx (Medium+/High Density)",
+ .device_str = "STM32L1xx (Cat.4/Cat.3 - Medium+/High Density)",
.page_size = 256,
.pages_per_sector = 16,
.max_flash_size_kb = 384,
@@ -202,7 +219,9 @@ static const struct stm32lx_part_info stm32lx_parts[] = {
},
{
.id = 0x437,
- .device_str = "STM32L1xx (Medium+/High Density)",
+ .revs = stm32_437_revs,
+ .num_revs = ARRAY_SIZE(stm32_437_revs),
+ .device_str = "STM32L1xx (Cat.5/Cat.6)",
.page_size = 256,
.pages_per_sector = 16,
.max_flash_size_kb = 512,