Displaying 7 results from an estimated 7 matches for "bdf_start".
2020 Aug 21
0
[PATCH v3 2/6] iommu/virtio: Add topology helpers
..._H_
+
+#ifdef CONFIG_VIRTIO_IOMMU_TOPOLOGY_HELPERS
+
+/* Identify a device node in the topology */
+struct virt_topo_dev_id {
+ unsigned int type;
+#define VIRT_TOPO_DEV_TYPE_PCI 1
+#define VIRT_TOPO_DEV_TYPE_MMIO 2
+ union {
+ /* PCI endpoint or range */
+ struct {
+ u16 segment;
+ u16 bdf_start;
+ u16 bdf_end;
+ };
+ /* MMIO region */
+ u64 base;
+ };
+};
+
+/* Specification of an IOMMU */
+struct 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;
+...
2020 Sep 04
1
[PATCH v3 2/6] iommu/virtio: Add topology helpers
...+
> +/* Identify a device node in the topology */
> +struct virt_topo_dev_id {
> + unsigned int type;
> +#define VIRT_TOPO_DEV_TYPE_PCI 1
> +#define VIRT_TOPO_DEV_TYPE_MMIO 2
> + union {
> + /* PCI endpoint or range */
> + struct {
> + u16 segment;
> + u16 bdf_start;
> + u16 bdf_end;
> + };
> + /* MMIO region */
> + u64 base;
> + };
> +};
> +
> +/* Specification of an IOMMU */
> +struct virt_topo_iommu {
> + struct virt_topo_dev_id dev_id;
> + struct device *dev; /* transport device */
> + struct fwnode_handle *f...
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
...return ERR_PTR(-ENOMEM);
+
+ switch (ioread8(&cfg->hdr.type)) {
+ case VIRTIO_IOMMU_TOPO_PCI_RANGE:
+ if (len < sizeof(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 =...
2020 Sep 04
1
[PATCH v3 5/6] iommu/virtio: Support topology description in config space
...h (ioread8(&cfg->hdr.type)) {
> + case VIRTIO_IOMMU_TOPO_PCI_RANGE:
> + if (len < sizeof(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_fre...
2020 Aug 21
0
[PATCH v3 4/6] iommu/virtio: Add topology definitions
...ge {
+ /* VIRTIO_IOMMU_TOPO_PCI_RANGE */
+ __u8 type;
+ __u8 reserved;
+ /* Length of this structure */
+ __le16 length;
+ /* First endpoint ID in the range */
+ __le32 endpoint_start;
+ /* PCI domain number */
+ __le16 segment;
+ /* PCI Bus:Device.Function range */
+ __le16 bdf_start;
+ __le16 bdf_end;
+ __le16 padding;
+};
+
+struct virtio_iommu_topo_mmio {
+ /* VIRTIO_IOMMU_TOPO_MMIO */
+ __u8 type;
+ __u8 reserved;
+ /* Length of this structure */
+ __le16 length;
+ /* Endpoint ID */
+ __le32 endpoint;
+ /* Address of the first MMIO region */
+ __le64...