aboutsummaryrefslogtreecommitdiff
path: root/src/target/arm.h
diff options
context:
space:
mode:
authorMatthias Welwarsky <matthias.welwarsky@sysgo.com>2016-09-03 23:20:58 +0200
committerMatthias Welwarsky <matthias.welwarsky@sysgo.com>2017-02-10 14:01:38 +0100
commita3b9e12aecc3021bc3022eca93d07f7d11255b3b (patch)
tree82b35ea3737b66feeadfdff5846759c355cc50c2 /src/target/arm.h
parentdf32af234cae1f24b0a0f3abf4b50859f9d26740 (diff)
aarch64: introduce dpm extension for ARMv8
Add or move ARMv8 related dpm function to their own source module Change-Id: Id93d50be0b8635bd40ddb2a74fe8746ff840d736 Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
Diffstat (limited to 'src/target/arm.h')
-rw-r--r--src/target/arm.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/target/arm.h b/src/target/arm.h
index e4f20383..25480387 100644
--- a/src/target/arm.h
+++ b/src/target/arm.h
@@ -66,6 +66,15 @@ enum arm_mode {
ARM_MODE_USER_THREAD = 1,
ARM_MODE_HANDLER = 2,
+ /* shift left 4 bits for armv8 64 */
+ ARMV8_64_EL0T = 0x0F,
+ ARMV8_64_EL1T = 0x4F,
+ ARMV8_64_EL1H = 0x5F,
+ ARMV8_64_EL2T = 0x8F,
+ ARMV8_64_EL2H = 0x9F,
+ ARMV8_64_EL3T = 0xCF,
+ ARMV8_64_EL3H = 0xDF,
+
ARM_MODE_ANY = -1
};
@@ -180,6 +189,18 @@ struct arm {
uint32_t CRn, uint32_t CRm,
uint32_t value);
+ /** Read coprocessor register. */
+ int (*mrs)(struct target *target, uint32_t op0,
+ uint32_t op1, uint32_t op2,
+ uint32_t CRn, uint32_t CRm,
+ uint32_t *value);
+
+ /** Write coprocessor register. */
+ int (*msr)(struct target *target, uint32_t cpnum,
+ uint32_t op1, uint32_t op2,
+ uint32_t CRn, uint32_t CRm,
+ uint32_t value);
+
void *arch_info;
/** For targets conforming to ARM Debug Interface v5,