Ariane

Ariane is a 6-stage RISC-V CPU. For details, refer to https://github.com/pulp-platform/ariane

Build the GCC toolchain

  1. It is recommended to build the toolchain from source.

     git clone https://github.com/riscv/riscv-gnu-toolchain.git
     cd riscv-gnu-toolchain
     git submodule update --init --recursive
     export RISCV=/opt/riscv
     ./configure --prefix="${RISCV}" --enable-multilib
     make linux
    

    After it is built, add the $RISCV/bin folder to your PATH. The built toolchain works for both 32-bit and 64-bit.

  2. Alternatively, any pre-built toolchain with multilib enabled should work.

Building seL4test

Checkout the sel4test project using repo as per seL4Test

repo init -u https://github.com/seL4/sel4test-manifest.git
repo sync
mkdir cbuild
cd cbuild
../init-build.sh -DPLATFORM=ariane -DRISCV64
# The default cmake wrapper sets up a default configuration for the target platform.
# To change individual settings, run `ccmake` and change the configuration
# parameters to suit your needs.
ninja

Generated binaries can be found in the images/ directory.

Running seL4test

Ariane only provides support for the Genesys 2 board

  1. Compile the bitstream from source or download the pre-build bitstream from here.

  2. Prepare the SD card
    sudo sgdisk --clear --new=1:2048:67583 --new=2 --typecode=1:3000 --typecode=2:8300 /dev/sdX
    sudo dd if=images/sel4test-driver-image-riscv-ariane of=/dev/sdX1
    

    Note that the “sgdisk” command above also creates a second partition for Linux rootfs, you could download a pre-build Linux kernel from here to verify that the FPGA is working correctly.

  3. Booting from the SD card and observing the output from the UART port.