[PATCH 0/2] Fix binman_sym functionality on RISC-V port
Yao Zi
ziyao at disroot.org
Mon Apr 7 05:37:42 CEST 2025
It's found that BINMAN_SYMBOLS_OK always evaluates to false on RISC-V,
because our linkerscripts don't define symbol __image_copy_start, on
which binman depends for determining the base address of an entry.
Binman simply bails out in case of missing the symbol.
This series first defaults SPL_BINMAN_UBOOT_SYMBOLS to N on RISC-V to
prevent binman from looking for a plain proper U-Boot image, which
isn't desired since binman configuration on RISC-V wraps proper U-Boot
in a FIT image. Then we define __image_copy_start and the paired
__image_copy_end to really fix binman_sym's functionality.
I've tested building with
- ae350_rv64_defconfig
- ae350_rv64_spl_defconfig
- bananapi-f3_defconfig
- k230_canmv_defconfig
- microchip_mpfs_icicle_defconfig
and booting successfully on
- milkv_duo_defconfig
- qemu-riscv64_smode_defconfig
- qemu-riscv64_defconfig
- sifive_unleashed_defconfig
- starfive_visionfive2_defconfig
with either real hardware or QEMU.
Thanks for your time and review.
Yao Zi (2):
spl: riscv: Disable SPL_BINMAN_UBOOT_SYMBOLS by default
riscv: Provide __image_copy_{start_end} symbols in linkerscript
arch/riscv/cpu/u-boot-spl.lds | 2 ++
arch/riscv/cpu/u-boot.lds | 3 +++
common/spl/Kconfig | 2 ++
3 files changed, 7 insertions(+)
--
2.49.0
More information about the U-Boot
mailing list