86 lines
2.9 KiB
Bash
86 lines
2.9 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Run this script on a fresh clone to initialize any patches or tweaks needed
|
||
|
# This assumes you've already fully set up firesim normally (at least run build-setup.sh)
|
||
|
|
||
|
# go to top-level dir
|
||
|
pushd $(git rev-parse --show-toplevel)
|
||
|
export RDIR=$(git rev-parse --show-toplevel)/../../
|
||
|
|
||
|
# Set RDIR (path to top of firesim repo) globally since our scripts use it
|
||
|
#sed -i 's/RDIR=/export RDIR=/' sourceme-f1-manager.sh
|
||
|
#source sourceme-f1-manager.sh
|
||
|
|
||
|
# modify the pk source code to enable pk for custom instructions
|
||
|
pushd $RDIR/toolchains/riscv-tools/riscv-pk
|
||
|
git apply $RDIR/tools/centrifuge/patches/riscv-pk.patch
|
||
|
popd
|
||
|
|
||
|
pushd $RDIR
|
||
|
./scripts/build-toolchains.sh
|
||
|
popd
|
||
|
|
||
|
# modify the midas F1Transform to generate clock gating buffers for blackbox modules:
|
||
|
# pushd $RDIR/sim/midas/src/main/scala/midas/passes
|
||
|
# git apply $RDIR/hls/patches/Fame1Transform.scala.patch
|
||
|
# popd
|
||
|
|
||
|
# Patch Generator.scala and Rocketchip Fragmentator code for HLS
|
||
|
# pushd $RDIR/sim/src/main/scala
|
||
|
# git apply $RDIR/hls/patches/Generator.scala.patch
|
||
|
# cd $RDIR/sim/target-rtl/firechip/rocket-chip/src/main/scala
|
||
|
# git apply $RDIR/hls/patches/Fragmenter.scala.patch
|
||
|
# popd
|
||
|
|
||
|
# Setup all the auxiliary makefiles for RISC-V baremetal compilation for print statement and etc.
|
||
|
#cp $RDIR/tools/centrifuge/makefiles/* $RDIR/sim/target-rtl/firechip
|
||
|
pushd $RDIR/tools/centrifuge/scripts/sw_aux/bm_linker_scripts
|
||
|
make
|
||
|
popd
|
||
|
|
||
|
# Enable custom instruction and loadable kernel modules on riscv-linux
|
||
|
#pushd $RDIR/sw/firesim-software/riscv-linux
|
||
|
#touch arch/riscv/include/asm/module.h && touch arch/riscv/kernel/module-sections.c && touch arch/riscv/kernel/module.lds
|
||
|
#git apply $RDIR/hls/patches/riscv-linux.patch
|
||
|
#popd
|
||
|
#
|
||
|
#pushd $CL_DIR/verif/scripts
|
||
|
#git apply $RDIR/hls/patches/XSim_Makefile.patch
|
||
|
#touch top.vivado.vhd.f
|
||
|
#popd
|
||
|
#
|
||
|
## Add Linux static memory allocator for the accelorator
|
||
|
#cp $RDIR/hls/sw/riscv-linux/hls_mmap_static.c $RDIR/sw/firesim-software/riscv-linux/mm/
|
||
|
#echo "obj-y += hls_mmap_static.o" >> $RDIR/sw/firesim-software/riscv-linux/mm/Makefile
|
||
|
#
|
||
|
## Only on millennium machines:
|
||
|
#if [ "$(domainname)" == "mill" ]; then
|
||
|
# # Enable VCS simluation with BUFGCE libraries.
|
||
|
# pushd $RDIR/sim/midas/src/main/cc
|
||
|
# git apply $RDIR/hls/patches/VCS_Makefile.patch
|
||
|
# popd
|
||
|
#
|
||
|
# # Setup perl modules
|
||
|
# cpan JSON
|
||
|
# cpan Tie::File::AsHash
|
||
|
#
|
||
|
# # Get vivado license stuff in the sourceme
|
||
|
# echo "
|
||
|
#source /ecad/tools/fpga.bashrc
|
||
|
#source /ecad/tools/xilinx/Vivado/2017.1/settings64.sh > /dev/null" >> $RDIR/sourceme-f1-manager.sh
|
||
|
#fi
|
||
|
#
|
||
|
## Only on AWS FPGA AMI machines (see firesim/build-setup-nolog.sh for how this trick works):
|
||
|
#if wget -T 1 -t 3 -O /dev/null http://169.254.169.254/; then
|
||
|
# # # Update Makefiles for Xsim to support VHDL simluation.
|
||
|
# pushd $CL_DIR/verif/scripts
|
||
|
# git apply $RDIR/hls/patches/XSim_Makefile.patch
|
||
|
# touch top.vivado.vhd.f
|
||
|
# popd
|
||
|
|
||
|
# Setup perl modules
|
||
|
# sudo yum install -y cpan
|
||
|
# sudo cpan JSON
|
||
|
# sudo yum install -y perl-Tie-IxHash
|
||
|
#fi
|