History of the FreeBSD/RISC-V Port
This page describes the history of the FreeBSD/RISC-V port, an adaptation of the FreeBSD Operating System to run on the RISC-V Instruction-Set Architecture (ISA). As a result of this work, FreeBSD is able to boot to multi-user mode on the Spike simulator and QEMU emulator. Following a number of commits to the FreeBSD subversion repository in January 2016 (see below), FreeBSD was the first operating system to have bootable in-tree support for RISC-V. This work was described in an EE Times article on the January 2016 RISC-V workshop. This work was supported by the DARPA CTSRD Project at the University of Cambridge Computer Laboratory and was led by RuslanBukin.
The FreeBSD Foundation posted a blog article describing the RISC-V porting effort and merge of architectural support to the FreeBSD base system in January 2016.
Source
This page contains some details about the FreeBSD/riscv64 development process. Now that RISC-V is an in-tree supported architecture this information is largely kept here for historical purposes.
Delivery into head:
Review |
Commit |
Description |
kernel-toolchain |
||
includes |
||
rtld-elf |
||
libc/libstand |
||
kernel |
||
xlint |
||
jemalloc |
||
compiler-rt |
||
libunwind stubs |
||
gcc config |
||
libproc support |
||
elftoolchain |
||
usr.bin/ldd |
||
libthread_db |
||
libthr |
||
reuse gp for pcpup |
||
N/A |
SMP support |
|
N/A |
DDB support |
|
N/A |
Privilege v1.9 update |
|
N/A |
Operation in machine mode removed |
|
Full softfloat and hardfloat support |
||
Compiler built-in macros changes |
||
Support for privilege spec v1.10 |
||
N/A |
PLIC |
|
N/A |
Make use of SSTATUS_SUM bit |
People
Work on this project was performed by RuslanBukin, ArunThomas, and EdMaste, with RobertWatson, AndrewTurner, DavidChisnall, and others providing advice and moral support.