127 lines
4.5 KiB
ReStructuredText
127 lines
4.5 KiB
ReStructuredText
External Tutorial Setup
|
|
===================================
|
|
|
|
This section of the documentation is for external attendees of a
|
|
in-person FireSim and Chipyard tutorial.
|
|
Please follow along with the following steps to get setup if you already have an AWS EC2 account.
|
|
|
|
.. Note:: These steps should take around 2hrs if you already have an AWS EC2 account.
|
|
|
|
1. Start following the FireSim documentation from :ref:`initial-setup` but ending at :ref:`setting-up-firesim-repo` (make sure to **NOT** clone the FireSim repository)
|
|
|
|
2. Run the following commands:
|
|
|
|
.. code-block:: bash
|
|
|
|
#!/bin/bash
|
|
|
|
FIRESIM_MACHINE_LAUNCH_GH_URL="https://raw.githubusercontent.com/firesim/firesim/final-tutorial-2022-isca/scripts/machine-launch-script.sh"
|
|
|
|
curl -fsSLo machine-launch-script.sh "$FIRESIM_MACHINE_LAUNCH_GH_URL"
|
|
chmod +x machine-launch-script.sh
|
|
./machine-launch-script.sh
|
|
|
|
source ~/.bashrc
|
|
|
|
export MAKEFLAGS=-j16
|
|
|
|
sudo yum install -y nano
|
|
|
|
mkdir -p ~/.vim/{ftdetect,indent,syntax} && for d in ftdetect indent syntax ; do wget -O ~/.vim/$d/scala.vim https://raw.githubusercontent.com/derekwyatt/vim-scala/master/$d/scala.vim; done
|
|
|
|
echo "colorscheme ron" >> /home/centos/.vimrc
|
|
|
|
|
|
cd ~/
|
|
|
|
(
|
|
git clone https://github.com/ucb-bar/chipyard -b final-tutorial-2022-isca-morning chipyard-morning
|
|
cd chipyard-morning
|
|
./scripts/init-submodules-no-riscv-tools.sh --skip-validate
|
|
|
|
./scripts/build-toolchains.sh ec2fast
|
|
source env.sh
|
|
|
|
./scripts/firesim-setup.sh --fast
|
|
cd sims/firesim
|
|
source sourceme-manager.sh
|
|
|
|
cd ~/chipyard-morning/sims/verilator/
|
|
make
|
|
make clean
|
|
|
|
cd ~/chipyard-morning
|
|
chmod +x scripts/repo-clean.sh
|
|
./scripts/repo-clean.sh
|
|
git checkout scripts/repo-clean.sh
|
|
|
|
)
|
|
|
|
cd ~/
|
|
|
|
(
|
|
git clone https://github.com/ucb-bar/chipyard -b final-tutorial-2022-isca chipyard-afternoon
|
|
cd chipyard-afternoon
|
|
./scripts/init-submodules-no-riscv-tools.sh --skip-validate
|
|
|
|
./scripts/build-toolchains.sh ec2fast
|
|
source env.sh
|
|
|
|
./scripts/firesim-setup.sh --fast
|
|
cd sims/firesim
|
|
source sourceme-manager.sh
|
|
cd sim
|
|
unset MAKEFLAGS
|
|
make f1
|
|
export MAKEFLAGS=-j16
|
|
|
|
cd ../sw/firesim-software
|
|
./init-submodules.sh
|
|
marshal -v build br-base.json
|
|
|
|
cd ~/chipyard-afternoon/generators/sha3/software/
|
|
git submodule update --init esp-isa-sim
|
|
git submodule update --init linux
|
|
./build-spike.sh
|
|
./build.sh
|
|
|
|
cd ~/chipyard-afternoon/generators/sha3/software/
|
|
marshal -v build marshal-configs/sha3-linux-jtr-test.yaml
|
|
marshal -v build marshal-configs/sha3-linux-jtr-crack.yaml
|
|
marshal -v install marshal-configs/sha3*.yaml
|
|
|
|
cd ~/chipyard-afternoon/sims/firesim/sim/
|
|
unset MAKEFLAGS
|
|
make f1 DESIGN=FireSim TARGET_CONFIG=WithNIC_DDR3FRFCFSLLC4MB_WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.QuadRocketConfig PLATFORM_CONFIG=BaseF1Config
|
|
make f1 DESIGN=FireSim TARGET_CONFIG=WithNIC_DDR3FRFCFSLLC4MB_WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.LargeBoomConfig PLATFORM_CONFIG=BaseF1Config
|
|
make f1 DESIGN=FireSim TARGET_CONFIG=WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.RocketConfig PLATFORM_CONFIG=BaseF1Config
|
|
make f1 DESIGN=FireSim TARGET_CONFIG=WithNIC_DDR3FRFCFSLLC4MB_WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.Sha3RocketConfig PLATFORM_CONFIG=BaseF1Config
|
|
make f1 DESIGN=FireSim TARGET_CONFIG=DDR3FRFCFSLLC4MB_WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.Sha3RocketConfig PLATFORM_CONFIG=BaseF1Config
|
|
make f1 DESIGN=FireSim TARGET_CONFIG=DDR3FRFCFSLLC4MB_WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.Sha3RocketPrintfConfig PLATFORM_CONFIG=WithPrintfSynthesis_BaseF1Config
|
|
export MAKEFLAGS=-j16
|
|
|
|
cd ~/chipyard-afternoon
|
|
chmod +x scripts/repo-clean.sh
|
|
./scripts/repo-clean.sh
|
|
git checkout scripts/repo-clean.sh
|
|
|
|
)
|
|
|
|
3. Next copy the following contents and replace your entire ``~/.bashrc`` file with this:
|
|
|
|
.. code-block:: bash
|
|
|
|
# .bashrc
|
|
# Source global definitions
|
|
if [ -f /etc/bashrc ]; then
|
|
. /etc/bashrc
|
|
fi
|
|
# Uncomment the following line if you don't like systemctl's auto-paging feature:
|
|
# export SYSTEMD_PAGER=
|
|
# User specific aliases and functions
|
|
cd /home/centos/chipyard-afternoon && source env.sh && cd sims/firesim && source sourceme-manager.sh && cd /home/centos/
|
|
export FDIR=/home/centos/chipyard-afternoon/sims/firesim/
|
|
export CDIR=/home/centos/chipyard-afternoon/
|
|
|
|
4. All done! Now continue with the in-person tutorial.
|