xref: /OK3568_Linux_fs/u-boot/scripts/tos.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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