Home
last modified time | relevance | path

Searched refs:iova (Results 26 – 50 of 304) sorted by relevance

12345678910>>...13

/openbmc/linux/drivers/iommu/
H A Dio-pgtable-arm.c679 unsigned long iova) in arm_lpae_iova_to_phys() argument
1163 unsigned long iova; in arm_lpae_run_tests() local
1193 iova = 0; in arm_lpae_run_tests()
1197 if (ops->map_pages(ops, iova, iova, size, 1, in arm_lpae_run_tests()
1204 if (!ops->map_pages(ops, iova, iova + size, size, 1, in arm_lpae_run_tests()
1209 if (ops->iova_to_phys(ops, iova + 42) != (iova + 42)) in arm_lpae_run_tests()
1212 iova += SZ_1G; in arm_lpae_run_tests()
1229 iova = 0; in arm_lpae_run_tests()
1240 if (ops->map_pages(ops, iova, iova, size, 1, in arm_lpae_run_tests()
1244 if (ops->iova_to_phys(ops, iova + 42) != (iova + 42)) in arm_lpae_run_tests()
[all …]
H A Dtegra-smmu.c223 unsigned long iova) in smmu_flush_tlb_section() argument
238 unsigned long iova) in smmu_flush_tlb_group() argument
556 return pt + iova_pt_index(iova); in tegra_smmu_pte_offset()
580 unsigned int pde = iova_pd_index(iova); in as_get_pte()
624 unsigned int pde = iova_pd_index(iova); in tegra_smmu_pte_put_use()
636 tegra_smmu_set_pde(as, iova, 0); in tegra_smmu_pte_put_use()
660 unsigned long iova, gfp_t gfp, in as_get_pde_page() argument
663 unsigned int pde = iova_pd_index(iova); in as_get_pde_page()
719 tegra_smmu_pte_get_use(as, iova); in __tegra_smmu_map()
748 tegra_smmu_pte_put_use(as, iova); in __tegra_smmu_unmap()
[all …]
H A Ds390-iommu.c241 unsigned long iova, size_t size) in s390_iommu_iotlb_sync_map() argument
251 iova, size); in s390_iommu_iotlb_sync_map()
315 unsigned long iova, phys_addr_t paddr, in s390_iommu_map_pages() argument
330 if (!IS_ALIGNED(iova | paddr, pgsize)) in s390_iommu_map_pages()
348 dma_addr_t iova) in s390_iommu_iova_to_phys() argument
356 if (iova < domain->geometry.aperture_start || in s390_iommu_iova_to_phys()
357 iova > domain->geometry.aperture_end) in s390_iommu_iova_to_phys()
360 rtx = calc_rtx(iova); in s390_iommu_iova_to_phys()
361 sx = calc_sx(iova); in s390_iommu_iova_to_phys()
362 px = calc_px(iova); in s390_iommu_iova_to_phys()
[all …]
H A Drockchip-iommu.c367 dma_addr_t iova; in rk_iommu_zap_lines() local
369 for (iova = iova_start; iova < iova_end; iova += SPAGE_SIZE) in rk_iommu_zap_lines()
547 dte_index = rk_iova_dte_index(iova); in log_iova()
548 pte_index = rk_iova_pte_index(iova); in log_iova()
585 dma_addr_t iova; in rk_iommu_irq() local
612 &iova, in rk_iommu_irq()
615 log_iova(iommu, i, iova); in rk_iommu_irq()
650 dma_addr_t iova) in rk_iommu_iova_to_phys() argument
707 dma_addr_t iova, size_t size) in rk_iommu_zap_iova_first_last() argument
716 dma_addr_t iova) in rk_dte_get_page_table() argument
[all …]
H A Dvirtio-iommu.c324 mapping->iova.start = iova; in viommu_add_mapping()
325 mapping->iova.last = end; in viommu_add_mapping()
345 u64 iova, u64 end) in viommu_del_mappings() argument
360 if (mapping->iova.start < iova) in viommu_del_mappings()
367 unmapped += mapping->iova.last - mapping->iova.start + 1; in viommu_del_mappings()
391 iova = ALIGN(iova, granule); in viommu_domain_map_identity()
412 iova = resv_end + 1; in viommu_domain_map_identity()
415 ret = viommu_add_mapping(vdomain, iova, limit, (phys_addr_t)iova, in viommu_domain_map_identity()
868 unmapped = viommu_del_mappings(vdomain, iova, iova + size - 1); in viommu_unmap_pages()
897 node = interval_tree_iter_first(&vdomain->mappings, iova, iova); in viommu_iova_to_phys()
[all …]
H A Dsprd-iommu.c288 static int sprd_iommu_map(struct iommu_domain *domain, unsigned long iova, in sprd_iommu_map() argument
306 if (iova < start || (iova + size) > (end + 1)) { in sprd_iommu_map()
308 iova, size); in sprd_iommu_map()
312 pgt_base_iova = dom->pgt_va + ((iova - start) >> SPRD_IOMMU_PAGE_SHIFT); in sprd_iommu_map()
325 static size_t sprd_iommu_unmap(struct iommu_domain *domain, unsigned long iova, in sprd_iommu_unmap() argument
336 if (iova < start || (iova + size) > (end + 1)) in sprd_iommu_unmap()
339 pgt_base_iova = dom->pgt_va + ((iova - start) >> SPRD_IOMMU_PAGE_SHIFT); in sprd_iommu_unmap()
349 unsigned long iova, size_t size) in sprd_iommu_sync_map() argument
370 dma_addr_t iova) in sprd_iommu_iova_to_phys() argument
378 if (WARN_ON(iova < start || iova > end)) in sprd_iommu_iova_to_phys()
[all …]
H A Ddma-iommu.c38 dma_addr_t iova; member
693 if (iova) in iommu_dma_alloc_iova()
752 dma_addr_t iova; in __iommu_dma_map() local
761 if (!iova) in __iommu_dma_map()
845 dma_addr_t iova; in __iommu_dma_alloc_noncontiguous() local
870 if (!iova) in __iommu_dma_alloc_noncontiguous()
1084 return iova; in iommu_dma_map_page()
1251 dma_addr_t iova; in iommu_dma_map_sg() local
1336 if (!iova) { in iommu_dma_map_sg()
1685 if (!iova) in iommu_dma_get_msi_page()
[all …]
/openbmc/linux/include/linux/
H A Dio-pgtable.h43 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule,
46 unsigned long iova, size_t granule, void *cookie);
161 int (*map_pages)(struct io_pgtable_ops *ops, unsigned long iova,
164 size_t (*unmap_pages)(struct io_pgtable_ops *ops, unsigned long iova,
168 unsigned long iova);
224 io_pgtable_tlb_flush_walk(struct io_pgtable *iop, unsigned long iova, in io_pgtable_tlb_flush_walk() argument
228 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
233 struct iommu_iotlb_gather * gather, unsigned long iova, in io_pgtable_tlb_add_page() argument
237 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
H A Diommu.h355 dma_addr_t iova);
483 unsigned long iova, size_t size,
542 unsigned long iova, int flags);
572 unsigned long iova, size_t size) in iommu_iotlb_gather_is_disjoint() argument
592 unsigned long iova, size_t size) in iommu_iotlb_gather_add_range() argument
594 unsigned long end = iova + size - 1; in iommu_iotlb_gather_add_range()
596 if (gather->start > iova) in iommu_iotlb_gather_add_range()
597 gather->start = iova; in iommu_iotlb_gather_add_range()
615 unsigned long iova, size_t size) in iommu_iotlb_gather_add_page() argument
784 unsigned long iova, size_t size) in iommu_unmap() argument
[all …]
H A Diommufd.h34 void (*unmap)(void *data, unsigned long iova, unsigned long length);
63 int iommufd_access_pin_pages(struct iommufd_access *access, unsigned long iova,
67 unsigned long iova, unsigned long length);
68 int iommufd_access_rw(struct iommufd_access *access, unsigned long iova,
84 unsigned long iova, in iommufd_access_pin_pages() argument
93 unsigned long iova, in iommufd_access_unpin_pages() argument
98 static inline int iommufd_access_rw(struct iommufd_access *access, unsigned long iova, in iommufd_access_rw() argument
/openbmc/linux/tools/testing/selftests/iommu/
H A Diommufd_utils.h221 size_t length, __u64 *iova, unsigned int flags) in _test_ioctl_ioas_map() argument
233 cmd.iova = *iova; in _test_ioctl_ioas_map()
236 *iova = cmd.iova; in _test_ioctl_ioas_map()
260 __u64 __iova = iova; \
271 __u64 __iova = iova; \
281 static int _test_ioctl_ioas_unmap(int fd, unsigned int ioas_id, uint64_t iova, in _test_ioctl_ioas_unmap() argument
287 .iova = iova, in _test_ioctl_ioas_unmap()
297 #define test_ioctl_ioas_unmap(iova, length) \ argument
298 ASSERT_EQ(0, _test_ioctl_ioas_unmap(self->fd, self->ioas_id, iova, \
302 ASSERT_EQ(0, _test_ioctl_ioas_unmap(self->fd, ioas_id, iova, length, \
[all …]
H A Diommufd.c780 for (access_cmd.access_rw.iova = iova + PAGE_SIZE - 50; in check_access_rw()
781 access_cmd.access_rw.iova < iova + PAGE_SIZE + 50; in check_access_rw()
814 access_cmd.access_rw.iova = iova; in check_access_rw()
827 __u64 iova; in TEST_F() local
841 __u64 iova; in TEST_F() local
907 __u64 iova; in TEST_F() local
967 __u64 iova; in TEST_F() local
1168 __u64 iova; in TEST_F() local
1190 __u64 iova; in TEST_F() local
1239 __u64 iova; in TEST_F() local
[all …]
/openbmc/linux/drivers/iommu/iommufd/
H A Dio_pagetable.h102 unsigned long iova) in iopt_area_start_byte() argument
105 WARN_ON(iova < iopt_area_iova(area) || in iopt_area_start_byte()
106 iova > iopt_area_last_iova(area)); in iopt_area_start_byte()
107 return (iova - iopt_area_iova(area)) + area->page_offset + in iopt_area_start_byte()
112 unsigned long iova) in iopt_area_iova_to_index() argument
114 return iopt_area_start_byte(area, iova) / PAGE_SIZE; in iopt_area_iova_to_index()
154 unsigned long iova,
168 #define iopt_for_each_contig_area(iter, area, iopt, iova, last_iova) \ argument
169 for (area = iopt_area_contig_init(iter, iopt, iova, last_iova); area; \
H A Dioas.c203 unsigned long iova = cmd->iova; in iommufd_ioas_map() local
213 if (cmd->iova >= ULONG_MAX || cmd->length >= ULONG_MAX) in iommufd_ioas_map()
222 rc = iopt_map_user_pages(ucmd->ictx, &ioas->iopt, &iova, in iommufd_ioas_map()
228 cmd->iova = iova; in iommufd_ioas_map()
242 unsigned long iova; in iommufd_ioas_copy() local
273 iova = cmd->dst_iova; in iommufd_ioas_copy()
274 rc = iopt_map_pages(&dst_ioas->iopt, &pages_list, cmd->length, &iova, in iommufd_ioas_copy()
279 cmd->dst_iova = iova; in iommufd_ioas_copy()
299 if (cmd->iova == 0 && cmd->length == U64_MAX) { in iommufd_ioas_unmap()
304 if (cmd->iova >= ULONG_MAX || cmd->length >= ULONG_MAX) { in iommufd_ioas_unmap()
[all …]
H A Dio_pagetable.c32 unsigned long iova, in iopt_area_contig_init() argument
37 iter->cur_iova = iova; in iopt_area_contig_init()
39 iter->area = iopt_area_iter_first(iopt, iova, iova); in iopt_area_contig_init()
156 *iova = used_span.start_hole; in iopt_alloc_iova()
170 if ((iova & (iopt->iova_alignment - 1))) in iopt_check_iova()
204 area->node.start = iova; in iopt_insert_area()
242 unsigned long iova; in iopt_alloc_area_pages() local
281 iova = *dst_iova; in iopt_alloc_area_pages()
287 iova += elm->length; in iopt_alloc_area_pages()
1001 unsigned long new_start = iova + 1; in iopt_area_split()
[all …]
/openbmc/linux/drivers/media/platform/nvidia/tegra-vde/
H A Dvde.h84 struct iova *iova; member
116 struct iova_domain iova; member
117 struct iova *iova_resv_static_addresses;
118 struct iova *iova_resv_last_page;
162 struct iova *iova[VB2_MAX_PLANES]; member
191 struct iova **iovap,
193 void tegra_vde_iommu_unmap(struct tegra_vde *vde, struct iova *iova);
/openbmc/qemu/hw/virtio/
H A Dvhost-vdpa.c98 msg.iotlb.iova = iova; in vhost_vdpa_dma_map()
130 msg.iotlb.iova = iova; in vhost_vdpa_dma_unmap()
202 hwaddr iova = iotlb->iova + iommu->iommu_offset; in vhost_vdpa_iommu_map_notify() local
312 hwaddr iova; in vhost_vdpa_listener_region_add() local
338 if (int128_ge(int128_make64(iova), llend)) { in vhost_vdpa_listener_region_add()
367 iova = mem_region.iova; in vhost_vdpa_listener_region_add()
400 hwaddr iova; in vhost_vdpa_listener_region_del() local
449 iova = result->iova; in vhost_vdpa_listener_region_del()
466 iova += int128_get64(llsize); in vhost_vdpa_listener_region_del()
1158 addr->desc_user_addr = driver_region.iova; in vhost_vdpa_svq_map_rings()
[all …]
/openbmc/linux/drivers/gpu/drm/msm/
H A Dmsm_gem_vma.c51 aspace->mmu->funcs->unmap(aspace->mmu, vma->iova, size); in msm_gem_vma_purge()
64 if (GEM_WARN_ON(!vma->iova)) in msm_gem_vma_map()
84 ret = aspace->mmu->funcs->map(aspace->mmu, vma->iova, sgt, size, prot); in msm_gem_vma_map()
101 if (vma->iova) in msm_gem_vma_close()
105 vma->iova = 0; in msm_gem_vma_close()
133 if (GEM_WARN_ON(vma->iova)) in msm_gem_vma_init()
145 vma->iova = vma->node.start; in msm_gem_vma_init()
H A Dmsm_rd.c311 uint64_t iova, uint32_t size, bool full) in snapshot_buf() argument
317 if (iova) { in snapshot_buf()
318 offset = iova - submit->bos[idx].iova; in snapshot_buf()
320 iova = submit->bos[idx].iova; in snapshot_buf()
329 (uint32_t[3]){ iova, size, iova >> 32 }, 12); in snapshot_buf()
395 submit->cmd[i].iova, szd * 4, true); in msm_rd_dump_submit()
400 uint64_t iova = submit->cmd[i].iova; in msm_rd_dump_submit() local
413 (uint32_t[3]){ iova, szd, iova >> 32 }, 12); in msm_rd_dump_submit()
/openbmc/linux/drivers/infiniband/sw/rdmavt/
H A Dtrace_mr.h27 __field(u64, iova)
40 __entry->iova = mr->iova;
53 __entry->iova,
148 __field(u64, iova)
157 __entry->ibmr_iova = ibmr->iova;
158 __entry->iova = to_imr(ibmr)->mr.iova;
168 __entry->iova,
/openbmc/linux/drivers/soc/qcom/
H A Dqcom-geni-se.c701 dma_addr_t *iova) in geni_se_tx_dma_prep() argument
708 *iova = dma_map_single(wrapper->dev, buf, len, DMA_TO_DEVICE); in geni_se_tx_dma_prep()
709 if (dma_mapping_error(wrapper->dev, *iova)) in geni_se_tx_dma_prep()
712 geni_se_tx_init_dma(se, *iova, len); in geni_se_tx_dma_prep()
753 dma_addr_t *iova) in geni_se_rx_dma_prep() argument
761 if (dma_mapping_error(wrapper->dev, *iova)) in geni_se_rx_dma_prep()
764 geni_se_rx_init_dma(se, *iova, len); in geni_se_rx_dma_prep()
781 if (!dma_mapping_error(wrapper->dev, iova)) in geni_se_tx_dma_unprep()
782 dma_unmap_single(wrapper->dev, iova, len, DMA_TO_DEVICE); in geni_se_tx_dma_unprep()
798 if (!dma_mapping_error(wrapper->dev, iova)) in geni_se_rx_dma_unprep()
[all …]
/openbmc/qemu/util/
H A Dvfio-helpers.c41 uint64_t iova; member
593 IOVAMapping m = {.host = host, .size = size, .iova = iova}; in qemu_vfio_add_mapping()
620 .iova = iova, in qemu_vfio_do_mapping()
624 trace_qemu_vfio_do_mapping(s, host, iova, size); in qemu_vfio_do_mapping()
643 .iova = mapping->iova, in qemu_vfio_undo_mapping()
696 *iova = s->low_water_mark; in qemu_vfio_find_fixed_iova()
720 *iova = s->high_water_mark - size; in qemu_vfio_find_temp_iova()
721 s->high_water_mark = *iova; in qemu_vfio_find_temp_iova()
794 if (iova) { in qemu_vfio_dma_map()
795 *iova = iova0; in qemu_vfio_dma_map()
[all …]
/openbmc/linux/drivers/iommu/amd/
H A Dio_pgtable.c30 static void v1_tlb_flush_walk(unsigned long iova, size_t size, in v1_tlb_flush_walk() argument
36 unsigned long iova, size_t granule, in v1_tlb_add_page() argument
363 static int iommu_v1_map_pages(struct io_pgtable_ops *ops, unsigned long iova, in iommu_v1_map_pages() argument
373 BUG_ON(!IS_ALIGNED(iova, pgsize)); in iommu_v1_map_pages()
382 pte = alloc_pte(dom, iova, pgsize, NULL, gfp, &updated); in iommu_v1_map_pages()
408 iova += pgsize; in iommu_v1_map_pages()
439 unsigned long iova, in iommu_v1_unmap_pages() argument
454 pte = fetch_pte(pgtable, iova, &unmap_size); in iommu_v1_unmap_pages()
465 iova = (iova & ~(unmap_size - 1)) + unmap_size; in iommu_v1_unmap_pages()
478 pte = fetch_pte(pgtable, iova, &pte_pgsize); in iommu_v1_iova_to_phys()
[all …]
/openbmc/linux/drivers/net/ethernet/marvell/octeontx2/af/
H A Dcommon.h40 dma_addr_t iova; member
63 qmem->base = dma_alloc_attrs(dev, qmem->alloc_sz, &qmem->iova, in qmem_alloc()
70 aligned_addr = ALIGN((u64)qmem->iova, OTX2_ALIGN); in qmem_alloc()
71 qmem->align = (aligned_addr - qmem->iova); in qmem_alloc()
73 qmem->iova += qmem->align; in qmem_alloc()
85 qmem->iova - qmem->align, in qmem_free()
/openbmc/linux/drivers/iommu/arm/arm-smmu/
H A Dqcom_iommu.c170 iova = (iova >> 12) << 12; in qcom_iommu_tlb_inv_range_nosync()
171 iova |= ctx->asid; in qcom_iommu_tlb_inv_range_nosync()
173 iommu_writel(ctx, reg, iova); in qcom_iommu_tlb_inv_range_nosync()
174 iova += granule; in qcom_iommu_tlb_inv_range_nosync()
187 unsigned long iova, size_t granule, in qcom_iommu_tlb_add_page() argument
203 u64 iova; in qcom_iommu_fault() local
211 iova = iommu_readq(ctx, ARM_SMMU_CB_FAR); in qcom_iommu_fault()
213 if (!report_iommu_fault(ctx->domain, ctx->dev, iova, 0)) { in qcom_iommu_fault()
217 fsr, iova, fsynr, ctx->asid); in qcom_iommu_fault()
467 dma_addr_t iova) in qcom_iommu_iova_to_phys() argument
[all …]

12345678910>>...13