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

Rafał Miłecki zajec5 at gmail.com
Sat Oct 15 01:57:56 PDT 2022


On 12.10.2022 18:21, Rob Herring wrote:
> 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.

Various partitions are placed before and after partitions table.

Usually/always the whole flash space is covered by partitions defined in
the partitions table.



More information about the linux-mtd mailing list