Skip to content

Software workload management tool for RISC-V based SoC research. This is the default workload management tool for Chipyard and FireSim.

License

Notifications You must be signed in to change notification settings

firesim/FireMarshal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d5a8b87 · Aug 29, 2024
Aug 29, 2024
Jul 15, 2024
Aug 29, 2024
Apr 20, 2024
Jun 29, 2024
Mar 22, 2023
Nov 11, 2018
Dec 12, 2018
Aug 29, 2024
Jul 7, 2023
Aug 29, 2024
Aug 29, 2024
Mar 10, 2023
Oct 11, 2019
Feb 3, 2022
Feb 14, 2022
Jan 23, 2020
Aug 29, 2024
Jun 6, 2023
Mar 12, 2023

Repository files navigation

FireMarshal

FireMarshal is a workload generation tool for RISC-V based systems that automates constructing boot binaries and filesystem images and their evaluation.

Quick Links

Setup

RECOMMENDED Chipyard/FireSim Integration

The easiest way to use FireMarshal is to run it via Chipyard or FireSim. However, this is not required. To run FireMarshal independently, follow along from the next section (Standalone setup).

Standalone Setup

FireMarshal uses the Conda package manager to help manage system dependencies. This allows users to create an "environment" that holds system dependencies like make, git, etc.

Next you can run the following commands to create a FireMarshal environment called firemarshal with a RISC-V compatible toolchain:

./scripts/setup-conda.sh --conda-env-name firemarshal

To enter this environment, you then run the activate command. Note that this command should be run whenever you want to use FireMarshal so that packages can be properly be added to your PATH.

conda activate firemarshal # or whatever name/prefix you gave during environment creation

In addition to standard packages added in the conda environment, you will need the RISC-V ISA simulator (Spike). To install Spike, please refer to https://github.com/riscv-software-src/riscv-isa-sim.

Finally, if you are running as a user on a machine without sudo access it is required for you to install guestmount for disk manipulation. You can install this through your default package manager (for ex. apt or yum). You can also follow along with the guestmount installation instructions found in the FireSim project.

Basic Usage

If you only want to build bare-metal workloads, you can skip updating submodules. Otherwise, you should update the required submodules by running:

./init-submodules.sh

Building workloads:

./marshal build br-base.json

To run in qemu:

./marshal launch br-base.json

To install into FireSim (assuming FireMarshal is setup within a Chipyard/FireSim installation):

./marshal install br-base.json

Security Note

Be advised that FireMarshal will run initialization scripts provided by workloads. These scripts will have all the permissions your user has, be sure to read all workloads carefully before building them.

Releases

The master branch of this project contains the latest unstable version of FireMarshal. It should generally work correctly, but it may contain bugs or other inconsistencies from time to time. For stable releases, see the release git tags or GitHub releases page.