Commit 5db1c2db authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Rob Herring
Browse files

dt-bindings: nvmem: add U-Boot environment variables binding



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: default avatarRafał Miłecki <rafal@milecki.pl>
Reviewed-by: default avatarTom Rini <trini@konsulko.com>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220228131250.16943-1-zajec5@gmail.com
parent 3d8fa7a2
Loading
Loading
Loading
Loading
+62 −0
Original line number Diff line number Diff line
# 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>;
        };
    };
+5 −0
Original line number Diff line number Diff line
@@ -19665,6 +19665,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>