Re: [PATCH v2] binman: nxp_imx8mcst: Handle FCFB header during SPI NOR boot
Simon Glass <[email protected]>
| Newsgroups | gmane.comp.boot-loaders.u-boot |
|---|---|
| Message-ID | <CAFLszThwmkwpXO6bN2fHzW1Ooo-X9phRS+kuUJm9copMQg=JzA@mail.gmail.com> |
Hi Marek, On 2026-07-21T02:09:14, Marek Vasut <[email protected]> wrote: > binman: nxp_imx8mcst: Handle FCFB header during SPI NOR boot > > In case the image that is wrapped in the nxp_imx8mcst already contains > an FCFB header which is mandatory for SPI NOR boot, then the IVT is at > offset 0x1000 instead of offset 0x0, but the whole image including the > FCFB header must be signed to prevent attacker from tampering with any > of the headers. Add the FCFB handling. > > Signed-off-by: Marek Vasut <[email protected]> > > tools/binman/etype/nxp_imx8mcst.py | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > diff --git a/tools/binman/etype/nxp_imx8mcst.py b/tools/binman/etype/nxp_imx8mcst.py > @@ -101,6 +102,9 @@ class Entry_nxp_imx8mcst(Entry_mkimage): > # - If it is mkimage'd imx8mimage, then extract to be signed data size > # from imx8mimage header, and calculate CSF blob offset right past > # the SPL from this information. > + # - If it is mkimage'd imx8mimage wrapped in FCFB, then extract to be > + # signed data size from imx8mimage header past the FCFB header, and > + # calculate CSF blob offset right past the SPL from this information. Thanks for updating the block comment. > diff --git a/tools/binman/etype/nxp_imx8mcst.py b/tools/binman/etype/nxp_imx8mcst.py > @@ -114,6 +118,13 @@ class Entry_nxp_imx8mcst(Entry_mkimage): > + elif signtype == MAGIC_NXP_IMX_FCFB: # SPL/imx8mimage with FCFB > + # Sign the payload including FCFB and imx8mimage headers > + # (extra 0x1000 and 0x40 bytes before the payload) > + signbase -= 0x1040 > + signsize = struct.unpack('<I', data[4120:4124])[0] - signbase > + # Remove mkimage generated padding from the end of data > + data = data[:signsize] This part is not tested: tools/binman/etype/nxp_imx8mcst.py 94 3 97% Also 4120 is still an unexplained decimal literal rather than the FCFB offset plus the IVT csf-pointer offset. If you don't want to change that, perhaps add a comment as to where 4120 comes from? Regards, Simon