aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm/include/mm/core_mmu.h
diff options
context:
space:
mode:
authorEtienne Carriere <etienne.carriere@linaro.org>2017-06-22 13:34:17 +0200
committerJérôme Forissier <jerome.forissier@linaro.org>2017-06-26 08:43:23 +0200
commit40c2618fa732581295b64e5729c907ad34f45bc1 (patch)
treef4bc8bbf41ddac68514ef53f424435ce2570c841 /core/arch/arm/include/mm/core_mmu.h
parentf0d0c3016d6f3b15e9e9253a72c6274115dd3c4e (diff)
core: fix TODOs related to TLB maintenance in the pager
Invalidate TLBs for target references instead of invalidating the whole tables. Some changes affect places where several references are modified and must be invalidated in the TLBs. This change aims at lowering the synchronization barrier required before/after the TLB maintenance operations. Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Hikey AArch{32,64} pager)
Diffstat (limited to 'core/arch/arm/include/mm/core_mmu.h')
-rw-r--r--core/arch/arm/include/mm/core_mmu.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/arch/arm/include/mm/core_mmu.h b/core/arch/arm/include/mm/core_mmu.h
index 5f5933d3..d0d3f090 100644
--- a/core/arch/arm/include/mm/core_mmu.h
+++ b/core/arch/arm/include/mm/core_mmu.h
@@ -446,6 +446,9 @@ enum teecore_tlb_op {
TLBINV_BY_MVA, /* invalidate unified tlb by MVA */
};
+/* TLB invalidation for a range of virtual address */
+void tlbi_mva_range(vaddr_t va, size_t size, size_t granule);
+
/* deprecated: please call straight tlbi_all() and friends */
int core_tlb_maintenance(int op, unsigned long a) __deprecated;