aboutsummaryrefslogtreecommitdiff
path: root/src/flash/nor
diff options
context:
space:
mode:
authorAndrej Kazmin <funnyfish@funnyfish.botik.ru>2014-08-22 11:35:06 +0400
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>2015-02-11 23:22:40 +0000
commit7c5925783416fc860f335cf9d403ec9ee0534390 (patch)
tree6eb5fb78cce3e7abf7e29dcf4e1cb8460ab64d20 /src/flash/nor
parent30f802493d1237eeef21282d4224ed89d8a4d480 (diff)
flash/nor/at91samd: add small delay before checking nvm status
OpenOCD's SWD subsystem doesn't currently have a consistent WAIT handling (i.e. it doesn't ever retry, just returns an error), so right after a row write a small delay is needed as AHB access is stalled during the flashing operation. The issue was exposed with a samd20 using ftdi SWD transport. Change-Id: I07d99d3a96845cc689c3904a41f4d41344f200aa Signed-off-by: Andrej Kazmin <funnyfish@funnyfish.botik.ru> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/2268 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Diffstat (limited to 'src/flash/nor')
-rw-r--r--src/flash/nor/at91samd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/flash/nor/at91samd.c b/src/flash/nor/at91samd.c
index ece1fd20..de0f1cc7 100644
--- a/src/flash/nor/at91samd.c
+++ b/src/flash/nor/at91samd.c
@@ -658,6 +658,9 @@ static int samd_write_row(struct flash_bank *bank, uint32_t address,
return res;
}
+ /* Access through AHB is stalled while flash is being programmed */
+ usleep(200);
+
error = samd_check_error(bank->target);
if (error)
return ERROR_FAIL;