[PATCH 1/4] binman: Add support for align argument to mkimage tool

Jonas Karlman jonas at kwiboo.se
Thu Jan 19 13:40:36 CET 2023


Hi Simon,

On 2023-01-18 20:42, Simon Glass wrote:
> Hi Jonas,
> 
> On Tue, 17 Jan 2023 at 15:54, Jonas Karlman <jonas at kwiboo.se> wrote:
>>
>> Add support to indicate what alignment to use for the FIT and its
>> external data. Pass the alignment to mkimage via the -B flag.
>>
>> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
>> ---
>>  tools/binman/btool/mkimage.py | 5 ++++-
>>  tools/binman/etype/fit.py     | 8 ++++++++
>>  2 files changed, 12 insertions(+), 1 deletion(-)
> 
> This looks good to me but please update docs at the top of fit.py,
> regenerate entries.rst  and add a test to ftest.py here, as this
> causes a test-coverage failure:

I will take a look and send a v2 series that includes tests,
updated entries.rst and is rebased on top of dm-pull-18jan23.


I have noticed that the generated FIT configuration node is not fully
matching the old script, it uses firmware = "u-boot" instead of "atf-1".
So TF-A is never initialized with the new FIT.

I made a quick attempt of a fix using the the diff below.

Now with binman:
firmware = "u-boot";
loadables = "atf-1", "atf-2", ...;

With old script:
firmware = "atf-1";
loadables = "u-boot", "atf-2", ...;

With the diff below:
firmware = "atf-1";
loadables = "u-boot", "atf-1", "atf-2", ...;

Should I send patches with something like this? Or do you have something else in mind?

Regards,
Jonas


diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi
index 1449657e0a..1e8333753e 100644
--- a/arch/arm/dts/rockchip-u-boot.dtsi
+++ b/arch/arm/dts/rockchip-u-boot.dtsi
@@ -116,8 +116,8 @@
                                @config-SEQ {
                                        description = "NAME.dtb";
                                        fdt = "fdt-SEQ";
-                                       firmware = "u-boot";
-                                       fit,loadables;
+                                       firmware = "atf-1";
+                                       fit,loadables = "u-boot";
                                };
                        };
                };
diff --git a/tools/binman/etype/fit.py b/tools/binman/etype/fit.py
index 51b122962f..21ec9e5cc7 100644
--- a/tools/binman/etype/fit.py
+++ b/tools/binman/etype/fit.py
@@ -525,7 +525,13 @@ class Entry_fit(Entry_section):
                     with fsw.add_node(node_name):
                         for pname, prop in node.props.items():
                             if pname == 'fit,loadables':
-                                val = '\0'.join(self._loadables) + '\0'
+                                if type(prop.value) is str:
+                                    val = [prop.value]
+                                elif type(prop.value) is list:
+                                    val = prop.value
+                                else:
+                                    val = []
+                                val = '\0'.join(val + self._loadables) + '\0'
                                 fsw.property('loadables', val.encode('utf-8'))
                             elif pname == 'fit,operation':
                                 pass



> 
> $ binman test -T
> ...
> tools/binman/etype/fit.py                                 224      1    99%
> tools/binman/btool/mkimage.py                              23      1    96%
> 
> Regards,
> Simon



More information about the U-Boot mailing list