Message ID | 20210830044100.260173-1-damien.lemoal@wdc.com |
---|---|
Headers | show |
Series | Add RV64 NOMMU and Canaan K210 SoC support | expand |
Hello Damien, On Mon, 30 Aug 2021 13:40:51 +0900 Damien Le Moal <damien.lemoal@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 This is using the default Busybox configuration, i.e package/busybox/busybox.config. I haven't tested if other noMMU architectures exhibit the same issue. The package/busybox/busybox-minimal.config causes the same issue. I'm gonna try on ARM noMMU and see. Best regards, Thomas
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@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 ? To be frank, I did not test generic nommu rv64 builds. I should have... > > This is using the default Busybox configuration, i.e > package/busybox/busybox.config. I haven't tested if other noMMU > architectures exhibit the same issue. > > The package/busybox/busybox-minimal.config causes the same issue. > > I'm gonna try on ARM noMMU and see. > > Best regards, > > Thomas >
Hello Damien,
On Mon, 30 Aug 2021 23:32:04 +0200
Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> I'm gonna try on ARM noMMU and see.
Everything builds fine in ARM noMMU, i.e the following defconfig builds fine:
BR2_arm=y
BR2_cortex_m7=y
BR2_ARM_ENABLE_VFP=y
So there is really a RISC-V noMMU specific issue it seems.
Best regards,
Thomas
Hello Damien, On Mon, 30 Aug 2021 21:42:02 +0000 Damien Le Moal <Damien.LeMoal@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@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
On 2021/08/31 6:56, Thomas Petazzoni wrote: > Hello Damien, > > On Mon, 30 Aug 2021 21:42:02 +0000 > Damien Le Moal <Damien.LeMoal@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@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 OK. Got it. Re-spinning with this. Thanks ! > > Best regards, > > Thomas >