| /optee_os/core/mm/ |
| H A D | core_mmu.c | 200 paddr_t pa, size_t size) in _pbuf_intersects() argument 205 if (core_is_buffer_intersect(pa, size, a[n].paddr, a[n].size)) in _pbuf_intersects() 210 #define pbuf_intersects(a, pa, size) \ argument 211 _pbuf_intersects((a), ARRAY_SIZE(a), (pa), (size)) 214 paddr_t pa, size_t size) in _pbuf_is_inside() argument 219 if (core_is_buffer_inside(pa, size, a[n].paddr, a[n].size)) in _pbuf_is_inside() 224 #define pbuf_is_inside(a, pa, size) \ argument 225 _pbuf_is_inside((a), ARRAY_SIZE(a), (pa), (size)) 227 static bool pa_is_in_map(struct tee_mmap_region *map, paddr_t pa, size_t len) in pa_is_in_map() argument 234 if (SUB_OVERFLOW(len, 1, &end_pa) || ADD_OVERFLOW(pa, end_pa, &end_pa)) in pa_is_in_map() [all …]
|
| H A D | mobj.c | 37 paddr_t pa; member 53 size_t granule, paddr_t *pa) in mobj_phys_get_pa() argument 58 if (!pa) in mobj_phys_get_pa() 61 p = moph->pa + offs; in mobj_phys_get_pa() 70 *pa = p; in mobj_phys_get_pa() 135 static struct mobj *mobj_phys_init(paddr_t pa, size_t size, uint32_t mem_type, in mobj_phys_init() argument 143 if ((pa & CORE_MMU_USER_PARAM_MASK) || in mobj_phys_init() 149 if (pa) { in mobj_phys_init() 150 va = phys_to_virt(pa, area_type, size); in mobj_phys_init() 156 pa = map->pa; in mobj_phys_init() [all …]
|
| H A D | mobj_dyn_shm.c | 52 paddr_t pa; member 82 size_t granule, paddr_t *pa) in mobj_reg_shm_get_pa() argument 88 if (!pa) in mobj_reg_shm_get_pa() 106 *pa = p; in mobj_reg_shm_get_pa() 318 static TEE_Result check_reg_shm_conflict(struct mobj_reg_shm *r, paddr_t pa, in check_reg_shm_conflict() argument 324 if (core_is_buffer_intersect(pa, size, r->pages[n], in check_reg_shm_conflict() 337 res = check_reg_shm_conflict(r, m->pa, m->mobj.size); in check_protmem_conflict() 550 static TEE_Result check_reg_shm_list_conflict(paddr_t pa, paddr_size_t size) in check_reg_shm_list_conflict() argument 556 res = check_reg_shm_conflict(r, pa, size); in check_reg_shm_list_conflict() 566 if ((m->pa | m->mobj.size) & SMALL_PAGE_MASK) in protect_mem() [all …]
|
| H A D | page_alloc.c | 55 paddr_t pa = 0; in virt_page_alloc() local 81 pa = tee_mm_get_smem(mmp); in virt_page_alloc() 82 assert(pa); in virt_page_alloc() 84 res = core_mmu_map_contiguous_pages(va, pa, pcount, memtype); in virt_page_alloc()
|
| H A D | boot_mem.c | 284 paddr_t pa = 0; in boot_mem_release_unused() local 305 pa = vaddr_to_phys(ROUNDUP(boot_mem_desc->orig_mem_start, in boot_mem_release_unused() 307 mm = nex_phys_mem_mm_find(pa); in boot_mem_release_unused() 317 pa = tee_mm_get_smem(mm); in boot_mem_release_unused() 318 n = vaddr_to_phys(boot_mem_desc->mem_start) - pa; in boot_mem_release_unused() 320 DMSG("Carving out %#"PRIxPA"..%#"PRIxPA, pa, pa + n - 1); in boot_mem_release_unused() 321 mm = nex_phys_mem_alloc2(pa, n); in boot_mem_release_unused() 344 paddr_t pa = 0; in boot_mem_release_tmp_alloc() local 359 pa = vaddr_to_phys(va); in boot_mem_release_tmp_alloc() 361 mm = nex_phys_mem_mm_find(pa); in boot_mem_release_tmp_alloc() [all …]
|
| /optee_os/core/arch/arm/plat-stm32mp2/ |
| H A D | main.c | 71 paddr_t pa; in plat_console_init() member 73 [0] = { .pa = 0 }, in plat_console_init() 74 [1] = { .pa = USART1_BASE }, in plat_console_init() 75 [2] = { .pa = USART2_BASE }, in plat_console_init() 76 [3] = { .pa = USART3_BASE }, in plat_console_init() 77 [4] = { .pa = UART4_BASE }, in plat_console_init() 78 [5] = { .pa = UART5_BASE }, in plat_console_init() 79 [6] = { .pa = USART6_BASE }, in plat_console_init() 80 [7] = { .pa = UART7_BASE }, in plat_console_init() 81 [8] = { .pa = UART8_BASE }, in plat_console_init() [all …]
|
| /optee_os/core/arch/arm/tee/ |
| H A D | cache.c | 21 paddr_t pa; in cache_operation() local 23 pa = virt_to_phys(va); in cache_operation() 24 if (!pa) in cache_operation() 34 res = cache_op_outer(DCACHE_AREA_CLEAN_INV, pa, len); in cache_operation() 45 return cache_op_outer(DCACHE_AREA_CLEAN, pa, len); in cache_operation() 49 res = cache_op_outer(DCACHE_AREA_INVALIDATE, pa, len); in cache_operation()
|
| /optee_os/core/arch/arm/plat-stm32mp1/ |
| H A D | main.c | 87 paddr_t pa; in plat_console_init() member 89 [0] = { .pa = 0 }, in plat_console_init() 90 [1] = { .pa = USART1_BASE }, in plat_console_init() 91 [2] = { .pa = USART2_BASE }, in plat_console_init() 92 [3] = { .pa = USART3_BASE }, in plat_console_init() 93 [4] = { .pa = UART4_BASE }, in plat_console_init() 94 [5] = { .pa = UART5_BASE }, in plat_console_init() 95 [6] = { .pa = USART6_BASE }, in plat_console_init() 96 [7] = { .pa = UART7_BASE }, in plat_console_init() 97 [8] = { .pa = UART8_BASE }, in plat_console_init() [all …]
|
| H A D | stm32_util.h | 97 paddr_t stm32mp1_pa_or_sram_alias_pa(paddr_t pa); 102 static inline paddr_t stm32mp1_pa_or_sram_alias_pa(paddr_t pa) in stm32mp1_pa_or_sram_alias_pa() argument 104 return pa; in stm32mp1_pa_or_sram_alias_pa()
|
| /optee_os/core/lib/libtomcrypt/src/misc/ |
| H A D | mem_neq.c | 32 const unsigned char* pa; in mem_neq() local 38 pa = a; in mem_neq() 42 ret |= *pa ^ *pb; in mem_neq() 43 ++pa; in mem_neq()
|
| /optee_os/core/arch/arm/mm/ |
| H A D | core_mmu.c | 98 TEE_Result cache_op_outer(enum cache_op op, paddr_t pa, size_t len) in cache_op_outer() argument 118 if (tee_pbuf_is_sec(pa, len)) in cache_op_outer() 130 arm_cl2_invbypa(pl310_base_pa_op, pa, pa + len - 1); in cache_op_outer() 137 arm_cl2_cleanbypa(pl310_base_pa_op, pa, pa + len - 1); in cache_op_outer() 144 arm_cl2_cleaninvbypa(pl310_base_pa_op, pa, in cache_op_outer() 145 pa + len - 1); in cache_op_outer() 192 bool arch_va2pa_helper(void *va, paddr_t *pa) in arch_va2pa_helper() argument 219 *pa = (par & (par_pa_mask << PAR_PA_SHIFT)) | in arch_va2pa_helper()
|
| H A D | mobj_ffa.c | 98 paddr_t pa; member 296 if (core_is_buffer_intersect(prm->pa, prm->mf.mobj.size, in check_shm_overlaps_prm() 325 return core_is_buffer_intersect(to_mobj_ffa_prm(&mf->mobj)->pa, in cmp_pa_overlap() 327 to_mobj_ffa_prm(&mf2->mobj)->pa, in cmp_pa_overlap() 430 paddr_t pa, unsigned int num_pages) in mobj_ffa_add_pages_at() argument 439 !core_pbuf_is(CORE_MEM_NON_SEC, pa, num_pages * SMALL_PAGE_SIZE)) in mobj_ffa_add_pages_at() 446 mfs->pages[n + *idx] = pa + n * SMALL_PAGE_SIZE; in mobj_ffa_add_pages_at() 451 mfr->pa = pa; in mobj_ffa_add_pages_at() 452 else if (mfr->pa != pa + *idx * SMALL_PAGE_SIZE) in mobj_ffa_add_pages_at() 469 m->use_case, m->pa, m->mf.mobj.size, m->mf.cookie); in protect_mem() [all …]
|
| H A D | core_mmu_v7.c | 259 paddr_t pa = virt_to_phys((void *)core_mmu_get_main_ttb_va(prtn)); in core_mmu_get_main_ttb_pa() local 261 if (pa & ~TTB_L1_MASK) in core_mmu_get_main_ttb_pa() 263 return pa; in core_mmu_get_main_ttb_pa() 273 paddr_t pa = virt_to_phys((void *)core_mmu_get_ul1_ttb_va(prtn)); in core_mmu_get_ul1_ttb_pa() local 275 if (pa & ~TTB_UL1_MASK) in core_mmu_get_ul1_ttb_pa() 277 return pa; in core_mmu_get_ul1_ttb_pa() 294 paddr_t pa = 0; in alloc_l2_table() local 301 pa = tee_mm_get_smem(mm); in alloc_l2_table() 303 p = phys_to_virt(pa, MEM_AREA_SEC_RAM_OVERALL, in alloc_l2_table() 609 paddr_t pa, uint32_t attr) in core_mmu_set_entry_primitive() argument [all …]
|
| H A D | tee_pager.c | 227 void *tee_pager_phys_to_virt(paddr_t pa, size_t len) in tee_pager_phys_to_virt() argument 236 if (pa & SMALL_PAGE_MASK || len > SMALL_PAGE_SIZE) in tee_pager_phys_to_virt() 242 if (!tee_pager_get_table_info(pa, &ti)) in tee_pager_phys_to_virt() 244 idx = core_mmu_va2idx(&ti, pa); in tee_pager_phys_to_virt() 246 if ((a & TEE_MATTR_VALID_BLOCK) && p == pa) in tee_pager_phys_to_virt() 259 if ((a & TEE_MATTR_VALID_BLOCK) && p == pa) in tee_pager_phys_to_virt() 432 static void tblidx_get_entry(struct tblidx tblidx, paddr_t *pa, uint32_t *attr) in tblidx_get_entry() argument 436 pa, attr); in tblidx_get_entry() 439 static void tblidx_set_entry(struct tblidx tblidx, paddr_t pa, uint32_t attr) in tblidx_set_entry() argument 443 pa, attr); in tblidx_set_entry() [all …]
|
| /optee_os/core/drivers/remoteproc/ |
| H A D | stm32_remoteproc.c | 137 paddr_t *pa) in stm32_rproc_da_to_pa() argument 157 *pa = mems[i].addr + da - mems[i].da; in stm32_rproc_da_to_pa() 165 TEE_Result stm32_rproc_map(uint32_t rproc_id, paddr_t pa, size_t size, in stm32_rproc_map() argument 178 if (!core_is_buffer_inside(pa, size, mems[i].addr, in stm32_rproc_map() 181 *va = core_mmu_add_mapping(MEM_AREA_RAM_NSEC, pa, size); in stm32_rproc_map() 183 EMSG("Can't map region %#"PRIxPA" size %zu", pa, size); in stm32_rproc_map() 197 paddr_t pa = virt_to_phys(va); in stm32_rproc_unmap() local 200 if (!rproc || !pa) in stm32_rproc_unmap() 206 if (!core_is_buffer_inside(pa, size, mems[i].addr, in stm32_rproc_unmap() 215 pa, size); in stm32_rproc_unmap() [all …]
|
| /optee_os/core/include/mm/ |
| H A D | mobj.h | 36 paddr_t *pa); 69 size_t granule, paddr_t *pa) in mobj_get_pa() argument 72 return mobj->ops->get_pa(mobj, offs, granule, pa); in mobj_get_pa() 234 struct mobj *mobj_phys_alloc(paddr_t pa, size_t size, uint32_t cattr, 258 paddr_t pa, unsigned int num_pages); 264 struct mobj *mobj_ffa_protmem_get_by_pa(paddr_t pa, paddr_size_t size); 305 struct mobj *mobj_protmem_alloc(paddr_t pa, paddr_size_t size, uint64_t cookie, 308 struct mobj *mobj_protmem_get_by_pa(paddr_t pa, paddr_size_t size); 330 mobj_protmem_alloc(paddr_t pa __unused, paddr_size_t size __unused, in mobj_protmem_alloc() 343 static inline struct mobj *mobj_protmem_get_by_pa(paddr_t pa __unused, in mobj_protmem_get_by_pa() [all …]
|
| H A D | core_memprot.h | 76 void *phys_to_virt(paddr_t pa, enum teecore_memtypes m, size_t len); 84 void *phys_to_virt_io(paddr_t pa, size_t len); 102 vaddr_t core_mmu_get_va(paddr_t pa, enum teecore_memtypes type, size_t len); 131 paddr_t pa; member
|
| H A D | core_mmu.h | 444 paddr_t pa, uint32_t attr); 456 paddr_t pa, uint32_t attr); 459 paddr_t *pa, uint32_t *attr); 469 paddr_t *pa, uint32_t *attr); 506 struct core_mmu_table_info *tbl_info, paddr_t pa) in core_mmu_get_block_offset() argument 508 return pa & ((1 << tbl_info->shift) - 1); in core_mmu_get_block_offset() 594 enum teecore_memtypes core_mmu_get_type_by_pa(paddr_t pa); 687 bool arch_va2pa_helper(void *va, paddr_t *pa); 692 static inline bool core_mmu_check_end_pa(paddr_t pa, size_t len) in core_mmu_check_end_pa() argument 696 if (ADD_OVERFLOW(pa, len - 1, &end_pa)) in core_mmu_check_end_pa()
|
| /optee_os/core/drivers/qcom/prng/ |
| H A D | prng.c | 19 paddr_t pa; member 22 .pa = SEC_PRNG_REG_BASE, 55 if (!core_mmu_add_mapping(MEM_AREA_IO_SEC, prng.pa, SEC_PRNG_REG_SIZE)) in qcom_prng_init() 58 prng.va = (vaddr_t)phys_to_virt_io(prng.pa, SEC_PRNG_REG_SIZE); in qcom_prng_init()
|
| /optee_os/core/drivers/ |
| H A D | imx_i2c.c | 58 [0] = { .pa = I2C1_BASE, }, 61 [1] = { .pa = I2C2_BASE, }, 64 [2] = { .pa = I2C3_BASE, }, 67 [3] = { .pa = I2C4_BASE, }, 75 [0] = { .pa = I2C1_BASE, }, 78 [1] = { .pa = I2C2_BASE, }, 81 [2] = { .pa = I2C3_BASE, }, 84 [3] = { .pa = I2C4_BASE, }, 87 [4] = { .pa = I2C5_BASE, }, 90 [5] = { .pa = I2C6_BASE, }, [all …]
|
| /optee_os/core/kernel/ |
| H A D | user_mode_ctx.c | 17 paddr_t pa = 0; in user_mode_ctx_print_mappings() local 20 mobj_get_pa(r->mobj, r->offset, 0, &pa); in user_mode_ctx_print_mappings() 25 n, PRIxVA_WIDTH, r->va, PRIxPA_WIDTH, pa, r->size, in user_mode_ctx_print_mappings()
|
| H A D | transfer_list.c | 27 static paddr_t get_align_base_addr(paddr_t pa, in get_align_base_addr() argument 32 paddr_t new_addr = (pa & ~align_mask) + align_off; in get_align_base_addr() 34 if (new_addr < pa) in get_align_base_addr() 46 struct transfer_list_header *transfer_list_map(paddr_t pa) in transfer_list_map() argument 53 tl = core_mmu_add_mapping(MEM_AREA_TRANSFER_LIST, pa, sz); in transfer_list_map() 56 pa, sz); in transfer_list_map() 126 struct transfer_list_header *transfer_list_init(paddr_t pa, size_t max_size) in transfer_list_init() argument 131 if (!pa || !max_size) in transfer_list_init() 134 if (!IS_ALIGNED(pa, align) || !IS_ALIGNED(max_size, align) || in transfer_list_init() 138 tl = core_mmu_add_mapping(MEM_AREA_TRANSFER_LIST, pa, max_size); in transfer_list_init() [all …]
|
| /optee_os/core/pta/stm32mp/ |
| H A D | remoteproc_pta.c | 79 paddr_t pa = 0; in rproc_pta_load_segment() local 97 res = stm32_rproc_da_to_pa(params[0].value.a, da, size, &pa); in rproc_pta_load_segment() 101 if (stm32_rproc_map(params[0].value.a, pa, size, &dst)) { in rproc_pta_load_segment() 102 EMSG("Can't map region %#"PRIxPA" size %zu", pa, size); in rproc_pta_load_segment() 127 paddr_t pa = 0; in rproc_pta_set_memory() local 140 res = stm32_rproc_da_to_pa(params[0].value.a, da, size, &pa); in rproc_pta_set_memory() 144 res = stm32_rproc_map(params[0].value.a, pa, size, &dst); in rproc_pta_set_memory() 146 EMSG("Can't map region %#"PRIxPA" size %zu", pa, size); in rproc_pta_set_memory() 165 paddr_t pa = 0; in rproc_pta_da_to_pa() local 176 res = stm32_rproc_da_to_pa(params[0].value.a, da, size, &pa); in rproc_pta_da_to_pa() [all …]
|
| /optee_os/core/arch/arm/include/mm/ |
| H A D | core_mmu_arch.h | 153 TEE_Result cache_op_outer(enum cache_op op, paddr_t pa, size_t len); 156 paddr_t pa __unused, in cache_op_outer() 168 static inline bool core_mmu_check_max_pa(paddr_t pa __maybe_unused) in core_mmu_check_max_pa() 171 return pa <= (BIT64(core_mmu_arm64_get_pa_width()) - 1); in core_mmu_check_max_pa() 173 return pa <= (BIT64(40) - 1); in core_mmu_check_max_pa()
|
| /optee_os/lib/libutils/isoc/ |
| H A D | qsort.c | 78 char *pa, *pb, *pc, *pd, *pl, *pm, *pn; in qsort() local 103 pa = pb = (char *)a + es; in qsort() 110 swap(pa, pb); in qsort() 111 pa += es; in qsort() 138 r = min(pa - (char *)a, pb - pa); in qsort() 142 if ((r = pb - pa) > (int)es) in qsort()
|