Skip to content
This repository has been archived by the owner on Jan 16, 2023. It is now read-only.

RISC V Software Projects

Martin Maas edited this page Feb 25, 2016 · 2 revisions

This page contains a list of software projects that need to get done and that are related to RISC-V. If you're looking to get started with RISC-V software development, picking a small project from this list would be a good place to start. It's recommended that you contact the software mailing list sw-dev@lists.riscv.org before starting, just to ensure that this entry is up to date.

Small Projects

Projects in this list are expected to take less than a week for someone familiar with the sort of work that needs to be done. Since these projects are small enough to get done accidentally, it's best to check with the mailing list (or poke around http://github.com/riscv/ to see if there's a port in progress) before starting them to make sure they haven't already been done. If you're confused as to exactly what needs to be done, contacting sw-dev@lists.riscv.org is probably the right thing to do -- all these projects are designed to be closed-ended.

libbacktrace: GCC's stack backtracing library

Status: unclaimed

GCC contains a library to do stack tracing that hasn't been ported to RISC-V.

libunwind: stack backtracing library

Status: unclaimed

This is required for google-perftools, a profiling tool.

virtio support for bbl

Status: unclaimed

The RISC-V driver model advocates that the SEE only exposes virtualized devices to the supervisor, but spike currently emulates real hardware devices. The result is that the RISC-V Linux port contains HTIF code, which really shouldn't be there.

Framebuffer driver for Xilinx

Status: see Martin Maas maas@eecs.berkeley.edu

Building a frame buffer driver to use the Zedboard's HDMI output

Large Projects

Projects in this list are expected to take more than a week. Since beginning one of these projects is a big task, it would be best to synchronize with the mailing list to see if anyone else interested in is working on the project before attempting to start it on your own.

mozilla-central: Mozilla's main code

Status: unclaimed

We don't have a web browser that works on RISC-V. Porting Mozilla will be a big project, since it contains lots of JITs that will need to be targeted to RISC-V.

lld: LLVM's linker

Status: unclaimed

LLVM contains a linker, but we haven't ported it to RISC-V yet. Since our port of GNU's ld is actually fairly complicated (we use linker relaxations aggressively), this is a fairly intensive project.

OpenJDK

Status: In progress, see Michael Knyszek mknyszek@berkeley.edu

Zero interpreter is up and running, template interpreter is being ported.

mesa: Software OpenGL rendering library

Status: unclaimed, see Palmer Dabbelt palmer.dabbelt@eecs.berkeley.edu

The Mesa OpenGL rendering library uses LLVM to optimize graphics routines. We'd like to port this to RISC-V so we can benchmarks graphics applications on our implementations.

OpenBLAS (or any other optimized BLAS)

Status: unclaimed, see Palmer Dabbelt palmer.dabbelt@eecs.berkeley.edu

There is no optimized BLAS for RISC-V, this looks like the best one to port.

FreeRTOS

Status: some initial progress, ask Martin Maas maas@eecs.berkeley.edu

We'd like to have a port of FreeRTOS for RISC-V.