summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/virt.h
diff options
context:
space:
mode:
authorDave Martin <dave.martin@linaro.org>2012-02-17 16:54:28 (GMT)
committerMarc Zyngier <marc.zyngier@arm.com>2012-09-19 07:32:52 (GMT)
commit4588c34daabb5aebee9cbe90f0ca6ab11412f207 (patch)
tree1bfb963e136e20b0efa1bad2b2c6057081f0fab5 /arch/arm/include/asm/virt.h
parent6a6d55c38c8b4ee77b50a33f03ea09e75b18bf82 (diff)
downloadlinux-fsl-qoriq-4588c34daabb5aebee9cbe90f0ca6ab11412f207.tar.xz
ARM: virt: Add boot-time diagnostics
In order to easily detect pathological cases, print some diagnostics when the kernel boots. This also provides helpers to detect that HYP mode is actually available, which can be used by other subsystems to enable HYP specific features. Signed-off-by: Dave Martin <dave.martin@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'arch/arm/include/asm/virt.h')
-rw-r--r--arch/arm/include/asm/virt.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/include/asm/virt.h b/arch/arm/include/asm/virt.h
index 0a99723..86164df 100644
--- a/arch/arm/include/asm/virt.h
+++ b/arch/arm/include/asm/virt.h
@@ -47,6 +47,23 @@ unsigned long __hyp_get_vectors(void);
#define __boot_cpu_mode (SVC_MODE)
#endif
+#ifndef ZIMAGE
+void hyp_mode_check(void);
+
+/* Reports the availability of HYP mode */
+static inline bool is_hyp_mode_available(void)
+{
+ return ((__boot_cpu_mode & MODE_MASK) == HYP_MODE &&
+ !(__boot_cpu_mode & BOOT_CPU_MODE_MISMATCH));
+}
+
+/* Check if the bootloader has booted CPUs in different modes */
+static inline bool is_hyp_mode_mismatched(void)
+{
+ return !!(__boot_cpu_mode & BOOT_CPU_MODE_MISMATCH);
+}
+#endif
+
#endif /* __ASSEMBLY__ */
#endif /* ! VIRT_H */