
Hi Simon,
On 2023-01-18 20:42, Simon Glass wrote:
Hi Jonas,
On Tue, 17 Jan 2023 at 15:54, Jonas Karlman jonas@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@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