This is an automated email from Gerrit.

"Tomas Vanek <van...@fbl.cz>" just uploaded a new patch set to Gerrit, which 
you can find at https://review.openocd.org/c/openocd/+/8097

-- gerrit

commit e51bd964ee4c0db543a479bb4c5c557e4a0df563
Author: Tomas Vanek <van...@fbl.cz>
Date:   Sun Jan 21 10:15:07 2024 +0100

    target/cortex_m: prevent asserting reset if examine is deferred
    
    In a corner case when debug_ap is not available,
    cortex_m_assert_reset() asserts reset to restore
    communication with the target.
    
    Prevent to do so on targets with defer_examine,
    as such targets need some special handling to enable them
    after reset anyway.
    
    The change makes possible to handle a multicore Cortex-M SoC with
    an auxiliary Cortex-M core(s) switched of by default
    even with 'reset_config srst_gates_jtag'
    
    Change-Id: I8cec7a816423e588d5e2e4f7904c81c776eddc42
    Signed-off-by: Tomas Vanek <van...@fbl.cz>

diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index 6a29a5fd4c..8bb852f4f8 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -1625,7 +1625,8 @@ static int cortex_m_assert_reset(struct target *target)
        bool srst_asserted = false;
 
        if ((jtag_reset_config & RESET_HAS_SRST) &&
-               ((jtag_reset_config & RESET_SRST_NO_GATING) || 
!armv7m->debug_ap)) {
+               ((jtag_reset_config & RESET_SRST_NO_GATING)
+                || (!armv7m->debug_ap && !target->defer_examine))) {
                /* If we have no debug_ap, asserting SRST is the only thing
                 * we can do now */
                adapter_assert_reset();

-- 

Reply via email to