# 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 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>; }; }; }; }; };