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    oneOf:
23      - const: fixed-partitions
24      - items:
25          - const: sercomm,sc-partitions
26          - const: fixed-partitions
27
28  "#address-cells": true
29
30  "#size-cells": true
31
32  compression:
33    $ref: /schemas/types.yaml#/definitions/string
34    description: |
35      Compression algorithm used to store the data in this partition, chosen
36      from a list of well-known algorithms.
37
38      The contents are compressed using this algorithm.
39
40    enum:
41      - none
42      - bzip2
43      - gzip
44      - lzop
45      - lz4
46      - lzma
47      - xz
48      - zstd
49
50patternProperties:
51  "@[0-9a-f]+$":
52    $ref: partition.yaml#
53
54    properties:
55      sercomm,scpart-id:
56        description: Partition id in Sercomm partition map. Mtd parser
57          uses this id to find a record in the partition map containing
58          offset and size of the current partition. The values from
59          partition map overrides partition offset and size defined in
60          reg property of the dts. Frequently these values are the same,
61          but may differ if device has bad eraseblocks on a flash.
62        $ref: /schemas/types.yaml#/definitions/uint32
63
64required:
65  - "#address-cells"
66  - "#size-cells"
67
68additionalProperties: true
69
70examples:
71  - |
72    partitions {
73        compatible = "fixed-partitions";
74        #address-cells = <1>;
75        #size-cells = <1>;
76
77        partition@0 {
78            label = "u-boot";
79            reg = <0x0000000 0x100000>;
80            read-only;
81        };
82
83        uimage@100000 {
84            reg = <0x0100000 0x200000>;
85            compress = "lzma";
86        };
87    };
88
89  - |
90    partitions {
91        compatible = "fixed-partitions";
92        #address-cells = <1>;
93        #size-cells = <2>;
94
95        /* a 4 GiB partition */
96        partition@0 {
97            label = "filesystem";
98            reg = <0x00000000 0x1 0x00000000>;
99            linux,rootfs;
100        };
101    };
102
103  - |
104    partitions {
105        compatible = "fixed-partitions";
106        #address-cells = <2>;
107        #size-cells = <2>;
108
109        /* an 8 GiB partition */
110        partition@0 {
111            label = "filesystem #1";
112            reg = <0x0 0x00000000 0x2 0x00000000>;
113        };
114
115        /* a 4 GiB partition */
116        partition@200000000 {
117            label = "filesystem #2";
118            reg = <0x2 0x00000000 0x1 0x00000000>;
119        };
120    };
121
122  - |
123    partitions {
124        compatible = "fixed-partitions";
125        #address-cells = <1>;
126        #size-cells = <1>;
127
128        partition@0 {
129            label = "bootloader";
130            reg = <0x000000 0x100000>;
131            read-only;
132        };
133
134        firmware@100000 {
135            compatible = "brcm,trx";
136            label = "firmware";
137            reg = <0x100000 0xe00000>;
138        };
139
140        calibration@f00000 {
141            compatible = "fixed-partitions";
142            label = "calibration";
143            reg = <0xf00000 0x100000>;
144            ranges = <0 0xf00000 0x100000>;
145            #address-cells = <1>;
146            #size-cells = <1>;
147
148            partition@0 {
149                label = "wifi0";
150                reg = <0x000000 0x080000>;
151            };
152
153            partition@80000 {
154                label = "wifi1";
155                reg = <0x080000 0x080000>;
156            };
157        };
158    };
159
160  - |
161    partitions {
162        compatible = "sercomm,sc-partitions", "fixed-partitions";
163        #address-cells = <1>;
164        #size-cells = <1>;
165
166        partition@0 {
167            label = "u-boot";
168            reg = <0x0 0x100000>;
169            sercomm,scpart-id = <0>;
170            read-only;
171        };
172
173        partition@100000 {
174            label = "dynamic partition map";
175            reg = <0x100000 0x100000>;
176            sercomm,scpart-id = <1>;
177        };
178
179        partition@200000 {
180            label = "Factory";
181            reg = <0x200000 0x100000>;
182            sercomm,scpart-id = <2>;
183            read-only;
184        };
185    };
186