Add riscv-test into kelvin SW project

Use bazel's git_repository functionality to pull RISCV's ISA tests
directly since we are not changing anything from there. The
Kelvin-specific changes are the entry point and the pass/fail condition
(replaced with mpause/ebreak)

Also move the repository dependency into repos.bzl to a cleaner
dependency management.

Change-Id: I21d0c1238d1a5888daee7b23e9b41004c4303752
8 files changed
tree: 5b381fb29221ddb8bc5d00db9afe583420f2b609
  1. build_tools/
  2. crt/
  3. examples/
  4. platforms/
  5. tests/
  6. third_party/
  7. toolchains/
  8. .bazelrc
  9. .bazelversion
  10. .gitignore
  11. README.md
  12. WORKSPACE
README.md

Kelvin SW Repository

This project contains the BSP to build the SW artifact that can run on the Kelvin core, and integrated as part of the Shodan repository.

The project supports two build systems -- Bazel and CMake -- for OSS integration reasons. Bazel is used by TFLM flow, while CMake is the build system for IREE.

Prerequisite

If you get this project from Project Shodan manifest, you are all set. If not, you need to have following projects as well to build the project successfully.

  • Kelvin crosscompile toolchain: Under <dir>/cache/toolchain_kelvin

This project needs to be at <dir>/sw/kelvin.

Code structure

  • build_tools: Build tool/rules for both Bazel and CMake
  • crt: Kelvin BSP
  • examples: Source code to build Kelvin SW artifacts.
  • platforms: Crosscompile platform setup for Bazel.
  • third_party: Third party repositories for Bazel.
  • toolchains: Crosscomple toolchain setup for Bazel.

Build the project

Bazel

The project uses Bazel 5.1.1, to align with OpenTitan build system requirements.

bazel build //...

CMake

TODO: Add CMake flow

Run the executable

TODO: Add kelvin simulator

Load the generated .bin binaries to matcha FPGA emulator.