1#!/bin/bash 2# 3# Copyright (c) 2020 Rockchip Electronics Co., Ltd 4# 5# SPDX-License-Identifier: GPL-2.0 6# 7 8if [ $# -eq 0 ]; then 9 echo "ERROR: No args of $0" 10 exit 1 11fi 12 13while [ $# -gt 0 ]; do 14 case $1 in 15 --base) 16 DRAM_BASE=$2 17 shift 2 18 ;; 19 --ini) 20 INI=$2 21 shift 2 22 ;; 23 --size) 24 SIZE="$1 $2 $3" 25 shift 3 26 ;; 27 *) 28 echo "ERROR: Unknown arg: $1" 29 exit 1 30 ;; 31 esac 32done 33 34if [ ! -f ${INI} ]; then 35 echo "pack trust failed! Can't find: ${INI}" 36 exit 0 37fi 38 39TOS=`sed -n "/TOS=/s/TOS=//p" ${INI} | tr -d '\r'` 40TOSTA=`sed -n "/TOSTA=/s/TOSTA=//p" ${INI} | tr -d '\r'` 41OUTPUT=`sed -n "/OUTPUT=/s/OUTPUT=//p" ${INI} | tr -d '\r'` 42 43if [ -z "${OUTPUT}" ]; then 44 OUTPUT="./trust.img" 45fi 46 47LOAD_OFFSET=`sed -n "/ADDR=/s/ADDR=//p" ${INI} | tr -d '\r'` 48if [ -z "${LOAD_OFFSET}" ]; then 49 # default offset 50 LOAD_OFFSET=0x8400000 51fi 52 53LOAD_ADDR=$((DRAM_BASE+LOAD_OFFSET)) 54LOAD_ADDR=$(echo "obase=16;${LOAD_ADDR}"|bc) # Convert Dec to Hex 55 56rm trust*.img -f 57 58COUNT=`cat ${INI} | wc -l` 59if [ ${COUNT} -eq 1 ]; then 60 IMG=`sed -n "/PATH=/p" ${INI} | tr -d '\r' | cut -d '=' -f 2` 61 cp ${IMG} ./trust.img 62else 63 if [ ! -z "${TOSTA}" ]; then 64 ./tools/loaderimage --pack --trustos ${TOSTA} ${OUTPUT} ${LOAD_ADDR} ${SIZE} 65 elif [ ! -z "${TOS}" ]; then 66 ./tools/loaderimage --pack --trustos ${TOS} ${OUTPUT} ${LOAD_ADDR} ${SIZE} 67 else 68 echo "ERROR: No tee bin" 69 exit 1 70 fi 71fi 72 73echo "pack trust okay! Input: ${INI}" 74echo 75