aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/flash/nor/stm32f1x.c5
-rw-r--r--src/flash/nor/stm32f2x.c5
-rw-r--r--src/flash/nor/stm32lx.c5
3 files changed, 15 insertions, 0 deletions
diff --git a/src/flash/nor/stm32f1x.c b/src/flash/nor/stm32f1x.c
index 938785ef..b6359a0a 100644
--- a/src/flash/nor/stm32f1x.c
+++ b/src/flash/nor/stm32f1x.c
@@ -902,6 +902,11 @@ static int stm32x_probe(struct flash_bank *bank)
flash_size_in_kb = 0xffff;
}
+ /* some variants read 0 for flash size register
+ * use a max flash size as a default */
+ if (flash_size_in_kb == 0)
+ flash_size_in_kb = 0xffff;
+
if ((device_id & 0xfff) == 0x410) {
/* medium density - we have 1k pages
* 4 pages for a protection area */
diff --git a/src/flash/nor/stm32f2x.c b/src/flash/nor/stm32f2x.c
index c7e050d0..5f5bfb85 100644
--- a/src/flash/nor/stm32f2x.c
+++ b/src/flash/nor/stm32f2x.c
@@ -605,6 +605,11 @@ static int stm32x_probe(struct flash_bank *bank)
flash_size_in_kb = 0xffff;
}
+ /* some variants read 0 for flash size register
+ * use a max flash size as a default */
+ if (flash_size_in_kb == 0)
+ flash_size_in_kb = 0xffff;
+
if ((device_id & 0xfff) == 0x411) {
/* check for early silicon */
if (flash_size_in_kb == 0xffff) {
diff --git a/src/flash/nor/stm32lx.c b/src/flash/nor/stm32lx.c
index 38631440..27a446de 100644
--- a/src/flash/nor/stm32lx.c
+++ b/src/flash/nor/stm32lx.c
@@ -482,6 +482,11 @@ static int stm32lx_probe(struct flash_bank *bank)
flash_size_in_kb = 0xffff;
}
+ /* some variants read 0 for flash size register
+ * use a max flash size as a default */
+ if (flash_size_in_kb == 0)
+ flash_size_in_kb = 0xffff;
+
if ((device_id & 0xfff) == 0x416) {
/* check for early silicon */
if (flash_size_in_kb == 0xffff) {