/openbmc/qemu/target/i386/tcg/sysemu/ |
H A D | excp_helper.c | 153 hwaddr pte_addr, paddr; in mmu_translate() local 173 pte_addr = (in->cr3 & ~0xfff) + (((addr >> 48) & 0x1ff) << 3); in mmu_translate() 174 if (!ptw_translate(&pte_trans, pte_addr)) { in mmu_translate() 197 pte_addr = (pte & PG_ADDRESS_MASK) + (((addr >> 39) & 0x1ff) << 3); in mmu_translate() 198 if (!ptw_translate(&pte_trans, pte_addr)) { in mmu_translate() 217 pte_addr = (pte & PG_ADDRESS_MASK) + (((addr >> 30) & 0x1ff) << 3); in mmu_translate() 218 if (!ptw_translate(&pte_trans, pte_addr)) { in mmu_translate() 244 pte_addr = (in->cr3 & 0xffffffe0ULL) + ((addr >> 27) & 0x18); in mmu_translate() 245 if (!ptw_translate(&pte_trans, pte_addr)) { in mmu_translate() 266 pte_addr = (pte & PG_ADDRESS_MASK) + (((addr >> 21) & 0x1ff) << 3); in mmu_translate() [all …]
|
/openbmc/qemu/target/ppc/ |
H A D | mmu-radix64.c | 330 uint64_t *pte_addr, uint64_t *nls, in ppc_radix64_next_level() argument 336 pde = ldq_phys(as, *pte_addr); in ppc_radix64_next_level() 358 *pte_addr = nlb + index * sizeof(pde); in ppc_radix64_next_level() 366 int *fault_cause, hwaddr *pte_addr) in ppc_radix64_walk_tree() argument 382 *pte_addr = base_addr + index * sizeof(pde); in ppc_radix64_walk_tree() 392 ret = ppc_radix64_next_level(as, eaddr, pte_addr, &nls, psize, &pde, in ppc_radix64_walk_tree() 436 hwaddr pte_addr; in ppc_radix64_partition_scoped_xlate() local 456 &pte, &fault_cause, &pte_addr) || in ppc_radix64_partition_scoped_xlate() 523 hwaddr h_raddr, pte_addr; in ppc_radix64_process_scoped_xlate() local 584 &fault_cause, &pte_addr); in ppc_radix64_process_scoped_xlate() [all …]
|
/openbmc/qemu/target/i386/ |
H A D | arch_memory_mapping.c | 23 hwaddr pte_addr, start_paddr; in walk_pte() local 29 pte_addr = (pte_start_addr + i * 8) & a20_mask; in walk_pte() 30 pte = address_space_ldq(as, pte_addr, MEMTXATTRS_UNSPECIFIED, NULL); in walk_pte() 53 hwaddr pte_addr, start_paddr; in walk_pte2() local 59 pte_addr = (pte_start_addr + i * 4) & a20_mask; in walk_pte2() 60 pte = address_space_ldl(as, pte_addr, MEMTXATTRS_UNSPECIFIED, NULL); in walk_pte2()
|
H A D | helper.c | 243 target_ulong pde_addr, pte_addr; in x86_cpu_get_phys_page_attrs_debug() local 323 pte_addr = ((pde & PG_ADDRESS_MASK) + in x86_cpu_get_phys_page_attrs_debug() 326 pte = x86_ldq_phys(cs, pte_addr); in x86_cpu_get_phys_page_attrs_debug() 344 pte_addr = ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) & a20_mask; in x86_cpu_get_phys_page_attrs_debug() 345 pte = x86_ldl_phys(cs, pte_addr); in x86_cpu_get_phys_page_attrs_debug()
|
/openbmc/linux/tools/testing/selftests/kvm/lib/aarch64/ |
H A D | processor.c | 73 static uint64_t pte_addr(struct kvm_vm *vm, uint64_t pte) in pte_addr() function 134 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pud_index(vm, vaddr) * 8; in _virt_pg_map() 139 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pmd_index(vm, vaddr) * 8; in _virt_pg_map() 144 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pte_index(vm, vaddr) * 8; in _virt_pg_map() 173 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pud_index(vm, gva) * 8; in virt_get_pte_hva() 178 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pmd_index(vm, gva) * 8; in virt_get_pte_hva() 183 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + pte_index(vm, gva) * 8; in virt_get_pte_hva() 202 return pte_addr(vm, *ptep) + (gva & (vm->page_size - 1)); in addr_arch_gva2gpa() 219 pte_dump(stream, vm, indent + 1, pte_addr(vm, *ptep), level + 1); in pte_dump() 237 pte_dump(stream, vm, indent + 1, pte_addr(vm, *ptep), level); in virt_arch_dump()
|
/openbmc/qemu/hw/alpha/ |
H A D | typhoon.c | 622 static bool pte_translate(hwaddr pte_addr, IOMMUTLBEntry *ret) in pte_translate() argument 624 uint64_t pte = address_space_ldq(&address_space_memory, pte_addr, in pte_translate() 657 hwaddr pte_addr; in window_translate() local 660 pte_addr = tba & ~(wsm >> 10); in window_translate() 661 pte_addr |= (addr & (wsm | 0xfe000)) >> 10; in window_translate() 662 return pte_translate(pte_addr, ret); in window_translate() 718 uint64_t pte_addr; in typhoon_translate_iommu() local 720 pte_addr = pchip->win[3].tba & 0x7ffc00000ull; in typhoon_translate_iommu() 721 pte_addr |= (addr & 0xffffe000u) >> 10; in typhoon_translate_iommu() 722 if (pte_translate(pte_addr, &ret)) { in typhoon_translate_iommu()
|
/openbmc/linux/drivers/iommu/ |
H A D | rockchip-iommu.c | 542 u32 *pte_addr = NULL; in log_iova() local 562 pte_addr = phys_to_virt(pte_addr_phys); in log_iova() 563 pte = *pte_addr; in log_iova() 753 u32 *pte_addr, dma_addr_t pte_dma, in rk_iommu_unmap_iova() argument 762 u32 pte = pte_addr[pte_count]; in rk_iommu_unmap_iova() 766 pte_addr[pte_count] = rk_mk_pte_invalid(pte); in rk_iommu_unmap_iova() 774 static int rk_iommu_map_iova(struct rk_iommu_domain *rk_domain, u32 *pte_addr, in rk_iommu_map_iova() argument 785 u32 pte = pte_addr[pte_count]; in rk_iommu_map_iova() 790 pte_addr[pte_count] = rk_ops->mk_ptentries(paddr, prot); in rk_iommu_map_iova() 808 rk_iommu_unmap_iova(rk_domain, pte_addr, pte_dma, in rk_iommu_map_iova() [all …]
|
H A D | sun50i-iommu.c | 598 u32 *page_table, *pte_addr; in sun50i_iommu_map() local 608 pte_addr = &page_table[pte_index]; in sun50i_iommu_map() 609 if (unlikely(sun50i_pte_is_page_valid(*pte_addr))) { in sun50i_iommu_map() 610 phys_addr_t page_phys = sun50i_pte_get_page_address(*pte_addr); in sun50i_iommu_map() 618 *pte_addr = sun50i_mk_pte(paddr, prot); in sun50i_iommu_map() 619 sun50i_table_flush(sun50i_domain, pte_addr, 1); in sun50i_iommu_map() 630 u32 *pte_addr; in sun50i_iommu_unmap() local 638 pte_addr = (u32 *)phys_to_virt(pt_phys) + sun50i_iova_get_pte_index(iova); in sun50i_iommu_unmap() 640 if (!sun50i_pte_is_page_valid(*pte_addr)) in sun50i_iommu_unmap() 643 memset(pte_addr, 0, sizeof(*pte_addr)); in sun50i_iommu_unmap() [all …]
|
/openbmc/qemu/target/riscv/ |
H A D | monitor.c | 85 hwaddr pte_addr; in walk_pte() local 102 pte_addr = base + idx * ptesize; in walk_pte() 103 cpu_physical_memory_read(pte_addr, &pte, ptesize); in walk_pte()
|
H A D | cpu_helper.c | 1009 hwaddr pte_addr; in get_physical_address() local 1044 pte_addr = vbase + idx * ptesize; in get_physical_address() 1046 pte_addr = base + idx * ptesize; in get_physical_address() 1050 int pmp_ret = get_physical_address_pmp(env, &pmp_prot, pte_addr, in get_physical_address() 1058 pte = address_space_ldl(cs->as, pte_addr, attrs, &res); in get_physical_address() 1060 pte = address_space_ldq(cs->as, pte_addr, attrs, &res); in get_physical_address() 1229 mr = address_space_translate(cs->as, pte_addr, &addr1, &l, in get_physical_address()
|
/openbmc/linux/tools/testing/selftests/kvm/lib/riscv/ |
H A D | processor.c | 21 static uint64_t pte_addr(struct kvm_vm *vm, uint64_t entry) in pte_addr() function 97 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + in virt_arch_pg_map() 127 ptep = addr_gpa2hva(vm, pte_addr(vm, *ptep)) + in addr_arch_gva2gpa() 134 return pte_addr(vm, *ptep) + (gva & (vm->page_size - 1)); in addr_arch_gva2gpa() 159 pte_addr(vm, *ptep), level - 1); in pte_dump() 179 pte_addr(vm, *ptep), level - 1); in virt_arch_dump()
|
/openbmc/qemu/hw/arm/ |
H A D | smmu-common.c | 464 dma_addr_t pte_addr = baseaddr + offset * sizeof(pte); in smmu_ptw_64_s1() local 475 pte_addr, offset, pte); in smmu_ptw_64_s1() 497 baseaddr, pte_addr, pte, gpa); in smmu_ptw_64_s1() 504 pte_addr, pte, iova, gpa, in smmu_ptw_64_s1() 600 dma_addr_t pte_addr = baseaddr + offset * sizeof(pte); in smmu_ptw_64_s2() local 610 pte_addr, offset, pte); in smmu_ptw_64_s2() 621 baseaddr, pte_addr, pte, gpa); in smmu_ptw_64_s2() 628 pte_addr, pte, ipa, gpa, in smmu_ptw_64_s2()
|
/openbmc/linux/arch/s390/mm/ |
H A D | pageattr.c | 124 unsigned long pte_addr, prot; in split_pmd_page() local 132 pte_addr = pmd_pfn(*pmdp) << PAGE_SHIFT; in split_pmd_page() 140 set_pte(ptep, __pte(pte_addr | prot)); in split_pmd_page() 141 pte_addr += PAGE_SIZE; in split_pmd_page()
|
/openbmc/qemu/hw/i386/ |
H A D | amd_iommu.c | 909 static inline uint64_t amdvi_get_pte_entry(AMDVIState *s, uint64_t pte_addr, in amdvi_get_pte_entry() argument 914 if (dma_memory_read(&address_space_memory, pte_addr, in amdvi_get_pte_entry() 916 trace_amdvi_get_pte_hwerror(pte_addr); in amdvi_get_pte_entry() 917 amdvi_log_pagetab_error(s, devid, pte_addr, 0); in amdvi_get_pte_entry() 931 uint64_t pte = dte[0], pte_addr, page_mask; in amdvi_page_walk() local 955 pte_addr = pte & AMDVI_DEV_PT_ROOT_MASK; in amdvi_page_walk() 957 pte_addr += ((addr >> (3 + 9 * level)) & 0x1FF) << 3; in amdvi_page_walk() 958 pte = amdvi_get_pte_entry(as->iommu_state, pte_addr, as->devfn); in amdvi_page_walk()
|
/openbmc/linux/drivers/accel/habanalabs/common/mmu/ |
H A D | mmu_v1.c | 137 static inline void clear_pte(struct hl_ctx *ctx, u64 pte_addr) in clear_pte() argument 140 write_final_pte(ctx, pte_addr, 0); in clear_pte()
|
/openbmc/qemu/target/s390x/tcg/ |
H A D | mem_helper.c | 2335 uint64_t pte_addr, pte; in HELPER() local 2338 pte_addr = (pto & SEGMENT_ENTRY_ORIGIN); in HELPER() 2339 pte_addr += VADDR_PAGE_TX(vaddr) * 8; in HELPER() 2342 pte = cpu_ldq_mmuidx_ra(env, pte_addr, MMU_REAL_IDX, ra); in HELPER() 2344 cpu_stq_mmuidx_ra(env, pte_addr, pte, MMU_REAL_IDX, ra); in HELPER()
|
/openbmc/qemu/hw/riscv/ |
H A D | riscv-iommu.c | 389 const dma_addr_t pte_addr = base + idx * sc[pass].ptesize; in riscv_iommu_spa_fetch() local 404 ret = ldl_le_dma(s->target_as, pte_addr, &pte32, in riscv_iommu_spa_fetch() 408 ret = ldq_le_dma(s->target_as, pte_addr, &pte, in riscv_iommu_spa_fetch()
|