u-boot/tools/mrvl_uart.sh
Tom Rini 83d290c56f SPDX: Convert all of our single license tags to Linux Kernel style
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>
2018-05-07 09:34:12 -04:00

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