xref: /linux/Documentation/devicetree/bindings/nvmem/layouts/u-boot,env.yaml (revision 2fcea44e1ba16c55f4602948d2d43f3a365d6070)
1*2fcea44eSRafał Miłecki# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*2fcea44eSRafał Miłecki%YAML 1.2
3*2fcea44eSRafał Miłecki---
4*2fcea44eSRafał Miłecki$id: http://devicetree.org/schemas/nvmem/layouts/u-boot,env.yaml#
5*2fcea44eSRafał Miłecki$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2fcea44eSRafał Miłecki
7*2fcea44eSRafał Miłeckititle: U-Boot environment variables layout
8*2fcea44eSRafał Miłecki
9*2fcea44eSRafał Miłeckidescription: |
10*2fcea44eSRafał Miłecki  U-Boot uses environment variables to store device parameters and
11*2fcea44eSRafał Miłecki  configuration. They may be used for booting process, setup or keeping end user
12*2fcea44eSRafał Miłecki  info.
13*2fcea44eSRafał Miłecki
14*2fcea44eSRafał Miłecki  Data is stored using U-Boot specific formats (variant specific header and NUL
15*2fcea44eSRafał Miłecki  separated key-value pairs).
16*2fcea44eSRafał Miłecki
17*2fcea44eSRafał Miłecki  Environment data can be stored on various storage entities, e.g.:
18*2fcea44eSRafał Miłecki  1. Raw flash partition
19*2fcea44eSRafał Miłecki  2. UBI volume
20*2fcea44eSRafał Miłecki
21*2fcea44eSRafał Miłecki  This binding allows marking storage device (as containing env data) and
22*2fcea44eSRafał Miłecki  specifying used format.
23*2fcea44eSRafał Miłecki
24*2fcea44eSRafał Miłecki  Variables can be defined as NVMEM device subnodes.
25*2fcea44eSRafał Miłecki
26*2fcea44eSRafał Miłeckimaintainers:
27*2fcea44eSRafał Miłecki  - Rafał Miłecki <rafal@milecki.pl>
28*2fcea44eSRafał Miłecki
29*2fcea44eSRafał Miłeckiproperties:
30*2fcea44eSRafał Miłecki  compatible:
31*2fcea44eSRafał Miłecki    oneOf:
32*2fcea44eSRafał Miłecki      - description: A standalone env data block
33*2fcea44eSRafał Miłecki        const: u-boot,env
34*2fcea44eSRafał Miłecki      - description: Two redundant blocks with active one flagged
35*2fcea44eSRafał Miłecki        const: u-boot,env-redundant-bool
36*2fcea44eSRafał Miłecki      - description: Two redundant blocks with active having higher counter
37*2fcea44eSRafał Miłecki        const: u-boot,env-redundant-count
38*2fcea44eSRafał Miłecki      - description: Broadcom's variant with custom header
39*2fcea44eSRafał Miłecki        const: brcm,env
40*2fcea44eSRafał Miłecki
41*2fcea44eSRafał Miłecki  reg:
42*2fcea44eSRafał Miłecki    description: Partition offset and size for env on top of MTD
43*2fcea44eSRafał Miłecki    maxItems: 1
44*2fcea44eSRafał Miłecki
45*2fcea44eSRafał Miłecki  bootcmd:
46*2fcea44eSRafał Miłecki    type: object
47*2fcea44eSRafał Miłecki    description: Command to use for automatic booting
48*2fcea44eSRafał Miłecki
49*2fcea44eSRafał Miłecki  ethaddr:
50*2fcea44eSRafał Miłecki    type: object
51*2fcea44eSRafał Miłecki    description: Ethernet interfaces base MAC address.
52*2fcea44eSRafał Miłecki    additionalProperties: false
53*2fcea44eSRafał Miłecki
54*2fcea44eSRafał Miłecki    properties:
55*2fcea44eSRafał Miłecki      "#nvmem-cell-cells":
56*2fcea44eSRafał Miłecki        description: The first argument is a MAC address offset.
57*2fcea44eSRafał Miłecki        const: 1
58*2fcea44eSRafał Miłecki
59*2fcea44eSRafał MiłeckiallOf:
60*2fcea44eSRafał Miłecki  - if:
61*2fcea44eSRafał Miłecki      properties:
62*2fcea44eSRafał Miłecki        $nodename:
63*2fcea44eSRafał Miłecki          not:
64*2fcea44eSRafał Miłecki            contains:
65*2fcea44eSRafał Miłecki              pattern: "^partition@[0-9a-f]+$"
66*2fcea44eSRafał Miłecki    then:
67*2fcea44eSRafał Miłecki      properties:
68*2fcea44eSRafał Miłecki        reg: false
69*2fcea44eSRafał Miłecki
70*2fcea44eSRafał MiłeckiadditionalProperties: false
71*2fcea44eSRafał Miłecki
72*2fcea44eSRafał Miłeckiexamples:
73*2fcea44eSRafał Miłecki  - |
74*2fcea44eSRafał Miłecki    partitions {
75*2fcea44eSRafał Miłecki        compatible = "fixed-partitions";
76*2fcea44eSRafał Miłecki        #address-cells = <1>;
77*2fcea44eSRafał Miłecki        #size-cells = <1>;
78*2fcea44eSRafał Miłecki
79*2fcea44eSRafał Miłecki        partition@0 {
80*2fcea44eSRafał Miłecki            reg = <0x0 0x40000>;
81*2fcea44eSRafał Miłecki            label = "u-boot";
82*2fcea44eSRafał Miłecki            read-only;
83*2fcea44eSRafał Miłecki        };
84*2fcea44eSRafał Miłecki
85*2fcea44eSRafał Miłecki        env: partition@40000 {
86*2fcea44eSRafał Miłecki            compatible = "u-boot,env";
87*2fcea44eSRafał Miłecki            reg = <0x40000 0x10000>;
88*2fcea44eSRafał Miłecki
89*2fcea44eSRafał Miłecki            mac: ethaddr {
90*2fcea44eSRafał Miłecki                #nvmem-cell-cells = <1>;
91*2fcea44eSRafał Miłecki            };
92*2fcea44eSRafał Miłecki        };
93*2fcea44eSRafał Miłecki    };
94*2fcea44eSRafał Miłecki  - |
95*2fcea44eSRafał Miłecki    partitions {
96*2fcea44eSRafał Miłecki        compatible = "fixed-partitions";
97*2fcea44eSRafał Miłecki        #address-cells = <1>;
98*2fcea44eSRafał Miłecki        #size-cells = <1>;
99*2fcea44eSRafał Miłecki
100*2fcea44eSRafał Miłecki        partition@0 {
101*2fcea44eSRafał Miłecki            reg = <0x0 0x100000>;
102*2fcea44eSRafał Miłecki            compatible = "brcm,u-boot";
103*2fcea44eSRafał Miłecki            label = "u-boot";
104*2fcea44eSRafał Miłecki
105*2fcea44eSRafał Miłecki            partition-u-boot-env {
106*2fcea44eSRafał Miłecki                compatible = "brcm,env";
107*2fcea44eSRafał Miłecki
108*2fcea44eSRafał Miłecki                ethaddr {
109*2fcea44eSRafał Miłecki                };
110*2fcea44eSRafał Miłecki            };
111*2fcea44eSRafał Miłecki        };
112*2fcea44eSRafał Miłecki    };
113*2fcea44eSRafał Miłecki  - |
114*2fcea44eSRafał Miłecki    partition@0 {
115*2fcea44eSRafał Miłecki        reg = <0x0 0x100000>;
116*2fcea44eSRafał Miłecki        label = "ubi";
117*2fcea44eSRafał Miłecki        compatible = "linux,ubi";
118*2fcea44eSRafał Miłecki
119*2fcea44eSRafał Miłecki        volumes {
120*2fcea44eSRafał Miłecki            ubi-volume-u-boot-env {
121*2fcea44eSRafał Miłecki                volname = "env";
122*2fcea44eSRafał Miłecki
123*2fcea44eSRafał Miłecki                nvmem-layout {
124*2fcea44eSRafał Miłecki                    compatible = "u-boot,env";
125*2fcea44eSRafał Miłecki
126*2fcea44eSRafał Miłecki                    ethaddr {
127*2fcea44eSRafał Miłecki                        #nvmem-cell-cells = <1>;
128*2fcea44eSRafał Miłecki                    };
129*2fcea44eSRafał Miłecki                };
130*2fcea44eSRafał Miłecki            };
131*2fcea44eSRafał Miłecki        };
132*2fcea44eSRafał Miłecki    };
133