1# Copyright (c) 2024 Nordic Semiconductor ASA
2# SPDX-License-Identifier: Apache-2.0
3
4description: |
5  Nordic Owned Partitions
6
7  Memory partition table with permission attributes common to its partitions.
8  This is a special case of the Nordic Owned Memory binding.
9
10  Every compatible node is expected to be a child of a memory node, where the
11  listed partitions belong.
12
13  A single memory node can contain multiple partition tables, each with a
14  different set of permissions. For each such table, the smallest memory region
15  spanning the contained partitions will be recorded in the UICR. These regions
16  are allowed to contain gaps between the partitions, but this is discouraged.
17
18  Example:
19
20    mram1x: mram@e000000 {
21        compatible = "nordic,mram";
22        reg = <0xe000000 0x200000>;
23        ...
24
25        rx-partitions {
26            compatible = "nordic,owned-partitions";
27            nordic,access = <NRF_OWNER_ID_APPLICATION NRF_PERM_RX>;
28            #address-cells = <1>;
29            #size-cells = <1>;
30
31            slot0_partition: partition@c0000 {
32                label = "image-0";
33                reg = <0xc0000 0x40000>;
34            };
35        };
36
37        rw-partitions {
38            compatible = "nordic,owned-partitions";
39            nordic,access = <NRF_OWNER_ID_APPLICATION NRF_PERM_RW>;
40            #address-cells = <1>;
41            #size-cells = <1>;
42
43            slot1_partition: partition@100000 {
44                label = "image-1";
45                reg = <0x100000 0x50000>;
46            };
47            storage_partition: partition@150000 {
48                label = "storage";
49                reg = <0x150000 0x6000>;
50            };
51        };
52    };
53
54  From this example, two memory regions will be inferred:
55
56    - 0x0E0C0000--0x0E100000, with read & execute permissions, containing the
57      partition labeled "image-0".
58    - 0x0E100000--0x0E156000, with read & write permissions, containing the
59      partitions labeled "image-1" and "storage".
60
61compatible: "nordic,owned-partitions"
62
63include:
64  - name: nordic,owned-memory.yaml
65    property-blocklist:
66      - reg
67
68properties:
69  "#address-cells":
70    required: true
71
72  "#size-cells":
73    required: true
74
75child-binding:
76  description: |
77    Partitions in the table are defined as subnodes. Each partition must have a
78    size and an offset relative to the base address of the parent memory node.
79
80  include:
81    - name: base.yaml
82      property-blocklist:
83        - compatible
84
85  properties:
86    reg:
87      required: true
88