aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-arm/arm32
diff options
context:
space:
mode:
authorJulien Grall <julien.grall@linaro.org>2013-06-17 14:47:13 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-07-04 11:10:06 +0100
commitb9fa02b9011f8baf753e1539c921804a32b228a8 (patch)
tree5162f056491f8ea4b13fa7fd0e0f6bf45b826e16 /xen/include/asm-arm/arm32
parentacd7c3f1bb2bf8ce67bb21737f566806a10e9630 (diff)
downloadxen-b9fa02b9011f8baf753e1539c921804a32b228a8.tar.gz
xen-b9fa02b9011f8baf753e1539c921804a32b228a8.tar.bz2
xen-b9fa02b9011f8baf753e1539c921804a32b228a8.zip
xen/arm32: implement VFP context switch
Add support for VFP context switch on arm32 and a dummy support for arm64 Signed-off-by: Julien Grall <julien.grall@linaro.org> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'xen/include/asm-arm/arm32')
-rw-r--r--xen/include/asm-arm/arm32/vfp.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/xen/include/asm-arm/arm32/vfp.h b/xen/include/asm-arm/arm32/vfp.h
new file mode 100644
index 0000000000..bade3bc66e
--- /dev/null
+++ b/xen/include/asm-arm/arm32/vfp.h
@@ -0,0 +1,41 @@
+#ifndef _ARM_ARM32_VFP_H
+#define _ARM_ARM32_VFP_H
+
+#define FPEXC_EX (1u << 31)
+#define FPEXC_EN (1u << 30)
+#define FPEXC_FP2V (1u << 28)
+
+#define MVFR0_A_SIMD_MASK (0xf << 0)
+
+
+#define FPSID_IMPLEMENTER_BIT (24)
+#define FPSID_IMPLEMENTER_MASK (0xff << FPSID_IMPLEMENTER_BIT)
+#define FPSID_ARCH_BIT (16)
+#define FPSID_ARCH_MASK (0xf << FPSID_ARCH_BIT)
+#define FPSID_PART_BIT (8)
+#define FPSID_PART_MASK (0xff << FPSID_PART_BIT)
+#define FPSID_VARIANT_BIT (4)
+#define FPSID_VARIANT_MASK (0xf << FPSID_VARIANT_BIT)
+#define FPSID_REV_BIT (0)
+#define FPSID_REV_MASK (0xf << FPSID_REV_BIT)
+
+struct vfp_state
+{
+ uint64_t fpregs1[16]; /* {d0-d15} */
+ uint64_t fpregs2[16]; /* {d16-d31} */
+ uint32_t fpexc;
+ uint32_t fpscr;
+ /* VFP implementation specific state */
+ uint32_t fpinst;
+ uint32_t fpinst2;
+};
+
+#endif /* _ARM_ARM32_VFP_H */
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */