Build Spike/Pk/Tests/Libgloss from src
This commit is contained in:
10
.github/actions/create-conda-env/action.yml
vendored
10
.github/actions/create-conda-env/action.yml
vendored
@@ -9,10 +9,18 @@ runs:
|
|||||||
if conda env list | grep -q "envs/${{ env.conda-env-name-no-time }}"; then
|
if conda env list | grep -q "envs/${{ env.conda-env-name-no-time }}"; then
|
||||||
echo "Using pre-existing conda environments with prefix ${{ env.conda-env-name-no-time }}"
|
echo "Using pre-existing conda environments with prefix ${{ env.conda-env-name-no-time }}"
|
||||||
else
|
else
|
||||||
echo "Creating a conda environment for each toolchain"
|
echo "Creating a conda environment for each toolchain with the toolchain installed"
|
||||||
conda env create -f ./scripts/conda-requirements.yaml -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools
|
conda env create -f ./scripts/conda-requirements.yaml -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools
|
||||||
conda install -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools -c ucb-bar -y riscv-tools
|
conda install -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools -c ucb-bar -y riscv-tools
|
||||||
conda env create -f ./scripts/conda-requirements.yaml -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-esp-tools
|
conda env create -f ./scripts/conda-requirements.yaml -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-esp-tools
|
||||||
conda install -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-esp-tools -c ucb-bar -y esp-tools
|
conda install -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-esp-tools -c ucb-bar -y esp-tools
|
||||||
|
|
||||||
|
echo "Add source collateral to RISC-V area"
|
||||||
|
conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools
|
||||||
|
./scripts/build-toolchain-extra.sh riscv-tools
|
||||||
|
conda deactivate
|
||||||
|
conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-esp-tools
|
||||||
|
./scripts/build-toolchain-extra.sh esp-tools
|
||||||
|
conda deactivate
|
||||||
fi
|
fi
|
||||||
shell: bash -leo pipefail {0}
|
shell: bash -leo pipefail {0}
|
||||||
|
|||||||
30
.gitmodules
vendored
30
.gitmodules
vendored
@@ -97,3 +97,33 @@
|
|||||||
[submodule "generators/fft-generator"]
|
[submodule "generators/fft-generator"]
|
||||||
path = generators/fft-generator
|
path = generators/fft-generator
|
||||||
url = https://github.com/ucb-bar/FFTGenerator.git
|
url = https://github.com/ucb-bar/FFTGenerator.git
|
||||||
|
[submodule "toolchains/riscv-tools/riscv-tests"]
|
||||||
|
path = toolchains/riscv-tools/riscv-tests
|
||||||
|
url = https://github.com/riscv-software-src/riscv-tests.git
|
||||||
|
[submodule "toolchains/riscv-tools/riscv-pk"]
|
||||||
|
path = toolchains/riscv-tools/riscv-pk
|
||||||
|
url = https://github.com/riscv-software-src/riscv-pk.git
|
||||||
|
[submodule "toolchains/riscv-tools/riscv-openocd"]
|
||||||
|
path = toolchains/riscv-tools/riscv-openocd
|
||||||
|
url = https://github.com/riscv/riscv-openocd.git
|
||||||
|
[submodule "toolchains/riscv-tools/riscv-isa-sim"]
|
||||||
|
path = toolchains/riscv-tools/riscv-isa-sim
|
||||||
|
url = https://github.com/riscv-software-src/riscv-isa-sim.git
|
||||||
|
[submodule "toolchains/riscv-tools/riscv-tools-feedstock"]
|
||||||
|
path = toolchains/riscv-tools/riscv-tools-feedstock
|
||||||
|
url = https://github.com/ucb-bar/riscv-tools-feedstock.git
|
||||||
|
[submodule "toolchains/esp-tools/esp-tools-feedstock"]
|
||||||
|
path = toolchains/esp-tools/esp-tools-feedstock
|
||||||
|
url = https://github.com/ucb-bar/esp-tools-feedstock.git
|
||||||
|
[submodule "toolchains/esp-tools/riscv-isa-sim"]
|
||||||
|
path = toolchains/esp-tools/riscv-isa-sim
|
||||||
|
url = https://github.com/ucb-bar/esp-isa-sim.git
|
||||||
|
[submodule "toolchains/esp-tools/riscv-pk"]
|
||||||
|
path = toolchains/esp-tools/riscv-pk
|
||||||
|
url = https://github.com/riscv-software-src/riscv-pk.git
|
||||||
|
[submodule "toolchains/esp-tools/riscv-tests"]
|
||||||
|
path = toolchains/esp-tools/riscv-tests
|
||||||
|
url = https://github.com/ucb-bar/esp-tests.git
|
||||||
|
[submodule "toolchains/libgloss"]
|
||||||
|
path = toolchains/libgloss
|
||||||
|
url = https://github.com/ucb-bar/libgloss-htif.git
|
||||||
|
|||||||
117
scripts/build-toolchain-extra.sh
Executable file
117
scripts/build-toolchain-extra.sh
Executable file
@@ -0,0 +1,117 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# this script is based on the firesim build toolchains script
|
||||||
|
|
||||||
|
# exit script if any command fails
|
||||||
|
set -e
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# On macOS, use GNU readlink from 'coreutils' package in Homebrew/MacPorts
|
||||||
|
if [ "$(uname -s)" = "Darwin" ] ; then
|
||||||
|
READLINK=greadlink
|
||||||
|
else
|
||||||
|
READLINK=readlink
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If BASH_SOURCE is undefined, we may be running under zsh, in that case
|
||||||
|
# provide a zsh-compatible alternative
|
||||||
|
DIR="$(dirname "$($READLINK -f "${BASH_SOURCE[0]:-${(%):-%x}}")")"
|
||||||
|
CHIPYARD_DIR="$(dirname "$DIR")"
|
||||||
|
|
||||||
|
# Allow user to override MAKE
|
||||||
|
[ -n "${MAKE:+x}" ] || MAKE=$(command -v gnumake || command -v gmake || command -v make)
|
||||||
|
readonly MAKE
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "usage: ${0} [OPTIONS] [riscv-tools | esp-tools]"
|
||||||
|
echo ""
|
||||||
|
echo "Installation Types"
|
||||||
|
echo " riscv-tools: if set, builds the riscv toolchain (this is also the default)"
|
||||||
|
echo " esp-tools: if set, builds esp-tools toolchain used for the hwacha vector accelerator"
|
||||||
|
echo ""
|
||||||
|
echo "Options"
|
||||||
|
echo " --prefix PREFIX : Install destination. If unset, defaults to $CONDA_PREFIX/riscv-tools"
|
||||||
|
echo " or $CONDA_PREFIX/esp-tools"
|
||||||
|
echo " --clean-after-install : Run make clean in calls to module_make and module_build"
|
||||||
|
echo " --help -h : Display this message"
|
||||||
|
exit "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
error() {
|
||||||
|
echo "${0##*/}: ${1}" >&2
|
||||||
|
}
|
||||||
|
die() {
|
||||||
|
error "$1"
|
||||||
|
exit "${2:--1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
TOOLCHAIN="riscv-tools"
|
||||||
|
CLEANAFTERINSTALL=""
|
||||||
|
RISCV=""
|
||||||
|
|
||||||
|
# getopts does not support long options, and is inflexible
|
||||||
|
while [ "$1" != "" ];
|
||||||
|
do
|
||||||
|
case $1 in
|
||||||
|
-h | --help | help )
|
||||||
|
usage 3 ;;
|
||||||
|
-p | --prefix )
|
||||||
|
shift
|
||||||
|
RISCV=$(realpath $1) ;;
|
||||||
|
--clean-after-install )
|
||||||
|
CLEANAFTERINSTALL="true" ;;
|
||||||
|
riscv-tools | esp-tools)
|
||||||
|
TOOLCHAIN=$1 ;;
|
||||||
|
* )
|
||||||
|
error "invalid option $1"
|
||||||
|
usage 1 ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z ${CONDA_DEFAULT_ENV+x} ]; then
|
||||||
|
error "ERROR: No conda environment detected. Did you activate the conda environment (e.x. 'conda activate chipyard')?"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$RISCV" ] ; then
|
||||||
|
RISCV="$CONDA_PREFIX/$TOOLCHAIN"
|
||||||
|
fi
|
||||||
|
|
||||||
|
XLEN=64
|
||||||
|
|
||||||
|
echo "Installing extra toolchain utilities/tests to $RISCV"
|
||||||
|
|
||||||
|
# install risc-v tools
|
||||||
|
export RISCV="$RISCV"
|
||||||
|
|
||||||
|
cd "${CHIPYARD_DIR}"
|
||||||
|
|
||||||
|
SRCDIR="$(pwd)/toolchains/${TOOLCHAIN}"
|
||||||
|
[ -d "${SRCDIR}" ] || die "unsupported toolchain: ${TOOLCHAIN}"
|
||||||
|
. ./scripts/build-util.sh
|
||||||
|
|
||||||
|
echo '==> Installing Spike'
|
||||||
|
# disable boost explicitly for https://github.com/riscv-software-src/riscv-isa-sim/issues/834
|
||||||
|
# since we don't have it in our requirements
|
||||||
|
module_all riscv-isa-sim --prefix="${RISCV}" --with-boost=no --with-boost-asio=no --with-boost-regex=no
|
||||||
|
# build static libfesvr library for linking into firesim driver (or others)
|
||||||
|
echo '==> Installing libfesvr static library'
|
||||||
|
OLDCLEANAFTERINSTALL=$CLEANAFTERINSTALL
|
||||||
|
CLEANAFTERINSTALL=""
|
||||||
|
module_make riscv-isa-sim libfesvr.a
|
||||||
|
cp -p "${SRCDIR}/riscv-isa-sim/build/libfesvr.a" "${RISCV}/lib/"
|
||||||
|
CLEANAFTERINSTALL=$OLDCLEANAFTERINSTALL
|
||||||
|
|
||||||
|
echo '==> Installing Proxy Kernel'
|
||||||
|
CC= CXX= module_all riscv-pk --prefix="${RISCV}" --host=riscv${XLEN}-unknown-elf
|
||||||
|
|
||||||
|
echo '==> Installing RISC-V tests'
|
||||||
|
module_all riscv-tests --prefix="${RISCV}/riscv${XLEN}-unknown-elf" --with-xlen=${XLEN}
|
||||||
|
|
||||||
|
# Common tools (not in any particular toolchain dir)
|
||||||
|
|
||||||
|
echo '==> Installing libgloss'
|
||||||
|
CC= CXX= SRCDIR="$(pwd)/toolchains" module_all libgloss --prefix="${RISCV}/riscv${XLEN}-unknown-elf" --host=riscv${XLEN}-unknown-elf
|
||||||
|
|
||||||
|
echo "Extra Toolchain Utilities/Tests Build Complete!"
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
name: chipyard
|
|
||||||
channels:
|
channels:
|
||||||
- ucb-bar
|
- ucb-bar
|
||||||
- conda-forge
|
- conda-forge
|
||||||
|
|||||||
1
toolchains/esp-tools/esp-tools-feedstock
Submodule
1
toolchains/esp-tools/esp-tools-feedstock
Submodule
Submodule toolchains/esp-tools/esp-tools-feedstock added at f82a43bc62
1
toolchains/esp-tools/riscv-isa-sim
Submodule
1
toolchains/esp-tools/riscv-isa-sim
Submodule
Submodule toolchains/esp-tools/riscv-isa-sim added at 34741e07bc
1
toolchains/esp-tools/riscv-pk
Submodule
1
toolchains/esp-tools/riscv-pk
Submodule
Submodule toolchains/esp-tools/riscv-pk added at e8e6b3aaee
1
toolchains/esp-tools/riscv-tests
Submodule
1
toolchains/esp-tools/riscv-tests
Submodule
Submodule toolchains/esp-tools/riscv-tests added at 7c3dfd3205
1
toolchains/libgloss
Submodule
1
toolchains/libgloss
Submodule
Submodule toolchains/libgloss added at 04b249764b
1
toolchains/riscv-tools/riscv-isa-sim
Submodule
1
toolchains/riscv-tools/riscv-isa-sim
Submodule
Submodule toolchains/riscv-tools/riscv-isa-sim added at ce42f1b55a
1
toolchains/riscv-tools/riscv-openocd
Submodule
1
toolchains/riscv-tools/riscv-openocd
Submodule
Submodule toolchains/riscv-tools/riscv-openocd added at cbb15587dc
1
toolchains/riscv-tools/riscv-pk
Submodule
1
toolchains/riscv-tools/riscv-pk
Submodule
Submodule toolchains/riscv-tools/riscv-pk added at e8e6b3aaee
1
toolchains/riscv-tools/riscv-tests
Submodule
1
toolchains/riscv-tools/riscv-tests
Submodule
Submodule toolchains/riscv-tools/riscv-tests added at 1ce128fa78
1
toolchains/riscv-tools/riscv-tools-feedstock
Submodule
1
toolchains/riscv-tools/riscv-tools-feedstock
Submodule
Submodule toolchains/riscv-tools/riscv-tools-feedstock added at dcddb84a6d
Reference in New Issue
Block a user