mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
dt-bindings: nvmem: convert U-Boot env to a layout
U-Boot environment variables can be stored in various data sources. MTD is just one of available options. Refactor DT binding into a layout so it can be used with UBI volumes and other NVMEM devices. Link: https://lore.kernel.org/all/20231221173421.13737-1-zajec5@gmail.com/ Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20240902142952.71639-4-srinivas.kandagatla@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c3f9b7b4e5
commit
2fcea44e1b
132
Documentation/devicetree/bindings/nvmem/layouts/u-boot,env.yaml
Normal file
132
Documentation/devicetree/bindings/nvmem/layouts/u-boot,env.yaml
Normal file
@@ -0,0 +1,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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user