From 7b504370f732a00d803163cab2b1750bde1927cf Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Fri, 17 Sep 2021 18:47:20 +0200 Subject: [PATCH] arm_tpiu_swo: fix support for deprecated 'tpiu' command before 'init' Commit dc7b32ea4a00 ("armv7m_trace: get rid of the old tpiu code") is not handling correctly the old 'tpiu' command if it is run during the config phase (before command 'init'). Move the call to the old event handler 'trace-config' in function jim_arm_tpiu_swo_enable(), so it is correctly executed after 'init'. Add the call to the old event handler 'trace-config' also during jim_arm_tpiu_swo_disable(), to match the old behaviour. Add more information while alerting that the event 'trace-config' is deprecated. Change-Id: If831d9159b4634c74e19c04099d041a6e2be3f2a Signed-off-by: Antonio Borneo Fixes: dc7b32ea4a00 ("armv7m_trace: get rid of the old tpiu code") Reviewed-on: https://review.openocd.org/c/openocd/+/6561 Tested-by: jenkins Reviewed-by: Karl Palsson --- src/target/arm_tpiu_swo.c | 12 +++++++++++- src/target/target.c | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/target/arm_tpiu_swo.c b/src/target/arm_tpiu_swo.c index 746ab393ee..8b1d012eda 100644 --- a/src/target/arm_tpiu_swo.c +++ b/src/target/arm_tpiu_swo.c @@ -764,6 +764,10 @@ static int jim_arm_tpiu_swo_enable(Jim_Interp *interp, int argc, Jim_Obj *const arm_tpiu_swo_handle_event(obj, TPIU_SWO_EVENT_POST_ENABLE); + /* START_DEPRECATED_TPIU */ + target_handle_event(target, TARGET_EVENT_TRACE_CONFIG); + /* END_DEPRECATED_TPIU */ + obj->enabled = true; return JIM_OK; @@ -817,6 +821,13 @@ static int jim_arm_tpiu_swo_disable(Jim_Interp *interp, int argc, Jim_Obj *const } arm_tpiu_swo_handle_event(obj, TPIU_SWO_EVENT_POST_DISABLE); + + /* START_DEPRECATED_TPIU */ + struct command_context *cmd_ctx = current_command_context(interp); + struct target *target = get_current_target(cmd_ctx); + target_handle_event(target, TARGET_EVENT_TRACE_CONFIG); + /* END_DEPRECATED_TPIU */ + return JIM_OK; } @@ -1112,7 +1123,6 @@ COMMAND_HANDLER(handle_tpiu_deprecated_config_command) if (retval != ERROR_OK) return retval; - target_handle_event(target, TARGET_EVENT_TRACE_CONFIG); return ERROR_OK; } diff --git a/src/target/target.c b/src/target/target.c index 6571e9c6fd..6d3bf77870 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -4983,7 +4983,7 @@ no_params: if (goi->isconfigure) { /* START_DEPRECATED_TPIU */ if (n->value == TARGET_EVENT_TRACE_CONFIG) - LOG_INFO("DEPRECATED target event %s", n->name); + LOG_INFO("DEPRECATED target event %s; use TPIU events {pre,post}-{enable,disable}", n->name); /* END_DEPRECATED_TPIU */ bool replace = true; -- 2.30.2