dsp563xx_once: Correct wrong return value on jtag communication errors
This patch change the return value on a jtag communication error to TARGET_UNKNOWN because this function should return the current target status and not a error code from the underlying api call. Also the validity of the jtag_status is extended to all static bits in this value.
This commit is contained in:
parent
0f863ecb01
commit
b7163f534a
|
@ -29,6 +29,9 @@
|
||||||
#include "dsp563xx.h"
|
#include "dsp563xx.h"
|
||||||
#include "dsp563xx_once.h"
|
#include "dsp563xx_once.h"
|
||||||
|
|
||||||
|
#define JTAG_STATUS_STATIC_MASK 0x03
|
||||||
|
#define JTAG_STATUS_STATIC_VALUE 0x01
|
||||||
|
|
||||||
#define JTAG_STATUS_NORMAL 0x01
|
#define JTAG_STATUS_NORMAL 0x01
|
||||||
#define JTAG_STATUS_STOPWAIT 0x05
|
#define JTAG_STATUS_STOPWAIT 0x05
|
||||||
#define JTAG_STATUS_BUSY 0x09
|
#define JTAG_STATUS_BUSY 0x09
|
||||||
|
@ -100,19 +103,16 @@ int dsp563xx_once_target_status(struct jtag_tap *tap)
|
||||||
uint8_t jtag_status;
|
uint8_t jtag_status;
|
||||||
|
|
||||||
if ((err = dsp563xx_jtag_sendinstr(tap, &jtag_status, JTAG_INSTR_ENABLE_ONCE)) != ERROR_OK)
|
if ((err = dsp563xx_jtag_sendinstr(tap, &jtag_status, JTAG_INSTR_ENABLE_ONCE)) != ERROR_OK)
|
||||||
return err;
|
|
||||||
if ((err = jtag_execute_queue()) != ERROR_OK)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
if ((jtag_status & 1) != 1)
|
|
||||||
{
|
|
||||||
return TARGET_UNKNOWN;
|
return TARGET_UNKNOWN;
|
||||||
}
|
if ((err = jtag_execute_queue()) != ERROR_OK)
|
||||||
|
return TARGET_UNKNOWN;
|
||||||
|
|
||||||
|
/* verify correct static status pattern */
|
||||||
|
if ( (jtag_status & JTAG_STATUS_STATIC_MASK) != JTAG_STATUS_STATIC_VALUE )
|
||||||
|
return TARGET_UNKNOWN;
|
||||||
|
|
||||||
if (jtag_status != JTAG_STATUS_DEBUG)
|
if (jtag_status != JTAG_STATUS_DEBUG)
|
||||||
{
|
|
||||||
return TARGET_RUNNING;
|
return TARGET_RUNNING;
|
||||||
}
|
|
||||||
|
|
||||||
return TARGET_HALTED;
|
return TARGET_HALTED;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue