From 7c5925783416fc860f335cf9d403ec9ee0534390 Mon Sep 17 00:00:00 2001 From: Andrej Kazmin Date: Fri, 22 Aug 2014 11:35:06 +0400 Subject: [PATCH] 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 --- src/flash/nor/at91samd.c | 3 +++ 1 file changed, 3 insertions(+) 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; -- 2.39.5