Recommended FPGA design for Linux RV32?

We are developing a JIT compiler and so far we got an RV64 version to work well on Unleashed, GEM5 and Spike. I am trying to extend this to also work on RV32. So far I am using 32-bit Spike with Linux, but I’d like to be able to run on some kind of FPGA implementation. I have played with the e300 on the Arty but I don’t believe that can boot Linux? We discussed this briefly at the last Workshop in Zürich and it was mentioned that 32-bit Linux runs fine on the lowRISC (probably it would take a bigger FPGA to fit things like MMU, that’s not a problem), but looking at the lowRISC site and github, it looks like these days lowRISC is RV64 only? What is the “recommended” chip design to develop RV32-Linux on?

We don’t support 32-bit Linux parts. We only have 64-bit Linux parts. I don’t know if it is possible to build a rv32-linux capable part from the freedom repo. I’m not a hardware guy. This is a SiFive forum, and lowrisc isn’t a SiFive part, so this may not be the best place to ask about that.

qemu is faster than spike and supports more devices, which makes it more useful in general for booting linux.

None of the desktop linux distros support rv32, though I think gentoo plans to support it. But Open Embedded does already support a rv32 build which will boot on qemu. Just change the default MACHINE=qemuriscv64 to MACHINE=qemuriscv32. This is what I use when I need to test a toolchain feature on a rv32 linux system. See the github.com/riscv/meta-riscv repo.

1 Like