
On 21/02/2022 07:40, Simon Glass wrote:
On Sat, 19 Feb 2022 at 08:53, Simon Glass sjg@chromium.org wrote:
On Fri, 18 Feb 2022 at 10:34, Alper Nebi Yasak alpernebiyasak@gmail.com wrote:
I can reproduce this and tried a few things, but more issues just kept popping up (outside u-boot as well). I got it to a point where the command re-packs the FIT and the image but quite wrongly. The offset and image-pos properties get added in the FIT, and the image main-section just concatenates all entries without regard to set offsets. I'll need more time to work those out, then to add tests and send patches.
I am going to try to merge my fit generator series today.
One issue I notice is that the conversion to use entry_Section changes the contents of the self._fit_entries dict. Before it was keyed by relative path, but entry_section keys self._entries by node name.
Yeah, this causes an error in image.FindEntryPath() while trying to replace e.g. "/fit@0x280000/images/u-boot" since there is no "images" entry in the FIT. Changing the key to the node name works, but then the "binman replace" invocation needs to use e.g. "/fit@0x280000/u-boot".
We may need to split it up. I will see if I can at least merge my series, which should not make things any worse, then see if I can come up with ideas.
Thanks for the diff.
I did a bit more fiddling and pushed a tree to u-boot-dm/fit-working
It refactors the fit implementation to separate scanning from emitting the tree and I think this might help quite a bit. I'll send out the series when I get a chance in the next few days or so.
I've also managed to somewhat fix the rest of the issues I wrote, so now I can replace a FIT entry with a modified one (having a different u-boot file), or replace a subentry of the FIT with an arbitrary file.
I couldn't look at your new version much but I'll try to see how good my fixes apply on top of it, will probably take me longer to patchify things.