Software Status

Edit on GitHub

This content is reproduced for convenience from the GitHub Wiki page on this topic.

The original page is available at:

https://github.com/riscv/riscv-wiki/wiki/RISC-V-Software-Status

RISC-V Software Ecosystem Overview

This document captures the status of the RISC-V Software Ecosystem. Please add to the list and fix inaccuracies.

We would like to enlist community help for the software ports in the Help Wanted section.

Simulators

OVPsim

  • Status: freely available for non-commercial usage
  • Development: simulator, models and platforms actively being developed
  • Maintainer(s): Imperas Software (www.imperas.com)
  • Version: latest released listed on https://en.wikipedia.org/wiki/OVPsim
  • Website: http://www.ovpworld.org/riscv
  • Privileged Spec: 1.10
  • User Spec: 2.2
  • Processor ISA subsets (under development): RV32M, RV32A, RV32F, RV32D, RV32E, RV32C, RV32G, RV64I, RV64M, RV64A, RV64F, RV64D, RV64E, RV64C, RV64G
  • Cores modeled (under development): SiFive E31, E51; Andes: N25, NX25
  • SoC, Modules, Platforms (under development): Microsemi: SmartFusion2, PolarFire, RTG4, IGLOO2
  • Licensing: models available under Apache 2.0 open source license

Spike

  • Maintainer(s): Andrew Waterman (SiFive), Yunsup Lee (SiFive)
  • Version: HEAD
  • Future work:
  • Upstream repository: https://github.com/riscv/riscv-isa-sim
  • Privileged Spec: 1.9.1
  • User Spec: 2.0
  • ABI:

Imperas

  • Status: commercially supported solution
  • Website: http://www.imperas.com/riscv
  • Technology: JIT Code Morphing simulator running 1,000 MIPS speed with over 170 CPU models of all ISAs including 10+ RISC-V processor models
  • RISC-V ISS Product: very fast simulation of any RISC-V core with semihosting and GDB/Eclipse debug
  • RISC-V system emulator with library of over 200 components of Ethernet, USB, CAN, UARTs, and many other peripherals. Standard platforms available or develop your own virtual platforms
  • Multicore debugger available for SMP and AMP heterogeneous multi-core and many-core systems
  • Models boot standard OS such as FreeRTOS, Linux (under development)
  • High Speed: there a parallel simulation option called QuantumLeap to make use of the host PC parallelism to gain max simulation speed
  • Licensing: models available under Apache 2.0 open source license

QEMU

  • Maintainer(s): Sagar Karandikar (University of California, Berkeley), Bastian Koppelmann (University of Paderborn), Alex Suykov, Stefan O'Rear
  • Version: 2.7.50
  • Upstreaming status: Patches submitted (linux-user mode). Patches will need to be revised based on reviewer feedback.
  • Future work: PLIC support. Upstreaming system mode (after privileged spec stabilizes, per upstream request)
  • RISC-V repository: https://github.com/riscv/riscv-qemu
  • Upstream repository: http://git.qemu.org/qemu.git
  • Privileged Spec: 1.9.1
  • User Spec: 2.0
  • ABI:

gem5

Angel

  • Maintainer(s): Sagar Karandikar (University of California, Berkeley)
  • Version:
  • Future work:
  • RISC-V repository: https://github.com/riscv/riscv-angel
  • Privileged Spec:
  • User Spec: 2.0
  • ABI:

RISCVEMU

jor1k

Object toolchain

Binutils

LLVM

Cretonne

Debugging

Gdb

OpenOCD

Imperas Multi Processor Debugger

C compilers and libraries

GCC

clang

CompCert

Glibc

Newlib

  • Maintainer(s): Kito Cheng (Andes)
  • Version: 2.5.0
  • Status: Upstream, RISC-V support available starting in 2.5.0
  • Future work: Prepare patches for review.
  • RISC-V repository: https://github.com/riscv/riscv-newlib
  • Upstream repository: git://sourceware.org/git/newlib-cygwin.git
  • Privileged Spec:
  • User Spec: 2.0
  • ABI:

