diff mbox series

[RFC,*RFC*] dt-bindings: add U-Boot chosen for environment data phandle

Message ID 20220217120856.2910-1-zajec5@gmail.com
State Handled Elsewhere
Delegated to: Tom Rini
Headers show
Series [RFC,*RFC*] dt-bindings: add U-Boot chosen for environment data phandle | expand

Commit Message

Rafał Miłecki Feb. 17, 2022, 12:08 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

This is RFC and request for a help & discussion.

While reviewing patch for U-Boot env binding it has been mentioned that:

1. /Processing/ whole DT in U-Boot may be too much work
   Handling flash devices, partitions, their formats & NVMEM may require
   too many U-Boot drivers involved.

2. It'd be nice to have env data storage devices pointed in chosen

I wrote this hacky PATCH to give a rough idea how it could look like.

Please review this and let me know:
1. If solution with chosen + phandles is acceptable
2. How to properly name .yaml file
3. Where it put it

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 .../devicetree/bindings/u-boot,chosen.yaml    | 39 +++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/u-boot,chosen.yaml

Comments

Rob Herring Feb. 17, 2022, 9:15 p.m. UTC | #1
On Thu, Feb 17, 2022 at 6:09 AM Rafał Miłecki <zajec5@gmail.com> wrote:
>
> From: Rafał Miłecki <rafal@milecki.pl>
>
> This is RFC and request for a help & discussion.
>
> While reviewing patch for U-Boot env binding it has been mentioned that:
>
> 1. /Processing/ whole DT in U-Boot may be too much work
>    Handling flash devices, partitions, their formats & NVMEM may require
>    too many U-Boot drivers involved.
>
> 2. It'd be nice to have env data storage devices pointed in chosen
>
> I wrote this hacky PATCH to give a rough idea how it could look like.
>
> Please review this and let me know:
> 1. If solution with chosen + phandles is acceptable
> 2. How to properly name .yaml file
> 3. Where it put it
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
>  .../devicetree/bindings/u-boot,chosen.yaml    | 39 +++++++++++++++++++
>  1 file changed, 39 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/u-boot,chosen.yaml
>
> diff --git a/Documentation/devicetree/bindings/u-boot,chosen.yaml b/Documentation/devicetree/bindings/u-boot,chosen.yaml
> new file mode 100644
> index 000000000000..8369da91193d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/u-boot,chosen.yaml
> @@ -0,0 +1,39 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/u-boot,chosen.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: U-Boot setup
> +
> +maintainers:
> +  - Rafał Miłecki <rafal@milecki.pl>
> +
> +properties:
> +  u-boot,env:
> +    $ref: /schemas/types.yaml#/definitions/phandle-array
> +    description: |
> +      A list of storage volumes containing U-Boot environment data.
> +
> +      Env data can be stored on various kinds of storage devices, e.g.:
> +      1. Raw flash partition
> +      2. UBI volume
> +
> +additionalProperties: true
> +
> +examples:
> +  - |
> +    chosen {
> +        u-boot,env = <&env>;

You should look at the u-boot config support:

https://github.com/devicetree-org/dt-schema/commit/0986f729eff0f40a66e85ab9dfb37681bf025ac4
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/u-boot,chosen.yaml b/Documentation/devicetree/bindings/u-boot,chosen.yaml
new file mode 100644
index 000000000000..8369da91193d
--- /dev/null
+++ b/Documentation/devicetree/bindings/u-boot,chosen.yaml
@@ -0,0 +1,39 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/u-boot,chosen.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: U-Boot setup
+
+maintainers:
+  - Rafał Miłecki <rafal@milecki.pl>
+
+properties:
+  u-boot,env:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description: |
+      A list of storage volumes containing U-Boot environment data.
+
+      Env data can be stored on various kinds of storage devices, e.g.:
+      1. Raw flash partition
+      2. UBI volume
+
+additionalProperties: true
+
+examples:
+  - |
+    chosen {
+        u-boot,env = <&env>;
+    };
+
+    partitions {
+        compatible = "fixed-partitions";
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        env: partition@0 {
+            reg = <0x0000000 0x1000>;
+            label = "u-boot-env";
+        };
+    };