aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm/mm/core_mmu_v7.c
diff options
context:
space:
mode:
authorJens Wiklander <jens.wiklander@linaro.org>2017-12-13 12:30:48 +0100
committerJérôme Forissier <jerome.forissier@linaro.org>2018-01-10 14:34:51 +0100
commit55705e76f990c931485db87406801c4a7b2b9569 (patch)
tree9b3a52510b9efccf21fc17837743e212d455a449 /core/arch/arm/mm/core_mmu_v7.c
parent33b3d81d60329dc63c3d6c8f27c9d3f58e1e7035 (diff)
core: refactor ASID management
Refactors Address Space Identifier management. The field in struct user_ta_ctx is moved into struct tee_mmu_info and renamed to asid. Allocation refactored internally with asid_alloc() and asid_free() functions, based on bitstring.h macros. ASIDs starts at 2, and is always an even number. ASIDs with the lowest bit set is reserved for as the second ASID when using ASIDs in pairs. Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Andrew Davis <andrew.davis@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Diffstat (limited to 'core/arch/arm/mm/core_mmu_v7.c')
-rw-r--r--core/arch/arm/mm/core_mmu_v7.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/arch/arm/mm/core_mmu_v7.c b/core/arch/arm/mm/core_mmu_v7.c
index 1d5dd887..aa55cdeb 100644
--- a/core/arch/arm/mm/core_mmu_v7.c
+++ b/core/arch/arm/mm/core_mmu_v7.c
@@ -485,7 +485,7 @@ void core_mmu_create_user_map(struct user_ta_ctx *utc,
memset(dir_info.table, 0, dir_info.num_entries * sizeof(uint32_t));
core_mmu_populate_user_map(&dir_info, utc);
map->ttbr0 = core_mmu_get_ul1_ttb_pa() | TEE_MMU_DEFAULT_ATTRS;
- map->ctxid = utc->context & 0xff;
+ map->ctxid = utc->mmu->asid;
}
bool core_mmu_find_table(vaddr_t va, unsigned max_level,