diff --git a/src/target/arm.h b/src/target/arm.h index 27636cc3d..d8361bd63 100644 --- a/src/target/arm.h +++ b/src/target/arm.h @@ -61,6 +61,7 @@ enum arm_mode { ARM_MODE_MON = 22, ARM_MODE_ABT = 23, ARM_MODE_UND = 27, + ARM_MODE_1176_MON = 28, ARM_MODE_SYS = 31, ARM_MODE_THREAD = 0, diff --git a/src/target/armv4_5.c b/src/target/armv4_5.c index e75fe99c4..5b24e69a9 100644 --- a/src/target/armv4_5.c +++ b/src/target/armv4_5.c @@ -140,6 +140,12 @@ static const struct { .n_indices = ARRAY_SIZE(arm_mon_indices), .indices = arm_mon_indices, }, + { + .name = "Secure Monitor ARM1176JZF-S", + .psr = ARM_MODE_1176_MON, + .n_indices = ARRAY_SIZE(arm_mon_indices), + .indices = arm_mon_indices, + }, /* These special modes are currently only supported * by ARMv6M and ARMv7M profiles */ @@ -199,6 +205,7 @@ int arm_mode_to_number(enum arm_mode mode) case ARM_MODE_SYS: return 6; case ARM_MODE_MON: + case ARM_MODE_1176_MON: return 7; default: LOG_ERROR("invalid mode value encountered %d", mode);