From: Rob Herring <robh@kernel.org>
To: Michal Simek <michal.simek@xilinx.com>
Cc: "Rafał Miłecki" <zajec5@gmail.com>,
"Tom Rini" <trini@konsulko.com>, "Simon Glass" <sjg@chromium.org>,
"Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski@canonical.com>,
"Ricardo Salveti" <ricardo@foundries.io>,
"Jorge Ramirez-Ortiz" <jorge@foundries.io>,
"Sean Anderson" <seanga2@gmail.com>,
devicetree@vger.kernel.org, u-boot@lists.denx.de,
linux-kernel@vger.kernel.org, "Rafał Miłecki" <rafal@milecki.pl>
Subject: Re: [PATCH V3] dt-bindings: nvmem: add U-Boot environment variables binding
Date: Wed, 9 Mar 2022 08:40:41 -0700 [thread overview]
Message-ID: <20220309154041.GA3202199@robh.at.kernel.org> (raw)
In-Reply-To: <578e243d-2273-add3-898c-959888c2a155@xilinx.com>
On Wed, Mar 09, 2022 at 02:42:43PM +0100, Michal Simek wrote:
>
>
> On 2/28/22 14:12, Rafał Miłecki wrote:
> > From: Rafał Miłecki <rafal@milecki.pl>
> >
> > U-Boot uses environment variables for storing device setup data. It
> > usually needs to be accessed by a bootloader, kernel and often
> > user-space.
> >
> > This binding allows describing environment data located in a raw flash
> > partition. It's treated as NVMEM device and can be reused later for
> > other storage devices.
> >
> > Using DT should be cleaner than hardcoding & duplicating such info in
> > multiple places. Bootloader & kernel can share DTS and user-space can
> > try reading it too or just have correct data exposed by a kernel.
> >
> > A custom "compatible" string allows system to automatically load
> > relevant NVMEM driver but phandle can be also used for reading raw
> > location.
> >
> > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > ---
> > V2: Update descriptions to don't make this binding MTD (flash partition)
> > specific. Mention multiple possible storage ways.
> > V3: Drop
> > allOf:
> > - $ref: nvmem.yaml#
> > as we don't use anything rom the nvmem.yaml. Thanks Rob.
> > ---
> > .../devicetree/bindings/nvmem/u-boot,env.yaml | 62 +++++++++++++++++++
> > MAINTAINERS | 5 ++
> > 2 files changed, 67 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml b/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
> > new file mode 100644
> > index 000000000000..e70b2a60cb9a
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
> > @@ -0,0 +1,62 @@
> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/nvmem/u-boot,env.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: U-Boot environment variables
> > +
> > +description: |
> > + U-Boot uses environment variables to store device parameters and
> > + configuration. They may be used for booting process, setup or keeping end user
> > + info.
> > +
> > + Data is stored using U-Boot specific formats (variant specific header and NUL
> > + separated key-value pairs).
> > +
> > + Environment data can be stored on various storage entities, e.g.:
> > + 1. Raw flash partition
> > + 2. UBI volume
> > +
> > + 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.
> > +
> > +maintainers:
> > + - Rafał Miłecki <rafal@milecki.pl>
> > +
> > +properties:
> > + compatible:
> > + oneOf:
> > + - description: A standalone env data block
> > + const: u-boot,env
> > + - description: Two redundant blocks with active one flagged
> > + const: u-boot,env-redundant-bool
> > + - description: Two redundant blocks with active having higher counter
> > + const: u-boot,env-redundant-count
> > +
> > + reg:
> > + maxItems: 1
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + partitions {
> > + compatible = "fixed-partitions";
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > +
> > + partition@0 {
> > + reg = <0x0 0x40000>;
> > + label = "u-boot";
> > + read-only;
> > + };
> > +
> > + env: partition@40000 {
> > + compatible = "u-boot,env";
> > + reg = <0x40000 0x10000>;
> > + };
> > + };
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index db8052bc1d26..24fc181a7e6c 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -19958,6 +19958,11 @@ W: http://linuxtv.org
> > T: git git://linuxtv.org/media_tree.git
> > F: drivers/media/pci/tw686x/
> > +U-BOOT ENVIRONMENT VARIABLES
> > +M: Rafał Miłecki <rafal@milecki.pl>
> > +S: Maintained
> > +F: Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
> > +
> > UACCE ACCELERATOR FRAMEWORK
> > M: Zhangfei Gao <zhangfei.gao@linaro.org>
> > M: Zhou Wang <wangzhou1@hisilicon.com>
>
> I think that parsing these partitions is quite sw intensive process and I
> can't still see the value to have compatible string here.
It's always good to know what a node represents.
> I would prefer to have just any link from u-boot node to partition instead.
That's a separate issue and having 'compatible' in no way disallows
that.
Rob
next prev parent reply other threads:[~2022-03-09 15:40 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-28 13:12 [PATCH V3] dt-bindings: nvmem: add U-Boot environment variables binding Rafał Miłecki
2022-03-07 23:18 ` Rob Herring
2022-03-09 13:42 ` Michal Simek
2022-03-09 14:06 ` Rafał Miłecki
2022-03-09 15:40 ` Rob Herring [this message]
2022-03-10 8:45 ` Michal Simek
2022-03-10 9:34 ` Rafał Miłecki
2022-03-23 13:32 ` Tom Rini
2022-03-23 16:56 ` Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220309154041.GA3202199@robh.at.kernel.org \
--to=robh@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jorge@foundries.io \
--cc=krzysztof.kozlowski@canonical.com \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.simek@xilinx.com \
--cc=rafal@milecki.pl \
--cc=ricardo@foundries.io \
--cc=seanga2@gmail.com \
--cc=sjg@chromium.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=zajec5@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.