https://github.com/riscv-software-src/riscv-pk
RISC-V Proxy Kernel
https://github.com/riscv-software-src/riscv-pk
Last synced: 22 days ago
JSON representation
RISC-V Proxy Kernel
- Host: GitHub
- URL: https://github.com/riscv-software-src/riscv-pk
- Owner: riscv-software-src
- License: other
- Created: 2011-08-26T20:02:36.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2025-04-30T01:01:38.000Z (about 1 month ago)
- Last Synced: 2025-04-30T02:19:07.742Z (about 1 month ago)
- Language: C
- Homepage:
- Size: 1.42 MB
- Stars: 628
- Watchers: 57
- Forks: 317
- Open Issues: 88
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
RISC-V Proxy Kernel and Boot Loader
=====================================About
---------The RISC-V Proxy Kernel, `pk`, is a lightweight application execution
environment that can host statically-linked RISC-V ELF binaries. It is
designed to support tethered RISC-V implementations with limited I/O
capability and thus handles I/O-related system calls by proxying them to
a host computer.This package also contains the Berkeley Boot Loader, `bbl`, which is a
supervisor execution environment for tethered RISC-V systems. It is
designed to host the RISC-V Linux port.Build Steps
---------------We assume that the RISCV environment variable is set to the RISC-V tools
install path, and that the riscv-gnu-toolchain package is installed.
Please note that building the binaries directly inside the source
directory is not supported; you need to use a separate build directory.$ mkdir build
$ cd build
$ ../configure --prefix=$RISCV --host=riscv64-unknown-elf
$ make
$ make installAlternatively, the GNU/Linux toolchain may be used to build this package,
by setting `--host=riscv64-unknown-linux-gnu`.By default, 64-bit (RV64) versions of `pk` and `bbl` are built. To
built 32-bit (RV32) versions, supply a `--with-arch=rv32i_zicsr_zifencei` flag to the
configure command.
To process RVC binaries, supply a `--with-arch=rv32ic_zicsr_zifencei` flag, because the
emulation code (floating point and miss-aligned load and store) is different in
the RVC case.The `install` step installs 64-bit build products into a directory
matching your host (e.g. `$RISCV/riscv64-unknown-elf`). 32-bit versions
are installed into a directory matching a 32-bit version of your host (e.g.
`$RISCV/riscv32-unknown-elf`).OpenBSD Build Steps
-------------------Install the riscv-gnu-toolchain, and follow generic build steps.
# pkg_add riscv-elf-binutils riscv-elf-gcc riscv-elf-newlib