From: Tomas Vanek Date: Thu, 21 Jul 2016 07:27:00 +0000 (+0200) Subject: target: check late abort from target in async_algorithm X-Git-Tag: v0.10.0-rc1~133 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=ccb4a913c228573e172b7b71d86c464e6fc705b9 target: check late abort from target in async_algorithm target_run_flash_async_algorithm() ignored abort from target (rp set to 0) when raised after all data have been written in fifo. I could result e.g. in not reported error during flash write. The change adds rp test after target algorithm has finished. Change-Id: Iadd93371e4a4602737be10079479285d81ae41b2 Signed-off-by: Tomas Vanek Reviewed-on: http://openocd.zylin.com/3560 Tested-by: jenkins Reviewed-by: Steven Stallion Reviewed-by: Andreas Fritiofson --- diff --git a/src/target/target.c b/src/target/target.c index 0dbce9aecd..56d9eee58f 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -1014,6 +1014,15 @@ int target_run_flash_async_algorithm(struct target *target, retval = retval2; } + if (retval == ERROR_OK) { + /* check if algorithm set rp = 0 after fifo writer loop finished */ + retval = target_read_u32(target, rp_addr, &rp); + if (retval == ERROR_OK && rp == 0) { + LOG_ERROR("flash write algorithm aborted by target"); + retval = ERROR_FLASH_OPERATION_FAILED; + } + } + return retval; }