We will need this for determining the GIC redistributor for GICv3.

Signed-off-by: Ralf Ramsauer <[email protected]>
---
 inmates/lib/arm/include/asm/sysregs.h   |  9 +++++++++
 inmates/lib/arm64/include/asm/sysregs.h | 10 ++++++++++
 2 files changed, 19 insertions(+)

diff --git a/inmates/lib/arm/include/asm/sysregs.h 
b/inmates/lib/arm/include/asm/sysregs.h
index 7c285923..81cc003f 100644
--- a/inmates/lib/arm/include/asm/sysregs.h
+++ b/inmates/lib/arm/include/asm/sysregs.h
@@ -45,6 +45,15 @@
 #define CNTV_CTL_EL0   SYSREG_32(0, c14, c3, 1)
 #define CNTPCT_EL0     SYSREG_64(0, c14)
 
+#define MPIDR_EL1      SYSREG_32(0, c0, c0, 5)
+
+#define MPIDR_LEVEL_BITS               8
+#define MPIDR_LEVEL_MASK               ((1 << MPIDR_LEVEL_BITS) - 1)
+#define MPIDR_LEVEL_SHIFT(level)       (MPIDR_LEVEL_BITS * (level))
+
+#define MPIDR_AFFINITY_LEVEL(mpidr, level) \
+       (((mpidr) >> (MPIDR_LEVEL_BITS * (level))) & MPIDR_LEVEL_MASK)
+
 #define SYSREG_32(...) 32, __VA_ARGS__
 #define SYSREG_64(...) 64, __VA_ARGS__
 
diff --git a/inmates/lib/arm64/include/asm/sysregs.h 
b/inmates/lib/arm64/include/asm/sysregs.h
index 0caea891..5661f540 100644
--- a/inmates/lib/arm64/include/asm/sysregs.h
+++ b/inmates/lib/arm64/include/asm/sysregs.h
@@ -44,6 +44,16 @@
 #define __stringify_1(x...)     #x
 #define __stringify(x...)       __stringify_1(x)
 
+#define MPIDR_LEVEL_BITS_SHIFT 3
+#define MPIDR_LEVEL_BITS       (1 << MPIDR_LEVEL_BITS_SHIFT)
+#define MPIDR_LEVEL_MASK       ((1 << MPIDR_LEVEL_BITS) - 1)
+
+#define MPIDR_LEVEL_SHIFT(level) \
+        (((1 << (level)) >> 1) << MPIDR_LEVEL_BITS_SHIFT)
+
+#define MPIDR_AFFINITY_LEVEL(mpidr, level) \
+        (((mpidr) >> MPIDR_LEVEL_SHIFT(level)) & MPIDR_LEVEL_MASK)
+
 #define SYSREG_32(op1, crn, crm, op2)  s3_##op1 ##_##crn ##_##crm ##_##op2
 
 #define arm_write_sysreg(sysreg, val) \
-- 
2.17.0

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to