@@ -27,6 +27,42 @@ properties:
- u-boot # u-boot.bin from U-Boot projec6t
- atf-bl31 # bl31.bin or bl31.elf from TF-A project
+ align:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ This sets the alignment of the entry. The entry offset is adjusted
+ so that the entry starts on an aligned boundary within the containing
+ section or image. For example ‘align = <16>’ means that the entry will
+ start on a 16-byte boundary. This may mean that padding is added before
+ the entry. The padding is part of the containing section but is not
+ included in the entry, meaning that an empty space may be created before
+ the entry starts. Alignment should be a power of 2. If ‘align’ is not
+ provided, no alignment is performed.
+
+ align-size:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ This sets the alignment of the entry size. For example, to ensure
+ that the size of an entry is a multiple of 64 bytes, set this to 64.
+ While this does not affect the contents of the entry within binman
+ itself (the padding is performed only when its parent section is
+ assembled), the end result is that the entry ends with the padding
+ bytes, so may grow. If ‘align-size’ is not provided, no alignment is
+ performed.
+
+ align-end:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ This sets the alignment of the end of an entry with respect to the
+ containing section. Some entries require that they end on an alignment
+ boundary, regardless of where they start. This does not move the start
+ of the entry, so the contents of the entry will still start at the
+ beginning. But there may be padding at the end. While this does not
+ affect the contents of the entry within binman itself (the padding is
+ performed only when its parent section is assembled), the end result is
+ that the entry ends with the padding bytes, so may grow. If ‘align-end’
+ is not provided, no alignment is performed.
+
additionalProperties: false
examples:
@@ -39,10 +75,13 @@ examples:
partition-u-boot@100000 {
label = "u-boot";
reg = <0x100000 0xf00000>;
+ align-size = <0x1000>;
+ align-end = <0x10000>;
};
partition-atf-bl31t@200000 {
label = "atf-bl31";
reg = <0x200000 0x100000>;
+ align = <0x4000>;
};
};
Add three properties for controlling alignment of partitions, aka 'entries' in binman. For now there is no explicit mention of hierarchy, so a 'section' is just the 'fixed-partitions' node. These new properties are inputs to the packaging process, but are also needed if the firmware is repacked, to ensure that alignment constraints are not violated. Therefore they a provided as part of the schema. Signed-off-by: Simon Glass <sjg@chromium.org> --- .../mtd/partitions/binman-partition.yaml | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+)