# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/layouts/u-boot,env.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: U-Boot environment variables layout

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.

  Variables can be defined as NVMEM device subnodes.

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
      - description: Broadcom's variant with custom header
        const: brcm,env

  reg:
    description: Partition offset and size for env on top of MTD
    maxItems: 1

  bootcmd:
    type: object
    description: Command to use for automatic booting

  ethaddr:
    type: object
    description: Ethernet interfaces base MAC address.
    additionalProperties: false

    properties:
      "#nvmem-cell-cells":
        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:
  - |
    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>;

            mac: ethaddr {
                #nvmem-cell-cells = <1>;
            };
        };
    };
  - |
    partitions {
        compatible = "fixed-partitions";
        #address-cells = <1>;
        #size-cells = <1>;

        partition@0 {
            reg = <0x0 0x100000>;
            compatible = "brcm,u-boot";
            label = "u-boot";

            partition-u-boot-env {
                compatible = "brcm,env";

                ethaddr {
                };
            };
        };
    };
  - |
    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>;
                    };
                };
            };
        };
    };
