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