From 4eca579a6edf49ff8cb0872c757165c35013e46d Mon Sep 17 00:00:00 2001 From: Matt Reimer Date: Mon, 19 Sep 2011 10:30:13 -0400 Subject: [PATCH] xscale: fix bug in xscale_receive() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The code in xscale_receive() that tries to skip invalid reads (i.e. reads that don't have the DBG_SR[0] 'valid' bit set) seems to be wrong, as it only looks at the first word's valid flag rather than each word's own valid flag. Am I reading the code correctly? If so, the attached patch should fix it. If this looks correct, I'll generate a proper patch and commit message. Matt Change-Id: I74ebe2ad7a36d340a9dd3b8487578b6ea7f3cf1e Signed-off-by: Øyvind Harboe Reviewed-on: http://openocd.zylin.com/32 Tested-by: jenkins Reviewed-by: Øyvind Harboe --- src/target/xscale.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/target/xscale.c b/src/target/xscale.c index 3b5674581..b469b8644 100644 --- a/src/target/xscale.c +++ b/src/target/xscale.c @@ -317,7 +317,7 @@ static int xscale_receive(struct target *target, uint32_t *buffer, int num_words /* examine results */ for (i = words_done; i < num_words; i++) { - if (!(field0[0] & 1)) + if (!(field0[i] & 1)) { /* move backwards if necessary */ int j;