blob: 5f244cd7bbab82f71de268f7de970cc62932b5ef [file] [log] [blame]
Alan Green9b7a93d2021-03-11 14:24:52 +11001#!/bin/bash
2
Alan Green7c5639e2021-05-05 17:10:41 +10003# Copyright 2021 The Chromium OS Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
Alan Green9b7a93d2021-03-11 14:24:52 +11007if [ "${BASH_SOURCE-}" = "$0" ]; then
8 echo -e "This script should be sourced, not run:\nsource $0" >&2
9 exit 1
10fi
11
12# Exports environment variables needed by parts of this project.
13
14# The following environment variables should already be set to appropriate
15# values:
16# RADIANT_DIR (e.g. $HOME/lscc/radiant/2.2/bin/lin64)
17#
18# If RADIANT_DIR isn't set, then only simulation can be used.
19
Alan Green397c9342021-05-06 07:11:48 +100020HPS_ROOT=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
Alan Green9b7a93d2021-03-11 14:24:52 +110021
22RUSTC="$(which rustc)"
23# handle the case where rustc is not yet installed
Alan Green397c9342021-05-06 07:11:48 +100024if [ -z "${RUSTC}" ]; then
Alan Green9b7a93d2021-03-11 14:24:52 +110025 echo "rustc not found"
26 RUST_DIR=""
27else
28 RUST_DIR=$(dirname "${RUSTC}")
29fi
Alan Green397c9342021-05-06 07:11:48 +100030export HOSTPATH="${HPS_ROOT}/build/host"
Alan Green9b7a93d2021-03-11 14:24:52 +110031
David Lattimore420174f2021-05-25 11:16:34 +100032export RUST_VERSION=stable
Alan Green9b7a93d2021-03-11 14:24:52 +110033
34# We completely overwrite any existing PATH. This ensures that we're not getting
35# things from unexpected places.
Alan Green397c9342021-05-06 07:11:48 +100036PATH="/usr/sbin:/usr/bin:/sbin:/bin"
Alan Green54b38e72021-08-20 14:01:45 +100037PATH="${HPS_ROOT}/third_party/installed/bin:${PATH}"
38PATH="${RUST_DIR}:${PATH}"
39PATH="${HOSTPATH}:${PATH}"
Alan Green397c9342021-05-06 07:11:48 +100040export PATH
Alan Green9b7a93d2021-03-11 14:24:52 +110041
Alan Green397c9342021-05-06 07:11:48 +100042# RADIANT_DIR is optionally defined
43if [ -d "${RADIANT_DIR:-}" ]; then
44 export PATH="${PATH}:${RADIANT_DIR}"
Alan Green9b7a93d2021-03-11 14:24:52 +110045fi
46
47# This speeds up recompilation of verilator generated code quit a bit.
48export OBJCACHE=ccache
49export CC="ccache gcc"
50
51# We deliberately clear anything that may have already been in PYTHONPATH to
52# prevent accidentally pulling in anything outside this project.
Alan Green8c7d34b2021-05-05 15:12:54 +100053PYTHONPATH="${HPS_ROOT}/../../.." # For chromite
54PYTHONPATH="${PYTHONPATH}:${HPS_ROOT}/python"
Alan Green9b7a93d2021-03-11 14:24:52 +110055for i in "${HPS_ROOT}/third_party/python"/*; do
56 PYTHONPATH="${PYTHONPATH}:${i}"
57done
58export PYTHONPATH
59
60# Explicitly set the RISCV toolchain path.
Alan Green397c9342021-05-06 07:11:48 +100061USER_BIN_DIR=$(realpath ~)/bin
62export USER_BIN_DIR
63RISCV_VER=riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14
64export RISCV_DIR="${USER_BIN_DIR}/${RISCV_VER}/bin"
65export PATH="${RISCV_DIR}:${PATH}"
David Lattimored544c7b2021-04-07 08:36:34 +100066
Alan Green397c9342021-05-06 07:11:48 +100067# List of directories with Rust source
68export HPS_RUST_DIRS=(
David Lattimore5c8f1fe2021-04-22 15:53:04 +100069 mcu_rom
David Lattimore941f6b42021-04-26 15:53:01 +100070 mcu_rom/stm32g0_application
David Lattimored544c7b2021-04-07 08:36:34 +100071 mcu_rom/stage0
72 mcu_rom/stage1
David Lattimoredaf78592021-04-14 17:17:41 +100073 mcu_rom/stm32g0_i2c_peripheral
David Lattimored544c7b2021-04-07 08:36:34 +100074)