/openbmc/linux/drivers/gpu/drm/panfrost/ |
H A D | panfrost_mmu.c | 97 u64 iova, u64 size, u32 op) in mmu_hw_do_operation_locked() argument 103 lock_region(pfdev, as_nr, iova, size); in mmu_hw_do_operation_locked() 114 u64 iova, u64 size, u32 op) in mmu_hw_do_operation() argument 274 u64 iova, u64 size) in panfrost_mmu_flush_range() argument 289 u64 iova, int prot, struct sg_table *sgt) in mmu_map_sg() argument 294 u64 start_iova = iova; in mmu_map_sg() 310 iova += mapped; in mmu_map_sg() 353 u64 iova = mapping->mmnode.start << PAGE_SHIFT; in panfrost_mmu_unmap() local 361 mapping->mmu->as, iova, len); in panfrost_mmu_unmap() 369 if (!bo->is_heap || ops->iova_to_phys(ops, iova)) { in panfrost_mmu_unmap() [all …]
|
/openbmc/qemu/hw/arm/ |
H A D | trace-events | 8 …tage, int level, uint64_t iova, size_t subpage_size, uint64_t baseaddr, uint32_t offset, uint64_t … 10 …tage, int level, uint64_t iova, uint64_t baseaddr, uint64_t pteaddr, uint64_t pte, uint64_t addre… 11 …int64_t pte, uint64_t iova, uint64_t gpa, int bsize_mb) "stage=%d level=%d base@=0x%"PRIx64" pte@=… 37 …_t sid, uint64_t addr, bool is_write) "%s sid=0x%x bypass (smmu disabled) iova:0x%"PRIx64" is_writ… 38 …r *n, uint16_t sid, uint64_t addr, bool is_write) "%s sid=0x%x STE bypass iova:0x%"PRIx64" is_writ… 39 …har *n, uint16_t sid, uint64_t addr, bool is_write) "%s sid=0x%x abort on iova:0x%"PRIx64" is_writ… 40 …te_success(const char *n, uint16_t sid, uint64_t iova, uint64_t translated, int perm) "%s sid=0x%x… 56 …, uint16_t asid, uint16_t vmid, uint64_t iova, uint8_t tg, uint64_t num_pages) "iommu mr=%s asid=%…
|
/openbmc/linux/include/linux/ |
H A D | iova_bitmap.h | 14 unsigned long iova, size_t length, 17 struct iova_bitmap *iova_bitmap_alloc(unsigned long iova, size_t length, 24 unsigned long iova, size_t length);
|
/openbmc/qemu/include/hw/arm/ |
H A D | smmu-common.h | 126 uint64_t iova; member 175 int smmu_ptw(SMMUTransCfg *cfg, dma_addr_t iova, IOMMUAccessFlags perm, 182 SMMUTransTableInfo *select_tt(SMMUTransCfg *cfg, dma_addr_t iova); 190 SMMUTransTableInfo *tt, hwaddr iova); 192 SMMUIOTLBKey smmu_get_iotlb_key(uint16_t asid, uint16_t vmid, uint64_t iova, 197 void smmu_iotlb_inv_iova(SMMUState *s, int asid, int vmid, dma_addr_t iova,
|
/openbmc/linux/drivers/fpga/ |
H A D | dfl-afu.h | 56 u64 iova; member 99 u64 user_addr, u64 length, u64 *iova); 100 int afu_dma_unmap_region(struct dfl_feature_platform_data *pdata, u64 iova); 103 u64 iova, u64 size);
|
/openbmc/linux/drivers/gpu/drm/msm/ |
H A D | msm_mmu.h | 14 int (*map)(struct msm_mmu *mmu, uint64_t iova, struct sg_table *sgt, 16 int (*unmap)(struct msm_mmu *mmu, uint64_t iova, size_t len); 30 int (*handler)(void *arg, unsigned long iova, int flags, void *data); 48 int (*handler)(void *arg, unsigned long iova, int flags, void *data)) in msm_mmu_set_fault_handler() argument
|
H A D | msm_gem.h | 62 uint64_t iova; member 127 struct msm_gem_address_space *aspace, uint64_t *iova); 129 struct msm_gem_address_space *aspace, uint64_t iova); 131 struct msm_gem_address_space *aspace, uint64_t *iova, 134 struct msm_gem_address_space *aspace, uint64_t *iova); 159 struct drm_gem_object **bo, uint64_t *iova); 283 uint64_t iova; member 299 uint64_t iova; member
|
H A D | msm_gem_submit.c | 277 submit->bos[i].iova = 0; in submit_unlock_unpin_bo() 404 if (vma->iova == submit->bos[i].iova) { in submit_pin_objects() 407 submit->bos[i].iova = vma->iova; in submit_pin_objects() 458 if (iova) in submit_bo() 459 *iova = submit->bos[idx].iova; in submit_bo() 496 uint64_t iova; in submit_reloc() local 526 iova >>= -submit_reloc.shift; in submit_reloc() 528 iova <<= submit_reloc.shift; in submit_reloc() 874 uint64_t iova; in msm_ioctl_gem_submit() local 877 &obj, &iova, NULL); in msm_ioctl_gem_submit() [all …]
|
H A D | msm_gem.c | 468 GEM_WARN_ON(vma->iova < range_start); in get_vma_locked() 469 GEM_WARN_ON((vma->iova + obj->size) > range_end); in get_vma_locked() 549 *iova = vma->iova; in get_and_pin_iova_range_locked() 595 *iova = vma->iova; in msm_gem_get_iova() 630 if (!iova) { in msm_gem_set_iova() 634 vma = get_vma_locked(obj, aspace, iova, iova + obj->size); in msm_gem_set_iova() 637 } else if (GEM_WARN_ON(vma->iova != iova)) { in msm_gem_set_iova() 992 vma->aspace, vma->iova, in msm_gem_describe() 1222 vma->iova = physaddr(obj); in msm_gem_new() 1315 struct drm_gem_object **bo, uint64_t *iova) in msm_gem_kernel_new() argument [all …]
|
H A D | msm_gpummu.c | 28 static int msm_gpummu_map(struct msm_mmu *mmu, uint64_t iova, in msm_gpummu_map() argument 32 unsigned idx = (iova - GPUMMU_VA_START) / GPUMMU_PAGE_SIZE; in msm_gpummu_map() 56 static int msm_gpummu_unmap(struct msm_mmu *mmu, uint64_t iova, size_t len) in msm_gpummu_unmap() argument 59 unsigned idx = (iova - GPUMMU_VA_START) / GPUMMU_PAGE_SIZE; in msm_gpummu_unmap()
|
/openbmc/qemu/hw/vfio/ |
H A D | container.c | 64 hwaddr iova, ram_addr_t size, in vfio_dma_unmap_bitmap() argument 80 unmap->iova = iova; in vfio_dma_unmap_bitmap() 118 int vfio_dma_unmap(VFIOContainer *container, hwaddr iova, in vfio_dma_unmap() argument 124 .iova = iova, in vfio_dma_unmap() 133 return vfio_dma_unmap_bitmap(container, iova, size, iotlb); in vfio_dma_unmap() 163 ret = vfio_get_dirty_bitmap(container, iova, size, in vfio_dma_unmap() 173 int vfio_dma_map(VFIOContainer *container, hwaddr iova, in vfio_dma_map() argument 180 .iova = iova, in vfio_dma_map() 231 hwaddr iova, hwaddr size) in vfio_query_dirty_bitmap() argument 242 range->iova = iova; in vfio_query_dirty_bitmap() [all …]
|
/openbmc/linux/drivers/staging/media/ipu3/ |
H A D | ipu3-mmu.h | 30 int imgu_mmu_map(struct imgu_mmu_info *info, unsigned long iova, 32 size_t imgu_mmu_unmap(struct imgu_mmu_info *info, unsigned long iova, 34 size_t imgu_mmu_map_sg(struct imgu_mmu_info *info, unsigned long iova,
|
/openbmc/linux/drivers/s390/cio/ |
H A D | vfio_ccw_cp.c | 178 u64 iova_pfn_start = iova >> PAGE_SHIFT; in page_array_iova_pinned() 179 u64 iova_pfn_end = (iova + length - 1) >> PAGE_SHIFT; in page_array_iova_pinned() 391 if (!ccw_is_chain(ccw) && !is_tic_within_range(ccw, iova, cnt)) in ccwchain_calc_length() 564 u64 iova; in ccw_count_idaws() local 575 ret = vfio_dma_rw(vdev, ccw->cda, &iova, size, false); in ccw_count_idaws() 584 iova = iova >> 32; in ccw_count_idaws() 586 iova = ccw->cda; in ccw_count_idaws() 591 return idal_2k_nr_words((void *)iova, bytes); in ccw_count_idaws() 595 return idal_2k_nr_words((void *)iova, bytes); in ccw_count_idaws() 598 return idal_nr_words((void *)iova, bytes); in ccw_count_idaws() [all …]
|
/openbmc/linux/arch/arm/mm/ |
H A D | dma-mapping.c | 764 dma_addr_t iova; in __alloc_iova() local 809 iova += start << PAGE_SHIFT; in __alloc_iova() 811 return iova; in __alloc_iova() 970 dma_addr_t dma_addr, iova; in __iommu_create_mapping() local 977 iova = dma_addr; in __iommu_create_mapping() 995 iova += len; in __iommu_create_mapping() 1014 iova &= PAGE_MASK; in __iommu_remove_mapping() 1193 dma_addr_t iova, iova_base; in __map_sg_chunk() local 1220 iova += len; in __map_sg_chunk() 1417 if (!iova) in arm_iommu_unmap_page() [all …]
|
/openbmc/linux/drivers/net/ethernet/marvell/octeontx2/nic/ |
H A D | qos_sq.c | 42 u64 iova, pa; in otx2_qos_sq_aura_pool_init() local 98 iova = sq->sqb_ptrs[ptr]; in otx2_qos_sq_aura_pool_init() 99 pa = otx2_iova_to_phys(pfvf->iommu_domain, iova); in otx2_qos_sq_aura_pool_init() 100 dma_unmap_page_attrs(pfvf->dev, iova, hw->sqb_size, in otx2_qos_sq_aura_pool_init() 121 u64 iova, pa; in otx2_qos_sq_free_sqbs() local 130 iova = sq->sqb_ptrs[sqb]; in otx2_qos_sq_free_sqbs() 131 pa = otx2_iova_to_phys(pfvf->iommu_domain, iova); in otx2_qos_sq_free_sqbs() 132 dma_unmap_page_attrs(pfvf->dev, iova, hw->sqb_size, in otx2_qos_sq_free_sqbs()
|
H A D | otx2_txrx.c | 618 u64 dma_addr, *iova = NULL; in otx2_sqe_add_sg() local 646 *iova++ = dma_addr; in otx2_sqe_add_sg() 737 mem->addr = iova; in otx2_sqe_add_mem() 854 u64 *iova = NULL; in otx2_sqe_tso_add_sg() local 875 *iova++ = list->dma_addr[seg]; in otx2_sqe_tso_add_sg() 1088 u64 iova; in otx2_set_txtstamp() local 1133 iova = sq->timestamps->iova + (sq->head * sizeof(u64)); in otx2_set_txtstamp() 1219 u64 iova; in otx2_cleanup_rx_cqes() local 1354 u64 *iova = NULL; in otx2_xdp_sqe_add_sg() local 1362 *iova = dma_addr; in otx2_xdp_sqe_add_sg() [all …]
|
/openbmc/linux/drivers/infiniband/hw/mlx5/ |
H A D | mr.c | 56 u64 iova, int access_flags, 1135 mr->ibmr.iova = iova; in set_mr_fields() 1140 u64 iova) in mlx5_umem_dmabuf_default_pgsz() argument 1146 umem->iova = iova; in mlx5_umem_dmabuf_default_pgsz() 1166 0, iova); in alloc_cacheable_mr() 1446 if (iova != 0) in create_user_odp_mr() 1651 mr->ibmr.iova = iova; in umr_rereg_pas() 2477 u64 iova = pi_mr->data_iova; in mlx5_ib_map_mtt_mr_sg_pi() local 2500 pi_mr->ibmr.iova = iova; in mlx5_ib_map_mtt_mr_sg_pi() 2538 pi_mr->ibmr.iova = 0; in mlx5_ib_map_klm_mr_sg_pi() [all …]
|
/openbmc/qemu/hw/i386/ |
H A D | trace-events | 29 …_t addr, uint64_t slpte, uint16_t domain) "IOTLB page hit sid 0x%"PRIx16" iova 0x%"PRIx64" slpte 0… 30 …addr, uint64_t slpte, uint16_t domain) "IOTLB page update sid 0x%"PRIx16" iova 0x%"PRIx64" slpte 0… 37 …, uint64_t start, uint64_t end) "walk (base=0x%"PRIx64", level=%"PRIu32") iova range 0x%"PRIx64" -… 38 …d_page_walk_one(uint16_t domain, uint64_t iova, uint64_t gpa, uint64_t mask, int perm) "domain 0x%… 39 vtd_page_walk_one_skip_map(uint64_t iova, uint64_t mask, uint64_t translated) "iova 0x%"PRIx64" mas… 40 vtd_page_walk_one_skip_unmap(uint64_t iova, uint64_t mask) "iova 0x%"PRIx64" mask 0x%"PRIx64 41 vtd_page_walk_skip_read(uint64_t iova, uint64_t next) "Page walk skip iova 0x%"PRIx64" - 0x%"PRIx64… 42 vtd_page_walk_skip_reserve(uint64_t iova, uint64_t next) "Page walk skip iova 0x%"PRIx64" - 0x%"PRI… 44 vtd_as_unmap_whole(uint8_t bus, uint8_t slot, uint8_t fn, uint64_t iova, uint64_t size) "Device %02… 45 vtd_translate_pt(uint16_t sid, uint64_t addr) "source id 0x%"PRIx16", iova 0x%"PRIx64 [all …]
|
/openbmc/linux/drivers/iommu/ |
H A D | iommu.c | 2358 return iova; in iommu_iova_to_phys() 2432 iova, &paddr, pgsize, count); in __iommu_map_pages() 2449 unsigned long orig_iova = iova; in __iommu_map() 2492 iova += mapped; in __iommu_map() 2533 pgsize = iommu_pgsize(domain, iova, iova, size, &count); in __iommu_unmap_pages() 2545 unsigned long orig_iova = iova; in __iommu_unmap() 2565 iova, size, min_pagesz); in __iommu_unmap() 2583 iova, unmapped_page); in __iommu_unmap() 2585 iova += unmapped_page; in __iommu_unmap() 2608 unsigned long iova, size_t size, in iommu_unmap_fast() argument [all …]
|
/openbmc/linux/drivers/iommu/arm/arm-smmu/ |
H A D | arm-smmu.c | 273 iova = (iova >> 12) << 12; in arm_smmu_tlb_inv_range_s1() 274 iova |= cfg->asid; in arm_smmu_tlb_inv_range_s1() 277 iova += granule; in arm_smmu_tlb_inv_range_s1() 280 iova >>= 12; in arm_smmu_tlb_inv_range_s1() 284 iova += granule >> 12; in arm_smmu_tlb_inv_range_s1() 299 iova >>= 12; in arm_smmu_tlb_inv_range_s2() 305 iova += granule >> 12; in arm_smmu_tlb_inv_range_s2() 394 unsigned long iova; in arm_smmu_context_fault() local 1263 va = iova & ~0xfffUL; in arm_smmu_iova_to_phys_hard() 1275 &iova); in arm_smmu_iova_to_phys_hard() [all …]
|
/openbmc/linux/drivers/iommu/iommufd/ |
H A D | iommufd_test.h | 63 __aligned_u64 iova; member 82 __aligned_u64 iova; member 87 __aligned_u64 iova; member
|
H A D | vfio_compat.c | 167 unsigned long iova; in iommufd_vfio_map_dma() local 190 iova = map.iova; in iommufd_vfio_map_dma() 191 rc = iopt_map_user_pages(ictx, &ioas->iopt, &iova, u64_to_user_ptr(map.vaddr), in iommufd_vfio_map_dma() 224 if (unmap.iova != 0 || unmap.size != 0) { in iommufd_vfio_unmap_dma() 236 unsigned long iovas[] = { unmap.iova + unmap.size - 1, in iommufd_vfio_unmap_dma() 237 unmap.iova - 1 }; in iommufd_vfio_unmap_dma() 240 unmap.iova ? 2 : 1); in iommufd_vfio_unmap_dma() 244 rc = iopt_unmap_iova(&ioas->iopt, unmap.iova, unmap.size, in iommufd_vfio_unmap_dma()
|
/openbmc/qemu/hw/virtio/ |
H A D | vhost-backend.c | 329 uint64_t iova, uint64_t uaddr, in vhost_backend_update_device_iotlb() argument 335 imsg.iova = iova; in vhost_backend_update_device_iotlb() 361 uint64_t iova, uint64_t len) in vhost_backend_invalidate_device_iotlb() argument 365 imsg.iova = iova; in vhost_backend_invalidate_device_iotlb() 387 ret = vhost_device_iotlb_miss(dev, imsg->iova, in vhost_backend_handle_iotlb_msg()
|
/openbmc/linux/drivers/vhost/ |
H A D | vdpa.c | 889 r = vhost_iotlb_add_range_ctx(iotlb, iova, iova + size - 1, in vhost_vdpa_map() 900 r = iommu_map(v->domain, iova, pa, size, in vhost_vdpa_map() 904 vhost_iotlb_del_range(iotlb, iova, iova + size - 1); in vhost_vdpa_map() 916 u64 iova, u64 size) in vhost_vdpa_unmap() argument 922 vhost_vdpa_iotlb_unmap(v, iotlb, iova, iova + size - 1, asid); in vhost_vdpa_unmap() 936 u64 offset, map_size, map_iova = iova; in vhost_vdpa_va_map() 975 vhost_vdpa_unmap(v, iotlb, iova, map_iova - iova); in vhost_vdpa_va_map() 992 u64 start = iova; in vhost_vdpa_pa_map() 1019 iova &= PAGE_MASK; in vhost_vdpa_pa_map() 1065 iova += csize; in vhost_vdpa_pa_map() [all …]
|
/openbmc/linux/drivers/gpu/drm/tegra/ |
H A D | nvdec.c | 229 nvdec->falcon.firmware.iova); in nvdec_exit() 233 nvdec->falcon.firmware.iova); in nvdec_exit() 248 dma_addr_t iova; in nvdec_load_falcon_firmware() local 263 virt = dma_alloc_coherent(nvdec->dev, size, &iova, GFP_KERNEL); in nvdec_load_falcon_firmware() 265 err = dma_mapping_error(nvdec->dev, iova); in nvdec_load_falcon_firmware() 269 virt = tegra_drm_alloc(tegra, size, &iova); in nvdec_load_falcon_firmware() 275 nvdec->falcon.firmware.iova = iova; in nvdec_load_falcon_firmware() 302 dma_free_coherent(nvdec->dev, size, virt, iova); in nvdec_load_falcon_firmware() 304 tegra_drm_free(tegra, size, virt, iova); in nvdec_load_falcon_firmware()
|