Woyten | 860e0bc | 2020-01-29 21:17:14 +0100 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | |
| 3 | set -eux |
| 4 | |
| 5 | artifact="$(basename $1)" |
Pat Pannuto | b554e9b | 2020-06-16 10:01:11 -0400 | [diff] [blame] | 6 | rust_target_folder="$(cd $(dirname $1)/../.. && pwd -P)" |
Laura Abbott | bb8c8d1 | 2020-02-24 15:04:54 -0500 | [diff] [blame] | 7 | if [ -z $APP_HEAP_SIZE ]; then |
| 8 | echo "Set APP_HEAP_SIZE to a value" |
| 9 | exit 1 |
| 10 | fi |
Laura Abbott | e0e9eab | 2020-02-19 16:46:03 -0500 | [diff] [blame] | 11 | |
Laura Abbott | e9f3b9f | 2020-02-25 12:23:46 -0500 | [diff] [blame] | 12 | if [ -z $KERNEL_HEAP_SIZE ]; then |
| 13 | echo "Set KERNEL_HEAP_SIZE to a value" |
| 14 | exit 1 |
| 15 | fi |
| 16 | |
Laura Abbott | e0e9eab | 2020-02-19 16:46:03 -0500 | [diff] [blame] | 17 | case "${PLATFORM}" in |
Alistair Francis | 7ca0c45 | 2020-05-19 19:33:08 -0700 | [diff] [blame] | 18 | "apollo3") |
| 19 | tockloader_flags="" |
| 20 | binary_name=cortex-m4.elf |
| 21 | tockload=n |
| 22 | ;; |
Alexandru Radovici | c0a7cc2 | 2020-06-06 17:40:36 +0300 | [diff] [blame] | 23 | "nucleo_f429zi"|"nucleo_f446re") |
| 24 | tockloader_flags="" |
| 25 | binary_name=cortex-m4.elf |
| 26 | tockload=n |
| 27 | ;; |
Laura Abbott | e0e9eab | 2020-02-19 16:46:03 -0500 | [diff] [blame] | 28 | "nrf52"|"nrf52840") |
| 29 | tockloader_flags="--jlink --arch cortex-m4 --board nrf52dk --jtag-device nrf52" |
| 30 | binary_name=cortex-m4.elf |
| 31 | tockload=y |
| 32 | ;; |
| 33 | "hail") |
| 34 | tockloader_flags="" |
| 35 | binary_name=cortex-m4.elf |
| 36 | tockload=y |
| 37 | ;; |
Alistair Francis | b3f213d | 2020-03-09 16:58:05 -0700 | [diff] [blame] | 38 | "hifive1") |
Laura Abbott | e0e9eab | 2020-02-19 16:46:03 -0500 | [diff] [blame] | 39 | tockloader_flags="" |
| 40 | binary_name=rv32imac.elf |
| 41 | tockload=n |
| 42 | ;; |
Vochescu Alexandru | d560977 | 2020-06-06 17:13:36 +0300 | [diff] [blame] | 43 | "imxrt1050") |
| 44 | tockloader_flags="" |
| 45 | binary_name=cortex-m7.elf |
| 46 | tockload=n |
| 47 | ;; |
hotschi | f6cd66b | 2020-08-07 14:52:04 +0200 | [diff] [blame] | 48 | "msp432") |
| 49 | tockloader_flags="" |
| 50 | binary_name=cortex-m4.elf |
| 51 | tockload=n |
| 52 | ;; |
Laura Abbott | e0e9eab | 2020-02-19 16:46:03 -0500 | [diff] [blame] | 53 | "opentitan") |
| 54 | tockloader_flags="" |
| 55 | binary_name=rv32imc.elf |
| 56 | tockload=n |
| 57 | ;; |
| 58 | *) |
| 59 | echo "Unknown platform \"${PLATFORM}\"" |
| 60 | exit 1 |
| 61 | ;; |
| 62 | esac |
| 63 | |
Woyten | 860e0bc | 2020-01-29 21:17:14 +0100 | [diff] [blame] | 64 | libtock_target_path="${rust_target_folder}/tab/${PLATFORM}/${artifact}" |
Laura Abbott | e0e9eab | 2020-02-19 16:46:03 -0500 | [diff] [blame] | 65 | elf_file_name="${libtock_target_path}/${binary_name}" |
Woyten | 860e0bc | 2020-01-29 21:17:14 +0100 | [diff] [blame] | 66 | tab_file_name="${libtock_target_path}.tab" |
| 67 | |
| 68 | mkdir -p "${libtock_target_path}" |
| 69 | cp "$1" "${elf_file_name}" |
| 70 | |
Laura Abbott | e9f3b9f | 2020-02-25 12:23:46 -0500 | [diff] [blame] | 71 | elf2tab -n "${artifact}" -o "${tab_file_name}" "${elf_file_name}" --stack 2048 --app-heap $APP_HEAP_SIZE --kernel-heap $KERNEL_HEAP_SIZE --protected-region-size=64 |
Woyten | 860e0bc | 2020-01-29 21:17:14 +0100 | [diff] [blame] | 72 | |
Laura Abbott | e0e9eab | 2020-02-19 16:46:03 -0500 | [diff] [blame] | 73 | if [ $tockload == "n" ]; then |
| 74 | echo "Skipping flashing for platform \"${PLATFORM}\"" |
| 75 | exit 0 |
| 76 | fi |
Woyten | 860e0bc | 2020-01-29 21:17:14 +0100 | [diff] [blame] | 77 | |
Alistair Francis | 87518f9 | 2020-06-25 09:17:13 -0700 | [diff] [blame] | 78 | if ! [ -x "$(command -v tockloader)" ]; then |
| 79 | echo "Skipping flashing as tockloader isn't installed" |
| 80 | exit 0 |
| 81 | fi |
| 82 | |
Woyten | 860e0bc | 2020-01-29 21:17:14 +0100 | [diff] [blame] | 83 | tockloader uninstall ${tockloader_flags} || true |
| 84 | tockloader install ${tockloader_flags} "${tab_file_name}" |