Documentation / devicetree / bindings / nvmem / layouts / u-boot,env.yaml


Based on kernel version 6.12.4. Page generated on 2024-12-12 21:01 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
# 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>;
                    };
                };
            };
        };
    };