On 15.02.22 18:06, Jan Kiszka wrote: > On 15.02.22 17:50, Jan Kiszka wrote: >> On 15.02.22 13:27, Alper Nebi Yasak wrote: >>> On 14/02/2022 12:09, Jan Kiszka wrote: >>>> On 07.02.22 23:08, Alper Nebi Yasak wrote: >>>>> The binman FIT entry type shares some code with the Section entry type. >>>>> This shared code is bound to grow, since FIT entries are conceptually a >>>>> variation of Section entries. >>>>> >>>>> Make FIT entry type a subclass of Section entry type, simplifying it a >>>>> bit and providing us the features that Section implements. Also fix the >>>>> subentry alignment test which now attempts to write symbols to a >>>>> nonexistent SPL ELF test file by creating it first. >>>>> >>>>> Signed-off-by: Alper Nebi Yasak <alpernebiya...@gmail.com> >>>>> Reviewed-by: Simon Glass <s...@chromium.org> >>>>> --- >>>> >>>> Only came to testing this now, and it causes a regression. >>>> >>>> Before this commit (I've added fdtmap to >>>> arch/arm/dts/k3-am65-iot2050-boot-image.dtsi for this): >>>> >>>> $ source/tools/binman/binman -D ls -i flash.bin >>>> Name Image-pos Size Entry-type Offset >>>> Uncomp-size >>>> ---------------------------------------------------------------------------------- >>>> main-section 0 8c0000 section 0 >>>> blob-ext@0x000000 0 37373 blob-ext@0x000000 0 >>>> blob@0x080000 80000 84484 blob@0x080000 80000 >>>> fit@0x280000 280000 f445f fit@0x280000 280000 >>>> fdtmap 37445f cf9 fdtmap 37445f >>>> fill@0x680000 680000 20000 fill@0x680000 680000 >>>> fill@0x6a0000 6a0000 20000 fill@0x6a0000 6a0000 >>>> blob-ext@0x6c0000 6c0000 415de blob-ext@0x6c0000 6c0000 >>>> blob-ext@0x740000 740000 43952 blob-ext@0x740000 740000 >>>> blob-ext@0x7c0000 7c0000 415e2 blob-ext@0x7c0000 7c0000 >>>> blob-ext@0x840000 840000 4395a blob-ext@0x840000 840000 >>>> >>>> With this commit: >>>> >>>> $ source/tools/binman/binman -D ls -i flash.bin >>>> Name Image-pos Size Entry-type >>>> Offset Uncomp-size >>>> ------------------------------------------------------------------------------------------- >>>> main-section 0 8c0000 section >>>> 0 >>>> blob-ext@0x000000 0 37373 blob-ext@0x000000 >>>> 0 >>>> blob@0x080000 80000 84484 blob@0x080000 >>>> 80000 >>>> fit@0x280000 fit@0x280000 >>>> 280000 >>>> u-boot section >>>> u-boot-nodtb u-boot-nodtb >>>> fdt-iot2050-basic section >>>> blob blob >>>> fdt-iot2050-basic-pg2 section >>>> blob blob >>>> fdt-iot2050-advanced section >>>> blob blob >>>> fdt-iot2050-advanced-pg2 section >>>> blob blob >>>> k3-rti-wdt-firmware section >>>> blob-ext blob-ext >>>> fdtmap 37445f cd9 fdtmap >>>> 37445f >>>> fill@0x680000 680000 20000 fill@0x680000 >>>> 680000 >>>> fill@0x6a0000 6a0000 20000 fill@0x6a0000 >>>> 6a0000 >>>> blob-ext@0x6c0000 6c0000 415de blob-ext@0x6c0000 >>>> 6c0000 >>>> blob-ext@0x740000 740000 43952 blob-ext@0x740000 >>>> 740000 >>>> blob-ext@0x7c0000 7c0000 415e2 blob-ext@0x7c0000 >>>> 7c0000 >>>> blob-ext@0x840000 840000 4395a blob-ext@0x840000 >>>> 840000 >>>> >>> >>> The AddMissingProperties() and SetCalculatedProperties() methods were >>> disabled for FIT as a fixup to this patch, that's why image-pos etc. >>> aren't available. See comments at [1] for some context. >>> >>> Hopefully my two patches [2][3] fix things, can you test with them? >>> >>> [1] "binman: Correct the error message for a bad hash algorithm" >>> https://patchwork.ozlabs.org/project/uboot/patch/20220208105941.1.I8f212a1150defebaf8b7b15a79f7a2fc62c276b2@changeid/ >>> >>> [2] "binman: Skip processing "hash" subnodes of FIT subsections" >>> https://patchwork.ozlabs.org/project/uboot/patch/20220209190236.26479-1-alpernebiya...@gmail.com/ >>> >> >> This one helped, indeed. >> > > ...not completely: > > $ source/tools/binman/binman replace -i flash.bin -f f...@0x380000.fit > fit@0x380000binman: [Errno 13] Permission denied: '/.f...@0x380000.itb' >
Ping. $ source/tools/binman/binman -D replace -i flash.bin -f f...@0x380000.fit fit@0x380000 binman: [Errno 13] Permission denied: '/.f...@0x380000.itb' Traceback (most recent call last): File "source/tools/binman/binman", line 141, in RunBinman ret_code = control.Binman(args) File "u-boot/tools/binman/control.py", line 644, in Binman allow_resize=not args.fix_size, write_map=args.map) File "u-boot/tools/binman/control.py", line 404, in ReplaceEntries allow_resize=allow_resize, write_map=write_map) File "u-boot/tools/binman/control.py", line 341, in WriteEntryToImage AfterReplace(image, allow_resize=allow_resize, write_map=write_map) File "u-boot/tools/binman/control.py", line 333, in AfterReplace get_contents=False, allow_resize=allow_resize) File "u-boot/tools/binman/control.py", line 560, in ProcessImage image.PackEntries() File "u-boot/tools/binman/image.py", line 155, in PackEntries super().Pack(0) File "u-boot/tools/binman/etype/section.py", line 385, in Pack self._PackEntries() File "u-boot/tools/binman/etype/section.py", line 403, in _PackEntries offset = entry.Pack(offset) File "u-boot/tools/binman/etype/section.py", line 390, in Pack data = self.BuildSectionData(True) File "u-boot/tools/binman/etype/fit.py", line 265, in BuildSectionData tools.write_file(input_fname, data) File "u-boot/tools/patman/tools.py", line 482, in write_file with open(filename(fname), binary and 'wb' or 'w') as fd: PermissionError: [Errno 13] Permission denied: '/.f...@0x380000.itb' Something seems fairly broken here. That '/.' does not come from the output directory name, it's generated by Entry.GetUniqueName. Looks like this path should not been taken under these conditions. Jan -- Siemens AG, Technology Competence Center Embedded Linux