esp32s2: convert counted timeout to timeval_ms

Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com>
Change-Id: Id685408281478cec0e7e886dbedb3b8972c7b652
Reviewed-on: https://review.openocd.org/c/openocd/+/7020
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Ian Thompson <ianst@cadence.com>
This commit is contained in:
Erhan Kurubas 2022-06-12 01:04:08 +02:00 committed by Antonio Borneo
parent 2053120ba1
commit af9daf4433
1 changed files with 8 additions and 6 deletions

View File

@ -21,6 +21,7 @@
#include "config.h"
#endif
#include <helper/time_support.h>
#include "assert.h"
#include <target/target.h>
#include <target/target_type.h>
@ -482,15 +483,16 @@ static int esp32s2_soc_reset(struct target *target)
}
/* Wait for SoC to reset */
alive_sleep(100);
int timeout = 100;
while (target->state != TARGET_RESET && target->state != TARGET_RUNNING && --timeout > 0) {
int64_t timeout = timeval_ms() + 100;
while (target->state != TARGET_RESET && target->state != TARGET_RUNNING) {
alive_sleep(10);
xtensa_poll(target);
if (timeval_ms() >= timeout) {
LOG_TARGET_ERROR(target, "Timed out waiting for CPU to be reset, target state=%d", target->state);
return ERROR_TARGET_TIMEOUT;
}
}
if (timeout == 0) {
LOG_ERROR("Timed out waiting for CPU to be reset, target->state=%d", target->state);
return ERROR_TARGET_TIMEOUT;
}
xtensa_halt(target);
res = target_wait_state(target, TARGET_HALTED, 1000);
if (res != ERROR_OK) {