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