xous-core/tools/factory_reset.sh

65 lines
2 KiB
Bash
Executable file

#!/usr/bin/env bash
set -e
# populate with an invalid default so the equals compares work downstream
ARG1=${1:-bogus}
if [ $ARG1 == "-s" ]; then
echo "Updating to latest stabilized release"
REVISION="releases/latest"
elif [ $ARG1 == "-b" ]; then
echo "Updating to bleeding edge release"
REVISION="latest-ci"
else
echo "Usage: ${0} [-s] [-b] [[-l LOCALE]], where LOCALE is one of en, ja, zh, or en-tts"
echo "One of -s or -b must be specified for either stabilized or bleeding edge branches"
echo " "
echo "This script does a factory reset: all keys and data will be lost. No backsies."
exit 1
fi
ARG2=${2:-bogus}
if [ $ARG2 == "-l" ]; then
if [ -z "$3" ]; then
echo "Missing locale specifier"
exit 0
fi
LOCALE="-"$3
else
LOCALE=""
fi
./usb_update.py --disable-boot
echo "waiting for device to reboot"
sleep 5
wget https://ci.betrusted.io/$REVISION/xous$LOCALE.img -O /tmp/xous.img
./usb_update.py -k /tmp/xous.img
rm /tmp/xous.img
echo "waiting for device to reboot"
sleep 5
wget https://ci.betrusted.io/$REVISION/ec_fw.bin -O /tmp/ec_fw.bin
./usb_update.py -e /tmp/ec_fw.bin
rm /tmp/ec_fw.bin
sleep 5
wget https://ci.betrusted.io/$REVISION/wf200_fw.bin -O /tmp/wf200_fw.bin
./usb_update.py -w /tmp/wf200_fw.bin
rm /tmp/wf200_fw.bin
echo "waiting for device to reboot"
sleep 5
# this should sequence last because it overwrites all of the CSR values on the currently loaded SoC
wget https://ci.betrusted.io/$REVISION/soc_csr.bin -O /tmp/soc_csr.bin
wget https://ci.betrusted.io/$REVISION/loader.bin -O /tmp/loader.bin
./usb_update.py --enable-boot-wipe --soc /tmp/soc_csr.bin -l /tmp/loader.bin
rm /tmp/loader.bin
rm /tmp/soc_csr.bin
echo "Please insert a paperclip in the hard reset hole in the lower right hand corner to ensure the new FPGA gateware is loaded."
echo "After inserting the paperclip you will need to apply power via USB to boot."
echo "IMPORTANT: you must run 'ecup auto' to update the EC with the staged firmware objects."