* [PATCH] dt-bindings: nvmem: convert U-Boot env to a layout
@ 2024-07-05 22:58 Rafał Miłecki
2024-07-08 6:32 ` Miquel Raynal
2024-07-10 21:26 ` Rob Herring (Arm)
0 siblings, 2 replies; 4+ messages in thread
From: Rafał Miłecki @ 2024-07-05 22:58 UTC (permalink / raw)
To: Srinivas Kandagatla, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Greg Kroah-Hartman, Michael Walle, Miquel Raynal, devicetree,
linux-mtd, linux-arm-kernel, u-boot, linux-kernel,
Rafał Miłecki
From: Rafał Miłecki <rafal@milecki.pl>
U-Boot environment variables can be stored in various data sources. MTD
is just one of available options. Refactor DT binding into a layout so
it can be used with UBI volumes and other NVMEM devices.
Link: https://lore.kernel.org/all/20231221173421.13737-1-zajec5@gmail.com/
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
I'm sending this PATCH without Linux changes to see if this is the
right approach - for developers and (DT) maintainers to review it first.
My previous attempt (see above Link) turned out in refusal so I'm just
trying to save some time in case this one goes wrong as well.
Hopefully the included example (which I really think we should add)
explains well how I think this binding should be used with layouts.
If I get some positive feedback I'll work on V2 with actual Linux
changes.
.../bindings/nvmem/layouts/nvmem-layout.yaml | 1 +
.../nvmem/{ => layouts}/u-boot,env.yaml | 39 ++++++++++++++++---
2 files changed, 35 insertions(+), 5 deletions(-)
rename Documentation/devicetree/bindings/nvmem/{ => layouts}/u-boot,env.yaml (75%)
diff --git a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
index 3b40f7880774..382507060651 100644
--- a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
+++ b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
@@ -21,6 +21,7 @@ oneOf:
- $ref: fixed-layout.yaml
- $ref: kontron,sl28-vpd.yaml
- $ref: onie,tlv-layout.yaml
+ - $ref: u-boot,env.yaml
properties:
compatible: true
diff --git a/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml b/Documentation/devicetree/bindings/nvmem/layouts/u-boot,env.yaml
similarity index 75%
rename from Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
rename to Documentation/devicetree/bindings/nvmem/layouts/u-boot,env.yaml
index 9c36afc7084b..56a8f55d4a09 100644
--- a/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
+++ b/Documentation/devicetree/bindings/nvmem/layouts/u-boot,env.yaml
@@ -1,10 +1,10 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
-$id: http://devicetree.org/schemas/nvmem/u-boot,env.yaml#
+$id: http://devicetree.org/schemas/nvmem/layouts/u-boot,env.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
-title: U-Boot environment variables
+title: U-Boot environment variables layout
description: |
U-Boot uses environment variables to store device parameters and
@@ -21,9 +21,6 @@ description: |
This binding allows marking storage device (as containing env data) and
specifying used format.
- Right now only flash partition case is covered but it may be extended to e.g.
- UBI volumes in the future.
-
Variables can be defined as NVMEM device subnodes.
maintainers:
@@ -42,6 +39,7 @@ properties:
const: brcm,env
reg:
+ description: Partition offset and size for env on top of MTD
maxItems: 1
bootcmd:
@@ -58,6 +56,17 @@ properties:
description: The first argument is a MAC address offset.
const: 1
+allOf:
+ - if:
+ properties:
+ $nodename:
+ not:
+ contains:
+ pattern: "^partition@[0-9a-f]+$"
+ then:
+ properties:
+ reg: false
+
additionalProperties: false
examples:
@@ -101,3 +110,23 @@ examples:
};
};
};
+ - |
+ partition@0 {
+ reg = <0x0 0x100000>;
+ label = "ubi";
+ compatible = "linux,ubi";
+
+ volumes {
+ ubi-volume-u-boot-env {
+ volname = "env";
+
+ nvmem-layout {
+ compatible = "u-boot,env";
+
+ ethaddr {
+ #nvmem-cell-cells = <1>;
+ };
+ };
+ };
+ };
+ };
--
2.35.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: nvmem: convert U-Boot env to a layout
2024-07-05 22:58 [PATCH] dt-bindings: nvmem: convert U-Boot env to a layout Rafał Miłecki
@ 2024-07-08 6:32 ` Miquel Raynal
2024-07-08 9:42 ` Rafał Miłecki
2024-07-10 21:26 ` Rob Herring (Arm)
1 sibling, 1 reply; 4+ messages in thread
From: Miquel Raynal @ 2024-07-08 6:32 UTC (permalink / raw)
To: Rafał Miłecki
Cc: Srinivas Kandagatla, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Greg Kroah-Hartman, Michael Walle, devicetree,
linux-mtd, linux-arm-kernel, u-boot, linux-kernel,
Rafał Miłecki
Hi Rafał,
zajec5@gmail.com wrote on Sat, 6 Jul 2024 00:58:21 +0200:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> U-Boot environment variables can be stored in various data sources. MTD
> is just one of available options. Refactor DT binding into a layout so
> it can be used with UBI volumes and other NVMEM devices.
>
> Link: https://lore.kernel.org/all/20231221173421.13737-1-zajec5@gmail.com/
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> I'm sending this PATCH without Linux changes to see if this is the
> right approach - for developers and (DT) maintainers to review it first.
>
> My previous attempt (see above Link) turned out in refusal so I'm just
> trying to save some time in case this one goes wrong as well.
>
> Hopefully the included example (which I really think we should add)
> explains well how I think this binding should be used with layouts.
>
> If I get some positive feedback I'll work on V2 with actual Linux
> changes.
>
I am still in favor of this change. I know from a binding perspective
it might be questionable; but from an OS perspective it makes total
sense to deprecated the old U-Boot env "device" driver in favor of this.
Thanks,
Miquèl
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: nvmem: convert U-Boot env to a layout
2024-07-08 6:32 ` Miquel Raynal
@ 2024-07-08 9:42 ` Rafał Miłecki
0 siblings, 0 replies; 4+ messages in thread
From: Rafał Miłecki @ 2024-07-08 9:42 UTC (permalink / raw)
To: Miquel Raynal
Cc: Srinivas Kandagatla, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Greg Kroah-Hartman, Michael Walle, devicetree,
linux-mtd, linux-arm-kernel, u-boot, linux-kernel,
Rafał Miłecki
On 8.07.2024 08:32, Miquel Raynal wrote:
> zajec5@gmail.com wrote on Sat, 6 Jul 2024 00:58:21 +0200:
>
>> From: Rafał Miłecki <rafal@milecki.pl>
>>
>> U-Boot environment variables can be stored in various data sources. MTD
>> is just one of available options. Refactor DT binding into a layout so
>> it can be used with UBI volumes and other NVMEM devices.
>>
>> Link: https://lore.kernel.org/all/20231221173421.13737-1-zajec5@gmail.com/
>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>> ---
>> I'm sending this PATCH without Linux changes to see if this is the
>> right approach - for developers and (DT) maintainers to review it first.
>>
>> My previous attempt (see above Link) turned out in refusal so I'm just
>> trying to save some time in case this one goes wrong as well.
>>
>> Hopefully the included example (which I really think we should add)
>> explains well how I think this binding should be used with layouts.
>>
>> If I get some positive feedback I'll work on V2 with actual Linux
>> changes.
>>
>
> I am still in favor of this change. I know from a binding perspective
> it might be questionable; but from an OS perspective it makes total
> sense to deprecated the old U-Boot env "device" driver in favor of this.
Please note that at this point I didn't decide to deprecate the old
binding (using "u-boot,env" for flash device partition). That would
require mixing "nvmem-layout" with "partitions" which I believe Rob
objected to.
My PATCH in its current form just allows reusing this binding with
"nvmem-layout"s which is needed for cases where we agreed to allow
"nvmem-layout" (UBI volumes and pure - non-MTD - NVMEM devices).
If we want to refactor this binding in MTD partitions context I hope we
can handle that at different time if we agree on some solution. I hope
and I don't think this should be a blocked for this PATCH.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: nvmem: convert U-Boot env to a layout
2024-07-05 22:58 [PATCH] dt-bindings: nvmem: convert U-Boot env to a layout Rafał Miłecki
2024-07-08 6:32 ` Miquel Raynal
@ 2024-07-10 21:26 ` Rob Herring (Arm)
1 sibling, 0 replies; 4+ messages in thread
From: Rob Herring (Arm) @ 2024-07-10 21:26 UTC (permalink / raw)
To: Rafał Miłecki
Cc: Michael Walle, Rafał Miłecki, linux-kernel,
linux-arm-kernel, linux-mtd, Krzysztof Kozlowski,
Greg Kroah-Hartman, Miquel Raynal, Conor Dooley, u-boot,
Srinivas Kandagatla, devicetree
On Sat, 06 Jul 2024 00:58:21 +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> U-Boot environment variables can be stored in various data sources. MTD
> is just one of available options. Refactor DT binding into a layout so
> it can be used with UBI volumes and other NVMEM devices.
>
> Link: https://lore.kernel.org/all/20231221173421.13737-1-zajec5@gmail.com/
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> I'm sending this PATCH without Linux changes to see if this is the
> right approach - for developers and (DT) maintainers to review it first.
>
> My previous attempt (see above Link) turned out in refusal so I'm just
> trying to save some time in case this one goes wrong as well.
>
> Hopefully the included example (which I really think we should add)
> explains well how I think this binding should be used with layouts.
>
> If I get some positive feedback I'll work on V2 with actual Linux
> changes.
>
> .../bindings/nvmem/layouts/nvmem-layout.yaml | 1 +
> .../nvmem/{ => layouts}/u-boot,env.yaml | 39 ++++++++++++++++---
> 2 files changed, 35 insertions(+), 5 deletions(-)
> rename Documentation/devicetree/bindings/nvmem/{ => layouts}/u-boot,env.yaml (75%)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-07-10 21:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-05 22:58 [PATCH] dt-bindings: nvmem: convert U-Boot env to a layout Rafał Miłecki
2024-07-08 6:32 ` Miquel Raynal
2024-07-08 9:42 ` Rafał Miłecki
2024-07-10 21:26 ` Rob Herring (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).