Skip to content

KVM RISC V 64bit on FireSim

Atish Patra edited this page Feb 11, 2021 · 17 revisions

Currently, we can boot RISC-V 64bit SMP Guest using KVM RISC-V on FireSim. The FPGA design is based on Rocket core with H extension enabled. The Rocket-H design is developed by @sandro2pinto & @josecm and available in Firesim Framework. This document will focus on the instructions on how to build/run various components to boot Guest Linux using KVM RISC-V.

To achieve this, we need following components:

  1. Rocket core RISC-V Hypervisor Extension enabled image in FireSim
  2. OpenSBI Firmware
  3. Common Host & Guest Kernel
  4. KVMTOOL
  5. Host RootFS with KVMTOOL and Guest Kernel

The below sub-sections provide detailed steps to build and run RISC-V KVM on FireSim. All components except FireSim require a RISC-V 64bit cross-compiler so for we use Linux multilib toolchain from RISC-V GNU Compiler Toolchain project (Refer, https://github.com/riscv/riscv-gnu-toolchain). If you have a different RISC-V 64bit cross-compiler then set CROSS_COMPILE environment variable appropriately in steps below.

Reference

  1. https://github.com/sandro2pinto/bao-rocket-h-firesim
Clone this wiki locally