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

Name Links License Maintainers
DBT-RISE-RISCV github BSD-3-Clause MINRES Technologies
FireSim website, mailing list, github, ISCA 2018 Paper BSD Sagar Karandikar, Howard Mao, Donggyu Kim, David Biancolin, Alon Amid, Berkeley Architecture Research
gem5 SW-dev thread, repository BSD-style Alec Roelke (University of Virginia)
Imperas website Proprietary, models available under Apache 2.0 Imperas
riscvOVPsim github license Imperas
OVPsim website Free for non commercial use, models available under Apache 2.0 Imperas
jor1k website, github BSD 2-Clause Sebastian Macke
QEMU upstream, RISC-V Github GPL Sagar Karandikar (University of California, Berkeley), Bastian Koppelmann (University of Paderborn), Alex Suykov, Stefan O'Rear and Michael Clark (SiFive)
Renode website, github MIT Antmicro
RISC-V Virtual Prototype website, github MIT Vladimir Herdt (University of Bremen, AGRA)
TinyEMU website MIT Fabrice Bellard
Spike github BSD 3-clause Andrew Waterman & Yunsup Lee (SiFive)
Swerv-ISS github GPL - 3 Joseph Rahmeh (Western Digital)

Object toolchain

Binutils

LLVM

Cranelift

Debugging

Gdb

OpenOCD

GNU MCU Eclipse OpenOCD

A binary distribution of OpenOCD with support for RISC-V.

Imperas Multi Processor Debugger

TCF Debugger

C compilers and libraries

GCC

GNU MCU Eclipse RISC-V Embedded GCC (riscv-none-embed-gcc)

A binary distribution of the RISC-V toolchain, intended for bare-metal embedded applications.

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

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

openSUSE

OpenMandriva

  • Maintainer(s): Bernhard "Bero" Rosenkränzer (bero at lindev dot ch)
  • Version: cooker (AKA master)
  • Status: Core packages built, RISC-V added to build server for all new packages. Currently building with gcc and ld.bfd (where OpenMandriva on other architectures defaults to clang and ld.gold). Package set not yet complete.
  • Upstreaming status: upstream
  • Future work: Toolchain changes, port remaining packages
  • RISC-V repository: no separate repository, all merged into upstream
  • Upstream repository: https://github.com/OpenMandrivaAssociation
  • Privileged Spec: 2.0
  • User Spec: 2.0
  • ABI: lp64d, building with -march=rv64imafdc (ports to other subarches may happen in the future)
  • Links: http://openmandriva.org/ http://abf-downloads.openmandriva.org/cooker/repository/riscv64/

Yocto Project/OpenEmbedded

Poky

Gentoo

Parabola GNU/Linux-libre

OpenWrt

januslinux

  • Maintainer(s): nee-san
  • Version: master
  • Status: works 64-bit version only in QEMU. 32-bit has problems with Michael Forney's risc-v musl
  • Upstreaming status:
  • Future work:
  • RISC-V repository:
  • Upstream repository: https://github.com/JanusLinux/janus
  • Privileged Spec:
  • User Spec: 2.2
  • ABI:
  • Links:

Busybox

Buildroot

  • Maintainer(s): Mark Corbin (Embecosm)
  • Version:
    • master branch as of Sept 25, 2018 (64 bit)
    • master branch as of Jan 10, 2019 (32 bit)
  • Status: Basic RISC-V 32-bit and 64-bit support for QEMU virtual target
  • Upstreaming status: upstream
  • Future work: -
  • Upstream repository: https://git.busybox.net/buildroot/
  • Privileged Spec:
  • User Spec:
  • ABI:

FreeBSD

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

NetBSD

Compilers and runtimes for other languages

Go

OCaml

Maxine VM (Java Virtual Machine)

  • Maintainer(s): Maxine team
  • Version: 2.7.0 (?)
  • Status:
  • Upstreaming status: upstream (?)
  • Future work:
  • RISC-V repository:
  • Upstream repository: https://github.com/beehive-lab/Maxine-VM
  • Privileged Spec:
  • User Spec:
  • ABI:

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): Alexey Baturo, Michael Knyszek, Martin Maas
  • contact seanhalle at intensivate dot com to join the porting effort
  • Version:
  • Status: Interpreter near completion (Oct 1, 2018)
  • Upstreaming status:
  • Future work: Modify MIPS backend code generator to emit RISC-V instructions
  • RISC-V repository: contact Sean Halle at Intensivate to be added
  • Upstream repository:
  • Privileged Spec:
  • User Spec: 2.0
  • ABI:

Free Pascal

  • Maintainer(s): Jeppe Johansen and others
  • Version: trunk
  • Status: supports most constructs of RV64IMAFDC but lacks hard float calling convention support
  • Upstreaming status: integrated in trunk september 2018
  • Future work: ABI work, optimizations, bug fixes, and full RV32 support
  • Upstream repository: https://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/
  • Privileged Spec: 1.9.1
  • User Spec: 2.2
  • ABI: Integer calling convention only

Nim

  • Maintainer(s): Andreas Rumpf and others
  • Version: 0.18.1
  • Status: Initial support added
  • RISC-V repository: same as upstream
  • Upstream repository: https://nim-lang.org/

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

Mecrisp-Quintus

Ada (GNAT)

Rust

IDEs

GNU MCU Eclipse

An open source project that includes a family of Eclipse plug-ins and tools for multi-platform embedded development, based on GNU toolchains; includes support for RISC-V.

Help Wanted

  • V8
  • Node.js
  • Dart