[PATCH V2 1/2] dt-bindings: mtd: partitions: add TP-Link SafeLoader layout

Rob Herring robh at kernel.org
Wed Oct 12 09:21:17 PDT 2022


On Wed, Oct 12, 2022 at 07:04:41AM +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal at milecki.pl>
> 
> Most TP-Link home routers use the same partitioning system based on a
> custom ASCII table.
> 
> It doesn't seem to have any official name. GPL sources contain tool
> named simply "make_flash" and Makefile target "FlashMaker".
> 
> This partitions table format was first found in devices with a custom
> SafeLoader bootloader so it was called SafeLoader by a community. Later
> it was ported to other bootloaders but it seems the name sticked.
> 
> Add binding for describing flashes with SafeLoader partitions table. It
> allows operating systems to parse it properly and register proper flash
> layout.
> 
> Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
> ---
> V2: Fix typo in commit: s/same/name/
> ---
>  .../tplink,safeloader-partitions.yaml         | 44 +++++++++++++++++++
>  1 file changed, 44 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml
> 
> diff --git a/Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml
> new file mode 100644
> index 000000000000..e38aaea5aa11
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml
> @@ -0,0 +1,44 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mtd/partitions/tplink,safeloader-partitions.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TP-Link SafeLoader partitions
> +
> +description: |
> +  TP-Link home routers store various data on flash (e.g. bootloader,
> +  flash layout, firmware, product info, configuration, calibration
> +  data). That requires flash partitioning.
> +
> +  Flash space layout of TP-Link devices is stored on flash itself using
> +  a custom ASCII-based format. That format was first found in TP-Link
> +  devices with a custom SafeLoader bootloader. Later it was adapted to
> +  CFE and U-Boot bootloaders.
> +
> +  This binding describes partitioning method and defines offset of ASCII
> +  based partitions table. That offset is picked at manufacturing process
> +  and doesn't change.
> +
> +maintainers:
> +  - Rafał Miłecki <rafal at milecki.pl>
> +
> +properties:
> +  compatible:
> +    const: tplink,safeloader-partitions
> +
> +  partitions-table-offset:
> +    description: Flash offset of partitions table
> +    $ref: "/schemas/types.yaml#/definitions/uint32"

Don't need quotes.

> +
> +required:
> +  - partitions-table-offset
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    partitions {
> +        compatible = "tplink,safeloader-partitions";
> +        partitions-table-offset = <0x100000>;

What is in the space before this? It is part of the safeloader 
partitions? If the safeloader partitions are not the entire device, then 
perhaps we still need fixed partitions.

Rob



More information about the linux-mtd mailing list