diff options
author | Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> | 2016-02-25 14:29:44 +0100 |
---|---|---|
committer | Andreas Fritiofson <andreas.fritiofson@gmail.com> | 2016-02-29 19:28:27 +0000 |
commit | a85d52169bb9c84d5569c90ea09e48f46e7fde0a (patch) | |
tree | 26846edae42ee43003a7da8426e5b2acadea7c2f | |
parent | 4d68bd1ebf39170d40308ce362d6000b3725ff20 (diff) | |
download | riscv-openocd-a85d52169bb9c84d5569c90ea09e48f46e7fde0a.zip riscv-openocd-a85d52169bb9c84d5569c90ea09e48f46e7fde0a.tar.gz riscv-openocd-a85d52169bb9c84d5569c90ea09e48f46e7fde0a.tar.bz2 |
stm32lx.c: Add STM32L0 categories 1, 2 and 5.
Change-Id: I493072a856a66e4cd60de490a0937287db4b5c4d
Signed-off-by: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Reviewed-on: http://openocd.zylin.com/3360
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
-rw-r--r-- | src/flash/nor/stm32lx.c | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/src/flash/nor/stm32lx.c b/src/flash/nor/stm32lx.c index bac2c4c..42e00bd 100644 --- a/src/flash/nor/stm32lx.c +++ b/src/flash/nor/stm32lx.c @@ -139,7 +139,10 @@ static const struct stm32lx_rev stm32_416_revs[] = { { 0x1000, "A" }, { 0x1008, "Y" }, { 0x1038, "W" }, { 0x1078, "V" }, }; static const struct stm32lx_rev stm32_417_revs[] = { - { 0x1000, "A" }, { 0x1008, "Z" }, + { 0x1000, "A" }, { 0x1008, "Z" }, { 0x1018, "Y" }, { 0x1038, "X" } +}; +static const struct stm32lx_rev stm32_425_revs[] = { + { 0x1000, "A" }, { 0x2000, "B" }, { 0x2008, "Y" }, }; static const struct stm32lx_rev stm32_427_revs[] = { { 0x1000, "A" }, { 0x1018, "Y" }, { 0x1038, "X" }, @@ -153,6 +156,12 @@ static const struct stm32lx_rev stm32_436_revs[] = { static const struct stm32lx_rev stm32_437_revs[] = { { 0x1000, "A" }, }; +static const struct stm32lx_rev stm32_447_revs[] = { + { 0x1000, "A" }, { 0x2000, "B" }, { 0x2008, "Z" }, +}; +static const struct stm32lx_rev stm32_457_revs[] = { + { 0x1000, "A" }, { 0x1008, "Z" }, +}; static const struct stm32lx_part_info stm32lx_parts[] = { { @@ -171,7 +180,7 @@ static const struct stm32lx_part_info stm32lx_parts[] = { .id = 0x417, .revs = stm32_417_revs, .num_revs = ARRAY_SIZE(stm32_417_revs), - .device_str = "STM32L0xx", + .device_str = "STM32L0xx (Cat. 3)", .page_size = 128, .pages_per_sector = 32, .max_flash_size_kb = 64, @@ -180,6 +189,18 @@ static const struct stm32lx_part_info stm32lx_parts[] = { .fsize_base = 0x1FF8007C, }, { + .id = 0x425, + .revs = stm32_425_revs, + .num_revs = ARRAY_SIZE(stm32_425_revs), + .device_str = "STM32L0xx (Cat. 2)", + .page_size = 128, + .pages_per_sector = 32, + .max_flash_size_kb = 32, + .has_dual_banks = false, + .flash_base = 0x40022000, + .fsize_base = 0x1FF8007C, + }, + { .id = 0x427, .revs = stm32_427_revs, .num_revs = ARRAY_SIZE(stm32_427_revs), @@ -230,6 +251,31 @@ static const struct stm32lx_part_info stm32lx_parts[] = { .flash_base = 0x40023C00, .fsize_base = 0x1FF800CC, }, + { + .id = 0x447, + .revs = stm32_447_revs, + .num_revs = ARRAY_SIZE(stm32_447_revs), + .device_str = "STM32L0xx (Cat.5)", + .page_size = 128, + .pages_per_sector = 32, + .max_flash_size_kb = 192, + .first_bank_size_kb = 128, + .has_dual_banks = true, + .flash_base = 0x40022000, + .fsize_base = 0x1FF8007C, + }, + { + .id = 0x457, + .revs = stm32_457_revs, + .num_revs = ARRAY_SIZE(stm32_457_revs), + .device_str = "STM32L0xx (Cat.1)", + .page_size = 128, + .pages_per_sector = 32, + .max_flash_size_kb = 16, + .has_dual_banks = false, + .flash_base = 0x40022000, + .fsize_base = 0x1FF8007C, + }, }; /* flash bank stm32lx <base> <size> 0 0 <target#> |