From: Øyvind H. <go...@us...> - 2010-05-03 11:58:28
|
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 14f4606dcb0533ab64562406edd157008108e0db (commit) from da9f72ca0a3305cf6f961834dc441496a36c85de (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 14f4606dcb0533ab64562406edd157008108e0db Author: Tobias Ringström <to...@ri...> Date: Fri Apr 30 14:04:14 2010 +0200 STM32 flash erase timeout fix The current timeout for STM32 flash block erase and flash mass erase is 10 (ms), which is too tight, and fails around 50% of the time for me. The data sheet for STM32F107VC specifies a maximum erase time of 40 ms (for both operations). I'd also consider it a bug that the code does not detect a timeout, but just assumes that the operation has completed. The attached patch does not address this bug. The attached patch increases the timeouts from 10 to 100 ms. Please apply. /Tobias diff --git a/src/flash/nor/stm32x.c b/src/flash/nor/stm32x.c index 818c474..0fdd148 100644 --- a/src/flash/nor/stm32x.c +++ b/src/flash/nor/stm32x.c @@ -331,7 +331,7 @@ static int stm32x_erase(struct flash_bank *bank, int first, int last) target_write_u32(target, STM32_FLASH_AR, bank->base + bank->sectors[i].offset); target_write_u32(target, STM32_FLASH_CR, FLASH_PER | FLASH_STRT); - status = stm32x_wait_status_busy(bank, 10); + status = stm32x_wait_status_busy(bank, 100); if (status & FLASH_WRPRTERR) return ERROR_FLASH_OPERATION_FAILED; @@ -1183,7 +1183,7 @@ static int stm32x_mass_erase(struct flash_bank *bank) target_write_u32(target, STM32_FLASH_CR, FLASH_MER); target_write_u32(target, STM32_FLASH_CR, FLASH_MER | FLASH_STRT); - status = stm32x_wait_status_busy(bank, 10); + status = stm32x_wait_status_busy(bank, 100); target_write_u32(target, STM32_FLASH_CR, FLASH_LOCK); ----------------------------------------------------------------------- Summary of changes: src/flash/nor/stm32x.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- Main OpenOCD repository |