stlink: improve swd hardware reset
Treat SWD wait result as success, otherwise hardware reset will sometimes fail. Change-Id: I0dbdbe9e75924fe0dde547a72883c60c3db7b15e Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/799 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>__archive__
parent
6055d952c3
commit
897817b331
|
@ -94,7 +94,10 @@ struct stlink_usb_handle_s {
|
|||
};
|
||||
|
||||
#define STLINK_DEBUG_ERR_OK 0x80
|
||||
#define STLINK_DEBUG_ERR_FAULT 0x81
|
||||
#define STLINK_DEBUG_ERR_FAULT 0x81
|
||||
#define STLINK_SWD_AP_WAIT 0x10
|
||||
#define STLINK_SWD_DP_WAIT 0x14
|
||||
|
||||
#define STLINK_CORE_RUNNING 0x80
|
||||
#define STLINK_CORE_HALTED 0x81
|
||||
#define STLINK_CORE_STAT_UNKNOWN -1
|
||||
|
@ -784,6 +787,10 @@ static int stlink_usb_reset(void *handle)
|
|||
|
||||
LOG_DEBUG("RESET: 0x%08X", h->databuf[0]);
|
||||
|
||||
/* the following is not a error under swd (using hardware srst), so return success */
|
||||
if (h->databuf[0] == STLINK_SWD_AP_WAIT || h->databuf[0] == STLINK_SWD_DP_WAIT)
|
||||
return ERROR_OK;
|
||||
|
||||
return h->databuf[0] == STLINK_DEBUG_ERR_OK ? ERROR_OK : ERROR_FAIL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue