| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/virtio/ |
| D | mmio.txt | 1 * virtio memory mapped device 3 See https://ozlabs.org/~rusty/virtio-spec/ for more details. 7 - compatible: "virtio,mmio" compatibility string 8 - reg: control registers base address and size including configuration space 9 - interrupts: interrupt generated by the device 11 Required properties for virtio-iommu: 13 - #iommu-cells: When the node corresponds to a virtio-iommu device, it is 14 linked to DMA masters using the "iommus" or "iommu-map" 15 properties [1][2]. #iommu-cells specifies the size of the 16 "iommus" property. For virtio-iommu #iommu-cells must be [all …]
|
| D | iommu.txt | 1 * virtio IOMMU PCI device 3 When virtio-iommu uses the PCI transport, its programming interface is 5 device tree statically describes the relation between IOMMU and DMA 6 masters. Therefore, the PCI root complex that hosts the virtio-iommu 7 contains a child node representing the IOMMU device explicitly. 11 - compatible: Should be "virtio,pci-iommu" 12 - reg: PCI address of the IOMMU. As defined in the PCI Bus 13 Binding reference [1], the reg property is a five-cell 18 - #iommu-cells: Each platform DMA master managed by the IOMMU is assigned 20 For virtio-iommu, #iommu-cells must be 1. [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/virtio/ |
| 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 …]
|
| 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 …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| 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 …]
|
| D | vdpa.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 39 * vDPA device - representation of a vDPA device 56 * vDPA IOVA range - the IOVA range support by the device 66 * vDPA_config_ops - operations for configuring a vDPA device. 89 * @cb: virtio-vdev interrupt callback structure 121 * @get_features: Get virtio features supported by the device 123 * Returns the virtio features support by the 125 * @set_features: Set virtio features supported by the driver 131 * @cb: virtio-vdev interrupt callback structure 135 * @get_device_id: Get virtio device id [all …]
|
| /kernel/linux/linux-6.6/include/linux/ |
| 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 …]
|
| D | vdpa.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 13 * struct vdpa_callback - vDPA callback definition. 29 * struct vdpa_notification_area - vDPA notification area 39 * struct vdpa_vq_state_split - vDPA split virtqueue state 47 * struct vdpa_vq_state_packed - vDPA packed virtqueue state 70 * struct vdpa_device - representation of a vDPA device 103 * struct vdpa_iova_range - the IOVA range support by the device 123 * struct vdpa_map_file - file area for device memory mapping 124 * @file: vma->vm_file for the mapping 133 * struct vdpa_config_ops - operations for configuring a vDPA device. [all …]
|
| /kernel/linux/linux-5.10/drivers/iommu/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 2 # The IOVA library may also be used by non-IOMMU_API users 6 # The IOASID library may also be used by non-IOMMU_API users 15 bool "IOMMU Hardware Support" 26 menu "Generic IOMMU Pagetable Support" 39 sizes at both stage-1 and stage-2, as well as address spaces 40 up to 48-bits in size. 46 Enable self-tests for LPAE page table allocator. This performs 47 a series of page-table consistency checks during boot. 56 Enable support for the ARM Short-descriptor pagetable format. [all …]
|
| D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 2 obj-y += amd/ intel/ arm/ loongson/ 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 …]
|
| D | virtio-iommu.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Virtio driver for the paravirtualized IOMMU 12 #include <linux/dma-iommu.h> 15 #include <linux/iommu.h> 21 #include <linux/virtio.h> 36 struct iommu_device iommu; member 105 struct virtio_iommu_req_tail *tail = buf + len - sizeof(*tail); in viommu_get_req_errno() 107 switch (tail->status) { in viommu_get_req_errno() 111 return -ENOSYS; in viommu_get_req_errno() 113 return -EINVAL; in viommu_get_req_errno() [all …]
|
| /kernel/linux/linux-6.6/drivers/iommu/ |
| 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 …]
|
| 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 …]
|
| D | virtio-iommu.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Virtio driver for the paravirtualized IOMMU 11 #include <linux/dma-map-ops.h> 14 #include <linux/iommu.h> 18 #include <linux/virtio.h> 25 #include "dma-iommu.h" 35 struct iommu_device iommu; member 105 struct virtio_iommu_req_tail *tail = buf + len - sizeof(*tail); in viommu_get_req_errno() 107 switch (tail->status) { in viommu_get_req_errno() 111 return -ENOSYS; in viommu_get_req_errno() [all …]
|
| /kernel/linux/linux-5.10/include/uapi/linux/ |
| 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_RPMSG 7 /* virtio remote processor messaging */ 38 #define VIRTIO_ID_SCSI 8 /* virtio scsi */ 39 #define VIRTIO_ID_9P 9 /* 9p virtio console */ 40 #define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */ [all …]
|
| /kernel/linux/linux-5.10/drivers/vhost/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 7 an IOMMU in software. 14 the host side of a virtio ring. 30 tristate "Host kernel accelerator for virtio net" 48 for use with virtio-scsi guests 51 tristate "vhost virtio-vsock driver" 59 virtio_transport.ko driver loaded to use the virtio-vsock device. 65 tristate "Vhost driver for vDPA-based backend" 72 guest virtio devices with the vDPA-based backends. 78 bool "Cross-endian support for vhost" [all …]
|
| /kernel/linux/linux-6.6/include/uapi/linux/ |
| 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 …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/iommu/ |
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/vhost/ |
| 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 …]
|
| /kernel/linux/linux-5.10/Documentation/s390/ |
| 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 …]
|
| /kernel/linux/linux-6.6/Documentation/arch/s390/ |
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/xen/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/iommu/loongson/ |
| D | iommu.h | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Loongson IOMMU Driver 5 * Copyright (C) 2020-2021 Loongson Technology Ltd. 16 #include <linux/iommu.h> 38 * the memory address requested by kmalloc is ARCH_DMA_MINALIGN-aligned, 39 * when the shadow_entry address is not a ARCH_DMA_MINALIGN-aligned 49 /* IOMMU page table */ 52 #define IOMMU_LEVEL_STRIDE (IOMMU_PAGE_SHIFT - 3) 56 #define IOMMU_LEVEL_MASK(n) (~(IOMMU_LEVEL_SIZE(n) - 1)) 57 #define IOMMU_LEVEL_MAX DIV_ROUND_UP((IOVA_WIDTH - IOMMU_PAGE_SHIFT), IOMMU_LEVEL_STRIDE) [all …]
|
| /kernel/linux/linux-6.6/drivers/remoteproc/ |
| D | remoteproc_core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 * Ohad Ben-Cohen <ohad@wizery.com> 12 * Suman Anna <s-anna@ti.com> 26 #include <linux/dma-mapping.h> 32 #include <linux/iommu.h> 77 * This is the IOMMU fault handler we register with the IOMMU API 79 * an IOMMU). 81 * IOMMU core will invoke this handler whenever the remote processor 89 dev_err(dev, "iommu fault: da 0x%lx flags 0x%x\n", iova, flags); in rproc_iommu_fault() 94 * Let the iommu core know we're not really handling this fault; in rproc_iommu_fault() [all …]
|
| /kernel/linux/linux-6.6/Documentation/staging/ |
| D | remoteproc.rst | 10 of operating system, whether it's Linux or any other flavor of real-time OS. 12 OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP. 13 In a typical configuration, the dual cortex-A9 is running Linux in a SMP 20 duplicated. In addition, this framework also adds rpmsg virtio devices 22 platform-specific remoteproc drivers only need to provide a few low-level 24 (for more information about the virtio-based rpmsg bus and its drivers, 26 Registration of other types of virtio devices is now also possible. Firmwares 27 just need to publish what kind of virtio devices do they support, and then 29 existing virtio drivers with remote processor backends at a minimal development 118 name of this remote processor, platform-specific ops handlers, [all …]
|