aboutsummaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/arm/armv7/cpu.S15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/arch/arm/armv7/cpu.S b/src/arch/arm/armv7/cpu.S
index 610659243d..c53119c8d1 100644
--- a/src/arch/arm/armv7/cpu.S
+++ b/src/arch/arm/armv7/cpu.S
@@ -23,6 +23,19 @@
* THIS FUNCTION MUST PRESERVE THE VALUE OF r10
*/
+#if ENV_USER_SPACE
+/*
+ * Empty macro for code running in userspace. Trying to manipulate the
+ * cache from userspace hangs the system. To run code at a privileged level,
+ * the userspace code needs to execute an API call to the privileged mode
+ * code.
+ */
+.macro dcache_apply_all crm
+ bx lr
+.endm
+
+#else
+
.macro dcache_apply_all crm
dsb
mov r3, #-2 @ initialize level so that we start at 0
@@ -82,6 +95,8 @@
bx lr
.endm
+#endif /* ENV_USER_SPACE */
+
/*
* Bring an ARM processor we just gained control of (e.g. from IROM) into a
* known state regarding caches/SCTLR. Completely cleans and invalidates