# 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 <[email protected]>
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>;
};
};
};
};
};