Merge pull request #261 from ucb-bar/toolchain
Overhaul toolchain organization
This commit is contained in:
commit
dd545edf2c
|
@ -14,5 +14,5 @@ if [ ! -d "$HOME/$1-install" ]; then
|
|||
cd $HOME
|
||||
|
||||
# init all submodules including the tools
|
||||
CHIPYARD_DIR=$LOCAL_CHIPYARD_DIR $LOCAL_CHIPYARD_DIR/scripts/build-toolchains.sh $1
|
||||
CHIPYARD_DIR="$LOCAL_CHIPYARD_DIR" NPROC=2 $LOCAL_CHIPYARD_DIR/scripts/build-toolchains.sh $1
|
||||
fi
|
||||
|
|
|
@ -7,7 +7,7 @@ version: 2
|
|||
jobs:
|
||||
commit-on-master-check:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -19,7 +19,7 @@ jobs:
|
|||
.circleci/check-commit.sh
|
||||
install-riscv-toolchain:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -31,19 +31,19 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- run:
|
||||
name: Building riscv-tools toolchain
|
||||
command: |
|
||||
.circleci/build-toolchains.sh riscv-tools
|
||||
no_output_timeout: 120m
|
||||
- save_cache:
|
||||
key: riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
key: riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
paths:
|
||||
- "/home/riscvuser/riscv-tools-install"
|
||||
install-esp-toolchain:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -55,19 +55,19 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- esp-tools-installed-v1-{{ checksum "../esp-tools.hash" }}
|
||||
- esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }}
|
||||
- run:
|
||||
name: Building esp-tools toolchain
|
||||
command: |
|
||||
.circleci/build-toolchains.sh esp-tools
|
||||
no_output_timeout: 120m
|
||||
- save_cache:
|
||||
key: esp-tools-installed-v1-{{ checksum "../esp-tools.hash" }}
|
||||
key: esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }}
|
||||
paths:
|
||||
- "/home/riscvuser/esp-tools-install"
|
||||
install-verilator:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -90,7 +90,7 @@ jobs:
|
|||
- "/home/riscvuser/verilator"
|
||||
build-extra-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -105,7 +105,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- run:
|
||||
name: Build extra tests
|
||||
command: .circleci/build-extra-tests.sh
|
||||
|
@ -116,7 +116,7 @@ jobs:
|
|||
- "/home/riscvuser/project/tests"
|
||||
prepare-example:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -131,7 +131,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -145,7 +145,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
prepare-boomrocketexample:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -160,7 +160,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -174,7 +174,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
prepare-boom:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -189,7 +189,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -203,7 +203,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
prepare-rocketchip:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -218,7 +218,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -232,7 +232,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
prepare-blockdevrocketchip:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -247,7 +247,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -261,7 +261,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
prepare-hwacha:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -276,7 +276,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- esp-tools-installed-v1-{{ checksum "../esp-tools.hash" }}
|
||||
- esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -290,7 +290,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
prepare-firesim:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -305,7 +305,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -319,7 +319,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
prepare-fireboom:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -334,7 +334,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -348,7 +348,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
prepare-firesim-clockdiv:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -363,7 +363,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -377,7 +377,7 @@ jobs:
|
|||
- "/home/riscvuser/project"
|
||||
midasexamples-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -389,7 +389,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
|
||||
|
@ -398,7 +398,7 @@ jobs:
|
|||
command: .circleci/run-midasexamples-tests.sh
|
||||
example-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -410,7 +410,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- example-{{ .Branch }}-{{ .Revision }}
|
||||
|
@ -422,7 +422,7 @@ jobs:
|
|||
command: .circleci/run-tests.sh example
|
||||
boomrocketexample-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -434,7 +434,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- boomrocketexample-{{ .Branch }}-{{ .Revision }}
|
||||
|
@ -446,7 +446,7 @@ jobs:
|
|||
command: .circleci/run-tests.sh boomrocketexample
|
||||
boom-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -458,7 +458,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- boom-{{ .Branch }}-{{ .Revision }}
|
||||
|
@ -470,7 +470,7 @@ jobs:
|
|||
command: .circleci/run-tests.sh boom
|
||||
rocketchip-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -482,7 +482,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- rocketchip-{{ .Branch }}-{{ .Revision }}
|
||||
|
@ -494,7 +494,7 @@ jobs:
|
|||
command: .circleci/run-tests.sh rocketchip
|
||||
hwacha-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -506,7 +506,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- esp-tools-installed-v1-{{ checksum "../esp-tools.hash" }}
|
||||
- esp-tools-installed-v2-{{ checksum "../esp-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- hwacha-{{ .Branch }}-{{ .Revision }}
|
||||
|
@ -518,7 +518,7 @@ jobs:
|
|||
command: .circleci/run-tests.sh hwacha
|
||||
firesim-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -530,7 +530,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- firesim-{{ .Branch }}-{{ .Revision }}
|
||||
|
@ -545,7 +545,7 @@ jobs:
|
|||
command: .circleci/run-firesim-tests.sh firesim
|
||||
fireboom-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -557,7 +557,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- fireboom-{{ .Branch }}-{{ .Revision }}
|
||||
|
@ -573,7 +573,7 @@ jobs:
|
|||
no_output_timeout: 20m
|
||||
firesim-clockdiv-run-tests:
|
||||
docker:
|
||||
- image: riscvboom/riscvboom-images:0.0.10
|
||||
- image: riscvboom/riscvboom-images:0.0.11
|
||||
environment:
|
||||
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
|
||||
TERM: dumb
|
||||
|
@ -585,7 +585,7 @@ jobs:
|
|||
.circleci/create-hash.sh
|
||||
- restore_cache:
|
||||
keys:
|
||||
- riscv-tools-installed-v1-{{ checksum "../riscv-tools.hash" }}
|
||||
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
|
||||
- restore_cache:
|
||||
keys:
|
||||
- firesim-clockdiv-{{ .Branch }}-{{ .Revision }}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
# turn echo on and error on earliest command
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
# get shared variables
|
||||
SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
|
||||
|
@ -12,10 +13,10 @@ source $SCRIPT_DIR/defaults.sh
|
|||
# enter bhd repo
|
||||
cd $LOCAL_CHIPYARD_DIR
|
||||
|
||||
# get the version of riscv-tools from the git submodule hash
|
||||
git submodule status | grep "riscv-tools" | awk '{print$1}' | grep -o "[[:alnum:]]*" >> $HOME/riscv-tools.hash
|
||||
git submodule status | grep "esp-tools" | awk '{print$1}' | grep -o "[[:alnum:]]*" >> $HOME/esp-tools.hash
|
||||
|
||||
# Use normalized output of git-submodule status as hashfile
|
||||
for tools in 'riscv-tools' 'esp-tools' ; do
|
||||
git submodule status "toolchains/${tools}" | while read -r line ; do
|
||||
echo "${line#[!0-9a-f]}"
|
||||
done > "${HOME}/${tools}.hash"
|
||||
done
|
||||
echo "Hashfile for riscv-tools and esp-tools created in $HOME"
|
||||
echo "Contents: riscv-tools:$(cat $HOME/riscv-tools.hash)"
|
||||
echo "Contents: esp-tools:$(cat $HOME/esp-tools.hash)"
|
||||
|
|
|
@ -12,5 +12,6 @@ target
|
|||
.DS_Store
|
||||
env.sh
|
||||
riscv-tools-install
|
||||
esp-tools-install
|
||||
tags
|
||||
*~
|
||||
|
|
|
@ -34,12 +34,37 @@
|
|||
[submodule "generators/block-inclusivecache-sifive"]
|
||||
path = generators/sifive-cache
|
||||
url = https://github.com/sifive/block-inclusivecache-sifive.git
|
||||
[submodule "toolchains/riscv-tools"]
|
||||
path = toolchains/riscv-tools
|
||||
url = https://github.com/freechipsproject/rocket-tools.git
|
||||
[submodule "toolchains/esp-tools"]
|
||||
path = toolchains/esp-tools
|
||||
url = https://github.com/ucb-bar/esp-tools.git
|
||||
[submodule "toolchains/riscv-tools/riscv-gnu-toolchain"]
|
||||
path = toolchains/riscv-tools/riscv-gnu-toolchain
|
||||
url = https://github.com/riscv/riscv-gnu-toolchain.git
|
||||
[submodule "toolchains/riscv-tools/riscv-gnu-toolchain-prebuilt"]
|
||||
path = toolchains/riscv-tools/riscv-gnu-toolchain-prebuilt
|
||||
url = https://github.com/ucb-bar/chipyard-toolchain-prebuilt.git
|
||||
shallow = true
|
||||
[submodule "toolchains/riscv-tools/riscv-isa-sim"]
|
||||
path = toolchains/riscv-tools/riscv-isa-sim
|
||||
url = https://github.com/riscv/riscv-isa-sim.git
|
||||
[submodule "toolchains/riscv-tools/riscv-pk"]
|
||||
path = toolchains/riscv-tools/riscv-pk
|
||||
url = https://github.com/riscv/riscv-pk.git
|
||||
[submodule "toolchains/riscv-tools/riscv-tests"]
|
||||
path = toolchains/riscv-tools/riscv-tests
|
||||
url = https://github.com/riscv/riscv-tests.git
|
||||
[submodule "toolchains/riscv-tools/riscv-openocd"]
|
||||
path = toolchains/riscv-tools/riscv-openocd
|
||||
url = https://github.com/riscv/riscv-openocd.git
|
||||
[submodule "toolchains/esp-tools/riscv-gnu-toolchain"]
|
||||
path = toolchains/esp-tools/riscv-gnu-toolchain
|
||||
url = https://github.com/ucb-bar/esp-gnu-toolchain.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/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 "vlsi/hammer"]
|
||||
path = vlsi/hammer
|
||||
url = https://github.com/ucb-bar/hammer.git
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# exit script if any command fails
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
RDIR=$(git rev-parse --show-toplevel)
|
||||
|
||||
if [ -z "${RISCV}" ] ; then
|
||||
! [ -r "${RDIR}/env.sh" ] || . "${RDIR}/env.sh"
|
||||
if [ -z "${RISCV}" ] ; then
|
||||
echo "${0}: set the RISCV environment variable to desired install path"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
SRCDIR="${RDIR}/toolchains/riscv-tools"
|
||||
. "${RDIR}/scripts/build-util.sh"
|
||||
|
||||
git config --unset submodule.toolchains/riscv-tools/riscv-openocd.update || :
|
||||
module_prepare riscv-openocd
|
||||
module_run riscv-openocd ./bootstrap
|
||||
module_build riscv-openocd --prefix="${RISCV}" \
|
||||
--enable-remote-bitbang --enable-jtag_vpi --disable-werror
|
|
@ -1,21 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# This ungodly script surreptitiously builds an archive from existing fesvr objects
|
||||
# Invoke from riscv-fesvr/build
|
||||
|
||||
if [ "x$RISCV" = "x" ]
|
||||
then
|
||||
echo "Please set the RISCV environment variable to your preferred install path."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
objs=$(make -n -f <(
|
||||
echo 'include Makefile'
|
||||
echo '$(info $(value fesvr_objs))'
|
||||
) | head -n 1)
|
||||
|
||||
ar rcs -o libfesvr.a $objs
|
||||
cp -f libfesvr.a "${RISCV}/lib"
|
||||
|
|
@ -6,11 +6,8 @@
|
|||
set -e
|
||||
set -o pipefail
|
||||
|
||||
unamestr=$(uname)
|
||||
RDIR=$(pwd)
|
||||
: ${CHIPYARD_DIR:=$(pwd)} #default value is the PWD unless overridden
|
||||
|
||||
PRECOMPILED_REPO_HASH=56a40961c98db5e8f904f15dc6efd0870bfefd9e
|
||||
CHIPYARD_DIR="${CHIPYARD_DIR:-$(git rev-parse --show-toplevel)}"
|
||||
|
||||
usage() {
|
||||
echo "usage: ${0} [riscv-tools | esp-tools | ec2fast]"
|
||||
|
@ -23,18 +20,13 @@ usage() {
|
|||
error() {
|
||||
echo "${0##*/}: ${1}" >&2
|
||||
}
|
||||
|
||||
#taken from riscv-tools to check for open-ocd autoconf versions
|
||||
check_version() {
|
||||
"$1" --version | awk "NR==1 {if (\$NF>$2) {exit 0} exit 1}" || {
|
||||
error "${3} requires at least ${1} version ${2}"
|
||||
exit 1
|
||||
}
|
||||
die() {
|
||||
error "$1"
|
||||
exit "${2:--1}"
|
||||
}
|
||||
|
||||
TOOLCHAIN="riscv-tools"
|
||||
EC2FASTINSTALL="false"
|
||||
FASTINSTALL="false"
|
||||
|
||||
while getopts 'hH-:' opt ; do
|
||||
case $opt in
|
||||
|
@ -64,33 +56,6 @@ elif [ -n "$1" ] ; then
|
|||
TOOLCHAIN="$1"
|
||||
fi
|
||||
|
||||
|
||||
if [ "$EC2FASTINSTALL" = "true" ]; then
|
||||
if [ "$TOOLCHAIN" = "riscv-tools" ]; then
|
||||
cd "$RDIR"
|
||||
git clone https://github.com/firesim/firesim-riscv-tools-prebuilt.git
|
||||
cd firesim-riscv-tools-prebuilt
|
||||
git checkout "$PRECOMPILED_REPO_HASH"
|
||||
PREBUILTHASH="$(cat HASH)"
|
||||
git -C "${CHIPYARD_DIR}" submodule update --init "toolchains/${TOOLCHAIN}"
|
||||
cd "$CHIPYARD_DIR/toolchains/$TOOLCHAIN"
|
||||
GITHASH="$(git rev-parse HEAD)"
|
||||
cd "$RDIR"
|
||||
echo "prebuilt hash: $PREBUILTHASH"
|
||||
echo "git hash: $GITHASH"
|
||||
if [[ $PREBUILTHASH == $GITHASH && "$EC2FASTINSTALL" == "true" ]]; then
|
||||
FASTINSTALL=true
|
||||
echo "Using fast pre-compiled install for riscv-tools"
|
||||
else
|
||||
error 'error: hash of precompiled toolchain does not match the riscv-tools submodule hash'
|
||||
exit -1
|
||||
fi
|
||||
else
|
||||
error "error: unsupported precompiled toolchain: ${TOOLCHAIN}"
|
||||
exit -1
|
||||
fi
|
||||
fi
|
||||
|
||||
INSTALL_DIR="$TOOLCHAIN-install"
|
||||
|
||||
RISCV="$(pwd)/$INSTALL_DIR"
|
||||
|
@ -98,52 +63,64 @@ RISCV="$(pwd)/$INSTALL_DIR"
|
|||
# install risc-v tools
|
||||
export RISCV="$RISCV"
|
||||
|
||||
if [ "$FASTINSTALL" = true ]; then
|
||||
cd firesim-riscv-tools-prebuilt
|
||||
./installrelease.sh
|
||||
mv distrib "$RISCV"
|
||||
# copy HASH in case user wants it later
|
||||
cp HASH "$RISCV"
|
||||
cd "$RDIR"
|
||||
rm -rf firesim-riscv-tools-prebuilt
|
||||
cd "${CHIPYARD_DIR}"
|
||||
|
||||
SRCDIR="$(pwd)/toolchains/${TOOLCHAIN}"
|
||||
[ -d "${SRCDIR}" ] || die "unsupported toolchain: ${TOOLCHAIN}"
|
||||
. ./scripts/build-util.sh
|
||||
|
||||
|
||||
if [ "${EC2FASTINSTALL}" = true ] ; then
|
||||
[ "${TOOLCHAIN}" = 'riscv-tools' ] ||
|
||||
die "unsupported precompiled toolchain: ${TOOLCHAIN}"
|
||||
|
||||
echo '=> Fetching pre-built toolchain'
|
||||
module=toolchains/riscv-tools/riscv-gnu-toolchain-prebuilt
|
||||
git config --unset submodule."${module}".update || :
|
||||
git submodule update --init --depth 1 "${module}"
|
||||
|
||||
echo '==> Verifying toolchain version hash'
|
||||
# Find commit hash without initializing the submodule
|
||||
hashsrc="$(git ls-tree -d HEAD "${SRCDIR}/riscv-gnu-toolchain" | {
|
||||
unset IFS && read -r _ type obj _ &&
|
||||
test -n "${obj}" && test "${type}" = 'commit' && echo "${obj}"
|
||||
}; )" ||
|
||||
die 'failed to obtain riscv-gnu-toolchain submodule hash' "$?"
|
||||
|
||||
read -r hashbin < "${module}/HASH" ||
|
||||
die 'failed to obtain riscv-gnu-toolchain-prebuilt hash' "$?"
|
||||
|
||||
echo "==> ${hashsrc}"
|
||||
[ "${hashsrc}" = "${hashbin}" ] ||
|
||||
die "pre-built version mismatch: ${hashbin}"
|
||||
|
||||
echo '==> Installing pre-built toolchain'
|
||||
"${MAKE}" -C "${module}" DESTDIR="${RISCV}" install
|
||||
git submodule deinit "${module}" || :
|
||||
|
||||
else
|
||||
mkdir -p "$RISCV"
|
||||
git -C "${CHIPYARD_DIR}" submodule update --init --recursive "toolchains/${TOOLCHAIN}" #--jobs 8
|
||||
cd "$CHIPYARD_DIR/toolchains/$TOOLCHAIN"
|
||||
|
||||
# Scale number of parallel make jobs by hardware thread count
|
||||
ncpu="$(getconf _NPROCESSORS_ONLN || # GNU
|
||||
getconf NPROCESSORS_ONLN || # *BSD, Solaris
|
||||
nproc --all || # Linux
|
||||
sysctl -n hw.ncpu || # *BSD, OS X
|
||||
:)" 2>/dev/null
|
||||
case ${ncpu} in
|
||||
''|*[^0-9]*) ;; # Ignore non-integer values
|
||||
*) export MAKEFLAGS="-j ${ncpu}" ;;
|
||||
esac
|
||||
|
||||
#build the actual toolchain
|
||||
#./build.sh
|
||||
source build.common
|
||||
echo "Starting RISC-V Toolchain build process"
|
||||
build_project riscv-fesvr --prefix="${RISCV}"
|
||||
build_project riscv-isa-sim --prefix="${RISCV}" --with-fesvr="${RISCV}"
|
||||
build_project riscv-gnu-toolchain --prefix="${RISCV}"
|
||||
CC= CXX= build_project riscv-pk --prefix="${RISCV}" --host=riscv64-unknown-elf
|
||||
build_project riscv-tests --prefix="${RISCV}/riscv64-unknown-elf"
|
||||
echo -e "\\nRISC-V Toolchain installation completed!"
|
||||
|
||||
# build static libfesvr library for linking into firesim driver (or others)
|
||||
cd riscv-fesvr/build
|
||||
"${CHIPYARD_DIR}/scripts/build-static-libfesvr.sh"
|
||||
cd "$RDIR"
|
||||
# build linux toolchain
|
||||
cd "$CHIPYARD_DIR/toolchains/$TOOLCHAIN/riscv-gnu-toolchain/build"
|
||||
make linux
|
||||
echo -e "\\nRISC-V Linux GNU Toolchain installation completed!"
|
||||
"${MAKE}" --version | (
|
||||
read -r makever
|
||||
case ${makever} in
|
||||
'GNU Make '[4-9]\.*|'GNU Make '[1-9][0-9]) ;;
|
||||
*) false ;;
|
||||
esac; ) || die 'obsolete make version; need GNU make 4.x or later'
|
||||
|
||||
module_prepare riscv-gnu-toolchain qemu
|
||||
module_build riscv-gnu-toolchain --prefix="${RISCV}"
|
||||
echo '==> Building GNU/Linux toolchain'
|
||||
module_make riscv-gnu-toolchain linux
|
||||
fi
|
||||
|
||||
module_all riscv-isa-sim --prefix="${RISCV}"
|
||||
# build static libfesvr library for linking into firesim driver (or others)
|
||||
echo '==> Installing libfesvr static library'
|
||||
module_make riscv-isa-sim libfesvr.a
|
||||
cp -p "${SRCDIR}/riscv-isa-sim/build/libfesvr.a" "${RISCV}/lib/"
|
||||
|
||||
CC= CXX= module_all riscv-pk --prefix="${RISCV}" --host=riscv64-unknown-elf
|
||||
module_all riscv-tests --prefix="${RISCV}/riscv64-unknown-elf"
|
||||
|
||||
cd "$RDIR"
|
||||
|
||||
{
|
||||
|
@ -153,20 +130,3 @@ cd "$RDIR"
|
|||
echo "export LD_LIBRARY_PATH=\${RISCV}/lib\${LD_LIBRARY_PATH:+":\${LD_LIBRARY_PATH}"}"
|
||||
} > env.sh
|
||||
echo "Toolchain Build Complete!"
|
||||
|
||||
if [ "$FASTINSTALL" = "false" ]; then
|
||||
# commands that can't run on EC2 (specifically, OpenOCD because of autoconf version_
|
||||
# see if the instance info page exists. if not, we are not on ec2.
|
||||
# this is one of the few methods that works without sudo
|
||||
if wget -T 1 -t 3 -O /dev/null http://169.254.169.254/; then
|
||||
echo "Skipping RISC-V OpenOCD"
|
||||
else
|
||||
echo "Building RISC-V OpenOCD"
|
||||
cd "$CHIPYARD_DIR/toolchains/$TOOLCHAIN"
|
||||
check_version automake 1.14 "OpenOCD build"
|
||||
check_version autoconf 2.64 "OpenOCD build"
|
||||
build_project riscv-openocd --prefix="${RISCV}" --enable-remote-bitbang --enable-jtag_vpi --disable-werror
|
||||
echo -e "\\nRISC-V OpenOCD installation completed!"
|
||||
cd "$RDIR"
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
# Derived from
|
||||
# https://github.com/riscv/riscv-tools/blob/master/build.common
|
||||
|
||||
[ -n "${SRCDIR}" ] || exit 1
|
||||
|
||||
# Scale number of parallel make jobs by hardware thread count
|
||||
ncpu="${NPROC:-$(getconf _NPROCESSORS_ONLN || # GNU
|
||||
getconf NPROCESSORS_ONLN || # *BSD, Solaris
|
||||
nproc --all || # Linux
|
||||
sysctl -n hw.ncpu || # *BSD, OS X
|
||||
:)}" 2>/dev/null
|
||||
case ${ncpu} in
|
||||
''|*[!0-9]*) ;; # Ignore non-integer values
|
||||
*) export MAKEFLAGS="-j ${ncpu} ${MAKEFLAGS}" ;;
|
||||
esac
|
||||
|
||||
MAKE=$(command -v gnumake || command -v gmake || command -v make)
|
||||
readonly MAKE
|
||||
|
||||
|
||||
module_prepare() ( # <submodule> [ignored-submodule..]
|
||||
set -e
|
||||
name=$1
|
||||
shift
|
||||
|
||||
dir="${SRCDIR}/${name}"
|
||||
echo "=> Starting ${name} build"
|
||||
echo "==> Initializing ${name} submodule"
|
||||
if [ $# -gt 0 ] ; then
|
||||
git submodule update --init "${dir}"
|
||||
while [ -n "$1" ] ; do
|
||||
git -C "${dir}" config submodule."${1}".update none
|
||||
shift
|
||||
done
|
||||
fi
|
||||
git submodule update --init --recursive "${dir}"
|
||||
)
|
||||
|
||||
module_run() ( # <submodule> <command..>
|
||||
set -e
|
||||
cd "${SRCDIR}/${1}"
|
||||
shift
|
||||
"$@"
|
||||
)
|
||||
|
||||
module_make() ( # <submodule> <target..>
|
||||
set -e -o pipefail
|
||||
cd "${SRCDIR}/${1}/build"
|
||||
shift
|
||||
"${MAKE}" "$@" | tee "build-${1:-make}.log"
|
||||
)
|
||||
|
||||
module_build() ( # <submodule> [configure-arg..]
|
||||
set -e -o pipefail
|
||||
name=$1
|
||||
shift
|
||||
|
||||
cd "${SRCDIR}/${name}"
|
||||
|
||||
if [ -e build ] ; then
|
||||
echo "==> Removing existing ${name}/build directory"
|
||||
rm -rf build
|
||||
fi
|
||||
if ! [ -e configure ] ; then
|
||||
echo "==> Updating autoconf files for ${name}"
|
||||
find . -iname configure.ac -type f -print0 |
|
||||
while read -r -d '' file ; do
|
||||
mkdir -p -- "${file%/*}/m4"
|
||||
done
|
||||
autoreconf -i
|
||||
fi
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
{
|
||||
export PATH="${RISCV:+${RISCV}/bin:}${PATH}"
|
||||
echo "==> Configuring ${name}"
|
||||
../configure "$@"
|
||||
echo "==> Building ${name}"
|
||||
"${MAKE}"
|
||||
echo "==> Installing ${name}"
|
||||
"${MAKE}" install
|
||||
} 2>&1 | tee build.log
|
||||
)
|
||||
|
||||
module_all() { # <submodule> [configure-arg..]
|
||||
module_prepare "$1"
|
||||
module_build "$@"
|
||||
}
|
|
@ -4,16 +4,13 @@
|
|||
set -e
|
||||
set -o pipefail
|
||||
|
||||
unamestr=$(uname)
|
||||
RDIR=$(pwd)
|
||||
scripts_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
RDIR=$(git rev-parse --show-toplevel)
|
||||
|
||||
# ignore riscv-tools for submodule init recursive
|
||||
# you must do this globally (otherwise riscv-tools deep
|
||||
# in the submodule tree will get pulled anyway
|
||||
git config submodule.toolchains/riscv-tools.update none
|
||||
git config submodule.toolchains/esp-tools.update none
|
||||
git config --global submodule.experimental-blocks.update none
|
||||
# Ignore toolchain submodules
|
||||
cd "$RDIR"
|
||||
for name in toolchains/*/*/ ; do
|
||||
git config submodule."${name%/}".update none
|
||||
done
|
||||
# Disable updates to the FireSim submodule until explicitly requested
|
||||
git config submodule.sims/firesim.update none
|
||||
# Disable updates to the hammer tool plugins repos
|
||||
|
@ -21,10 +18,10 @@ git config submodule.vlsi/hammer-cadence-plugins.update none
|
|||
git config submodule.vlsi/hammer-synopsys-plugins.update none
|
||||
git config submodule.vlsi/hammer-mentor-plugins.update none
|
||||
git submodule update --init --recursive #--jobs 8
|
||||
# unignore riscv-tools,catapult-shell2 globally
|
||||
git config --unset submodule.toolchains/riscv-tools.update
|
||||
git config --unset submodule.toolchains/esp-tools.update
|
||||
git config --global --unset submodule.experimental-blocks.update
|
||||
# Un-ignore toolchain submodules
|
||||
for name in toolchains/*/*/ ; do
|
||||
git config --unset submodule."${name%/}".update
|
||||
done
|
||||
git config --unset submodule.vlsi/hammer-cadence-plugins.update
|
||||
git config --unset submodule.vlsi/hammer-synopsys-plugins.update
|
||||
git config --unset submodule.vlsi/hammer-mentor-plugins.update
|
||||
|
@ -32,9 +29,6 @@ git config --unset submodule.vlsi/hammer-mentor-plugins.update
|
|||
# Renable firesim and init only the required submodules to provide
|
||||
# all required scala deps, without doing a full build-setup
|
||||
git config --unset submodule.sims/firesim.update
|
||||
cd "${scripts_dir}/../sims"
|
||||
git submodule update --init firesim
|
||||
cd firesim/sim
|
||||
git submodule update --init midas
|
||||
cd "$RDIR"
|
||||
git submodule update --init sims/firesim
|
||||
git -C sims/firesim submodule update --init sim/midas
|
||||
git config submodule.sims/firesim.update none
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 4769e5d86acf6a9508d2b5a63141dc80a6ef20a6
|
||||
Subproject commit 26ffba7cbca2982fef6b221a7abbc51d5cdc4b62
|
|
@ -48,8 +48,7 @@ VCS_CC_OPTS = \
|
|||
-CC "-I$(VCS_HOME)/include" \
|
||||
-CC "-I$(RISCV)/include" \
|
||||
-CC "-std=c++11" \
|
||||
-CC "-Wl,-rpath,$(RISCV)/lib" \
|
||||
$(RISCV)/lib/libfesvr.so
|
||||
$(RISCV)/lib/libfesvr.a
|
||||
|
||||
VCS_NONCC_OPTS = \
|
||||
+lint=all,noVCDE,noONGS,noUI \
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Subproject commit dcb6012f77101e793948cc90ac31b3735a9f3f6d
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 9f532293985d08b0c176d96c7b650e5f433780e1
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 92f2f467c00caa991379ba55ece7118f068c2218
|
|
@ -0,0 +1 @@
|
|||
Subproject commit a3e4ac61d2b1ff37a22b9193b85d3b94273e80cb
|
|
@ -0,0 +1 @@
|
|||
Subproject commit f1370d054389fc83974fc820985b5c51693b8f9d
|
|
@ -1 +0,0 @@
|
|||
Subproject commit bce7b5e363957c134f944769e677354467b7e4ed
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 2855d823a6e93d50af604264b02ced951e80de67
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 5e32a0157f91ebfb5c7ea7113fce28bf40016fa4
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 9443c1dbac0301faf3a47c5e6914cc7dcb34983e
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 7c82a7b9d5b7d8b71e0a66826705ec141db718c3
|
|
@ -0,0 +1 @@
|
|||
Subproject commit a3e4ac61d2b1ff37a22b9193b85d3b94273e80cb
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 249796cec94d75ff10ca034153e206a319e87158
|
Loading…
Reference in New Issue