1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mtd/partitions/fixed-partitions.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Fixed partitions
8
9description: |
10  This binding can be used on platforms which have strong conventions about
11  which portions of a flash are used for what purposes, but which don't use an
12  on-flash partition table such as RedBoot.
13
14  The partition table should be a node named "partitions". Partitions are then
15  defined as subnodes.
16
17maintainers:
18  - Rafał Miłecki <rafal@milecki.pl>
19
20properties:
21  compatible:
22    const: fixed-partitions
23
24  "#address-cells": true
25
26  "#size-cells": true
27
28patternProperties:
29  "@[0-9a-f]+$":
30    description: node describing a single flash partition
31    type: object
32
33    properties:
34      reg:
35        description: partition's offset and size within the flash
36        maxItems: 1
37
38      label:
39        description: The label / name for this partition. If omitted, the label
40          is taken from the node name (excluding the unit address).
41
42      read-only:
43        description: This parameter, if present, is a hint that this partition
44          should only be mounted read-only. This is usually used for flash
45          partitions containing early-boot firmware images or data which should
46          not be clobbered.
47        type: boolean
48
49      lock:
50        description: Do not unlock the partition at initialization time (not
51          supported on all devices)
52        type: boolean
53
54      slc-mode:
55        description: This parameter, if present, allows one to emulate SLC mode
56          on a partition attached to an MLC NAND thus making this partition
57          immune to paired-pages corruptions
58        type: boolean
59
60    required:
61      - reg
62
63required:
64  - "#address-cells"
65  - "#size-cells"
66
67additionalProperties: true
68
69examples:
70  - |
71    partitions {
72        compatible = "fixed-partitions";
73        #address-cells = <1>;
74        #size-cells = <1>;
75
76        partition@0 {
77            label = "u-boot";
78            reg = <0x0000000 0x100000>;
79            read-only;
80        };
81
82        uimage@100000 {
83            reg = <0x0100000 0x200000>;
84        };
85    };
86  - |
87    partitions {
88        compatible = "fixed-partitions";
89        #address-cells = <1>;
90        #size-cells = <2>;
91
92        /* a 4 GiB partition */
93        partition@0 {
94            label = "filesystem";
95            reg = <0x00000000 0x1 0x00000000>;
96        };
97    };
98  - |
99    partitions {
100        compatible = "fixed-partitions";
101        #address-cells = <2>;
102        #size-cells = <2>;
103
104        /* an 8 GiB partition */
105        partition@0 {
106            label = "filesystem #1";
107            reg = <0x0 0x00000000 0x2 0x00000000>;
108        };
109
110        /* a 4 GiB partition */
111        partition@200000000 {
112            label = "filesystem #2";
113            reg = <0x2 0x00000000 0x1 0x00000000>;
114        };
115    };
116  - |
117    partitions {
118        compatible = "fixed-partitions";
119        #address-cells = <1>;
120        #size-cells = <1>;
121
122        partition@0 {
123            label = "bootloader";
124            reg = <0x000000 0x100000>;
125            read-only;
126        };
127
128        firmware@100000 {
129            compatible = "brcm,trx";
130            label = "firmware";
131            reg = <0x100000 0xe00000>;
132        };
133
134        calibration@f00000 {
135            compatible = "fixed-partitions";
136            label = "calibration";
137            reg = <0xf00000 0x100000>;
138            ranges = <0 0xf00000 0x100000>;
139            #address-cells = <1>;
140            #size-cells = <1>;
141
142            partition@0 {
143                label = "wifi0";
144                reg = <0x000000 0x080000>;
145            };
146
147            partition@80000 {
148                label = "wifi1";
149                reg = <0x080000 0x080000>;
150            };
151        };
152    };
153