83d290c56f
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
120 lines
2.8 KiB
Bash
Executable File
120 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
######################################################
|
|
# Copyright (C) 2016 Marvell International Ltd.
|
|
#
|
|
# https://spdx.org/licenses
|
|
#
|
|
# Author: Konstantin Porotchkin kostap@marvell.com
|
|
#
|
|
# Version 0.3
|
|
#
|
|
# UART recovery downloader for Armada SoCs
|
|
#
|
|
######################################################
|
|
|
|
port=$1
|
|
file=$2
|
|
speed=$3
|
|
|
|
pattern_repeat=1500
|
|
default_baudrate=115200
|
|
tmpfile=/tmp/xmodem.pattern
|
|
tools=( dd stty sx minicom )
|
|
|
|
case "$3" in
|
|
2)
|
|
fast_baudrate=230400
|
|
prefix="\xF2"
|
|
;;
|
|
4)
|
|
fast_baudrate=460800
|
|
prefix="\xF4"
|
|
;;
|
|
8)
|
|
fast_baudrate=921600
|
|
prefix="\xF8"
|
|
;;
|
|
*)
|
|
fast_baudrate=$default_baudrate
|
|
prefix="\xBB"
|
|
esac
|
|
|
|
if [[ -z "$port" || -z "$file" ]]
|
|
then
|
|
echo -e "\nMarvell recovery image downloader for Armada SoC family."
|
|
echo -e "Command syntax:"
|
|
echo -e "\t$(basename $0) <port> <file> [2|4|8]"
|
|
echo -e "\tport - serial port the target board is connected to"
|
|
echo -e "\tfile - recovery boot image for target download"
|
|
echo -e "\t2|4|8 - times to increase the default serial port speed by"
|
|
echo -e "For example - load the image over ttyUSB0 @ 460800 baud:"
|
|
echo -e "$(basename $0) /dev/ttyUSB0 /tmp/flash-image.bin 4\n"
|
|
echo -e "=====WARNING====="
|
|
echo -e "- The speed-up option is not available in SoC families prior to A8K+"
|
|
echo -e "- This utility is not compatible with Armada 37xx SoC family\n"
|
|
fi
|
|
|
|
# Sanity checks
|
|
if [ -c "$port" ]
|
|
then
|
|
echo -e "Using device connected on serial port \"$port\""
|
|
else
|
|
echo "Wrong serial port name!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -f "$file" ]
|
|
then
|
|
echo -e "Loading flash image file \"$file\""
|
|
else
|
|
echo "File $file does not exist!"
|
|
exit 1
|
|
fi
|
|
|
|
# Verify required tools installation
|
|
for tool in ${tools[@]}
|
|
do
|
|
toolname=`which $tool`
|
|
if [ -z "$toolname" ]
|
|
then
|
|
echo -e "Missing installation of \"$tool\" --> Exiting"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
|
|
echo -e "Recovery will run at $fast_baudrate baud"
|
|
echo -e "========================================"
|
|
|
|
if [ -f "$tmpfile" ]
|
|
then
|
|
rm -f $tmpfile
|
|
fi
|
|
|
|
# Send the escape sequence to target board using default debug port speed
|
|
stty -F $port raw ignbrk time 5 $default_baudrate
|
|
counter=0
|
|
while [ $counter -lt $pattern_repeat ]; do
|
|
echo -n -e "$prefix\x11\x22\x33\x44\x55\x66\x77" >> $tmpfile
|
|
let counter=counter+1
|
|
done
|
|
|
|
echo -en "Press the \"Reset\" button on the target board and "
|
|
echo -en "the \"Enter\" key on the host keyboard simultaneously"
|
|
read
|
|
dd if=$tmpfile of=$port &>/dev/null
|
|
|
|
# Speed up the binary image transfer
|
|
stty -F $port raw ignbrk time 5 $fast_baudrate
|
|
sx -vv $file > $port < $port
|
|
#sx-at91 $port $file
|
|
|
|
# Return the port to the default speed
|
|
stty -F $port raw ignbrk time 5 $default_baudrate
|
|
|
|
# Optional - fire up Minicom
|
|
minicom -D $port -b $default_baudrate
|
|
|