aos/tools/imx8x/bf-boot.sh
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

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