blob: 07ad8c7ded981c57c85248f2c1ecb9f2da11be36 [file] [log] [blame] [view]
# Springbok SW Repository
This project hosts SW programs for RISC-V 32-bit baremetal machine with vector
extension (Springbok). It provides the BSP to build the SW artifacts to run on
Springbok.
## Prerequisite
If you get this project from a repo manifest, you are all set. If not,
you need to have following projects as well to build the project successfully.
* [PigWeed](https://opensecura.googlesource.com/3p/google/pigweed) repository.
It needs to be placed at `<dir>/sw/pigweed`.
* RISC-V 32-bit crosscompile LLVM toolchain. It needs to be placed at
`<dir>/cache/toolchain_iree_rv32imf`
This project needs to be at `<dir>/sw/vec`.
## Code structure
-*cmake*: CMake macros and cross compile toolchain setup
-*scripts*: Helper scripts to generate and run the tests
-*softrvv*: scalar mockup for the RVV instructions
-*springbok*: BSP for the core, including the starting assembly, linker script,
and gloss library support
-*tests*: RVV instruction unit tests
## Build the project
If you get this project from repo manifest, you can build the artifacts with `m
springbok`.
If you download this project alone, you need to run the following from the
top-level directory
```bash
cmake -B <output dir> -G Ninja \
-DRISCV_TOOLCHAIN_ROOT=$(TOOLCHAINRV32_PATH) \
<dir>/sw/vec
cmake --build <output dir> --target all
```
## Run the executables
You can run Renode emulation with the built executables. If you run from the repo,
you can run `sim_springbok` for Renode simulation.
Out-of-repo emulation is possible but requires more steps.
## Test the executables
This project uses CMake's ctest to test the executables
```bash
ctest --test-dir <output dir>
```