Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
Alan Green | 7c5639e | 2021-05-05 17:10:41 +1000 | [diff] [blame] | 3 | # 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 Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 7 | if [ "${BASH_SOURCE-}" = "$0" ]; then |
| 8 | echo -e "This script should be sourced, not run:\nsource $0" >&2 |
| 9 | exit 1 |
| 10 | fi |
| 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 Green | 397c934 | 2021-05-06 07:11:48 +1000 | [diff] [blame] | 20 | HPS_ROOT=$(realpath "$(dirname "${BASH_SOURCE[0]}")") |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 21 | |
| 22 | RUSTC="$(which rustc)" |
| 23 | # handle the case where rustc is not yet installed |
Alan Green | 397c934 | 2021-05-06 07:11:48 +1000 | [diff] [blame] | 24 | if [ -z "${RUSTC}" ]; then |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 25 | echo "rustc not found" |
| 26 | RUST_DIR="" |
| 27 | else |
| 28 | RUST_DIR=$(dirname "${RUSTC}") |
| 29 | fi |
Alan Green | 397c934 | 2021-05-06 07:11:48 +1000 | [diff] [blame] | 30 | export HOSTPATH="${HPS_ROOT}/build/host" |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 31 | |
David Lattimore | 420174f | 2021-05-25 11:16:34 +1000 | [diff] [blame] | 32 | export RUST_VERSION=stable |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 33 | |
| 34 | # We completely overwrite any existing PATH. This ensures that we're not getting |
| 35 | # things from unexpected places. |
Alan Green | 397c934 | 2021-05-06 07:11:48 +1000 | [diff] [blame] | 36 | PATH="/usr/sbin:/usr/bin:/sbin:/bin" |
Alan Green | 54b38e7 | 2021-08-20 14:01:45 +1000 | [diff] [blame] | 37 | PATH="${HPS_ROOT}/third_party/installed/bin:${PATH}" |
| 38 | PATH="${RUST_DIR}:${PATH}" |
| 39 | PATH="${HOSTPATH}:${PATH}" |
Alan Green | 397c934 | 2021-05-06 07:11:48 +1000 | [diff] [blame] | 40 | export PATH |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 41 | |
Alan Green | 397c934 | 2021-05-06 07:11:48 +1000 | [diff] [blame] | 42 | # RADIANT_DIR is optionally defined |
| 43 | if [ -d "${RADIANT_DIR:-}" ]; then |
| 44 | export PATH="${PATH}:${RADIANT_DIR}" |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 45 | fi |
| 46 | |
| 47 | # This speeds up recompilation of verilator generated code quit a bit. |
| 48 | export OBJCACHE=ccache |
| 49 | export 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 Green | 8c7d34b | 2021-05-05 15:12:54 +1000 | [diff] [blame] | 53 | PYTHONPATH="${HPS_ROOT}/../../.." # For chromite |
| 54 | PYTHONPATH="${PYTHONPATH}:${HPS_ROOT}/python" |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 55 | for i in "${HPS_ROOT}/third_party/python"/*; do |
| 56 | PYTHONPATH="${PYTHONPATH}:${i}" |
| 57 | done |
| 58 | export PYTHONPATH |
| 59 | |
| 60 | # Explicitly set the RISCV toolchain path. |
Alan Green | 397c934 | 2021-05-06 07:11:48 +1000 | [diff] [blame] | 61 | USER_BIN_DIR=$(realpath ~)/bin |
| 62 | export USER_BIN_DIR |
| 63 | RISCV_VER=riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14 |
| 64 | export RISCV_DIR="${USER_BIN_DIR}/${RISCV_VER}/bin" |
| 65 | export PATH="${RISCV_DIR}:${PATH}" |
David Lattimore | d544c7b | 2021-04-07 08:36:34 +1000 | [diff] [blame] | 66 | |
Alan Green | 397c934 | 2021-05-06 07:11:48 +1000 | [diff] [blame] | 67 | # List of directories with Rust source |
| 68 | export HPS_RUST_DIRS=( |
David Lattimore | 5c8f1fe | 2021-04-22 15:53:04 +1000 | [diff] [blame] | 69 | mcu_rom |
David Lattimore | 941f6b4 | 2021-04-26 15:53:01 +1000 | [diff] [blame] | 70 | mcu_rom/stm32g0_application |
David Lattimore | d544c7b | 2021-04-07 08:36:34 +1000 | [diff] [blame] | 71 | mcu_rom/stage0 |
| 72 | mcu_rom/stage1 |
David Lattimore | daf7859 | 2021-04-14 17:17:41 +1000 | [diff] [blame] | 73 | mcu_rom/stm32g0_i2c_peripheral |
David Lattimore | d544c7b | 2021-04-07 08:36:34 +1000 | [diff] [blame] | 74 | ) |