target/target.c: fixed rp check bug in asynchronous flash write algorithm.
Bug in read pointer check within flash write algorithm made incorrect check if block size is more than 4 bytes (bug was detected with 16 bytes block size). Change-Id: I5b8e7ebca619a0a85ae6e9e496ff792248134d81 Signed-off-by: DmitryShpak <disona@yandex.ru> Reviewed-on: http://openocd.zylin.com/2657 Tested-by: jenkins Reviewed-by: Jens Bauer <jens@gpio.dk> Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
This commit is contained in:
parent
09ca5af4d0
commit
d3c2679bcb
|
@ -938,7 +938,7 @@ int target_run_flash_async_algorithm(struct target *target,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rp & (block_size - 1)) || rp < fifo_start_addr || rp >= fifo_end_addr) {
|
if (((rp - fifo_start_addr) & (block_size - 1)) || rp < fifo_start_addr || rp >= fifo_end_addr) {
|
||||||
LOG_ERROR("corrupted fifo read pointer 0x%" PRIx32, rp);
|
LOG_ERROR("corrupted fifo read pointer 0x%" PRIx32, rp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue