Add output directory flag to loadarch generate script

This commit is contained in:
Jerry Zhao
2023-04-19 23:43:43 -07:00
parent a31b061770
commit 6a4e2f583d

View File

@@ -3,7 +3,7 @@
set -e set -e
usage() { usage() {
echo "Usage: $0 [OPTIONS] -- [SPIKEFLAGS]" echo "Usage: $0 [OPTIONS]"
echo "" echo ""
echo "Options" echo "Options"
echo " --help -h : Display this message" echo " --help -h : Display this message"
@@ -12,6 +12,7 @@ usage() {
echo " -p <pc> : PC to take checkpoint at [default 0x80000000]" echo " -p <pc> : PC to take checkpoint at [default 0x80000000]"
echo " -i <insns> : Instructions after PC to take checkpoint at [default 0]" echo " -i <insns> : Instructions after PC to take checkpoint at [default 0]"
echo " -m <isa> : ISA to pass to spike for checkpoint generation [default rv64gc]" echo " -m <isa> : ISA to pass to spike for checkpoint generation [default rv64gc]"
echo " -o <out> : Output directory to store the checkpoint in. [default <elf>.<pc>.<insns>.loadarch]"
exit "$1" exit "$1"
} }
@@ -20,6 +21,7 @@ BINARY=""
PC="0x80000000" PC="0x80000000"
INSNS=0 INSNS=0
ISA="rv64gc" ISA="rv64gc"
OUTPATH=""
while [ "$1" != "" ]; while [ "$1" != "" ];
do do
case $1 in case $1 in
@@ -40,26 +42,33 @@ do
-m ) -m )
shift shift
ISA=$1 ;; ISA=$1 ;;
-o )
shift
OUTPATH=$1 ;;
* ) * )
error "Invalid option $1" error "Invalid option $1"
usage 1 ;; usage 1 ;;
esac esac
shift shift
done done
BASEMEM="$((0x80000000)):$((0x10000000))" BASEMEM="$((0x80000000)):$((0x10000000))"
SPIKEFLAGS="-p$NHARTS --pmpregions=0 --isa=$ISA -m$BASEMEM" SPIKEFLAGS="-p$NHARTS --pmpregions=0 --isa=$ISA -m$BASEMEM"
BASENAME=$(basename -- $BINARY) BASENAME=$(basename -- $BINARY)
DIRNAME=$BASENAME.$PC.$INSNS.loadarch
echo "Generating loadarch directory $DIRNAME"
rm -rf $DIRNAME
mkdir -p $DIRNAME
LOADARCH_FILE=$DIRNAME/loadarch if [ -z "$OUTPATH" ] ; then
RAWMEM_ELF=$DIRNAME/raw.elf OUTPATH=$BASENAME.$PC.$INSNS.loadarch
LOADMEM_ELF=$DIRNAME/mem.elf fi
CMDS_FILE=$DIRNAME/cmds_tmp.txt
SPIKECMD_FILE=$DIRNAME/spikecmd.sh echo "Generating loadarch directory $OUTPATH"
rm -rf $OUTPATH
mkdir -p $OUTPATH
LOADARCH_FILE=$OUTPATH/loadarch
RAWMEM_ELF=$OUTPATH/raw.elf
LOADMEM_ELF=$OUTPATH/mem.elf
CMDS_FILE=$OUTPATH/cmds_tmp.txt
SPIKECMD_FILE=$OUTPATH/spikecmd.sh
echo "Generating state capture spike interactive commands in $CMDS_FILE" echo "Generating state capture spike interactive commands in $CMDS_FILE"
echo "until pc 0 $PC" >> $CMDS_FILE echo "until pc 0 $PC" >> $CMDS_FILE
@@ -129,3 +138,4 @@ rm -rf mem.0x80000000.bin
riscv64-unknown-elf-ld -Tdata=0x80000000 -nmagic --defsym tohost=0x$TOHOST --defsym fromhost=0x$FROMHOST -o $LOADMEM_ELF $RAWMEM_ELF riscv64-unknown-elf-ld -Tdata=0x80000000 -nmagic --defsym tohost=0x$TOHOST --defsym fromhost=0x$FROMHOST -o $LOADMEM_ELF $RAWMEM_ELF
rm -rf $RAWMEM_ELF rm -rf $RAWMEM_ELF