Home
last modified time | relevance | path

Searched +full:virtio +full:- +full:iommu (Results 1 – 25 of 55) sorted by relevance

123

/kernel/linux/linux-5.10/Documentation/devicetree/bindings/virtio/
Dmmio.txt1 * 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 …]
Diommu.txt1 * 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/
Dpci-iommu.yaml1 # 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 …]
Dmmio.yaml1 # 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/
Dremoteproc.h40 #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 …]
Dvdpa.h1 /* 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/
Dremoteproc.h40 #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 …]
Dvdpa.h1 /* 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/
DKconfig1 # 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 …]
DMakefile1 # 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 …]
Dvirtio-iommu.c1 // 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/
DKconfig1 # 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 …]
DMakefile1 # 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 …]
Dvirtio-iommu.c1 // 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/
Dvirtio_ids.h4 * 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/
DKconfig1 # 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/
Dvirtio_ids.h4 * 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/
Dxen,grant-dma.yaml1 # 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/
DKconfig1 # 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/
Dvfio-ccw.rst2 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/
Dvfio-ccw.rst2 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/
Dgrant-dma-ops.c1 // 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/
Diommu.h1 // 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/
Dremoteproc_core.c1 // 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/
Dremoteproc.rst10 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 …]

123