113 lines
2.5 KiB
Bash
Executable File
113 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
############################################################################
|
|
# Copyright (c) 2019 ETH Zurich.
|
|
# All rights reserved.
|
|
#
|
|
# This file is distributed under the terms in the attached LICENSE file.
|
|
# If you do not find this file, copies can be found by writing to:
|
|
# ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
|
|
# Attn: Systems Group.
|
|
#
|
|
# Shell script for booting Barrelfish on SoCs with U-Boot using SDP and UUU
|
|
#
|
|
############################################################################
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR=$(dirname $0)
|
|
|
|
usage() {
|
|
echo "Usage: $0 <options>"
|
|
echo " --bf: Barrelfish image (required)"
|
|
echo " --board: Select board"
|
|
echo " --no-reset: Don't reset the board"
|
|
echo ""
|
|
echo "The script assumes that uuu is either on your"
|
|
echo "search path or the UUU environment variables is set."
|
|
exit 1;
|
|
}
|
|
|
|
while [ $# -ne 0 ]; do
|
|
case $1 in
|
|
"--bf")
|
|
BF_IMAGE=$2
|
|
shift
|
|
;;
|
|
"--board")
|
|
BOARD=$2
|
|
shift
|
|
;;
|
|
"--no-reset")
|
|
NO_RESET=1
|
|
;;
|
|
"-h"|"--help")
|
|
usage
|
|
;;
|
|
*)
|
|
usage
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
UUU=${UUU:-"uuu"}
|
|
if !(which $UUU > /dev/null); then
|
|
echo "\`${UUU}\` not found or not executable. Add to PATH or set UUU variable." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$BF_IMAGE" ]; then
|
|
echo "No Barrelfish image specified." >&2
|
|
exit 1;
|
|
fi
|
|
|
|
source "${SCRIPT_DIR}/board-tools.sh"
|
|
|
|
if [ ${NO_RESET:-0} -eq 0 ]; then
|
|
echo ""
|
|
echo "Resetting board"
|
|
BOARD_CTRL="colibri_ctrl"
|
|
if !(which $BOARD_CTRL > /dev/null); then
|
|
BOARD_CTRL="${SCRIPT_DIR}/board_ctrl.py"
|
|
fi
|
|
|
|
if [ ! -z "$BOARD" ]; then
|
|
BOARD_SERIAL=$(get_uart_serial_number $BOARD)
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
BOARD_CTRL="${BOARD_CTRL} --board ${BOARD_SERIAL}"
|
|
fi
|
|
$BOARD_CTRL reset || >&2 echo "Failed to reset the board, continuing anyway..."
|
|
fi
|
|
|
|
echo ""
|
|
echo "Creating temp dir"
|
|
TEMPDIR=$(mktemp -d)
|
|
|
|
echo ""
|
|
echo "Copying auxiliary files to ${TEMPDIR}"
|
|
cp "${SCRIPT_DIR}/aux-bf-boot/boot.scr" "${TEMPDIR}/"
|
|
cp "${SCRIPT_DIR}/aux-bf-boot/uuu.auto" "${TEMPDIR}/"
|
|
|
|
echo ""
|
|
echo "Copying Barrelfish image to ${TEMPDIR}"
|
|
cp $BF_IMAGE "${TEMPDIR}/image.efi"
|
|
|
|
# Wait for fastboot to be started, and udev rules have been applied...
|
|
sleep 3
|
|
if [ ! -z "$BOARD" ]; then
|
|
DEVPATH=$(get_otg_path_uuu $BOARD)
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
UUU="${UUU} -m ${DEVPATH}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Booting board"
|
|
$UUU ${TEMPDIR}
|
|
|
|
#Clean up
|
|
rm -rf $TEMPDIR
|