xscale: fix bug in xscale_receive()

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 <oyvind.harboe@zylin.com>
Reviewed-on: http://openocd.zylin.com/32
Tested-by: jenkins
Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
This commit is contained in:
Matt Reimer 2011-09-19 10:30:13 -04:00 committed by Øyvind Harboe
parent 0dac042a10
commit 4eca579a6e
1 changed files with 1 additions and 1 deletions

View File

@ -317,7 +317,7 @@ static int xscale_receive(struct target *target, uint32_t *buffer, int num_words
/* examine results */ /* examine results */
for (i = words_done; i < num_words; i++) for (i = words_done; i < num_words; i++)
{ {
if (!(field0[0] & 1)) if (!(field0[i] & 1))
{ {
/* move backwards if necessary */ /* move backwards if necessary */
int j; int j;