On Thu, May 01, 2025 at 03:54:34PM -0500, Nathaniel Hourt wrote:
> On 2025-04-26 23:34, Yao Zi wrote:
> > On Sat, Apr 26, 2025 at 06:25:50PM -0500, Nathaniel wrote:
> > > On Apr 26 2025, at 1:30 am, Yao Zi <zi...@disroot.org> wrote:
> > > > On Fri, Apr 25, 2025 at 12:43:08PM -0500, Nathaniel Hourt wrote:
> > > > > Hi, all
> > > > >
> > > > > I am trying to build u-boot and SPL for my Mars board (riscv, variant 
> > > > > of the
> > > > > starfive visionfive2) following the board-specific docs [1], using
> > > > > LLVM/clang as my toolchain with the HOSTCC and CC make options 
> > > > > mentioned in
> > > > > [2]. I'm building from a RISC-V native chroot using qemu-binfmt so I 
> > > > > am not
> > > > > using the cross-compile options; thus my make invocation looks like 
> > > > > `make
> > > > > HOSTCC=clang CC=clang` (for OpenSBI, I just pass 'LLVM=1'). Note that 
> > > > > the
> > > > > chroot I'm building from does not contain gcc/binutils at all; LLVM 
> > > > > is the
> > > > > only toolchain present.
> > > > >
> > > > > The build usually succeeds, so I try to pass the SPL to the MaskROM 
> > > > > over
> > > > > UART (using the u-boot-spl.bin.normal.out image) and it just hangs. No
> > > > > output, no response, and I have to reset the board. If I pass a 
> > > > > working SPL
> > > >
> > > > Have you tried to apply this patch[1]? U-Boot support for JH7110 is
> > > > broken at least in v2025.04 release afaik.
> > > >
> > > > Best regards,
> > > > Yao Zi
> > > >
> > > > [1]: 
> > > > https://lore.kernel.org/all/20250330162421.238483-1-heinrich.schucha...@canonical.com/
> > > > > I downloaded, it logs some output then accepts a main u-boot payload 
> > > > > over
> > > > > UART, so if I send the main u-boot payload I built (u-boot.itb), I 
> > > > > get a
> > > > > "Load address misaligned" error as in [3].
> > > > >
> > > > > I attempted to configure my SPL to log to UART by turning on various 
> > > > > logging
> > > > > options in `menuconfig`, including the options recently mentioned by
> > > > > Heinrich Schuchardt in [4], but I have been unsuccessful in getting 
> > > > > any
> > > > > output from the SPL I built.
> > > > >
> > > > > So I am looking for guidance. Is building with LLVM/clang (for riscv)
> > > > > supported? I don't know what to try next.
> > > > >
> > > > > Thanks
> > > > > —
> > > > > Nathaniel
> > > > >
> > > > >
> > > > > [1]
> > > > > https://docs.u-boot.org/en/latest/board/starfive/milk-v_mars.html#milk-v-mars
> > > > > [2] https://docs.u-boot.org/en/latest/build/clang.html
> > > > > [3] https://pastebin.com/xwEcqEpz
> > > > > [4] https://lists.denx.de/pipermail/u-boot/2025-April/586264.html
> > > >
> > > 
> > > I just tried the patch, and also pulled latest master, which has
> > > that patch by now, but it didn't change the SPL's behavior.
> > > I have heard that I need to be using v2025.01; however, that fails
> > > to build for me:
> > > LD lib/efi_loader/boothart_efi.so
> > > ld: error: section type mismatch for .dynamic
> > > >>> <internal>:(.dynamic): SHT_DYNAMIC
> > > >>> output section .text: SHT_PROGBITS
> > > make[2]: *** [scripts/Makefile.lib:539:
> > > lib/efi_loader/boothart_efi.so] Error 1
> > > make[1]: *** [scripts/Makefile.build:398: lib/efi_loader] Error 2
> > > make: *** [Makefile:1915: lib] Error 2
> > 
> > I guess this series[1] (merged between v2025.01 and v2025.04) plays a
> > role here.
> > 
> > > I don't understand that error; I'm guessing it's ELF wizardry thus
> > > far beyond my ken.
> > > So master builds but doesn't run (at all? there's no output) and
> > > going off of [1], wouldn't we expect there to be some output from
> > > the SPL when it doesn't work for the known reasons?
> > > v2025.01 doesn't build with my LLVM toolchain, and I'm wondering
> > > whether I'm getting actually sane images even when master builds
> > > successfully. I have no idea how to verify that... Does anyone know
> > > how to analyze the SPL image output, or even what format it's in? Or
> > > alternatively, is there a hello world SPL I can build just to test
> > > whether I can produce working binaries at all?
> > > Or am I barking up the wrong tree altogether? Ideas welcome. =)
> > 
> > I could verify starfive_visionfive2 images built by Clang are broken on
> > current master branch: seems there's something wrong with Clang when
> > generating default configuration. Have you seen errors like
> > 
> >     generated_defconfig:33:warning: unexpected data:  #
> > CONFIG_OF_BOARD_FIXUP is not set
> >     generated_defconfig:34:warning: unexpected data:  #
> > CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> >     generated_defconfig:54:warning: unexpected data:  #
> > CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
> >     generated_defconfig:75:warning: unexpected data:  # CONFIG_CMD_BIND is
> > not set
> >     generated_defconfig:132:warning: unexpected data:  # CONFIG_RAM_SIFIVE
> > is not set
> >     generated_defconfig:150:warning: unexpected data:  #
> > CONFIG_USB_CDNS3_TI is not set
> >     generated_defconfig:153:warning: unexpected data:  # CONFIG_WATCHDOG is
> > not set
> >     generated_defconfig:154:warning: unexpected data:  #
> > CONFIG_WATCHDOG_AUTOSTART is not set
> > 
> > when applying the default configuration? Seems Clang adds some extra
> > indentation in the preprocessor's output comparing to GCC, which Kconfig
> > doesn't allow. This breaks the configuration, making SPL unable to find
> > an appropriate space for stack to use.
> > 
> > With this problem fixed with a dirty patch, I've successfully booted
> > into U-Boot console with binutils LD. There're still some nasty "out of
> > memory" errors from EFI subsystem like
> > 
> >     U-Boot 2025.04-01423-g8c9218d0e86c-dirty (Apr 27 2025 - 03:55:20 +0000)
> > 
> >     CPU:   sifive,u74-mc
> >     Model: StarFive VisionFive 2 v1.3B
> >     DRAM:  8 GiB
> >     Core:  159 devices, 29 uclasses, devicetree: board
> >     WDT:   Not starting watchdog@13070000
> >     out of memory
> >     ERROR: Out of memory
> >     MMC:   mmc@16010000: 0, mmc@16020000: 1
> >     Loading Environment from SPIFlash... SF: Detected gd25lq128 with page
> > size 256 Bytes, erase size 4 KiB, total 16 MiB
> >     *** Warning - bad CRC, using default environment
> > 
> > and images built by LLD are still broken. I'll send a fixing series
> > after figuring all of these issues out.
> > 
> > For now you could try the dirty fix and see whether console shows up,
> > 
> > diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> > index 079add4d5da..ba30652f01a 100644
> > --- a/scripts/kconfig/Makefile
> > +++ b/scripts/kconfig/Makefile
> > @@ -94,6 +94,7 @@ endif
> > 
> >  %_defconfig: $(obj)/conf
> >         $(Q)$(CPP) -nostdinc -P -I $(srctree) -undef -x
> > assembler-with-cpp $(srctree)/arch/$(SRCARCH)/configs/$@ -o
> > generated_defconfig
> > +       $(Q)sed -i -e 's/^[[:space:]]//' generated_defconfig
> >         $(Q)$< $(silent) --defconfig=generated_defconfig $(Kconfig)
> > 
> >  # Added for U-Boot (backward compatibility)
> > 
> > (the diff format is likely to be broken as it's copied from output of
> > git diff output, thus cannot be applied directly)
> > 
> > > —
> > > Nathaniel
> > > 
> > > [1] 
> > > https://lore.kernel.org/all/20250330162421.238483-1-heinrich.schucha...@canonical.com/
> > 
> > Best regards,
> > Yao Zi
> > 
> > [1]: 
> > https://lore.kernel.org/u-boot/174364559512.1379294.15546160892706099529.b4...@konsulko.com/
> 
> I don't recall ever seeing the config warnings, and my config has no lines
> with leading spaces. I've gone ahead and patched my local clang to eliminate
> the leading space issue anyways, since that seems the appropriate place to
> resolve the issue.
> 
> I've also applied your second patch [1] to eliminate the gd issue, and I
> have Heinrich Schuchardt's pllclk patch as well.
> 
> I do not get any console this way — unfortunately there is still no output
> from the SPL, but that is likely due to my use of LLD.
> 
> Do you have any further information on the issue of linking with LLD? Is
> anything more known about this problem yet?

Sadly no, without any serial output it's hard to work on the problem and
I haven't searched through the mailing list for similar reports.
Additionally, I don't have enough time to dig further on the issue...
sorry about it.

I could revisit the linking problem sometime later if it's still there.
May you give ld.bfd a try for now?

> [1] https://lists.denx.de/pipermail/u-boot/2025-April/588038.html
> 
> —
> Nathaniel

Thanks,
Yao Zi

Reply via email to