xref: /rk3399_rockchip-uboot/scripts/tos.sh (revision d3acdc96e2fd0ed34beb32b26ba57131a1e04ea3)
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