lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 13 Jul 2021 08:43:10 -0600
From:   Rob Herring <robh+dt@...nel.org>
To:     Viresh Kumar <viresh.kumar@...aro.org>
Cc:     Jason Wang <jasowang@...hat.com>,
        "Michael S. Tsirkin" <mst@...hat.com>,
        Arnd Bergmann <arnd@...nel.org>,
        Jean-Philippe Brucker <jean-philippe@...aro.org>,
        Vincent Guittot <vincent.guittot@...aro.org>,
        Bill Mills <bill.mills@...aro.org>,
        Alex Bennée <alex.bennee@...aro.org>,
        "Enrico Weigelt, metux IT consult" <info@...ux.net>,
        Jie Deng <jie.deng@...el.com>, devicetree@...r.kernel.org,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "open list:DRM DRIVER FOR QEMU'S CIRRUS DEVICE" 
        <virtualization@...ts.linux-foundation.org>
Subject: Re: [PATCH 1/5] dt-bindings: virtio: mmio: Add support for device subnode

On Tue, Jul 13, 2021 at 4:50 AM Viresh Kumar <viresh.kumar@...aro.org> wrote:
>
> Allow virtio,mmio nodes to contain device specific subnodes. Since each
> virtio,mmio node can represent a single virtio device, each virtio node
> is allowed to contain a maximum of one device specific subnode.

Doesn't sound like we need 2 nodes here. Just add I2C devices as child
nodes. You could add a more specific compatible string, but the
protocol is discoverable, so that shouldn't be necessary.

BTW, what's the usecase for these protocols? A standard interface to
firmware controlled I2C, GPIO, etc.?

> The device subnode must have the "reg" property, and its value must
> match the virtio device ID used by the virtio mmio node.
>
> A phandle to this device subnode can then be used by the users of the
> virtio device.
>
> Also add a symbolic link to uapi/linux/virtio_ids.h in order to use the
> definitions here.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@...aro.org>
> ---
>  .../devicetree/bindings/virtio/mmio.yaml      | 41 +++++++++++++++++++
>  include/dt-bindings/virtio/virtio_ids.h       |  1 +
>  2 files changed, 42 insertions(+)
>  create mode 120000 include/dt-bindings/virtio/virtio_ids.h
>
> diff --git a/Documentation/devicetree/bindings/virtio/mmio.yaml b/Documentation/devicetree/bindings/virtio/mmio.yaml
> index d46597028cf1..e5f9fe6ecb5e 100644
> --- a/Documentation/devicetree/bindings/virtio/mmio.yaml
> +++ b/Documentation/devicetree/bindings/virtio/mmio.yaml
> @@ -31,6 +31,31 @@ title: virtio memory mapped devices
>      description: Required for devices making accesses thru an IOMMU.
>      maxItems: 1
>
> +  "#address-cells":
> +    const: 1
> +    description:
> +      The cell is the device ID if a device subnode is used.
> +
> +  "#size-cells":
> +    const: 0
> +
> +patternProperties:
> +  '^[a-z0-9]+-virtio@[0-9]+$':
> +    type: object
> +    description: |
> +      Exactly one node describing the virtio device. The name of the node isn't
> +      significant but its phandle can be used to by an user of the virtio
> +      device.
> +
> +    properties:
> +      reg:
> +        description:
> +          Must contain the Virtio ID of the device.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +
> +    required:
> +      - reg
> +
>  required:
>    - compatible
>    - reg
> @@ -57,4 +82,20 @@ additionalProperties: false
>          #iommu-cells = <1>;
>      };
>
> +  - |
> +    #include <dt-bindings/virtio/virtio_ids.h>
> +
> +    virtio@...0 {
> +        compatible = "virtio,mmio";
> +        reg = <0x3200 0x100>;
> +        interrupts = <43>;
> +
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        i2c-virtio@0 {
> +            reg = <VIRTIO_ID_I2C_ADAPTER>;
> +        };
> +    };
> +
>  ...
> diff --git a/include/dt-bindings/virtio/virtio_ids.h b/include/dt-bindings/virtio/virtio_ids.h
> new file mode 120000
> index 000000000000..6e59ba332216
> --- /dev/null
> +++ b/include/dt-bindings/virtio/virtio_ids.h
> @@ -0,0 +1 @@
> +../../uapi/linux/virtio_ids.h

This will break the devicetree-rebasing tree I think. DT files
shouldn't reference kernel files.

Rob

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