blob: 7bc2a992030c12b9aeb25c165e07a74a75bdda3a [file] [log] [blame]
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
ubuntu_install_spike_sim.sh
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
set -e
set -u
set -o pipefail
set -x
function show_usage() {
cat <<EOF
Usage: docker/install/ubuntu_install_spike_sim.sh <RISCV_PATH>
RISCV_PATH is the installation path of the risc-v gcc.
EOF
}
if [ "$#" -lt 1 -o "$1" == "--help" -o "$1" == "-h" ]; then
show_usage
exit -1
fi
export RISCV=$1
export PATH=$RISCV/bin:$PATH
shift
# Install dependency
apt-install-and-clear -y --no-install-recommends device-tree-compiler
# Install spike
mkdir /tmp/spike
pushd /tmp/spike
# TODO: freeze version?
git clone https://github.com/riscv/riscv-isa-sim.git
pushd riscv-isa-sim
mkdir build
cd build
../configure --prefix=$RISCV --with-isa=RV32IMAC
make -j`nproc`
make install
popd
# Install pk
git clone https://github.com/riscv/riscv-pk.git
pushd riscv-pk
# With commit 47a2e87, we get the below compilation so we'll use the specific commit
# ../pk/pk.c: Assembler messages:
# ../pk/pk.c:122: Error: unknown CSR `ssp'
git checkout 1a52fa4
# rv32imac
mkdir build
pushd build
../configure --prefix=`pwd`/install --host=riscv64-unknown-elf --with-arch=rv32imac
make -j`nproc`
make install
cp ./pk $RISCV/riscv64-unknown-elf/bin/pk
popd
# rv64imac
mkdir build64
pushd build64
../configure --prefix=`pwd`/install --host=riscv64-unknown-elf --with-arch=rv64imac
make -j`nproc`
make install
cp ./pk $RISCV/riscv64-unknown-elf/bin/pk64
popd
popd
popd
# cleanup
rm -rf /tmp/spike