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

Reply via email to