cortex_m: [FIX] ARMv8-M does not support VECTRESET
authorTarek BOCHKATI <tarek.bouchkati@st.com>
Tue, 12 Jan 2021 10:57:18 +0000 (11:57 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Mon, 18 Jan 2021 15:32:03 +0000 (15:32 +0000)
ref: ArmĀ®v8-M Architecture Reference Manual (DDI0553B.m)
     D1.2.3: AIRCR, Application Interrupt and Reset Control Register
             Bit [0] is RES0

Change-Id: I6ef451b2c114487e2732852a60e86c292ffa6a50
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@st.com>
Reviewed-on: http://openocd.zylin.com/6014
Tested-by: jenkins
Reviewed-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/target/cortex_m.c

index ac308b43ba6e1815ddb533ac996c3e361dc4efd5..ce2c426cee5bbdff91321b2af11500fd2922eee8 100644 (file)
@@ -2011,8 +2011,8 @@ int cortex_m_examine(struct target *target)
                }
                LOG_DEBUG("cpuid: 0x%8.8" PRIx32 "", cpuid);
 
-               /* VECTRESET is not supported on Cortex-M0, M0+ and M1 */
-               cortex_m->vectreset_supported = i > 1;
+               /* VECTRESET is supported only on ARMv7-M cores */
+               cortex_m->vectreset_supported = !armv7m->arm.is_armv8m && !armv7m->arm.is_armv6m;
 
                if (i == 4) {
                        target_read_u32(target, MVFR0, &mvfr0);