From: Andrej Kazmin Date: Fri, 22 Aug 2014 07:35:06 +0000 (+0400) Subject: flash/nor/at91samd: add small delay before checking nvm status X-Git-Tag: v0.9.0-rc1~128 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=7c5925783416fc860f335cf9d403ec9ee0534390 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 Signed-off-by: Paul Fertser Reviewed-on: http://openocd.zylin.com/2268 Tested-by: jenkins Reviewed-by: Andreas Fritiofson --- diff --git a/src/flash/nor/at91samd.c b/src/flash/nor/at91samd.c index ece1fd20f6..de0f1cc745 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;