Home
last modified time | relevance | path

Searched refs:iommu (Results 1 – 25 of 450) sorted by relevance

12345678910>>...18

/openbmc/linux/drivers/iommu/amd/
H A Dinit.c296 iommu->index, iommu->pci_seg->id, in get_global_efr()
1697 if (iommu->iommu.dev) { in free_sysfs()
1698 iommu_device_unregister(&iommu->iommu); in free_sysfs()
1699 iommu_device_sysfs_remove(&iommu->iommu); in free_sysfs()
1811 amd_iommus[iommu->index] = iommu; in init_iommu_one()
1910 iommu->pci_seg->rlookup_table[iommu->devid] = NULL; in init_iommu_one_late()
2183 iommu->stored_l2[i] = iommu_read_l2(iommu, i); in iommu_init_pci()
2189 ret = iommu_device_sysfs_add(&iommu->iommu, &iommu->dev->dev, in iommu_init_pci()
2760 iommu_write_l2(iommu, i, iommu->stored_l2[i]); in iommu_apply_resume_quirks()
2806 iommu->index, iommu->devid, in iommu_enable_irtcachedis()
[all …]
H A Diommu.c595 struct device *dev = iommu->iommu.dev; in iommu_print_event()
1152 iommu->cmd_buf_head = readl(iommu->mmio_base + in __iommu_queue_command_sync()
1915 if (!iommu->iommu.ops) in amd_iommu_probe_device()
1919 return &iommu->iommu; in amd_iommu_probe_device()
1929 iommu_dev = &iommu->iommu; in amd_iommu_probe_device()
3307 struct amd_iommu *iommu = data->iommu; in irq_remapping_prepare_irte() local
3440 data->iommu = iommu; in irq_remapping_alloc()
3494 struct amd_iommu *iommu = data->iommu; in irq_remapping_activate() local
3511 struct amd_iommu *iommu = data->iommu; in irq_remapping_deactivate() local
3536 return iommu && iommu->ir_domain == d; in irq_remapping_select()
[all …]
/openbmc/linux/drivers/iommu/
H A Dsun50i-iommu.c293 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_table_flush() local
386 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_flush_iotlb_all() local
397 if (!iommu) in sun50i_iommu_flush_iotlb_all()
409 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_iotlb_sync_map() local
555 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_dte_get_page_table() local
595 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_map() local
715 sun50i_domain->iommu = iommu; in sun50i_iommu_attach_domain()
782 if (!iommu) in sun50i_iommu_attach_device()
808 return &iommu->iommu; in sun50i_iommu_probe_device()
1047 iommu_device_unregister(&iommu->iommu); in sun50i_iommu_probe()
[all …]
H A Drockchip-iommu.c623 report_iommu_fault(iommu->domain, iommu->dev, iova, in rk_iommu_irq()
642 clk_bulk_disable(iommu->num_clocks, iommu->clocks); in rk_iommu_irq()
699 clk_bulk_disable(iommu->num_clocks, iommu->clocks); in rk_iommu_zap_iova()
918 clk_bulk_disable(iommu->num_clocks, iommu->clocks); in rk_iommu_disable()
952 clk_bulk_disable(iommu->num_clocks, iommu->clocks); in rk_iommu_enable()
966 if (!iommu) in rk_iommu_identity_attach()
1148 return &iommu->iommu; in rk_iommu_probe_device()
1260 iommu->clocks = devm_kcalloc(iommu->dev, iommu->num_clocks, in rk_iommu_probe()
1273 err = devm_clk_bulk_get(iommu->dev, iommu->num_clocks, iommu->clocks); in rk_iommu_probe()
1327 iommu_device_sysfs_remove(&iommu->iommu); in rk_iommu_probe()
[all …]
H A Dmsm_iommu.c73 if (iommu->clk) in __disable_clocks()
391 if (!iommu) in msm_iommu_probe_device()
394 return &iommu->iommu; in msm_iommu_probe_device()
709 if (!iommu) in msm_iommu_probe()
715 iommu->pclk = devm_clk_get(iommu->dev, "smmu_pclk"); in msm_iommu_probe()
725 iommu->clk = devm_clk_get(iommu->dev, "iommu_clk"); in msm_iommu_probe()
739 iommu->base = devm_ioremap_resource(iommu->dev, r); in msm_iommu_probe()
759 msm_iommu_reset(iommu->base, iommu->ncb); in msm_iommu_probe()
778 iommu); in msm_iommu_probe()
786 ret = iommu_device_sysfs_add(&iommu->iommu, iommu->dev, NULL, in msm_iommu_probe()
[all …]
H A Diommu-sysfs.c62 iommu->dev = kzalloc(sizeof(*iommu->dev), GFP_KERNEL); in iommu_device_sysfs_add()
63 if (!iommu->dev) in iommu_device_sysfs_add()
66 device_initialize(iommu->dev); in iommu_device_sysfs_add()
68 iommu->dev->class = &iommu_class; in iommu_device_sysfs_add()
69 iommu->dev->parent = parent; in iommu_device_sysfs_add()
70 iommu->dev->groups = groups; in iommu_device_sysfs_add()
78 ret = device_add(iommu->dev); in iommu_device_sysfs_add()
82 dev_set_drvdata(iommu->dev, iommu); in iommu_device_sysfs_add()
87 put_device(iommu->dev); in iommu_device_sysfs_add()
95 device_unregister(iommu->dev); in iommu_device_sysfs_remove()
[all …]
H A DMakefile3 obj-$(CONFIG_IOMMU_API) += iommu.o
4 obj-$(CONFIG_IOMMU_API) += iommu-traces.o
5 obj-$(CONFIG_IOMMU_API) += iommu-sysfs.o
6 obj-$(CONFIG_IOMMU_DEBUGFS) += iommu-debugfs.o
7 obj-$(CONFIG_IOMMU_DMA) += dma-iommu.o
19 obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o
22 obj-$(CONFIG_SUN50I_IOMMU) += sun50i-iommu.o
25 obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o
27 obj-$(CONFIG_S390_IOMMU) += s390-iommu.o
28 obj-$(CONFIG_HYPERV_IOMMU) += hyperv-iommu.o
[all …]
/openbmc/linux/arch/sparc/kernel/
H A Diommu.c157 struct iommu *iommu, in alloc_npages() argument
202 struct iommu *iommu; in dma_4u_alloc_coherent() local
221 iommu = dev->archdata.iommu; in dma_4u_alloc_coherent()
250 struct iommu *iommu; in dma_4u_free_coherent() local
268 struct iommu *iommu; in dma_4u_map_page() local
390 struct iommu *iommu; in dma_4u_unmap_page() local
443 struct iommu *iommu; in dma_4u_map_sg() local
612 struct iommu *iommu; in dma_4u_unmap_sg() local
661 struct iommu *iommu; in dma_4u_sync_single_for_cpu() local
699 struct iommu *iommu; in dma_4u_sync_sg_for_cpu() local
[all …]
H A Diommu-common.c66 iommu->nr_pools = npools; in iommu_tbl_pool_init()
78 iommu->poolsize = num_entries/iommu->nr_pools; in iommu_tbl_pool_init()
80 iommu->poolsize = (num_entries * 3 / 4)/iommu->nr_pools; in iommu_tbl_pool_init()
152 shift = iommu->table_map_base >> iommu->table_shift; in iommu_tbl_range_alloc()
176 boundary_size = iommu->poolsize * iommu->nr_pools; in iommu_tbl_range_alloc()
179 iommu->table_shift); in iommu_tbl_range_alloc()
187 set_flush(iommu); in iommu_tbl_range_alloc()
196 set_flush(iommu); in iommu_tbl_range_alloc()
205 if (iommu->lazy_flush && in iommu_tbl_range_alloc()
207 clear_flush(iommu); in iommu_tbl_range_alloc()
[all …]
H A Dsbus.c63 struct iommu *iommu = dev->archdata.iommu; in sbus_set_sbus64() local
213 struct iommu *iommu = op->dev.archdata.iommu; in sbus_build_irq() local
275 struct iommu *iommu = op->dev.archdata.iommu; in sysio_ue_handler() local
349 struct iommu *iommu = op->dev.archdata.iommu; in sysio_ce_handler() local
428 struct iommu *iommu = op->dev.archdata.iommu; in sysio_sbus_error_handler() local
497 struct iommu *iommu = op->dev.archdata.iommu; in sysio_register_error_handlers() local
545 struct iommu *iommu; in sbus_iommu_init() local
559 iommu = kzalloc(sizeof(*iommu), GFP_ATOMIC); in sbus_iommu_init()
564 op->dev.archdata.iommu = iommu; in sbus_iommu_init()
572 iommu->iommu_tags = iommu->iommu_control + in sbus_iommu_init()
[all …]
/openbmc/linux/drivers/iommu/intel/
H A Dirq_remapping.c135 irq_iommu->iommu = iommu; in alloc_irte()
172 iommu = irq_iommu->iommu; in modify_irte()
239 iommu = irq_iommu->iommu; in clear_entries()
638 if (iommu && iommu->ir_table) { in intel_teardown_irq_remapping()
868 if (ir_hpet[count].iommu == iommu && in ir_parse_one_hpet_scope()
879 ir_hpet[free].iommu = iommu; in ir_parse_one_hpet_scope()
913 if (ir_ioapic[count].iommu == iommu && in ir_parse_one_ioapic_scope()
926 ir_ioapic[free].iommu = iommu; in ir_parse_one_ioapic_scope()
963 if (ir_hpet[i].iommu == iommu) in ir_remove_ioapic_hpet_scope()
967 if (ir_ioapic[i].iommu == iommu) in ir_remove_ioapic_hpet_scope()
[all …]
H A Dsvm.c73 iommu->name); in intel_svm_enable_prq()
78 irq = dmar_alloc_hwirq(IOMMU_IRQ_ID_OFFSET_PRQ + iommu->seq_id, iommu->node, iommu); in intel_svm_enable_prq()
87 snprintf(iommu->iopfq_name, sizeof(iommu->iopfq_name), in intel_svm_enable_prq()
97 snprintf(iommu->prq_name, sizeof(iommu->prq_name), "dmar%d-prq", iommu->seq_id); in intel_svm_enable_prq()
100 iommu->prq_name, iommu); in intel_svm_enable_prq()
134 free_irq(iommu->pr_irq, iommu); in intel_svm_finish_prq()
359 sdev->iommu = iommu; in intel_svm_bind_mm()
400 if (!iommu) in intel_svm_remove_dev_pasid()
497 iommu = info->iommu; in intel_drain_pasid_prq()
766 if (!iommu) in intel_svm_page_response()
[all …]
H A Ddmar.c974 if (!request_mem_region(iommu->reg_phys, iommu->reg_size, iommu->name)) { in map_iommu()
980 iommu->reg = ioremap(iommu->reg_phys, iommu->reg_size); in map_iommu()
1010 iommu->reg = ioremap(iommu->reg_phys, iommu->reg_size); in map_iommu()
1128 iommu->iommu.max_pasids = 2UL << ecap_pss(iommu->ecap); in alloc_iommu()
1149 drhd->iommu = iommu; in alloc_iommu()
1155 iommu_device_sysfs_remove(&iommu->iommu); in alloc_iommu()
1170 iommu_device_unregister(&iommu->iommu); in free_iommu()
1178 free_irq(iommu->pr_irq, iommu); in free_iommu()
1182 free_irq(iommu->irq, iommu); in free_iommu()
2087 irq = dmar_alloc_hwirq(iommu->seq_id, iommu->node, iommu); in dmar_set_interrupt()
[all …]
H A Diommu.c691 if (!iommu || iommu->drhd->ignored) in iommu_is_dummy()
1811 info->iommu = iommu; in domain_attach_iommu()
2050 iommu->flush.flush_context(iommu, 0, in domain_context_mapping_one()
2102 data.iommu = iommu; in domain_context_mapping()
2313 iommu->flush.flush_context(iommu, in domain_context_clear_one()
2322 iommu->flush.flush_iotlb(iommu, in domain_context_clear_one()
4353 if (!iommu || !iommu->iommu.ops) in intel_iommu_probe_device()
4371 info->iommu = iommu; in intel_iommu_probe_device()
4416 return &iommu->iommu; in intel_iommu_probe_device()
4510 iommu = info->iommu; in intel_iommu_enable_sva()
[all …]
H A Dcap_audit.c91 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, zlr, CAP_ZLR_MASK); in cap_audit_hotplug()
93 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, phmr, CAP_PHMR_MASK); in cap_audit_hotplug()
94 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, plmr, CAP_PLMR_MASK); in cap_audit_hotplug()
96 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, afl, CAP_AFL_MASK); in cap_audit_hotplug()
116 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, ecap, qis, ECAP_QI_MASK); in cap_audit_hotplug()
152 if (!iommu) { in cap_audit_static()
155 iommu = i; in cap_audit_static()
160 check_dmar_capabilities(iommu, i); in cap_audit_static()
162 check_irq_capabilities(iommu, i); in cap_audit_static()
183 return cap_audit_static(iommu, type); in intel_cap_audit()
[all …]
H A Dpasid.c54 iommu->name, status_code); in vcmd_alloc_pasid()
82 iommu->name, status_code); in vcmd_free_pasid()
456 spin_lock(&iommu->lock); in intel_pasid_tear_down_entry()
476 iommu->flush.flush_iotlb(iommu, did, 0, 0, DMA_TLB_DSI_FLUSH); in intel_pasid_tear_down_entry()
514 iommu->name); in intel_pasid_setup_first_level()
520 iommu->name); in intel_pasid_setup_first_level()
524 spin_lock(&iommu->lock); in intel_pasid_setup_first_level()
600 iommu->name); in intel_pasid_setup_second_level()
614 spin_lock(&iommu->lock); in intel_pasid_setup_second_level()
652 spin_lock(&iommu->lock); in intel_pasid_setup_pass_through()
[all …]
H A Ddebugfs.c117 struct intel_iommu *iommu; in iommu_regset_show() local
268 spin_lock(&iommu->lock); in root_tbl_walk()
280 spin_unlock(&iommu->lock); in root_tbl_walk()
286 struct intel_iommu *iommu; in dmar_translation_struct_show() local
294 iommu->name); in dmar_translation_struct_show()
297 root_tbl_walk(m, iommu); in dmar_translation_struct_show()
433 qi = iommu->qi; in invalidation_queue_show()
434 shift = qi_shift(iommu); in invalidation_queue_show()
524 iommu->name); in ir_translation_struct_show()
544 iommu->name); in ir_translation_struct_show()
[all …]
H A Dtrace.h22 TP_PROTO(struct intel_iommu *iommu, u64 qw0, u64 qw1, u64 qw2, u64 qw3),
24 TP_ARGS(iommu, qw0, qw1, qw2, qw3),
31 __string(iommu, iommu->name)
35 __assign_str(iommu, iommu->name);
53 __get_str(iommu),
59 TP_PROTO(struct intel_iommu *iommu, struct device *dev,
63 TP_ARGS(iommu, dev, dw0, dw1, dw2, dw3, seq),
71 __string(iommu, iommu->name)
82 __assign_str(iommu, iommu->name);
87 __get_str(iommu), __get_str(dev), __entry->seq,
[all …]
/openbmc/linux/drivers/vfio/
H A Dvfio_iommu_type1.c813 if (!iommu->v2) in vfio_iommu_type1_pin_pages()
1132 iommu->dma_avail++; in vfio_remove_dma()
2550 iommu = kzalloc(sizeof(*iommu), GFP_KERNEL); in vfio_iommu_type1_open()
2551 if (!iommu) in vfio_iommu_type1_open()
2561 iommu->v2 = true; in vfio_iommu_type1_open()
2564 kfree(iommu); in vfio_iommu_type1_open()
2578 return iommu; in vfio_iommu_type1_open()
2618 kfree(iommu); in vfio_iommu_type1_release()
2662 return iommu && !vfio_iommu_has_emulated(iommu); in vfio_iommu_type1_check_extension()
2664 if (!iommu) in vfio_iommu_type1_check_extension()
[all …]
/openbmc/linux/Documentation/devicetree/bindings/pci/
H A Dpci-iommu.txt26 Documentation/devicetree/bindings/iommu/iommu.txt.
39 (rid-base,iommu,iommu-base,length).
55 iommu: iommu@a {
70 iommu-map = <0x0 &iommu 0x0 0x10000>;
82 iommu: iommu@a {
97 iommu-map = <0x0 &iommu 0x0 0x10000>;
110 iommu: iommu@a {
125 iommu-map = <0x0000 &iommu 0x8000 0x8000>,
138 iommu_a: iommu@a {
144 iommu_b: iommu@b {
[all …]
/openbmc/linux/arch/powerpc/platforms/cell/
H A Diommu.c347 __func__, iommu->nid, iommu->stab, ptab, in cell_iommu_alloc_ptab()
389 iommu->cmd_regs = iommu->xlate_regs + IOC_IOCmd_Offset; in cell_iommu_enable_hardware()
405 ret = request_irq(virq, ioc_interrupt, 0, iommu->name, iommu); in cell_iommu_enable_hardware()
422 iommu->ptab = cell_iommu_alloc_ptab(iommu, base, size, 0, 0, in cell_iommu_setup_hardware()
480 window->iommu = iommu; in cell_iommu_setup_window()
552 if (iommu == NULL || list_empty(&iommu->windows)) { in cell_get_iommu_table()
654 snprintf(iommu->name, sizeof(iommu->name), "iommu%d", i); in cell_iommu_alloc()
657 return iommu; in cell_iommu_alloc()
667 if (!iommu) in cell_iommu_init_one()
995 BUG_ON(!iommu); in cell_iommu_fixed_mapping_init()
[all …]
/openbmc/linux/arch/sparc/mm/
H A Diommu.c60 struct iommu_struct *iommu; in sbus_iommu_init() local
68 if (!iommu) { in sbus_iommu_init()
75 if (!iommu->regs) { in sbus_iommu_init()
87 iommu_invalidate(iommu->regs); in sbus_iommu_init()
88 iommu->start = IOMMU_START; in sbus_iommu_init()
89 iommu->end = 0xffffffff; in sbus_iommu_init()
132 op->dev.archdata.iommu = iommu; in sbus_iommu_init()
187 struct iommu_struct *iommu = dev->archdata.iommu; in __sbus_iommu_map_page() local
283 struct iommu_struct *iommu = dev->archdata.iommu; in sbus_iommu_unmap_page() local
316 struct iommu_struct *iommu = dev->archdata.iommu; in sbus_iommu_alloc() local
[all …]
/openbmc/qemu/hw/remote/
H A Diommu.c42 RemoteIommu *iommu = opaque; in remote_iommu_find_add_as() local
45 qemu_mutex_lock(&iommu->lock); in remote_iommu_find_add_as()
60 qemu_mutex_unlock(&iommu->lock); in remote_iommu_find_add_as()
85 RemoteIommu *iommu = REMOTE_IOMMU(obj); in remote_iommu_init() local
89 qemu_mutex_init(&iommu->lock); in remote_iommu_init()
94 RemoteIommu *iommu = REMOTE_IOMMU(obj); in remote_iommu_finalize() local
96 qemu_mutex_destroy(&iommu->lock); in remote_iommu_finalize()
98 g_hash_table_destroy(iommu->elem_by_devfn); in remote_iommu_finalize()
100 iommu->elem_by_devfn = NULL; in remote_iommu_finalize()
109 RemoteIommu *iommu = NULL; in remote_iommu_setup() local
[all …]
/openbmc/linux/Documentation/devicetree/bindings/iommu/
H A Dqcom,iommu.yaml4 $id: http://devicetree.org/schemas/iommu/qcom,iommu.yaml#
23 - qcom,msm8916-iommu
24 - qcom,msm8953-iommu
49 qcom,iommu-secure-id:
60 '#iommu-cells':
64 "^iommu-ctx@[0-9a-f]+$":
98 - '#iommu-cells'
107 apps_iommu: iommu@1e20000 {
108 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
116 #iommu-cells = <1>;
[all …]
/openbmc/qemu/docs/
H A Dbypass-iommu.txt29 1. The following is the bypass iommu options:
34 (3) X86 default root bus bypass iommu:
57 -device intel-iommu \
60 - a default host bridge which bypass iommu
61 - a pxb host bridge which go through iommu
62 - a pxb host bridge which bypass iommu
68 iommu isolation. So it would be necessary to only bypass iommu for trusted
73 The bypass iommu feature includes:
75 Add bypass iommu property check of PCI Host and do not get iommu address
76 space for devices bypass iommu.
[all …]

12345678910>>...18