This is an automated email from Gerrit.

"Tomas Vanek <[email protected]>" just uploaded a new patch set to Gerrit, which 
you can find at https://review.openocd.org/c/openocd/+/9247

-- gerrit

commit b99899b0b4526dc7038419fe37ccaea48b91cf82
Author: Tomas Vanek <[email protected]>
Date:   Fri Nov 21 12:39:56 2025 +0100

    target/aarch64: fix last_run_control_op on SMP
    
    aarch64_resume() set the last_run_control_op on the current core
    only and left last_run_control_op as is on the rest of the SMP group.
    It caused semihosting call on other cores to stop because
    last_run_control_op sticked on ARMV8_RUNCONTROL_STEP
    
    Set last_run_control_op to ARMV8_RUNCONTROL_RESUME on all cores
    in the SMP group.
    
    Change-Id: I55a97bb1f7ea25bfc5937c3cc846532cdf390064
    Signed-off-by: Tomas Vanek <[email protected]>

diff --git a/src/target/aarch64.c b/src/target/aarch64.c
index 74df97c274..5c88d732ff 100644
--- a/src/target/aarch64.c
+++ b/src/target/aarch64.c
@@ -955,6 +955,8 @@ static int aarch64_resume(struct target *target, bool 
current,
                                }
 
                                if (curr->state != TARGET_RUNNING) {
+                                       struct armv8_common *curr_armv8 = 
target_to_armv8(curr);
+                                       curr_armv8->last_run_control_op = 
ARMV8_RUNCONTROL_RESUME;
                                        curr->state = TARGET_RUNNING;
                                        curr->debug_reason = 
DBG_REASON_NOTHALTED;
                                        target_call_event_callbacks(curr, 
TARGET_EVENT_RESUMED);

-- 

Reply via email to