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