Running 32-bit RISC-V Zephyr in LiteX/VexRiscv on Qmtech Wukong Board

zephyr-litex-vexriscv-wukong

We have succeeded in running the Zephyr, a real-time OS, by using the LiteX/VexRiscv to assemble 32-bit RISC-V SoC for the Wukong board, an FPGA board from Qmtech.
We have also been successful with the Arty A7-35T, an FPGA board from Digilent.
These systems are based on the github.com/litex-hub/zephyr-on-litex-vexriscv.

Zephyr

Zephyr is a real-time operating system (OS) being developed as a project of the Linux Foundation.
In v2.6.0, the following 8 kinds of boards are supported as RISC-V boards (14 kinds in v2.7.0-rc4).

  • SiFive HiFive1
  • SiFive HiFive1 Rev B
  • ITE IT8XXX2 series
  • LiteX VexRiscv
  • Microsemi M2GL025 Mi-V
  • RISCV32 Emulation (QEMU)
  • RISCV64 Emulation (QEMU)
  • OpenISA VEGAboard

The LiteX/VexRiscv is also included above.

LiteX/VexRiscv

  • LiteX: Open-source framework for assembling the SoC (CPU + peripherals)
  • VexRiscv: Open-source 32-bit RISC-V soft CPU

The zephyr-on-litex-vexriscv uses Git’s submodule function to build a dedicated LiteX/VexRiscv environment.
Unlike the linux-on-litex-vexriscv referred to in the following article, it uses the github.com/litex-hub/pythondata-cpu-vexriscv without smp as the VexRiscv.

https://www.luffca.com/2021/08/linux-litex-vexriscv-wukong/

Zephyr on Wukong Board

However, the only FPGA board supported by the zephyr-on-litex-vexriscv is the Arty A7 from Digilent.
We have added support for the Qmtech Wukong board (v2: with an onboard microSD slot).
The board is featuring the Xilinx XC7A100T FPGA, although as cheap as $99.9.
The image below shows the binary of samples/subsys/shell/shell_module running.

zephyr-litex-vexriscv-wukong-2

We also plugged the Digilent Pmod I2S2 into the Pmod connector on the board and tested it on the Zephyr.

Summary

We have succeeded in running the Zephyr RTOS by using the LiteX/VexRiscv to assemble the SoCs for the Qmtech Wukong board and the Digilent Arty A7-35T.