lkml.org 
[lkml]   [2022]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    SubjectRe: [PATCH v5 02/13] dt-bindings: Add binding for gunyah hypervisor
    From

    On 10/12/2022 8:56 AM, Rob Herring wrote:
    > On Mon, Oct 10, 2022 at 05:08:29PM -0700, Elliot Berman wrote:
    >> When Linux is booted as a guest under the Gunyah hypervisor, the Gunyah
    >> Resource Manager applies a devicetree overlay describing the virtual
    >> platform configuration of the guest VM, such as the message queue
    >> capability IDs for communicating with the Resource Manager. This
    >> information is not otherwise discoverable by a VM: the Gunyah hypervisor
    >> core does not provide a direct interface to discover capability IDs nor
    >> a way to communicate with RM without having already known the
    >> corresponding message queue capability ID. Add the DT bindings that
    >> Gunyah adheres for the hypervisor node and message queues.
    >>
    >> Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
    >> ---
    >> .../bindings/firmware/gunyah-hypervisor.yaml | 87 +++++++++++++++++++
    >> MAINTAINERS | 1 +
    >> 2 files changed, 88 insertions(+)
    >> create mode 100644 Documentation/devicetree/bindings/firmware/gunyah-hypervisor.yaml
    >>
    >> diff --git a/Documentation/devicetree/bindings/firmware/gunyah-hypervisor.yaml b/Documentation/devicetree/bindings/firmware/gunyah-hypervisor.yaml
    >> new file mode 100644
    >> index 000000000000..f0a14101e2fd
    >> --- /dev/null
    >> +++ b/Documentation/devicetree/bindings/firmware/gunyah-hypervisor.yaml
    >> @@ -0,0 +1,87 @@
    >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
    >> +%YAML 1.2
    >> +---
    >> +$id: http://devicetree.org/schemas/firmware/gunyah-hypervisor.yaml#
    >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
    >> +
    >> +title: Gunyah Hypervisor
    >> +
    >> +maintainers:
    >> + - Murali Nalajala <quic_mnalajal@quicinc.com>
    >> + - Elliot Berman <quic_eberman@quicinc.com>
    >> +
    >> +description: |+
    >> + On systems which support devicetree, Gunyah generates and overlays a deviceetree overlay which
    >
    > How you end up with the node (applying an overlay) is not relavent to
    > the binding.
    >
    >> + describes the basic configuration of the hypervisor. Virtual machines use this information to determine
    >> + the capability IDs of the message queues used to communicate with the Gunyah Resource Manager.
    >
    > Wrap at 80. That is the coding standard still though 100 is deemed
    > allowed. And yamllint only complains at 110 because I didn't care to fix
    > everyones lines over 100.
    >
    >> + See also: https://github.com/quic/gunyah-resource-manager/blob/develop/src/vm_creation/dto_construct.c
    >> +
    >> +properties:
    >> + compatible:
    >> + items:
    >> + - const: gunyah-hypervisor-1.0
    >> + - const: gunyah-hypervisor
    >
    > 2 compatibles implies a difference between the 2. What's the difference?
    > Where does '1.0' come from?
    >

    There's no difference. I thought the convention was to have
    device-specific compatible and the generic compatible. "device-specific"
    here would be specific to version of Gunyah since it's software.

    We do similar for firmware in the qcom,scm bindings and following that
    principle.

    >> +
    >> + "#address-cells":
    >> + description: Number of cells needed to represent 64-bit capability IDs.
    >> + const: 2
    >> +
    >> + "#size-cells":
    >> + description: must be 0, because capability IDs are not memory address
    >> + ranges and do not have a size.
    >> + const: 0
    >> +
    >> +patternProperties:
    >> + "^gunyah-resource-mgr(@.*)?":
    >> + type: object
    >> + description:
    >> + Resource Manager node which is required to communicate to Resource
    >> + Manager VM using Gunyah Message Queues.
    >> +
    >> + properties:
    >> + compatible:
    >> + items:
    >> + - const: gunyah-resource-manager-1-0
    >> + - const: gunyah-resource-manager
    >
    > Same comment here.
    >
    >> +
    >> + reg:
    >> + items:
    >> + - description: Gunyah capability ID of the TX message queue
    >> + - description: Gunyah capability ID of the RX message queue
    >> +
    >> + interrupts:
    >> + items:
    >> + - description: Interrupt for the TX message queue
    >> + - description: Interrupt for the RX message queue
    >> +
    >> + additionalProperties: false
    >> +
    >> + required:
    >> + - compatible
    >> + - reg
    >> + - interrupts
    >> +
    >> +additionalProperties: false
    >> +
    >> +required:
    >> + - compatible
    >> + - "#address-cells"
    >> + - "#size-cells"
    >> +
    >> +examples:
    >> + - |
    >> + #include <dt-bindings/interrupt-controller/arm-gic.h>
    >> +
    >> + hypervisor {
    >> + #address-cells = <2>;
    >> + #size-cells = <0>;
    >> + compatible = "gunyah-hypervisor-1.0", "gunyah-hypervisor";
    >> +
    >> + gunyah-resource-mgr@0 {
    >> + compatible = "gunyah-resource-manager-1-0", "gunyah-resource-manager";
    >> + interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>, /* TX full IRQ */
    >> + <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>; /* RX empty IRQ */
    >> + reg = <0x00000000 0x00000000>, <0x00000000 0x00000001>;
    >> + /* TX, RX cap ids */
    >> + };
    >> + };
    >> diff --git a/MAINTAINERS b/MAINTAINERS
    >> index 91d00b00d91c..ef6de7599d98 100644
    >> --- a/MAINTAINERS
    >> +++ b/MAINTAINERS
    >> @@ -8884,6 +8884,7 @@ M: Elliot Berman <quic_eberman@quicinc.com>
    >> M: Murali Nalajala <quic_mnalajal@quicinc.com>
    >> L: linux-arm-msm@vger.kernel.org
    >> S: Supported
    >> +F: Documentation/devicetree/bindings/firmware/gunyah-hypervisor.yaml
    >> F: Documentation/virt/gunyah/
    >>
    >> HABANALABS PCI DRIVER
    >> --
    >> 2.25.1
    >>
    >>

    \
     
     \ /
      Last update: 2022-10-14 01:59    [W:4.582 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site