aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/target/arm.h1
-rw-r--r--src/target/armv4_5.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/target/arm.h b/src/target/arm.h
index 27636cc3..d8361bd6 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 e75fe99c..5b24e69a 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);