[PATCH 2/9] dt-bindings: Arm: Extend FF-A binding to support in-kernel usage of partitions

Sudeep Holla sudeep.holla at arm.com
Sat Aug 29 13:09:16 EDT 2020


Since the FF-A v1.0 specification doesn't list the UUID of all the
partitions in the discovery API, we need to specify the UUID of the
partitions that need to be accessed by drivers within the kernel.

This extends the binding to provide the list of partitions that kernel
drivers may need to access and are not part of the partitions managed
by the hypervisor.

Signed-off-by: Sudeep Holla <sudeep.holla at arm.com>
---
 .../devicetree/bindings/arm/arm,ffa.yaml      | 34 +++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

Hi,

I am sure this is incomplete, but I couldn't figure out how to make all
the child properties optional if it is not managed by hypervisor.

Moreover, if we don't like the idea of adding UUID of all the partitions
that in-kernel drivers may need to communicate to, one alternative I can
think of is to allow the creation of FFA device from the FFA driver
itself.

Regards,
Sudeep

diff --git a/Documentation/devicetree/bindings/arm/arm,ffa.yaml b/Documentation/devicetree/bindings/arm/arm,ffa.yaml
index 668a5995fcab..d5c6d71c99de 100644
--- a/Documentation/devicetree/bindings/arm/arm,ffa.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,ffa.yaml
@@ -23,11 +23,12 @@ description: |

 properties:
   $nodename:
-    const: ffa_hyp
+    pattern: "^(ffa|ffa_hyp)$"

   compatible:
     oneOf:
       - const: arm,ffa-1.0-hypervisor
+      - const: arm,ffa-1.0

   memory-region:
     $ref: '/schemas/types.yaml#/definitions/phandle'
@@ -83,10 +84,26 @@ description: |

           [3] Documentation/devicetree/bindings/reserved-memory/arm,ffa-memory.yaml

+required:
+  - compatible
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: arm,ffa-1.0-hypervisor
+    then:
+      required:
+	- memory-region
+
 additionalProperties: false

 examples:
-  - |
+  - |+
+
+    // Case 1: Partitions managed by hypervisor
+
     ffa_hyp {
         compatible = "arm,ffa-1.0-hypervisor";
         memory-region = <&ffa_hyp_reserved>;
@@ -100,3 +117,16 @@ additionalProperties: false
             memory-region = <&ffa_reserved0 &ffa_reserved1>;
         };
     };
+
+  - |+
+
+    // Case 2: Partitions needing in-kernel usage
+
+    ffa {
+        compatible = "arm,ffa-1.0";
+
+        ffa_partition1 {
+            compatible = "arm,ffa-1.0-partition";
+            uuid = "589fc454-4502-4e66-9347-97b61e27cf73";
+        };
+   };
--
2.17.1




More information about the linux-arm-kernel mailing list