Should we include this fix for 0.3?

Confirmation that it works and looks OK would be a point
in favor. Hint! Hint! ;-)



-- 
Øyvind Harboe
http://www.zylin.com/zy1000.html
ARM7 ARM9 ARM11 XScale Cortex
JTAG debugger and flash programmer
From e37076a747bc1f1a709ec9feb57c9492dc18b062 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?=C3=98yvind=20Harboe?= <oyvind.har...@zylin.com>
Date: Tue, 3 Nov 2009 15:38:09 +0100
Subject: [PATCH] target: 5 second timeout/megabyte for CRC check, 20 sec minimum
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

There was a fixed 20 second timeout which is too little
for large, slow timeout checks.

Potential improvement would be to do CRC in smaller chunks
with smaller timeout. That way failure would be detected
sooner(tricky...).

Signed-off-by: Øyvind Harboe <oyvind.har...@zylin.com>
---
 src/target/arm7_9_common.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c
index 2b064f2..520fc72 100644
--- a/src/target/arm7_9_common.c
+++ b/src/target/arm7_9_common.c
@@ -2821,8 +2821,15 @@ int arm7_9_checksum_memory(struct target_s *target, uint32_t address, uint32_t c
 	buf_set_u32(reg_params[0].value, 0, 32, address);
 	buf_set_u32(reg_params[1].value, 0, 32, count);
 
+	/* 5 second timeout/megabyte */
+	int timeout = 5000 * (1 + (count / (1024*1024)));
+	if (timeout < 5000)
+	{
+	  timeout = 20000; /* minimum 20 second timeout */
+	}
+
 	if ((retval = target_run_algorithm(target, 0, NULL, 2, reg_params,
-		crc_algorithm->address, crc_algorithm->address + (sizeof(arm7_9_crc_code) - 8), 20000, &armv4_5_info)) != ERROR_OK)
+		crc_algorithm->address, crc_algorithm->address + (sizeof(arm7_9_crc_code) - 8), timeout, &armv4_5_info)) != ERROR_OK)
 	{
 		LOG_ERROR("error executing arm7_9 crc algorithm");
 		destroy_reg_param(&reg_params[0]);
-- 
1.6.3.3

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to