The links to download SST source code are available here [http://sst-simulator.org/SSTPages/SSTMainDownloads/]. This guide is using the most recent SST version (11.0.0) as of September 2021. The following guide assumes $SST_CORE_HOME
as the location where SST will be installed.
wget https://github.com/sstsimulator/sst-core/releases/download/v11.0.0_Final/sstcore-11.0.0.tar.gz tar xf sstcore-11.0.0.tar.gz
cd sstcore-11.0.0 ./configure --prefix=$SST_CORE_HOME --with-python=/usr/bin/python3-config \ --disable-mpi # optional, used when MPI is not available. make all -j$(nproc) make install
Update PATH
,
export PATH=$SST_CORE_HOME/bin:$PATH
wget https://github.com/sstsimulator/sst-elements/releases/download/v11.0.0_Final/sstelements-11.0.0.tar.gz tar xf sstelements-11.0.0.tar.gz
cd sst-elements-library-11.0.0 ./configure --prefix=$SST_CORE_HOME --with-python=/usr/bin/python3-config \ --with-sst-core=$SST_CORE_HOME make all -j$(nproc) make install
Adding PKG_CONFIG_PATH
to .bashrc
(so pkg-config can find SST .pc file),
echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$SST_CORE_HOME/lib/pkgconfig/" >> ~/.bashrc
At the root of gem5 folder,
scons build/RISCV/libgem5_opt.so -j $(nproc) --without-tcmalloc
At the root of gem5 folder,
cd ext/sst make
Downloading the built bootloader containing a Linux Kernel and a workload,
wget http://dist.gem5.org/dist/develop/misc/riscv/bbl-busybox-boot-exit
Running the simulation
sst --add-lib-path=./ sst/example.py
bbl-busybox-boot-exit
contains an m5 binary, and m5 exit
will be called upon the booting process reaching the early userspace. More information about building a bootloader containing a Linux Kernel and a customized workload is available at [https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/develop/src/riscv-boot-exit-nodisk/].