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
This commit is contained in:
Paul Fertser 2015-01-23 23:17:06 +03:00
parent c4113b5f3d
commit e899dcbfcf
1 changed files with 26 additions and 7 deletions

View File

@ -136,25 +136,30 @@ struct stm32lx_flash_bank {
}; };
static const struct stm32lx_rev stm32_416_revs[] = { static const struct stm32lx_rev stm32_416_revs[] = {
{ 0x1000, "A" }, { 0x1008, "Y" }, { 0x1018, "X" }, { 0x1038, "W" }, { 0x1000, "A" }, { 0x1008, "Y" }, { 0x1038, "W" }, { 0x1078, "V" },
{ 0x1078, "V" },
}; };
static const struct stm32lx_rev stm32_417_revs[] = { static const struct stm32lx_rev stm32_417_revs[] = {
{ 0x1000, "A" }, { 0x1008, "Z" }, { 0x1000, "A" }, { 0x1008, "Z" },
}; };
static const struct stm32lx_rev stm32_427_revs[] = { 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[] = { static const struct stm32lx_rev stm32_436_revs[] = {
{ 0x1000, "A" }, { 0x1008, "Z" }, { 0x1018, "Y" }, { 0x1000, "A" }, { 0x1008, "Z" }, { 0x1018, "Y" },
}; };
static const struct stm32lx_rev stm32_437_revs[] = {
{ 0x1000, "A" },
};
static const struct stm32lx_part_info stm32lx_parts[] = { static const struct stm32lx_part_info stm32lx_parts[] = {
{ {
.id = 0x416, .id = 0x416,
.revs = stm32_416_revs, .revs = stm32_416_revs,
.num_revs = ARRAY_SIZE(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, .page_size = 256,
.pages_per_sector = 16, .pages_per_sector = 16,
.max_flash_size_kb = 128, .max_flash_size_kb = 128,
@ -178,7 +183,7 @@ static const struct stm32lx_part_info stm32lx_parts[] = {
.id = 0x427, .id = 0x427,
.revs = stm32_427_revs, .revs = stm32_427_revs,
.num_revs = ARRAY_SIZE(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, .page_size = 256,
.pages_per_sector = 16, .pages_per_sector = 16,
.max_flash_size_kb = 256, .max_flash_size_kb = 256,
@ -187,11 +192,23 @@ static const struct stm32lx_part_info stm32lx_parts[] = {
.flash_base = 0x40023C00, .flash_base = 0x40023C00,
.fsize_base = 0x1FF800CC, .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, .id = 0x436,
.revs = stm32_436_revs, .revs = stm32_436_revs,
.num_revs = ARRAY_SIZE(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, .page_size = 256,
.pages_per_sector = 16, .pages_per_sector = 16,
.max_flash_size_kb = 384, .max_flash_size_kb = 384,
@ -202,7 +219,9 @@ static const struct stm32lx_part_info stm32lx_parts[] = {
}, },
{ {
.id = 0x437, .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, .page_size = 256,
.pages_per_sector = 16, .pages_per_sector = 16,
.max_flash_size_kb = 512, .max_flash_size_kb = 512,