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