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