#!/bin/bash 
 | 
  
 | 
PROGRAM=${0##*/} 
 | 
SCRIPT_ROOT=$(dirname $(readlink -f "$0")) 
 | 
  
 | 
if [ $# -ne 4 ]; then 
 | 
    echo 'Usage: '$PROGRAM' loader uboot trust boot' 
 | 
    exit -1 
 | 
fi 
 | 
  
 | 
cat /proc/cpuinfo |grep -E "Intel|AMD" 
 | 
if [ $? -ne 0 ]; then 
 | 
 echo "use arm version" 
 | 
  LOG_DIR=~/.rockchip/upgrade_tool/aarch64/log 
 | 
  CONFIG_INI=$SCRIPT_ROOT/aarch64_release/config.ini 
 | 
  UPGRADE_TOOL=$SCRIPT_ROOT/aarch64_release/upgrade_tool 
 | 
else 
 | 
  LOG_DIR=~/.rockchip/upgrade_tool/x64/log 
 | 
  CONFIG_INI=$SCRIPT_ROOT/x64_release/config.ini 
 | 
  UPGRADE_TOOL=$SCRIPT_ROOT/x64_release/upgrade_tool 
 | 
fi 
 | 
  
 | 
mkdir -p $LOG_DIR 
 | 
grep log_dir $CONFIG_INI > /dev/null 
 | 
if [ $? -ne 0 ]; then 
 | 
    echo "log_dir=$(realpath $LOG_DIR)" >> $CONFIG_INI 
 | 
fi 
 | 
  
 | 
LOADER=$1 
 | 
UBOOT=$2 
 | 
TRUST=$3 
 | 
BOOT=$4 
 | 
UBOOT_ADDR=0x20000 
 | 
TRUST_ADDR=0x20800 
 | 
BOOT_ADDR=0x21000 
 | 
  
 | 
if [ ! -f $UPGRADE_TOOL ]; then 
 | 
    echo $UPGRADE_TOOL 'is not existed!' 
 | 
    exit -1 
 | 
fi 
 | 
  
 | 
if [ ! -f $LOADER ]; then 
 | 
    echo $LOADER 'is not existed!' 
 | 
    exit -1 
 | 
fi 
 | 
  
 | 
if [ ! -f $UBOOT ]; then 
 | 
    echo $UBOOT 'is not existed!' 
 | 
    exit -1 
 | 
fi 
 | 
  
 | 
if [ ! -f $TRUST ]; then 
 | 
    echo $TRUST 'is not existed!' 
 | 
    exit -1 
 | 
fi 
 | 
  
 | 
if [ ! -f $BOOT ]; then 
 | 
    echo $BOOT 'is not existed!' 
 | 
    exit -1 
 | 
fi 
 | 
  
 | 
echo 'start to wait device...' 
 | 
i=0 
 | 
while [ $i -lt 5 ]; do 
 | 
    $UPGRADE_TOOL ld > /dev/null 
 | 
    if [ $? -ne 0 ]; then 
 | 
        i=$((i+1)) 
 | 
        echo $i 
 | 
        sleep 0.01 
 | 
    else 
 | 
        break 
 | 
    fi 
 | 
done 
 | 
if [ $i -ge 5 ]; then 
 | 
    echo 'failed to wait device!' 
 | 
    exit -1 
 | 
fi 
 | 
echo 'device is ready' 
 | 
  
 | 
echo 'start to download loader...' 
 | 
$UPGRADE_TOOL db $LOADER > /dev/null 
 | 
if [ $? -ne 0 ]; then 
 | 
    echo 'failed to download loader!' 
 | 
    exit -1 
 | 
fi 
 | 
echo 'download loader ok' 
 | 
  
 | 
echo 'start to wait loader...' 
 | 
$UPGRADE_TOOL td > /dev/null 
 | 
if [ $? -ne 0 ]; then 
 | 
    echo 'failed to wait loader!' 
 | 
    exit -1 
 | 
fi 
 | 
echo 'loader is ready' 
 | 
  
 | 
echo 'start to write uboot...' 
 | 
$UPGRADE_TOOL wl $UBOOT_ADDR $UBOOT > /dev/null 
 | 
if [ $? -ne 0 ]; then 
 | 
    echo 'failed to write uboot!' 
 | 
    exit -1 
 | 
fi 
 | 
echo 'write uboot ok' 
 | 
  
 | 
echo 'start to write trust...' 
 | 
$UPGRADE_TOOL wl $TRUST_ADDR $TRUST > /dev/null 
 | 
if [ $? -ne 0 ]; then 
 | 
    echo 'failed to write trust!' 
 | 
    exit -1 
 | 
fi 
 | 
echo 'write trust ok' 
 | 
  
 | 
echo 'start to write boot...' 
 | 
$UPGRADE_TOOL wl $BOOT_ADDR $BOOT > /dev/null 
 | 
if [ $? -ne 0 ]; then 
 | 
    echo 'failed to write boot!' 
 | 
    exit -1 
 | 
fi 
 | 
echo 'write boot ok' 
 | 
  
 | 
echo 'start to run system...' 
 | 
$UPGRADE_TOOL rs $UBOOT_ADDR $TRUST_ADDR $BOOT_ADDR $UBOOT $TRUST $BOOT > /dev/null 
 | 
if [ $? -ne 0 ]; then 
 | 
    echo 'failed to run system!' 
 | 
    exit -1 
 | 
fi 
 | 
echo 'run system ok' 
 |