1132c57b4SRafał Miłecki# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2132c57b4SRafał Miłecki%YAML 1.2
3132c57b4SRafał Miłecki---
4132c57b4SRafał Miłecki$id: http://devicetree.org/schemas/mtd/partitions/tplink,safeloader-partitions.yaml#
5132c57b4SRafał Miłecki$schema: http://devicetree.org/meta-schemas/core.yaml#
6132c57b4SRafał Miłecki
7132c57b4SRafał Miłeckititle: TP-Link SafeLoader partitions
8132c57b4SRafał Miłecki
9132c57b4SRafał Miłeckidescription: |
10132c57b4SRafał Miłecki  TP-Link home routers store various data on flash (e.g. bootloader,
11132c57b4SRafał Miłecki  flash layout, firmware, product info, configuration, calibration
12132c57b4SRafał Miłecki  data). That requires flash partitioning.
13132c57b4SRafał Miłecki
14132c57b4SRafał Miłecki  Flash space layout of TP-Link devices is stored on flash itself using
15132c57b4SRafał Miłecki  a custom ASCII-based format. That format was first found in TP-Link
16132c57b4SRafał Miłecki  devices with a custom SafeLoader bootloader. Later it was adapted to
17132c57b4SRafał Miłecki  CFE and U-Boot bootloaders.
18132c57b4SRafał Miłecki
19132c57b4SRafał Miłecki  Partitions specified in partitions table cover whole flash space. Some
20132c57b4SRafał Miłecki  contain static data that shouldn't get modified (device's MAC or WiFi
21132c57b4SRafał Miłecki  calibration data). Others are semi-static (like kernel). Finally some
22132c57b4SRafał Miłecki  partitions contain fully changeable content (like rootfs).
23132c57b4SRafał Miłecki
24132c57b4SRafał Miłecki  This binding describes partitioning method and defines offset of ASCII
25132c57b4SRafał Miłecki  based partitions table. That offset is picked at manufacturing process
26132c57b4SRafał Miłecki  and doesn't change.
27132c57b4SRafał Miłecki
28132c57b4SRafał Miłeckimaintainers:
29132c57b4SRafał Miłecki  - Rafał Miłecki <rafal@milecki.pl>
30132c57b4SRafał Miłecki
31132c57b4SRafał Miłeckiproperties:
32132c57b4SRafał Miłecki  compatible:
33132c57b4SRafał Miłecki    const: tplink,safeloader-partitions
34132c57b4SRafał Miłecki
35132c57b4SRafał Miłecki  partitions-table-offset:
36132c57b4SRafał Miłecki    description: Flash offset of partitions table
37132c57b4SRafał Miłecki    $ref: /schemas/types.yaml#/definitions/uint32
38132c57b4SRafał Miłecki
39*9b533a6eSRafał MiłeckipatternProperties:
40*9b533a6eSRafał Miłecki  "^partition-.*$":
41*9b533a6eSRafał Miłecki    $ref: partition.yaml#
42*9b533a6eSRafał Miłecki
43132c57b4SRafał Miłeckirequired:
44132c57b4SRafał Miłecki  - partitions-table-offset
45132c57b4SRafał Miłecki
46132c57b4SRafał MiłeckiadditionalProperties: false
47132c57b4SRafał Miłecki
48132c57b4SRafał Miłeckiexamples:
49132c57b4SRafał Miłecki  - |
50132c57b4SRafał Miłecki    partitions {
51132c57b4SRafał Miłecki        compatible = "tplink,safeloader-partitions";
52132c57b4SRafał Miłecki        partitions-table-offset = <0x100000>;
53*9b533a6eSRafał Miłecki
54*9b533a6eSRafał Miłecki        partition-file-system {
55*9b533a6eSRafał Miłecki                linux,rootfs;
56*9b533a6eSRafał Miłecki        };
57132c57b4SRafał Miłecki    };
58