This document summarizes the evolution of the RISC-V software ecosystem from 2015 to 2020. It describes how initial ports of key software in 2015, like GCC and Linux, have expanded to include upstream support in most open source software projects today. It outlines remaining priorities like completing support for specifications and filling gaps in programming language and application software support. The document concludes by encouraging continued collaboration to further mature the RISC-V software ecosystem.
7. RISC-V Software Ecosystem (2016)
• I gave a RISC-V Software Ecosystem talk at the 3rd RISC-V Workshop
• One year after the First Workshop
• Several new RISC-V community porting efforts since Andrew’s talk!
• Debian, FreeBSD, NetBSD, seL4, coreboot, UEFI
• Still many gaps as of 2016:
• RISC-V software ports were all out-of-tree
• Privileged specification was still in development
• Linux distribution and OS support in very early stages
• Developer experience was not ideal (Step 1: Build riscv-gnu-toolchain)
• Documentation was lacking
8. RISC-V Software Ecosystem (2020)
• 5 years since Andrew’s talk at the First Workshop
• Base Unprivileged and Privileged specifications ratified in 2019
• Upstream RISC-V support for most open source software
• GCC, LLVM, QEMU, Debian, Fedora, FreeRTOS, Zephyr, …
• Pre-built toolchains are available from Linux distributions and
commercial vendors (Mentor, IAR, Segger, Green Hills, …)
• For Debian users: apt-get gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
• Making progress on documentation
• RISC-V Getting Started Guide - Getting started with Linux and Zephyr
• RISC-V Reader - Basics of the RISC-V ISA
9. RISC-V Priorities: Then (2010) and Now (2020)
Krste Asanović, RISC-V Global Forum 2020 Keynote
10. More Software Leads to More Hardware
(Leads to More Software...)
Software
Hardware
Accelerating the
Virtuous Cycle
11.
12. RISC-V Toolchains and IDEs
• Open source RISC-V toolchains
• GCC + Binutils
• clang/LLVM
• CompCert
• Commercial RISC-V toolchains and IDEs
• Mentor Sourcery CodeBench Lite
• IAR Embedded Workbench
• Segger Embedded Studio
• Green Hills MULTI IDE
• Ashling RiscFree IDE
• SiFive Freedom Studio
• Microchip SoftConsole
• Andes Andesight IDE
13. Operating Systems
• Linux: Debian, Fedora, OpenSUSE, Gentoo, Buildroot, OpenWRT,
OpenEmbedded/Yocto
• 95% of Debian packages build on RISC-V!
• Pre-built images are available (including Gnome images)
• RV32 in progress: Alistair Francis, "Where is the 32-bit glibc port?", Linux
Plumbers RISC-V MC
• Drew Fustini, “Linux on Open Hardware with RISC-V” @ 2pm, Dec. 8th
• BSD: FreeBSD, NetBSD
• FreeBSD was one of the first to merge RISC-V support in 11.0
• seL4 microkernel
• Gernot Heiser, “seL4 on RISC-V: Fast, Secure, Open-source and Proved
Bug-free OS Kernel” @ 3pm, Dec. 9th
14. Operating Systems
• Real-time OS: FreeRTOS, Zephyr, RTEMS, NuttX, VxWorks, PikeOS
• SiFive and Andes have released AWS-qualified devices for FreeRTOS
• VxWorks demoed RISC-V support at RISC-V Summit 2019
• Keynote: “Building an Open Edge Machine Learning Ecosystem with
RISC-V, Zephyr, TensorFlow Lite Micro and Renode” @ 10am, Dec. 8th
• Tock microcontroller OS
• Alistair Francis, “Porting Tock to OpenTitan” @ 1:30pm, Dec. 9th
• xv6 educational OS kernel now targets RISC-V
• https://pdos.csail.mit.edu/6.828/2020/xv6.html
15. Bootloaders, Firmware, Simulators, Hypervisors
• Bootloaders/Firmware: GRUB, u-Boot, coreboot, BBL, OpenSBI, UEFI
• RISC-V support landed in EDK2 open-source UEFI implementation
• UEFI support merged during Linux Kernel 5.10 merge window
• Atish Patra, "Making RISC-V EBBR Compatible", Linux Plumbers RISC-V MC
• Simulators/Emulators: QEMU, Renode, Spike, gem5, Tinyemu, OVPSim, ...
• Keynote: “Building an Open Edge Machine Learning Ecosystem with RISC-V,
Zephyr, TensorFlow Lite Micro and Renode” @ 10am, Dec. 8th
• Hypervisors: KVM, Xvisor
• Support for v0.6.1 of draft H extension
• Anup Patel, "RISC-V Hypervisor Extension: Where are We? What Next?", Linux
Plumbers RISC-V MC
16. Programming Language Support
• RISC-V supports most popular programming languages
• Upstream support for Go, Rust, and OCaml!
• Progress on the Java front
• PLCT Lab and Huawei bringing up OpenJDK port
• Maxine VM ported to RISC-V
• Cheng Jin, “OpenJ9 JDK on RISC-V” @ 2:30pm, Dec. 8th
• Progress on the Javascript front too
• PLCT Lab and Huawei are upstreaming RISC-V patches for V8 engine
• Peng Wu & Brice Dobry, “Unlocking Javascript: V8 on RISC-V”, RISC-V
Global Forum 2020
17.
18. Software Support for Key Specs
• “Focus and Finish Things” in 2021
• Pushing key specifications over the finish line
• Upstream software support as specs are ratified
• Toolchain, OS, libraries, application software, ...
• Upstreaming support for the following specs:
• H: Hypervisor Extension
• B: Bit Manipulation Extension
• V: Vector Extension
• K: Cryptography Extension
19. Defining a RISC-V Platform Standard
• Standardize non-ISA interfaces at OS/HW boundary
• Interrupt Controllers
• Cache Management
• Power Management
• IOMMUs
• Booting
• Initial target platforms:
• UNIX-class embedded platform (Level 0)
• UNIX-class server platform (Level 0)
• Al Stone, "Why RISC-V Is Not Nearly Boring Enough", Linux Plumbers
RISC-V MC
20. Maturing the RISC-V Ecosystem
• Filling in remaining gaps
• V8 (Javascript) - Upstreaming to V8 project now
• OpenJDK (Java) - Port in progress
• Additional runtimes and software for important application domains
• Push toward 100% Debian/Fedora packages (Firefox, Haskell, …)
• Help Wanted!
• Refine existing software
• Improve performance and code size
• Graduate RISC-V software to Tier 1/Stable/Official status
21. Summary
• RISC-V Software has grown leaps and bounds in the last 5 years
• See RISC-V Software List for details
• RISC-V is now a software-driven project
• Working to “run all software” on RISC-V (and run it well)
• We need your help building out the software ecosystem
• Please join the RISC-V International Software Committee and sw-dev
mailing list to coordinate on software work
22. December 8-10 | Virtual Event
Thank you for joining us.
Contribute to the RISC-V conversation on social!
#RISCVSUMMIT @risc_v