/openbmc/qemu/tests/qtest/libqos/ |
H A D | virtio-iommu.c | 2 * libqos driver virtio-iommu-pci framework 10 * option) any later version. See the COPYING file in the top-level directory. 18 #include "virtio-iommu.h" 19 #include "hw/virtio/virtio-iommu.h" 23 /* virtio-iommu-device */ 27 if (!g_strcmp0(interface, "virtio-iommu")) { in qvirtio_iommu_get_driver() 30 if (!g_strcmp0(interface, "virtio")) { in qvirtio_iommu_get_driver() 31 return v_iommu->vdev; in qvirtio_iommu_get_driver() 34 fprintf(stderr, "%s not present in virtio-iommu-device\n", interface); in qvirtio_iommu_get_driver() 40 qvirtqueue_cleanup(interface->vdev->bus, interface->vq, alloc); in virtio_iommu_cleanup() [all …]
|
H A D | meson.build | 9 'libqos-malloc.c', 11 'sdhci-cmd.c', 14 'malloc-spapr.c', 15 'libqos-spapr.c', 17 'pci-spapr.c', 20 'pci-pc.c', 21 'malloc-pc.c', 22 'libqos-pc.c', 31 'i2c-imx.c', 32 'i2c-omap.c', [all …]
|
H A D | virtio-iommu.h | 2 * libqos driver virtio-iommu-pci framework 10 * option) any later version. See the COPYING file in the top-level directory. 18 #include "virtio.h" 19 #include "virtio-pci.h" 32 QVirtioIOMMU iommu; member 37 QVirtioIOMMU iommu; member
|
/openbmc/linux/Documentation/devicetree/bindings/virtio/ |
H A D | pci-iommu.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/virtio/pci-iommu.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: virtio-iommu device using the virtio-pci transport 10 - Jean-Philippe Brucker <jean-philippe@linaro.org> 13 When virtio-iommu uses the PCI transport, its programming interface is 15 device tree statically describes the relation between IOMMU and DMA 16 masters. Therefore, the PCI root complex that hosts the virtio-iommu 17 contains a child node representing the IOMMU device explicitly. [all …]
|
H A D | mmio.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/virtio/mmio.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: virtio memory mapped devices 10 - Jean-Philippe Brucker <jean-philippe@linaro.org> 13 See https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio for 18 const: virtio,mmio 23 dma-coherent: true 28 '#iommu-cells': [all …]
|
/openbmc/qemu/include/hw/virtio/ |
H A D | virtio-iommu.h | 2 * virtio-iommu device 23 #include "standard-headers/linux/virtio_iommu.h" 24 #include "hw/virtio/virtio.h" 27 #include "qapi/qapi-types-virtio.h" 30 #define TYPE_VIRTIO_IOMMU "virtio-iommu-device" 31 #define TYPE_VIRTIO_IOMMU_PCI "virtio-iommu-pci" 34 #define TYPE_VIRTIO_IOMMU_MEMORY_REGION "virtio-iommu-memory-region"
|
/openbmc/qemu/hw/virtio/ |
H A D | virtio-iommu-pci.c | 2 * Virtio IOMMU PCI Bindings 14 #include "hw/virtio/virtio-pci.h" 15 #include "hw/virtio/virtio-iommu.h" 16 #include "hw/qdev-properties.h" 17 #include "hw/qdev-properties-system.h" 26 * virtio-iommu-pci: This extends VirtioPCIProxy. 39 DEFINE_PROP_ARRAY("reserved-regions", VirtIOIOMMUPCI, 48 PCIBus *pbus = pci_get_bus(&vpci_dev->pci_dev); in virtio_iommu_pci_realize() 49 DeviceState *vdev = DEVICE(&dev->vdev); in virtio_iommu_pci_realize() 54 "for the virtio-iommu-pci device"); in virtio_iommu_pci_realize() [all …]
|
H A D | meson.build | 2 system_virtio_ss.add(files('virtio-bus.c')) 3 system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('virtio-pci.c')) 4 system_virtio_ss.add(when: 'CONFIG_VIRTIO_MMIO', if_true: files('virtio-mmio.c')) 5 system_virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virtio-crypto.c')) 6 system_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK_COMMON', if_true: files('vhost-vsock-common.c')) 7 system_virtio_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files('virtio-iommu.c')) 8 system_virtio_ss.add(when: 'CONFIG_VHOST_VDPA_DEV', if_true: files('vdpa-dev.c')) 11 specific_virtio_ss.add(files('virtio.c')) 12 specific_virtio_ss.add(files('virtio-config-io.c', 'virtio-qmp.c')) 16 specific_virtio_ss.add(files('vhost-backend.c', 'vhost-iova-tree.c')) [all …]
|
H A D | virtio-iommu.c | 2 * virtio-iommu device 24 #include "qemu/reserved-region.h" 26 #include "hw/qdev-properties.h" 27 #include "hw/virtio/virtio.h" 31 #include "qemu/reserved-region.h" 34 #include "qemu/error-report.h" 37 #include "standard-headers/linux/virtio_ids.h" 39 #include "hw/virtio/virtio-bus.h" 40 #include "hw/virtio/virtio-iommu.h" 79 return PCI_BUILD_BDF(pci_bus_num(dev->bus), dev->devfn); in virtio_iommu_get_bdf() [all …]
|
H A D | trace-events | 16 # vhost-user.c 32 # vhost-vdpa.c 39 …, void *vaddr, bool readonly) "vdpa: %p iova 0x%"PRIx64" llend 0x%"PRIx64" vaddr: %p read-only: %d" 71 # virtio.c 82 # virtio-rng.c 90 # virtio-balloon.c 98 # virtio-mmio.c 105 # virtio-pci.c 110 # hw/virtio/virtio-iommu.c 129 virtio_iommu_translate_out(uint64_t virt_addr, uint64_t phys_addr, uint32_t sid) "0x%"PRIx64" -> 0x… [all …]
|
/openbmc/qemu/tests/avocado/ |
H A D | intel_iommu.py | 9 # later. See the COPYING file in the top-level directory. 27 IOMMU_ADDON = ',iommu_platform=on,disable-modern=off,disable-legacy=on' 34 self.vm.add_args('-device', 'virtio-blk-pci,bus=pcie.0,' + 35 'drive=drv0,id=virtio-disk0,bootindex=1,' 37 self.vm.add_args('-device', 'virtio-gpu-pci' + self.IOMMU_ADDON) 38 self.vm.add_args('-drive', 42 super(IntelIOMMU, self).setUp(None, 'virtio-net-pci' + self.IOMMU_ADDON) 45 self.vm.add_args('-device', 'virtio-rng-pci,rng=rng0') 46 self.vm.add_args('-object', 47 'rng-random,id=rng0,filename=/dev/urandom') [all …]
|
H A D | smmu.py | 9 # later. See the COPYING file in the top-level directory. 28 IOMMU_ADDON = ',iommu_platform=on,disable-modern=off,disable-legacy=on' 35 self.vm.add_args('-device', 'virtio-blk-pci,bus=pcie.0,' + 36 'drive=drv0,id=virtio-disk0,bootindex=1,' 38 self.vm.add_args('-drive', 42 super(SMMU, self).setUp(None, 'virtio-net-pci' + self.IOMMU_ADDON) 46 self.vm.add_args("-accel", "kvm") 47 self.vm.add_args("-cpu", "host") 48 self.vm.add_args("-machine", "iommu=smmuv3") 49 self.vm.add_args("-d", "guest_errors") [all …]
|
/openbmc/linux/include/linux/ |
H A D | remoteproc.h | 40 #include <linux/virtio.h> 47 * struct resource_table - firmware resource table header 81 * struct fw_rsc_hdr - firmware resource entry header 95 * enum fw_resource_type - types of resource entries 99 * @RSC_DEVMEM: request to iommu_map a memory-based peripheral. 102 * @RSC_VDEV: declare support for a virtio device, and serve as its 103 * virtio header. 126 #define FW_RSC_ADDR_ANY (-1) 129 * struct fw_rsc_carveout - physically contiguous memory request 133 * @flags: iommu protection flags [all …]
|
/openbmc/qemu/hw/acpi/ |
H A D | viot.c | 4 * SPDX-License-Identifier: GPL-2.0-or-later 8 #include "hw/acpi/aml-build.h" 49 PCIBus *bus = PCI_HOST_BRIDGE(obj)->bus; in enumerate_pci_host_bridges() 72 if (range_a->min_bus < range_b->min_bus) { in pci_host_range_compare() 73 return -1; in pci_host_range_compare() 74 } else if (range_a->min_bus > range_b->min_bus) { in pci_host_range_compare() 82 * Generate a VIOT table with one PCI-based virtio-iommu that manages PCI 91 /* The virtio-iommu node follows the 48-bytes header */ in build_viot() 110 build_append_int_noprefix(table_data, pci_host_ranges->len + 1, 2); in build_viot() 116 /* Virtio-iommu node */ in build_viot() [all …]
|
/openbmc/linux/drivers/iommu/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 2 # The IOVA library may also be used by non-IOMMU_API users 11 bool "IOMMU Hardware Support" 22 menu "Generic IOMMU Pagetable Support" 36 sizes at both stage-1 and stage-2, as well as address spaces 37 up to 48-bits in size. 43 Enable self-tests for LPAE page table allocator. This performs 44 a series of page-table consistency checks during boot. 53 Enable support for the ARM Short-descriptor pagetable format. 54 This supports 32-bit virtual and physical addresses mapped using [all …]
|
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 2 obj-y += amd/ intel/ arm/ iommufd/ 3 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 8 obj-$(CONFIG_IOMMU_IO_PGTABLE) += io-pgtable.o 9 obj-$(CONFIG_IOMMU_IO_PGTABLE_ARMV7S) += io-pgtable-arm-v7s.o 10 obj-$(CONFIG_IOMMU_IO_PGTABLE_LPAE) += io-pgtable-arm.o [all …]
|
/openbmc/qemu/tests/qtest/ |
H A D | virtio-iommu-test.c | 2 * QTest testcase for VirtIO IOMMU 10 * option) any later version. See the COPYING file in the top-level directory. 15 #include "libqtest-single.h" 18 #include "libqos/virtio-iommu.h" 19 #include "hw/virtio/virtio-iommu.h" 29 QVirtioDevice *dev = v_iommu->vdev; in pci_config() 48 g_assert_cmpint(buffer->reserved[i], ==, 0); in read_tail_status() 50 return buffer->status; in read_tail_status() 54 * send_attach_detach - Send an attach/detach command to the device 62 QVirtioDevice *dev = v_iommu->vdev; in send_attach_detach() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/iommu/ |
H A D | xen,grant-dma.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/iommu/xen,grant-dma.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Xen specific IOMMU for virtualized devices (e.g. virtio) 10 - Stefano Stabellini <sstabellini@kernel.org> 13 The Xen IOMMU represents the Xen grant table interface. Grant mappings 14 are to be used with devices connected to the Xen IOMMU using the "iommus" 20 const: xen,grant-dma 22 '#iommu-cells': [all …]
|
/openbmc/linux/Documentation/arch/s390/ |
H A D | vfio-ccw.rst | 2 vfio-ccw: the basic infrastructure 6 ------------ 9 Linux/s390. Motivation for vfio-ccw is to passthrough subchannels to a 16 - Channel programs run asynchronously on a separate (co)processor. 17 - The channel subsystem will access any memory designated by the caller 18 in the channel program directly, i.e. there is no iommu involved. 22 added to an iommu group, so as to make itself able to be managed by the 31 - A good start to know Channel I/O in general: 33 - s390 architecture: 34 s390 Principles of Operation manual (IBM Form. No. SA22-7832) [all …]
|
/openbmc/qemu/docs/system/arm/ |
H A D | virt.rst | 8 idiosyncrasies and limitations of a particular bit of real-world 16 ``virt-5.0`` machine type will behave like the ``virt`` machine from 17 the QEMU 5.0 release, and migration should work between ``virt-5.0`` 18 of the 5.0 release and ``virt-5.0`` of the 5.1 release. Migration 20 the non-versioned ``virt`` machine type. 27 - PCI/PCIe devices 28 - Flash memory 29 - Either one or two PL011 UARTs for the NonSecure World 30 - An RTC 31 - The fw_cfg device that allows a guest to obtain data from QEMU [all …]
|
/openbmc/linux/drivers/vhost/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 7 an IOMMU in software. 14 the host side of a virtio ring. 35 tristate "Host kernel accelerator for virtio net" 53 for use with virtio-scsi guests 56 tristate "vhost virtio-vsock driver" 64 virtio_transport.ko driver loaded to use the virtio-vsock device. 70 tristate "Vhost driver for vDPA-based backend" 77 guest virtio devices with the vDPA-based backends. 83 bool "Cross-endian support for vhost" [all …]
|
/openbmc/qemu/include/standard-headers/linux/ |
H A D | virtio_ids.h | 4 * Virtio IDs 32 #define VIRTIO_ID_NET 1 /* virtio net */ 33 #define VIRTIO_ID_BLOCK 2 /* virtio block */ 34 #define VIRTIO_ID_CONSOLE 3 /* virtio console */ 35 #define VIRTIO_ID_RNG 4 /* virtio rng */ 36 #define VIRTIO_ID_BALLOON 5 /* virtio balloon */ 37 #define VIRTIO_ID_IOMEM 6 /* virtio ioMemory */ 38 #define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */ 39 #define VIRTIO_ID_SCSI 8 /* virtio scsi */ 40 #define VIRTIO_ID_9P 9 /* 9p virtio console */ [all …]
|
/openbmc/linux/include/uapi/linux/ |
H A D | virtio_ids.h | 4 * Virtio IDs 32 #define VIRTIO_ID_NET 1 /* virtio net */ 33 #define VIRTIO_ID_BLOCK 2 /* virtio block */ 34 #define VIRTIO_ID_CONSOLE 3 /* virtio console */ 35 #define VIRTIO_ID_RNG 4 /* virtio rng */ 36 #define VIRTIO_ID_BALLOON 5 /* virtio balloon */ 37 #define VIRTIO_ID_IOMEM 6 /* virtio ioMemory */ 38 #define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */ 39 #define VIRTIO_ID_SCSI 8 /* virtio scsi */ 40 #define VIRTIO_ID_9P 9 /* 9p virtio console */ [all …]
|
/openbmc/qemu/docs/specs/ |
H A D | pci-ids.rst | 12 -------------- 14 The 1000 -> 10ff device ID range is used as follows for virtio-pci devices. 15 Note that this allocation is separate from the virtio device IDs, which are 16 maintained as part of the virtio specification. 36 ID range for modern virtio devices. The PCI device 37 ID is calculated from the virtio device ID by adding the 38 0x1040 offset. The virtio IDs are defined in the virtio 40 defines for all virtio IDs (``linux/virtio_ids.h``); QEMU has a 41 copy in ``include/standard-headers/``. 53 ivshmem device (:doc:`ivshmem-spec`) [all …]
|
/openbmc/linux/drivers/xen/ |
H A D | grant-dma-ops.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Xen grant DMA-mapping layer - contains special DMA-mapping routines 5 * (e.g. virtio) in Xen guests 11 #include <linux/dma-map-ops.h> 17 #include <linux/virtio.h> 19 #include <xen/xen-ops.h> 70 * DMA ops for Xen frontends (e.g. virtio). 72 * Used to act as a kind of software IOMMU for Xen guests by using grants as 92 if (unlikely(data->broken)) in xen_grant_dma_alloc() 107 gnttab_grant_foreign_access_ref(grant + i, data->backend_domid, in xen_grant_dma_alloc() [all …]
|