diff options
author | Etienne Carriere <etienne.carriere@linaro.org> | 2017-06-22 13:34:17 +0200 |
---|---|---|
committer | Jérôme Forissier <jerome.forissier@linaro.org> | 2017-06-26 08:43:23 +0200 |
commit | 40c2618fa732581295b64e5729c907ad34f45bc1 (patch) | |
tree | f4bc8bbf41ddac68514ef53f424435ce2570c841 /core/arch/arm/include/mm/core_mmu.h | |
parent | f0d0c3016d6f3b15e9e9253a72c6274115dd3c4e (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.h | 3 |
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; |