Giter Site home page Giter Site logo

kyleparker-gongyuan / firemarshal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from firesim/firemarshal

0.0 0.0 0.0 30.54 MB

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

Home Page: https://docs.fires.im/en/latest/Advanced-Usage/Workloads/index.html

License: Other

Shell 6.86% Python 49.46% C 40.17% Assembly 2.70% Makefile 0.76% HTML 0.06%

firemarshal's Introduction

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. Please install Conda using the Chipyard documentation here.

Next you can run the following command to create a FireMarshal environment called firemarshal.

conda env create -f ./conda-reqs.yaml -n 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 you gave during environment creation

In addition to standard packages added in the conda environment, you will need a RISC-V compatible toolchain and the RISC-V ISA simulator (Spike). A RISC-V compatible toolchain can be obtained by the following:

conda install -n firemarshal -c ucb-bar riscv-tools

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).

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.

firemarshal's People

Contributors

nathantp avatar sagark avatar abejgonzalez avatar a0u avatar zhemao avatar raghav-g13 avatar davidbiancolin avatar alonamid avatar jerryz123 avatar donggyukim avatar timsnyder avatar timsnyder-siv avatar tmagik avatar amaro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.