162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/nvmem/u-boot,env.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: U-Boot environment variables
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription: |
1062306a36Sopenharmony_ci  U-Boot uses environment variables to store device parameters and
1162306a36Sopenharmony_ci  configuration. They may be used for booting process, setup or keeping end user
1262306a36Sopenharmony_ci  info.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci  Data is stored using U-Boot specific formats (variant specific header and NUL
1562306a36Sopenharmony_ci  separated key-value pairs).
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci  Environment data can be stored on various storage entities, e.g.:
1862306a36Sopenharmony_ci  1. Raw flash partition
1962306a36Sopenharmony_ci  2. UBI volume
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  This binding allows marking storage device (as containing env data) and
2262306a36Sopenharmony_ci  specifying used format.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  Right now only flash partition case is covered but it may be extended to e.g.
2562306a36Sopenharmony_ci  UBI volumes in the future.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  Variables can be defined as NVMEM device subnodes.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cimaintainers:
3062306a36Sopenharmony_ci  - Rafał Miłecki <rafal@milecki.pl>
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciproperties:
3362306a36Sopenharmony_ci  compatible:
3462306a36Sopenharmony_ci    oneOf:
3562306a36Sopenharmony_ci      - description: A standalone env data block
3662306a36Sopenharmony_ci        const: u-boot,env
3762306a36Sopenharmony_ci      - description: Two redundant blocks with active one flagged
3862306a36Sopenharmony_ci        const: u-boot,env-redundant-bool
3962306a36Sopenharmony_ci      - description: Two redundant blocks with active having higher counter
4062306a36Sopenharmony_ci        const: u-boot,env-redundant-count
4162306a36Sopenharmony_ci      - description: Broadcom's variant with custom header
4262306a36Sopenharmony_ci        const: brcm,env
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  reg:
4562306a36Sopenharmony_ci    maxItems: 1
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  bootcmd:
4862306a36Sopenharmony_ci    type: object
4962306a36Sopenharmony_ci    description: Command to use for automatic booting
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  ethaddr:
5262306a36Sopenharmony_ci    type: object
5362306a36Sopenharmony_ci    description: Ethernet interfaces base MAC address.
5462306a36Sopenharmony_ci    properties:
5562306a36Sopenharmony_ci      "#nvmem-cell-cells":
5662306a36Sopenharmony_ci        description: The first argument is a MAC address offset.
5762306a36Sopenharmony_ci        const: 1
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciadditionalProperties: false
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciexamples:
6262306a36Sopenharmony_ci  - |
6362306a36Sopenharmony_ci    partitions {
6462306a36Sopenharmony_ci        compatible = "fixed-partitions";
6562306a36Sopenharmony_ci        #address-cells = <1>;
6662306a36Sopenharmony_ci        #size-cells = <1>;
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci        partition@0 {
6962306a36Sopenharmony_ci            reg = <0x0 0x40000>;
7062306a36Sopenharmony_ci            label = "u-boot";
7162306a36Sopenharmony_ci            read-only;
7262306a36Sopenharmony_ci        };
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci        env: partition@40000 {
7562306a36Sopenharmony_ci            compatible = "u-boot,env";
7662306a36Sopenharmony_ci            reg = <0x40000 0x10000>;
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci            mac: ethaddr {
7962306a36Sopenharmony_ci                #nvmem-cell-cells = <1>;
8062306a36Sopenharmony_ci            };
8162306a36Sopenharmony_ci        };
8262306a36Sopenharmony_ci    };
8362306a36Sopenharmony_ci  - |
8462306a36Sopenharmony_ci    partitions {
8562306a36Sopenharmony_ci        compatible = "fixed-partitions";
8662306a36Sopenharmony_ci        #address-cells = <1>;
8762306a36Sopenharmony_ci        #size-cells = <1>;
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci        partition@0 {
9062306a36Sopenharmony_ci            reg = <0x0 0x100000>;
9162306a36Sopenharmony_ci            compatible = "brcm,u-boot";
9262306a36Sopenharmony_ci            label = "u-boot";
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci            partition-u-boot-env {
9562306a36Sopenharmony_ci                compatible = "brcm,env";
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci                ethaddr {
9862306a36Sopenharmony_ci                };
9962306a36Sopenharmony_ci            };
10062306a36Sopenharmony_ci        };
10162306a36Sopenharmony_ci    };
102