From b17f580d2955822d0095e1fb914d98eeabf2a708 Mon Sep 17 00:00:00 2001
From: Furquan Shaikh <furquan@google.com>
Date: Mon, 24 Nov 2014 15:12:12 -0800
Subject: arm64: Add macro to invalidate stage 1 TLB entries at current EL

BUG=chrome-os-partner:33962
BRANCH=None
TEST=Compiles successfully for ryu.

Change-Id: Ia4941a864dd3394689121a8c9ddfaaf6f5c150a1
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 1e43a081f7394b2014d89e723f816f1eca83ef49
Original-Signed-off-by: Furquan Shaikh <furquan@google.com>
Original-Change-Id: I60d77456573a2a1e854d9f3ca730237acfb77728
Original-Reviewed-on: https://chromium-review.googlesource.com/231698
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Tested-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: http://review.coreboot.org/9539
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
---
 src/arch/arm64/include/armv8/arch/lib_helpers.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

(limited to 'src')

diff --git a/src/arch/arm64/include/armv8/arch/lib_helpers.h b/src/arch/arm64/include/armv8/arch/lib_helpers.h
index 422b81a56b..ba41f45440 100644
--- a/src/arch/arm64/include/armv8/arch/lib_helpers.h
+++ b/src/arch/arm64/include/armv8/arch/lib_helpers.h
@@ -239,6 +239,21 @@
 402:
 .endm
 
+/* Macro to invalidate all stage 1 TLB entries for current EL */
+.macro tlbiall_current temp
+	switch_el \temp, 401f, 402f, 403f
+401:
+	tlbi	alle1
+	b	404f
+402:
+	tlbi	alle2
+	b	404f
+403:
+	tlbi	alle3
+	b	404f
+404:
+.endm
+
 #else
 
 #include <stdint.h>
-- 
cgit v1.2.3