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