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