Accomodate targets which don't support various target-specific
reset operations. Maybe they can't; or it's a "not yet" thing.
Note that the assert/deassert operations can't yet trigger for
OMAP3 because resets currently include JTAG reset in all cases,
resetting the ICEpick and thus disabling the TAP for Cortex-A8.
---
src/target/target.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -559,6 +559,11 @@ static int target_soft_reset_halt_imp(st
LOG_ERROR("Target not examined yet");
return ERROR_FAIL;
}
+ if (!target->type->soft_reset_halt_imp) {
+ LOG_ERROR("Target %s does not support soft_reset_halt",
+ target->cmd_name);
+ return ERROR_FAIL;
+ }
return target->type->soft_reset_halt_imp(target);
}
@@ -4035,6 +4040,13 @@ static int tcl_target_func(Jim_Interp *i
}
if (!target->tap->enabled)
goto err_tap_disabled;
+ if (!target->type->assert_reset
+ || !target->type->deassert_reset) {
+ Jim_SetResult_sprintf(interp,
+ "No target-specific reset for %s",
+ target->cmd_name);
+ return JIM_ERR;
+ }
/* determine if we should halt or not. */
target->reset_halt = !!a;
/* When this happens - all workareas are invalid. */
Accomodate targets which don't support various target-specific
reset operations. Maybe they can't; or it's a "not yet" thing.
Note that the assert/deassert operations can't yet trigger for
OMAP3 because resets currently include JTAG reset in all cases,
resetting the ICEpick and thus disabling the TAP for Cortex-A8.
---
src/target/target.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -559,6 +559,11 @@ static int target_soft_reset_halt_imp(st
LOG_ERROR("Target not examined yet");
return ERROR_FAIL;
}
+ if (!target->type->soft_reset_halt_imp) {
+ LOG_ERROR("Target %s does not support soft_reset_halt",
+ target->cmd_name);
+ return ERROR_FAIL;
+ }
return target->type->soft_reset_halt_imp(target);
}
@@ -4035,6 +4040,13 @@ static int tcl_target_func(Jim_Interp *i
}
if (!target->tap->enabled)
goto err_tap_disabled;
+ if (!target->type->assert_reset
+ || !target->type->deassert_reset) {
+ Jim_SetResult_sprintf(interp,
+ "No target-specific reset for %s",
+ target->cmd_name);
+ return JIM_ERR;
+ }
/* determine if we should halt or not. */
target->reset_halt = !!a;
/* When this happens - all workareas are invalid. */
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development