Displaying 9 results from an estimated 9 matches for "endpoint_id".
2020 Aug 21
0
[PATCH v3 2/6] iommu/virtio: Add topology helpers
...virt_topo_iommu {
+ struct virt_topo_dev_id dev_id;
+ struct device *dev; /* transport device */
+ struct fwnode_handle *fwnode;
+ struct iommu_ops *ops;
+ struct list_head list;
+};
+
+/* Specification of an endpoint */
+struct virt_topo_endpoint {
+ struct virt_topo_dev_id dev_id;
+ u32 endpoint_id;
+ struct virt_topo_iommu *viommu;
+ struct list_head list;
+};
+
+void virt_topo_add_endpoint(struct virt_topo_endpoint *ep);
+void virt_topo_add_iommu(struct virt_topo_iommu *viommu);
+
+void virt_topo_set_iommu_ops(struct device *dev, struct iommu_ops *ops);
+
+#else /* !CONFIG_VIRTIO_IOMMU_TO...
2020 Sep 04
1
[PATCH v3 2/6] iommu/virtio: Add topology helpers
...d;
> + struct device *dev; /* transport device */
> + struct fwnode_handle *fwnode;
> + struct iommu_ops *ops;
> + struct list_head list;
> +};
> +
> +/* Specification of an endpoint */
> +struct virt_topo_endpoint {
> + struct virt_topo_dev_id dev_id;
> + u32 endpoint_id;
> + struct virt_topo_iommu *viommu;
> + struct list_head list;
> +};
> +
> +void virt_topo_add_endpoint(struct virt_topo_endpoint *ep);
> +void virt_topo_add_iommu(struct virt_topo_iommu *viommu);
> +
> +void virt_topo_set_iommu_ops(struct device *dev, struct iommu_ops *o...
2020 Aug 21
17
[PATCH v3 0/6] Add virtio-iommu built-in topology
Add a topology description to the virtio-iommu driver and enable x86
platforms.
Since [v2] we have made some progress on adding ACPI support for
virtio-iommu, which is the preferred boot method on x86. It will be a
new vendor-agnostic table describing para-virtual topologies in a
minimal format. However some platforms don't use either ACPI or DT for
booting (for example microvm), and will
2020 Aug 21
17
[PATCH v3 0/6] Add virtio-iommu built-in topology
Add a topology description to the virtio-iommu driver and enable x86
platforms.
Since [v2] we have made some progress on adding ACPI support for
virtio-iommu, which is the preferred boot method on x86. It will be a
new vendor-agnostic table describing para-virtual topologies in a
minimal format. However some platforms don't use either ACPI or DT for
booting (for example microvm), and will
2020 Aug 21
0
[PATCH v3 5/6] iommu/virtio: Support topology description in config space
...eof(cfg->pci))
+ goto err_free;
+
+ spec->dev_id.type = VIRT_TOPO_DEV_TYPE_PCI;
+ spec->dev_id.segment = ioread16(&cfg->pci.segment);
+ spec->dev_id.bdf_start = ioread16(&cfg->pci.bdf_start);
+ spec->dev_id.bdf_end = ioread16(&cfg->pci.bdf_end);
+ spec->endpoint_id = ioread32(&cfg->pci.endpoint_start);
+ break;
+ case VIRTIO_IOMMU_TOPO_MMIO:
+ if (len < sizeof(cfg->mmio))
+ goto err_free;
+
+ spec->dev_id.type = VIRT_TOPO_DEV_TYPE_MMIO;
+ spec->dev_id.base = ioread64(&cfg->mmio.address);
+ spec->endpoint_id = ioread32(&...
2020 Sep 04
1
[PATCH v3 5/6] iommu/virtio: Support topology description in config space
..._free;
> +
> + spec->dev_id.type = VIRT_TOPO_DEV_TYPE_PCI;
> + spec->dev_id.segment = ioread16(&cfg->pci.segment);
> + spec->dev_id.bdf_start = ioread16(&cfg->pci.bdf_start);
> + spec->dev_id.bdf_end = ioread16(&cfg->pci.bdf_end);
> + spec->endpoint_id = ioread32(&cfg->pci.endpoint_start);
> + break;
> + case VIRTIO_IOMMU_TOPO_MMIO:
> + if (len < sizeof(cfg->mmio))
> + goto err_free;
> +
> + spec->dev_id.type = VIRT_TOPO_DEV_TYPE_MMIO;
> + spec->dev_id.base = ioread64(&cfg->mmio.address);
>...
2019 Nov 22
0
[RFC virtio 12/13] virtio-iommu: Add built-in topology description
...ID in the range.
+ \item[\field{requester_end}] Last requester ID in the range.
+ \item[\field{endpoint_start}] First endpoint ID.
+\end{description}
+
+The correspondence between a PCI requester ID in the range
+[ requester_start; requester_end ] and its endpoint IDs is a linear
+transformation: endpoint_id = requester_id - requester_start +
+endpoint_start.
+
+\paragraph{Single endpoint}\label{sec:Device Types / IOMMU Device / Device initialization / topology / Single endpoint}
+
+\begin{lstlisting}
+struct virtio_iommu_topo_endpoint {
+ struct virtio_iommu_topo_head head;
+ le32 endpoint;
+ le64...
2019 Nov 22
16
[RFC 00/13] virtio-iommu on non-devicetree platforms
I'm seeking feedback on multi-platform support for virtio-iommu. At the
moment only devicetree (DT) is supported and we don't have a pleasant
solution for other platforms. Once we figure out the topology
description, x86 support is trivial.
Since the IOMMU manages memory accesses from other devices, the guest
kernel needs to initialize the IOMMU before endpoints start issuing DMA.
2019 Nov 22
16
[RFC 00/13] virtio-iommu on non-devicetree platforms
I'm seeking feedback on multi-platform support for virtio-iommu. At the
moment only devicetree (DT) is supported and we don't have a pleasant
solution for other platforms. Once we figure out the topology
description, x86 support is trivial.
Since the IOMMU manages memory accesses from other devices, the guest
kernel needs to initialize the IOMMU before endpoints start issuing DMA.