Documentation / devicetree / bindings / mtd / partitions / fixed-partitions.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mtd/partitions/fixed-partitions.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Fixed partitions

description: |
  This binding can be used on platforms which have strong conventions about
  which portions of a flash are used for what purposes, but which don't use an
  on-flash partition table such as RedBoot.
 
  The partition table should be a node named "partitions". Partitions are then
  defined as subnodes.

maintainers:
  - Rafał Miłecki <rafal@milecki.pl>

properties:
  compatible:
    oneOf:
      - const: fixed-partitions
      - items:
          - const: sercomm,sc-partitions
          - const: fixed-partitions
 
  "#address-cells": true
 
  "#size-cells": true

  compression:
    $ref: /schemas/types.yaml#/definitions/string
    description: |
      Compression algorithm used to store the data in this partition, chosen
      from a list of well-known algorithms.
 
      The contents are compressed using this algorithm.

    enum:
      - none
      - bzip2
      - gzip
      - lzop
      - lz4
      - lzma
      - xz
      - zstd

patternProperties:
  "@[0-9a-f]+$":
    $ref: partition.yaml#

    properties:
      sercomm,scpart-id:
        description: Partition id in Sercomm partition map. Mtd parser
          uses this id to find a record in the partition map containing
          offset and size of the current partition. The values from
          partition map overrides partition offset and size defined in
          reg property of the dts. Frequently these values are the same,
          but may differ if device has bad eraseblocks on a flash.
        $ref: /schemas/types.yaml#/definitions/uint32

required:
  - "#address-cells"
  - "#size-cells"

additionalProperties: true

examples:
  - |
    partitions {
        compatible = "fixed-partitions";
        #address-cells = <1>;
        #size-cells = <1>;
 
        partition@0 {
            label = "u-boot";
            reg = <0x0000000 0x100000>;
            read-only;
        };
 
        uimage@100000 {
            reg = <0x0100000 0x200000>;
            compress = "lzma";
        };
    };

  - |
    partitions {
        compatible = "fixed-partitions";
        #address-cells = <1>;
        #size-cells = <2>;
 
        /* a 4 GiB partition */
        partition@0 {
            label = "filesystem";
            reg = <0x00000000 0x1 0x00000000>;
            linux,rootfs;
        };
    };

  - |
    partitions {
        compatible = "fixed-partitions";
        #address-cells = <2>;
        #size-cells = <2>;
 
        /* an 8 GiB partition */
        partition@0 {
            label = "filesystem #1";
            reg = <0x0 0x00000000 0x2 0x00000000>;
        };
 
        /* a 4 GiB partition */
        partition@200000000 {
            label = "filesystem #2";
            reg = <0x2 0x00000000 0x1 0x00000000>;
        };
    };

  - |
    partitions {
        compatible = "fixed-partitions";
        #address-cells = <1>;
        #size-cells = <1>;
 
        partition@0 {
            label = "bootloader";
            reg = <0x000000 0x100000>;
            read-only;
        };
 
        firmware@100000 {
            compatible = "brcm,trx";
            label = "firmware";
            reg = <0x100000 0xe00000>;
        };
 
        calibration@f00000 {
            compatible = "fixed-partitions";
            label = "calibration";
            reg = <0xf00000 0x100000>;
            ranges = <0 0xf00000 0x100000>;
            #address-cells = <1>;
            #size-cells = <1>;
 
            partition@0 {
                label = "wifi0";
                reg = <0x000000 0x080000>;
            };
 
            partition@80000 {
                label = "wifi1";
                reg = <0x080000 0x080000>;
            };
        };
    };

  - |
    partitions {
        compatible = "sercomm,sc-partitions", "fixed-partitions";
        #address-cells = <1>;
        #size-cells = <1>;
 
        partition@0 {
            label = "u-boot";
            reg = <0x0 0x100000>;
            sercomm,scpart-id = <0>;
            read-only;
        };
 
        partition@100000 {
            label = "dynamic partition map";
            reg = <0x100000 0x100000>;
            sercomm,scpart-id = <1>;
        };
 
        partition@200000 {
            label = "Factory";
            reg = <0x200000 0x100000>;
            sercomm,scpart-id = <2>;
            read-only;
        };
    };