From: OpenOCD-Gerrit <ope...@us...> - 2012-07-30 06:27:57
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 055abd0b9cb3427fb9b52263d2be49620e8e4c97 (commit) from 531fbf0ef25e75884f2ade2acafcf010cb3d7d2a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 055abd0b9cb3427fb9b52263d2be49620e8e4c97 Author: Spencer Oliver <sp...@sp...> Date: Thu Jul 12 12:29:38 2012 +0100 flash: handle zero when reading stm32 flash size reg Some variants read 0 for the flash size register, rather than failing lets assume we have max flash fitted. Change-Id: Ie1fb4e73606f49268a6fd5921c3aef75bc4790d3 Signed-off-by: Spencer Oliver <sp...@sp...> Reviewed-on: http://openocd.zylin.com/744 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <and...@gm...> Reviewed-by: Freddie Chopin <fre...@gm...> diff --git a/src/flash/nor/stm32f1x.c b/src/flash/nor/stm32f1x.c index 938785e..b6359a0 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 c7e050d..5f5bfb8 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 3863144..27a446d 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) { ----------------------------------------------------------------------- Summary of changes: src/flash/nor/stm32f1x.c | 5 +++++ src/flash/nor/stm32f2x.c | 5 +++++ src/flash/nor/stm32lx.c | 5 +++++ 3 files changed, 15 insertions(+), 0 deletions(-) hooks/post-receive -- Main OpenOCD repository |