aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/target/arm_adi_v5.c8
-rw-r--r--src/target/armv7m.h4
-rw-r--r--src/target/cortex_m.c10
-rw-r--r--src/target/stm32_stlink.c1
4 files changed, 11 insertions, 12 deletions
diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c
index 9a98f61..fd3a92c 100644
--- a/src/target/arm_adi_v5.c
+++ b/src/target/arm_adi_v5.c
@@ -1096,14 +1096,6 @@ int ahbap_debugport_init(struct adiv5_dap *dap)
LOG_DEBUG(" ");
- /* test for initialized low level jtag hardware
- * this always fails for stlink hardware
- */
- if (!dap->jtag_info) {
- LOG_DEBUG("No low level jtag hardware found");
- return ERROR_OK;
- }
-
/* JTAG-DP or SWJ-DP, in JTAG mode
* ... for SWD mode this is patched as part
* of link switchover
diff --git a/src/target/armv7m.h b/src/target/armv7m.h
index 6002b57..bcf0ee1 100644
--- a/src/target/armv7m.h
+++ b/src/target/armv7m.h
@@ -171,9 +171,11 @@ struct armv7m_common {
struct adiv5_dap dap;
int fp_feature;
-
uint32_t demcr;
+ /* stlink is a high level adapter, does not support all functions */
+ bool stlink;
+
/* Direct processor core register read and writes */
int (*load_core_reg_u32)(struct target *target,
enum armv7m_regtype type, uint32_t num, uint32_t *value);
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index f992bde..acf2805 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -1780,9 +1780,13 @@ int cortex_m3_examine(struct target *target)
struct adiv5_dap *swjdp = &cortex_m3->armv7m.dap;
struct armv7m_common *armv7m = target_to_armv7m(target);
- retval = ahbap_debugport_init(swjdp);
- if (retval != ERROR_OK)
- return retval;
+ /* stlink shares the examine handler but does not support
+ * all its calls */
+ if (!armv7m->stlink) {
+ retval = ahbap_debugport_init(swjdp);
+ if (retval != ERROR_OK)
+ return retval;
+ }
if (!target_was_examined(target)) {
target_set_examined(target);
diff --git a/src/target/stm32_stlink.c b/src/target/stm32_stlink.c
index 4044654..9afaae0 100644
--- a/src/target/stm32_stlink.c
+++ b/src/target/stm32_stlink.c
@@ -278,6 +278,7 @@ static int stm32_stlink_init_arch_info(struct target *target,
armv7m->store_core_reg_u32 = stm32_stlink_store_core_reg_u32;
armv7m->examine_debug_reason = stm32_stlink_examine_debug_reason;
+ armv7m->stlink = true;
return ERROR_OK;
}