[Buildroot] [PATCH v4 0/9] Add RV64 NOMMU and Canaan K210 SoC support

Thomas Petazzoni thomas.petazzoni at bootlin.com
Mon Aug 30 21:55:59 UTC 2021


Hello Damien,

On Mon, 30 Aug 2021 21:42:02 +0000
Damien Le Moal <Damien.LeMoal at wdc.com> wrote:

> On 2021/08/31 6:32, Thomas Petazzoni wrote:
> > Hello Damien,
> > 
> > On Mon, 30 Aug 2021 13:40:51 +0900
> > Damien Le Moal <damien.lemoal at wdc.com> wrote:
> >   
> >> Christoph Hellwig (2):
> >>   package/elf2flt: add RISC-V 64-bits support
> >>   package/Makefile.in: Fix NOMMU RISC-V 64-bits toolchain base name
> >>
> >> Damien Le Moal (7):
> >>   arch/config: Make RISC-V 64-bits MMU optional  
> > 
> > Just tested with the first 3 patches applied the following defconfig:
> > 
> > BR2_riscv=y
> > # BR2_USE_MMU is not set
> > 
> > It fails to build with:
> > 
> > /home/thomas/buildroot/buildroot/output/host/riscv64-buildroot-linux-uclibc/bin/elf2flt: Loading to RAM ('-r' option) 
> > is required  
> 
> Yes, this option is mandatory for rv64. The elf2flt patch checks for it, but
> only for rv64. Other architectures should not be affected.
> The following patch that adds the Sipeed MAIX bit board support adds that option
> to busybox build. So I guess that build option should be moved to this patch ?

I see:

+CONFIG_EXTRA_LDFLAGS="-Os -static -Wl,-elf2flt=-r"

in your Busybox configuration file indeed. But what about other
packages ?

If this is needed for all packages built for RISC-V 64-bit noMMU, then
we need to have it set as part of the toolchain wrapper. Actually, the
toolchain wrapper already passes -Wl,-elf2flt, so it would only have to
be tweaked to pass -Wl,-elf2flt=-r instead.

See:

#ifdef BR_BINFMT_FLAT
        "-Wl,-elf2flt",
#endif

in toolchain/toolchain-wrapper.c

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the buildroot mailing list