
On Friday 30 December 2022 09:49:08 Simon Glass wrote:
Hi Pali,
On Fri, 30 Dec 2022 at 09:44, Pali Rohár pali@kernel.org wrote:
On Friday 30 December 2022 10:41:47 Tom Rini wrote:
On Fri, Dec 30, 2022 at 04:24:43PM +0100, Pali Rohár wrote:
On Friday 30 December 2022 10:21:04 Tom Rini wrote:
In this case it would be better to build u-boot-dts.bin only by binman (for all platforms) instead of cat-ing rules in Makefile.
This would also be an easier path forward perhaps for making sure that the dtb is always 8 byte aligned?
Well, no. With DTB the problem is that it is not put to the correct offset as can be specified in linker script. So moving this code from Makefile to binman also moves this problem to another location. 8 byte alignment is just subset of the "correct offset" problem.
Right, the high level answer is binman is intended to be the tool to assemble binaries, and has to deal with "make sure binary X is at offset Y, which also has a linker symbol for run-time references".
Ok, if this tool has access to ELF/linker symbols (or will have in future in case it does not have yet) then this problem could be solved here.
It does have this access and already updates symbols in some cases. See [1]. [1] https://u-boot.readthedocs.io/en/latest/develop/package/binman.html#access-t...
I just do not see how to do it, but ok, maybe something more is needed.
I am a little nervous about a complete move to binman in this area even for simple things like u-boot.bin, since it would set off yet another migration.
Yes, it sounds like a big change.
But perhaps most boards don't actually use u-boot.bin anyway?
I think that most boards _use_ u-boot.bin. Or wrap u-boot.bin into some own container (by mkimage).
Part of me thinks we should solve this in the .lds files, since otherwise we are blurring the line between building and packaging.
Linker script files in any case would have to be adjusted / fixed to align _end symbol. Without it ELF symbol would not be correct and so obviously any solution depending on ELF symbols would not work...
As I wrote recently, I proposed alternative solution without binman: https://lore.kernel.org/u-boot/20221217235913.w7ihsktbplbp2j7z@pali/
Regards, SImon