This is an automated email from Gerrit.

Christopher Head (ch...@zaber.com) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/4605

-- gerrit

commit b0de70d6a4408913065af631cb146eb8bcbe26d6
Author: Christopher Head <ch...@zaber.com>
Date:   Tue Jul 17 13:55:55 2018 -0700

    target/cortex_m: restore C_MASKINTS after reset
    
    The cortex_m maskisr user-facing setting is not changed across a target
    reset. However, the in-core C_MASKINTS bit was always cleared as part of
    reset processing, meaning that a cortex_m maskisr on setting would not
    be respected after a reset. Set C_MASKINTS based on the user-facing
    setting value rather than always clearing it after reset.
    
    Change-Id: I5aa5b9dfde04a0fb9c6816fa55b5ef1faf39f8de
    Signed-off-by: Christopher Head <ch...@zaber.com>

diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index d1afbd5..4ad5b66 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -237,8 +237,11 @@ static int cortex_m_endreset_event(struct target *target)
                        return retval;
        }
 
-       /* clear any interrupt masking */
-       cortex_m_write_debug_halt_mask(target, 0, C_MASKINTS);
+       /* Restore proper interrupt masking setting. */
+       if (cortex_m->isrmasking_mode == CORTEX_M_ISRMASK_ON)
+               cortex_m_write_debug_halt_mask(target, C_MASKINTS, 0);
+       else
+               cortex_m_write_debug_halt_mask(target, 0, C_MASKINTS);
 
        /* Enable features controlled by ITM and DWT blocks, and catch only
         * the vectors we were told to pay attention to.

-- 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to