On 06/03/2022 06:08, Simon Glass wrote: > On Thu, 3 Mar 2022 at 14:17, Alper Nebi Yasak <alpernebiya...@gmail.com> > wrote: >>> This is a bit clumsy. We cannot build the image more than once, since the >>> generator entries are lost during the first build. Binman requires that >>> calling BuildSectionData() multiple times returns a valid result each >>> time. >> >> I think the generator entries should be turned into concrete entries and >> be removed in _gen_entries(), so BuildSectionData() should work on the >> entries that were generated. This way the individual entries would show >> up in fdtmap and could be binman-extracted/replaced as well. > > That makes sense, but I'm not sure how to implement it. The split-elf > thing needs the contents of the entries which is not available at the > start. It is likely available before BuildSectionData() is called, but > not necessarily. So the template needs to hang around at least as long > as that. > > I think there is something we could do here, but it isn't quite clear > to me. Perhaps we need a expand-nodes-based-on-contents phase in > control.py ? Eek...
I can't think of anything proper. I guess it could need architectural changes, but I need to read more of the code and get a better grasp of things. >> >> For FDTs we can generate blob entries for each file, for ELFs maybe we >> can split them into files like the script used to do (bl31_0x<addr>.bin) >> and do the same? > > I'm not a big fan of adding files. Binman should be able to hold > everything in memory. It does generate files for later inspection > though, so yes we could add this feature. > >> >> Maybe some new entry types, "data" for arbitrary data unrelated to a >> file whose contents we can set, or "elf-segment" that can extract a >> segment from an ELF file (but I don't like the information loss there). > > Yes I quite like the idea of new entry types. In fact I was hoping to > turn split-elf into an entry type (one that generated multiple > entries). But I decided to stop before doing that since we really need > to gets the code in there, fix the bugs /move forward with some of the > ideas you and others have. After this and the other fixes and such, I hope I can set aside some time and experiment more on the ideas I've been throwing at you. Sorry if I ended up delaying this too much already...