[PATCH V2 5/7] dt-bindings: Add xen,dev-domid property description for xen-grant DMA ops
Oleksandr
olekstysh at gmail.com
Wed May 18 16:48:31 PDT 2022
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 at gmail.com> 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 at 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
More information about the linux-arm-kernel
mailing list