Lines Matching refs:aspace
272 void *rt_hw_mmu_map(rt_aspace_t aspace, void *v_addr, void *p_addr, size_t size, in rt_hw_mmu_map() argument
312 MM_PGTBL_LOCK(aspace); in rt_hw_mmu_map()
313 ret = mapper(aspace->page_table, v_addr, p_addr, attr); in rt_hw_mmu_map()
314 MM_PGTBL_UNLOCK(aspace); in rt_hw_mmu_map()
323 MM_PGTBL_LOCK(aspace); in rt_hw_mmu_map()
324 _kenrel_unmap_4K(aspace->page_table, (void *)unmap_va); in rt_hw_mmu_map()
325 MM_PGTBL_UNLOCK(aspace); in rt_hw_mmu_map()
344 void rt_hw_mmu_unmap(rt_aspace_t aspace, void *v_addr, size_t size) in rt_hw_mmu_unmap() argument
349 if (!aspace->page_table) in rt_hw_mmu_unmap()
356 MM_PGTBL_LOCK(aspace); in rt_hw_mmu_unmap()
357 if (rt_hw_mmu_v2p(aspace, v_addr) != ARCH_MAP_FAILED) in rt_hw_mmu_unmap()
358 _kenrel_unmap_4K(aspace->page_table, v_addr); in rt_hw_mmu_unmap()
359 MM_PGTBL_UNLOCK(aspace); in rt_hw_mmu_unmap()
374 rt_uint16_t _aspace_get_asid(rt_aspace_t aspace) in _aspace_get_asid() argument
380 asid_to = aspace->asid; in _aspace_get_asid()
388 LOG_D("Allocated ASID %d to PID %d(aspace %p)", asid_to, lwp_self()->pid, aspace); in _aspace_get_asid()
393 LOG_D("Overflowed ASID %d to PID %d(aspace %p)", asid_to, lwp_self()->pid, aspace); in _aspace_get_asid()
398 aspace->asid = asid_to; in _aspace_get_asid()
399 rt_hw_tlb_invalidate_aspace(aspace); in _aspace_get_asid()
407 rt_hw_tlb_invalidate_aspace(aspace); in _aspace_get_asid()
420 rt_uint16_t _aspace_get_asid(rt_aspace_t aspace) in _aspace_get_asid() argument
428 void rt_hw_aspace_switch(rt_aspace_t aspace) in rt_hw_aspace_switch() argument
430 if (aspace != &rt_kernel_space) in rt_hw_aspace_switch()
433 void *pgtbl = aspace->page_table; in rt_hw_aspace_switch()
436 ttbr0 = CREATE_TTBR0(pgtbl, _aspace_get_asid(aspace)); in rt_hw_aspace_switch()
467 void rt_hw_mmu_setup(rt_aspace_t aspace, struct mem_desc *mdesc, int desc_nr) in rt_hw_mmu_setup() argument
489 .limit_start = aspace->start, in rt_hw_mmu_setup()
490 .limit_range_size = aspace->size, in rt_hw_mmu_setup()
498 retval = rt_aspace_map_phy_static(aspace, &mdesc->varea, &hint, attr, in rt_hw_mmu_setup()
531 int rt_hw_mmu_map_init(rt_aspace_t aspace, void *v_address, size_t size, in rt_hw_mmu_map_init() argument
536 if (!aspace || !vtable) in rt_hw_mmu_map_init()
557 rt_aspace_init(aspace, (void *)KERNEL_VADDR_START, 0 - KERNEL_VADDR_START, in rt_hw_mmu_map_init()
759 static unsigned long *_query(rt_aspace_t aspace, void *vaddr, int *plvl_shf) in _query() argument
768 cur_lv_tbl = aspace->page_table; in _query()
806 void *rt_hw_mmu_v2p(rt_aspace_t aspace, void *v_addr) in rt_hw_mmu_v2p() argument
811 if (aspace == &rt_kernel_space) in rt_hw_mmu_v2p()
817 unsigned long *pte = _query(aspace, v_addr, &level_shift); in rt_hw_mmu_v2p()
874 int rt_hw_mmu_control(struct rt_aspace *aspace, void *vaddr, size_t size, in rt_hw_mmu_control() argument
889 rt_ubase_t *pte = _query(aspace, (void *)vstart, &level_shift); in rt_hw_mmu_control()