summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpencer Oliver <ntfreak@users.sourceforge.net>2010-05-10 14:15:12 +0100
committerSpencer Oliver <ntfreak@users.sourceforge.net>2010-05-10 15:39:56 +0100
commit3650981de7e5854b5023fddeb1a4656794a0aae0 (patch)
tree6cdc7234382d2d3f8b6f3a168ad1e486772e5379
parent2ae192699f5aaa911a874b85669fc803e4a29804 (diff)
downloadopenocd_libswd-3650981de7e5854b5023fddeb1a4656794a0aae0.tar.gz
openocd_libswd-3650981de7e5854b5023fddeb1a4656794a0aae0.tar.bz2
openocd_libswd-3650981de7e5854b5023fddeb1a4656794a0aae0.tar.xz
openocd_libswd-3650981de7e5854b5023fddeb1a4656794a0aae0.zip
mips32: 20 second timeout/megabyte for CRC check
There was a fixed 20 second timeout which is too little for large, slow timeout checks. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
-rw-r--r--src/target/mips32.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/target/mips32.c b/src/target/mips32.c
index de8253fc..0923a792 100644
--- a/src/target/mips32.c
+++ b/src/target/mips32.c
@@ -662,8 +662,10 @@ int mips32_checksum_memory(struct target *target, uint32_t address,
init_reg_param(&reg_params[1], "a1", 32, PARAM_OUT);
buf_set_u32(reg_params[1].value, 0, 32, count);
+ int timeout = 20000 * (1 + (count / (1024 * 1024)));
+
if ((retval = target_run_algorithm(target, 0, NULL, 2, reg_params,
- crc_algorithm->address, crc_algorithm->address + (sizeof(mips_crc_code)-4), 10000,
+ crc_algorithm->address, crc_algorithm->address + (sizeof(mips_crc_code)-4), timeout,
&mips32_info)) != ERROR_OK)
{
destroy_reg_param(&reg_params[0]);