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>
__archive__
Andrej Kazmin 2014-08-22 11:35:06 +04:00 committed by Andreas Fritiofson
parent 30f802493d
commit 7c59257834
1 changed files with 3 additions and 0 deletions

View File

@ -658,6 +658,9 @@ static int samd_write_row(struct flash_bank *bank, uint32_t address,
return res; return res;
} }
/* Access through AHB is stalled while flash is being programmed */
usleep(200);
error = samd_check_error(bank->target); error = samd_check_error(bank->target);
if (error) if (error)
return ERROR_FAIL; return ERROR_FAIL;