142 lines
4.9 KiB
YAML
142 lines
4.9 KiB
YAML
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||
%YAML 1.2
|
||
---
|
||
$id: http://devicetree.org/schemas/mtd/partitions/partition.yaml#
|
||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
||
title: Partition
|
||
|
||
description: |
|
||
This binding describes a single flash partition. Each partition must have its
|
||
relative offset and size specified. Depending on partition function extra
|
||
properties can be used.
|
||
|
||
A partition may be dynamically allocated by a specific parser at runtime.
|
||
In this specific case, a specific suffix is required to the node name.
|
||
Everything after 'partition-' will be used as the partition name to compare
|
||
with the one dynamically allocated by the specific parser.
|
||
If the partition contains invalid char a label can be provided that will
|
||
be used instead of the node name to make the comparison.
|
||
This is used to assign an OF node to the dynamiccally allocated partition
|
||
so that subsystem like NVMEM can provide an OF node and declare NVMEM cells.
|
||
The OF node will be assigned only if the partition label declared match the
|
||
one assigned by the parser at runtime.
|
||
|
||
maintainers:
|
||
- Rafał Miłecki <rafal@milecki.pl>
|
||
|
||
properties:
|
||
reg:
|
||
description: partition's offset and size within the flash
|
||
maxItems: 1
|
||
|
||
label:
|
||
description: The label / name for this partition. If omitted, the label
|
||
is taken from the node name (excluding the unit address).
|
||
|
||
read-only:
|
||
description: This parameter, if present, is a hint that this partition
|
||
should only be mounted read-only. This is usually used for flash
|
||
partitions containing early-boot firmware images or data which should
|
||
not be clobbered.
|
||
type: boolean
|
||
|
||
lock:
|
||
description: Do not unlock the partition at initialization time (not
|
||
supported on all devices)
|
||
type: boolean
|
||
|
||
slc-mode:
|
||
description: This parameter, if present, allows one to emulate SLC mode
|
||
on a partition attached to an MLC NAND thus making this partition
|
||
immune to paired-pages corruptions
|
||
type: boolean
|
||
|
||
linux,rootfs:
|
||
description: Marks partition that contains root filesystem to mount and boot
|
||
user space from
|
||
type: boolean
|
||
|
||
align:
|
||
$ref: /schemas/types.yaml#/definitions/uint32
|
||
minimum: 2
|
||
maximum: 0x80000000
|
||
multipleOf: 2
|
||
description:
|
||
This sets the alignment of the entry in bytes.
|
||
|
||
The entry offset is adjusted so that the entry starts on an aligned
|
||
boundary within the containing section or image. For example ‘align =
|
||
<16>’ means that the entry will start on a 16-byte boundary. This may
|
||
mean that padding is added before the entry. The padding is part of
|
||
the containing section but is not included in the entry, meaning that
|
||
an empty space may be created before the entry starts. Alignment
|
||
must be a power of 2. If ‘align’ is not provided, no alignment is
|
||
performed.
|
||
|
||
align-size:
|
||
$ref: /schemas/types.yaml#/definitions/uint32
|
||
minimum: 2
|
||
maximum: 0x80000000
|
||
multipleOf: 2
|
||
description:
|
||
This sets the alignment of the entry size in bytes. It must be a power
|
||
of 2.
|
||
|
||
For example, to ensure that the size of an entry is a multiple of 64
|
||
bytes, set this to 64. While this does not affect the content of the
|
||
entry itself (the padding is performed only when its parent section is
|
||
assembled), the end result is that the entry ends with the padding
|
||
bytes, so may grow. If ‘align-size’ is not provided, no alignment is
|
||
performed.
|
||
|
||
align-end:
|
||
$ref: /schemas/types.yaml#/definitions/uint32
|
||
minimum: 2
|
||
maximum: 0x80000000
|
||
multipleOf: 2
|
||
description:
|
||
This sets the alignment (in bytes) of the end of an entry with respect
|
||
to the containing section. It must be a power of 2.
|
||
|
||
Some entries require that they end on an alignment boundary,
|
||
regardless of where they start. This does not move the start of the
|
||
entry, so the content of the entry will still start at the beginning.
|
||
But there may be padding at the end. While this does not affect the
|
||
content of the entry itself (the padding is performed only when its
|
||
parent section is assembled), the end result is that the entry ends
|
||
with the padding bytes, so may grow. If ‘align-end’ is not provided,
|
||
no alignment is performed.
|
||
|
||
if:
|
||
not:
|
||
required: [ reg ]
|
||
then:
|
||
properties:
|
||
$nodename:
|
||
pattern: '^partition-.*$'
|
||
|
||
# This is a generic file other binding inherit from and extend
|
||
additionalProperties: true
|
||
|
||
examples:
|
||
- |
|
||
partitions {
|
||
compatible = "fixed-partitions";
|
||
#address-cells = <1>;
|
||
#size-cells = <1>;
|
||
|
||
partition@100000 {
|
||
compatible = "u-boot";
|
||
reg = <0x100000 0xf00000>;
|
||
align-size = <0x1000>;
|
||
align-end = <0x10000>;
|
||
};
|
||
|
||
partition@200000 {
|
||
compatible = "tfa-bl31";
|
||
reg = <0x200000 0x100000>;
|
||
align = <0x4000>;
|
||
};
|
||
};
|