On 18.05.22 21:59, Rob Herring wrote:
Hello Rob, Arnd
On Wed, May 18, 2022 at 03:32:27PM +0100, Arnd Bergmann wrote:
On Sat, May 7, 2022 at 7:19 PM Oleksandr Tyshchenko <olekstysh@xxxxxxxxx> wrote:
diff --git a/Documentation/devicetree/bindings/virtio/mmio.yaml b/Documentation/devicetree/bindings/virtio/mmio.yaml
index 10c22b5..29a0932 100644
--- a/Documentation/devicetree/bindings/virtio/mmio.yaml
+++ b/Documentation/devicetree/bindings/virtio/mmio.yaml
@@ -13,6 +13,9 @@ description:
See https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio for
more details.
+allOf:
+ - $ref: /schemas/arm/xen,dev-domid.yaml#
+
properties:
compatible:
const: virtio,mmio
@@ -33,6 +36,10 @@ properties:
description: Required for devices making accesses thru an IOMMU.
maxItems: 1
+ xen,dev-domid:
+ description: Required when Xen grant mappings need to be enabled for device.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
required:
- compatible
- reg
Sorry for joining the discussion late. Have you considered using the
generic iommu
binding here instead of a custom property? This would mean having a device
node for the grant-table mechanism that can be referred to using the 'iommus'
phandle property, with the domid as an additional argument.
It does not quite fit the model that Linux currently uses for iommus,
as that has an allocator for dma_addr_t space, but it would think it's
conceptually close enough that it makes sense for the binding.
Something common is almost always better.
agree
That may also have the issue that fw_devlink will make the 'iommu'
driver a dependency to probe.
Looks like I ran into it while experimenting. I generated the following
nodes in guest DT using Xen toolstack:
[snip]
xen_dummy_iommu {
compatible = "xen,dummy-iommu";
#iommu-cells = <0x01>;
phandle = <0xfde9>;
};
virtio@2000000 {
compatible = "virtio,mmio";
reg = <0x00 0x2000000 0x00 0x200>;
interrupts = <0x00 0x01 0xf01>;
interrupt-parent = <0xfde8>;
dma-coherent;
iommus = <0xfde9 0x01>;
};
[snip]
And got:
virtio-mmio 2000000.virtio: deferred probe timeout, ignoring dependency
Rob
--
Regards,
Oleksandr Tyshchenko