On 2025-11-06 04:29, Yao Zi wrote:
[...]
But for other ports, it's necessary to correctly pad the binary
to the alignment enforced for __image_binary_end/__bss_end. What ports
did you observe issues on without padding?
[...]
Only on a Milk-V Megrez board, which is an ESWIN EIC7700X SoC and as
such, I believe it is not actually supported by upstream u-boot. The
downstream repo [1] that supports it forked off quite some time ago, and
thus may not be relevant here... Nevertheless, it also breaks when using
LLD, because the u-boot-nodtb.bin is not 8-byte-aligned. If I pad it
with null bytes to the 8-byte position that _end points to and then
manually concatenate the DTB, it boots up and runs great.
I note that on that board, U-Boot does not have an SPL and is instead
deployed as a payload of OpenSBI.
[1] https://github.com/milkv-megrez/rockos-u-boot
I suppose I also should've mentioned in my earlier email, I am now
successfully building and running U-Boot built with Clang and LLD using
Clang's integrated assembler instead of GNU as and using LLVM's binutils
for, i.e., objcopy:
Hit any key to stop autoboot: 0
StarFive # version
U-Boot 2025.10-pylon-00761-gc2104da88367-dirty (Nov 06 2025 - 02:03:37
+0000)
clang version 20.1.7+libcxx
LLD 20.1.7 (compatible with GNU linkers)
StarFive #
This is what I set out to do, so I am quite excited. =)
Is there anything else I can do to help get this issue properly resolved
in the code so builds Just Work?
—
Nathaniel