Musl

  • Maintainer(s):
  • Version:
  • Status:
  • Upstreaming status:
  • Future work:
  • RISC-V repository:
  • Upstream repository:
  • Privileged Spec:
  • User Spec: 2.0
  • ABI:

Boot loaders and monitors

coreboot

  • Maintainer(s): Ron Minnich (Google), Jonathan Neuschäfer
  • Version: master
  • Status: runs on spike, lowRISC/Nexys4DDR. Linux doesn't quite work yet.
  • Upstreaming status: upstream
  • Future work:
  • RISC-V repository:
  • Upstream repository: https://review.coreboot.org/cgit/coreboot.git/
  • Privileged Spec: 1.9
  • User Spec: 2.0
  • ABI:

More information:

UEFI

  • Maintainer(s): Abner Chang, Dong Wei (HP Enterprise)
  • Version:
  • Status:
  • Upstreaming status:
  • Future work:
  • RISC-V repository:
  • Upstream repository:
  • Privileged Spec:
  • User Spec: 2.0
  • ABI:

https://content.riscv.org/wp-content/uploads/2016/01/Tues1415-RISC-V-and-UEFI.pdf

Proxy Kernel/BBL

Kernels

Linux Kernel

seL4

RTEMS

FreeRTOS

  • Maintainer(s):
  • Version:
  • Status:
  • Upstreaming status:
  • Future work:
  • RISC-V repository:
  • Upstream repository:
  • Privileged Spec:
  • User Spec: 2.0
  • ABI:

Apache Mynewt

Zephyr

Operating systems

Fedora

  • Maintainer(s): Richard WM Jones, Stefan O’Rear, David Abdurachmanov
  • Version: 25
  • Status: Packages from @Core group (except dracut and plymouth) built against an old ABI; on hold until the bootstrap can be repeated and automated
  • Upstreaming status: Some changes upstreamed
  • Future work: Redo bootstrap with gcc-7, upstream all patches
  • RISC-V repository:
  • Upstream repository:
  • Privileged Spec: (depends on kernel used)
  • User Spec: 2.0
  • ABI: ~ September 2016 (not gcc-7)
  • Links: http://fedoraproject.org/wiki/Architectures/RISC-V

Debian

Poky

Gentoo

Busybox

Buildroot

FreeBSD

https://content.riscv.org/wp-content/uploads/2016/01/Tues1445-freebsd-riscv-1.pdf

NetBSD

Compilers and runtimes for other languages

Go

OCaml

Jikes RVM (Java Virtual Machine)

  • Maintainer(s): Martin Maas (University of California, Berkeley)
  • Version:
  • Status:
  • Upstreaming status:
  • Future work:
  • RISC-V repository: Not yet public
  • Upstream repository: https://github.com/JikesRVM/JikesRVM
  • Privileged Spec:
  • User Spec: 2.0
  • ABI:

OpenJDK/HotSpot (Java Virtual Machine)

  • Maintainer(s): Michael Knyszek, Martin Maas (University of California, Berkeley)
  • Version:
  • Status:
  • Upstreaming status:
  • Future work:
  • RISC-V repository: Not yet public
  • Upstream repository:
  • Privileged Spec:
  • User Spec: 2.0
  • ABI:

Free Pascal

Forth kernels

muForth

lbForth

  • Maintainer(s): Lars Brinkhoff
  • Version:
  • Status:
  • Upstreaming status: N/A
  • Future work:
  • RISC-V repository: N/A
  • Upstream repository: https://github.com/larsbrinkhoff/lbForth
  • Privileged Spec:
  • User Spec: 2.0
  • ABI: N/A

Help Wanted

  • V8
  • Node.js
  • Dart
  • Rust