diff options
author | Spencer Oliver <spen@spen-soft.co.uk> | 2012-01-09 12:42:31 +0000 |
---|---|---|
committer | Spencer Oliver <spen@spen-soft.co.uk> | 2012-01-12 20:42:40 +0000 |
commit | ad0847ca38e4c9d7ea0051ac7718afd3aa61868e (patch) | |
tree | 5024ea4f6cd92776416d57fb3a829ce03b485d95 /src | |
parent | afe95871c59f05d532529af84e1ee80e3845e923 (diff) |
flash: use correct device_id mask
The stm32 drivers have been using 0x7ff as the DEV_ID mask, this should
have been 0xfff.
Change-Id: I232469620969d6dd1b9a2a2aa15ec18b947dbb05
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/352
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/flash/nor/stm32f1x.c | 55 | ||||
-rw-r--r-- | src/flash/nor/stm32f2x.c | 8 | ||||
-rw-r--r-- | src/flash/nor/stm32lx.c | 6 |
3 files changed, 20 insertions, 49 deletions
diff --git a/src/flash/nor/stm32f1x.c b/src/flash/nor/stm32f1x.c index 5d9da903..738c2dac 100644 --- a/src/flash/nor/stm32f1x.c +++ b/src/flash/nor/stm32f1x.c @@ -977,8 +977,7 @@ static int stm32x_probe(struct flash_bank *bank) flash_size_in_kb = 0xffff; } - if ((device_id & 0x7ff) == 0x410) - { + if ((device_id & 0xfff) == 0x410) { /* medium density - we have 1k pages * 4 pages for a protection area */ page_size = 1024; @@ -991,9 +990,7 @@ static int stm32x_probe(struct flash_bank *bank) LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 128k flash"); flash_size_in_kb = 128; } - } - else if ((device_id & 0x7ff) == 0x412) - { + } else if ((device_id & 0xfff) == 0x412) { /* low density - we have 1k pages * 4 pages for a protection area */ page_size = 1024; @@ -1006,9 +1003,7 @@ static int stm32x_probe(struct flash_bank *bank) LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 32k flash"); flash_size_in_kb = 32; } - } - else if ((device_id & 0x7ff) == 0x414) - { + } else if ((device_id & 0xfff) == 0x414) { /* high density - we have 2k pages * 2 pages for a protection area */ page_size = 2048; @@ -1021,9 +1016,7 @@ static int stm32x_probe(struct flash_bank *bank) LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 512k flash"); flash_size_in_kb = 512; } - } - else if ((device_id & 0x7ff) == 0x418) - { + } else if ((device_id & 0xfff) == 0x418) { /* connectivity line density - we have 2k pages * 2 pages for a protection area */ page_size = 2048; @@ -1036,9 +1029,7 @@ static int stm32x_probe(struct flash_bank *bank) LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 256k flash"); flash_size_in_kb = 256; } - } - else if ((device_id & 0x7ff) == 0x420) - { + } else if ((device_id & 0xfff) == 0x420) { /* value line density - we have 1k pages * 4 pages for a protection area */ page_size = 1024; @@ -1051,9 +1042,7 @@ static int stm32x_probe(struct flash_bank *bank) LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 128k flash"); flash_size_in_kb = 128; } - } - else if ((device_id & 0x7ff) == 0x428) - { + } else if ((device_id & 0xfff) == 0x428) { /* value line High density - we have 2k pages * 4 pages for a protection area */ page_size = 2048; @@ -1066,10 +1055,7 @@ static int stm32x_probe(struct flash_bank *bank) LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 128k flash"); flash_size_in_kb = 128; } - } - - else if ((device_id & 0x7ff) == 0x430) - { + } else if ((device_id & 0xfff) == 0x430) { /* xl line density - we have 2k pages * 2 pages for a protection area */ page_size = 2048; @@ -1165,8 +1151,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) if (retval != ERROR_OK) return retval; - if ((device_id & 0x7ff) == 0x410) - { + if ((device_id & 0xfff) == 0x410) { printed = snprintf(buf, buf_size, "stm32x (Medium Density) - Rev: "); buf += printed; buf_size -= printed; @@ -1193,9 +1178,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) snprintf(buf, buf_size, "unknown"); break; } - } - else if ((device_id & 0x7ff) == 0x412) - { + } else if ((device_id & 0xfff) == 0x412) { printed = snprintf(buf, buf_size, "stm32x (Low Density) - Rev: "); buf += printed; buf_size -= printed; @@ -1210,9 +1193,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) snprintf(buf, buf_size, "unknown"); break; } - } - else if ((device_id & 0x7ff) == 0x414) - { + } else if ((device_id & 0xfff) == 0x414) { printed = snprintf(buf, buf_size, "stm32x (High Density) - Rev: "); buf += printed; buf_size -= printed; @@ -1231,9 +1212,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) snprintf(buf, buf_size, "unknown"); break; } - } - else if ((device_id & 0x7ff) == 0x418) - { + } else if ((device_id & 0xfff) == 0x418) { printed = snprintf(buf, buf_size, "stm32x (Connectivity) - Rev: "); buf += printed; buf_size -= printed; @@ -1252,9 +1231,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) snprintf(buf, buf_size, "unknown"); break; } - } - else if ((device_id & 0x7ff) == 0x420) - { + } else if ((device_id & 0xfff) == 0x420) { printed = snprintf(buf, buf_size, "stm32x (Value) - Rev: "); buf += printed; buf_size -= printed; @@ -1273,9 +1250,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) snprintf(buf, buf_size, "unknown"); break; } - } - else if ((device_id & 0x7ff) == 0x428) - { + } else if ((device_id & 0xfff) == 0x428) { printed = snprintf(buf, buf_size, "stm32x (Value HD) - Rev: "); buf += printed; buf_size -= printed; @@ -1294,9 +1269,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) snprintf(buf, buf_size, "unknown"); break; } - } - else if ((device_id & 0x7ff) == 0x430) - { + } else if ((device_id & 0xfff) == 0x430) { printed = snprintf(buf, buf_size, "stm32x (XL) - Rev: "); buf += printed; buf_size -= printed; diff --git a/src/flash/nor/stm32f2x.c b/src/flash/nor/stm32f2x.c index 591b326b..b7e10096 100644 --- a/src/flash/nor/stm32f2x.c +++ b/src/flash/nor/stm32f2x.c @@ -605,14 +605,14 @@ static int stm32x_probe(struct flash_bank *bank) flash_size_in_kb = 0xffff; } - if ((device_id & 0x7ff) == 0x411) { + if ((device_id & 0xfff) == 0x411) { /* check for early silicon */ if (flash_size_in_kb == 0xffff) { /* number of sectors may be incorrrect on early silicon */ LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 512k flash"); flash_size_in_kb = 512; } - } else if ((device_id & 0x7ff) == 0x413) { + } else if ((device_id & 0xfff) == 0x413) { /* check for early silicon */ if (flash_size_in_kb == 0xffff) { /* number of sectors may be incorrrect on early silicon */ @@ -681,7 +681,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) if (retval != ERROR_OK) return retval; - if ((device_id & 0x7ff) == 0x411) { + if ((device_id & 0xfff) == 0x411) { printed = snprintf(buf, buf_size, "stm32f2x - Rev: "); buf += printed; buf_size -= printed; @@ -707,7 +707,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) snprintf(buf, buf_size, "unknown"); break; } - } else if ((device_id & 0x7ff) == 0x413) { + } else if ((device_id & 0xfff) == 0x413) { printed = snprintf(buf, buf_size, "stm32f4x - Rev: "); buf += printed; buf_size -= printed; diff --git a/src/flash/nor/stm32lx.c b/src/flash/nor/stm32lx.c index 29a7aac9..2cd16d6f 100644 --- a/src/flash/nor/stm32lx.c +++ b/src/flash/nor/stm32lx.c @@ -503,8 +503,7 @@ static int stm32lx_probe(struct flash_bank *bank) LOG_DEBUG("device id = 0x%08" PRIx32 "", device_id); - if ((device_id & 0x7ff) != 0x416) - { + if ((device_id & 0xfff) != 0x416) { LOG_WARNING("Cannot identify target as a STM32L family."); return ERROR_FAIL; } @@ -702,8 +701,7 @@ static int stm32lx_get_info(struct flash_bank *bank, char *buf, int buf_size) if (retval != ERROR_OK) return retval; - if ((device_id & 0x7ff) == 0x416) - { + if ((device_id & 0xfff) == 0x416) { printed = snprintf(buf, buf_size, "stm32lx - Rev: "); buf += printed; buf_size -= printed; |