xref: /rk3399_rockchip-uboot/arch/arm/mach-rockchip/fit_args.sh (revision a962a5fdb4271e59bab38d4e9b59b4839b88656d)
1#!/bin/bash
2#
3# Copyright (c) 2020 Rockchip Electronics Co., Ltd
4#
5# SPDX-License-Identifier: GPL-2.0
6#
7
8srctree=$PWD
9
10function help()
11{
12	echo
13	echo "Description:"
14	echo "    Process args for all rockchip fit generator script, and providing variables for it's caller"
15	echo
16	echo "Usage:"
17	echo "    $0 [args]"
18	echo
19	echo "[args]:"
20	echo "--------------------------------------------------------------------------------------------"
21	echo "    arg                 type       output variable       description"
22	echo "--------------------------------------------------------------------------------------------"
23	echo "    -c [comp]     ==>   <string>   COMPRESSION           set compression: \"none\", \"gzip\""
24	echo "    -m0 [offset]  ==>   <hex>      MCU0_LOAD_ADDR        set mcu0.bin load address"
25	echo "    -m1 [offset]  ==>   <hex>      MCU1_LOAD_ADDR        set mcu1.bin load address"
26	echo "    -m2 [offset]  ==>   <hex>      MCU2_LOAD_ADDR        set mcu2.bin load address"
27	echo "    -m3 [offset]  ==>   <hex>      MCU3_LOAD_ADDR        set mcu3.bin load address"
28	echo "    -m4 [offset]  ==>   <hex>      MCU4_LOAD_ADDR        set mcu4.bin load address"
29	echo "    -l0 [offset]  ==>   <hex>      LOAD0_LOAD_ADDR       set load0.bin load address"
30	echo "    -l1 [offset]  ==>   <hex>      LOAD1_LOAD_ADDR       set load1.bin load address"
31	echo "    -l2 [offset]  ==>   <hex>      LOAD2_LOAD_ADDR       set load2.bin load address"
32	echo "    -l3 [offset]  ==>   <hex>      LOAD3_LOAD_ADDR       set load3.bin load address"
33	echo "    -l4 [offset]  ==>   <hex>      LOAD4_LOAD_ADDR       set load4.bin load address"
34	echo "    -t [offset]   ==>   <hex>      TEE_LOAD_ADDR         set tee.bin load address"
35	echo "    (none)        ==>   <hex>      UBOOT_LOAD_ADDR       set U-Boot load address"
36	echo "    (none)        ==>   <string>   ARCH                  set arch: \"arm\", \"arm64\""
37	echo
38}
39
40if [ $# -eq 1 ]; then
41	# default
42	TEE_OFFSET=0x08400000
43else
44	# args
45	while [ $# -gt 0 ]; do
46		case $1 in
47			--help|-help|help|--h|-h)
48				help
49				exit
50				;;
51			-c)
52				COMPRESSION=$2
53				shift 2
54				;;
55			-m0)
56				MCU0_OFFSET=$2
57				shift 2
58				;;
59			-m1)
60				MCU1_OFFSET=$2
61				shift 2
62				;;
63			-m2)
64				MCU2_OFFSET=$2
65				shift 2
66				;;
67			-m3)
68				MCU3_OFFSET=$2
69				shift 2
70				;;
71			-m4)
72				MCU4_OFFSET=$2
73				shift 2
74				;;
75			-l0)
76				LOAD0_OFFSET=$2
77				shift 2
78				;;
79			-l1)
80				LOAD1_OFFSET=$2
81				shift 2
82				;;
83			-l2)
84				LOAD2_OFFSET=$2
85				shift 2
86				;;
87			-l3)
88				LOAD3_OFFSET=$2
89				shift 2
90				;;
91			-l4)
92				LOAD4_OFFSET=$2
93				shift 2
94				;;
95			-t)
96				TEE_OFFSET=$2
97				shift 2
98				;;
99			*)
100				echo "Invalid arg: $1"
101				help
102				exit 1
103				;;
104		esac
105	done
106fi
107
108# Base
109DARM_BASE=`sed -n "/CONFIG_SYS_SDRAM_BASE=/s/CONFIG_SYS_SDRAM_BASE=//p" ${srctree}/include/autoconf.mk|tr -d '\r'`
110UBOOT_LOAD_ADDR=`sed -n "/CONFIG_SYS_TEXT_BASE=/s/CONFIG_SYS_TEXT_BASE=//p" ${srctree}/include/autoconf.mk|tr -d '\r'`
111if grep -q '^CONFIG_ARM64=y' .config ; then
112	ARCH="arm64"
113else
114	ARCH="arm"
115fi
116
117# tee
118if [ ! -z "${TEE_OFFSET}" ]; then
119	TEE_LOAD_ADDR=$((DARM_BASE+TEE_OFFSET))
120	TEE_LOAD_ADDR=$(echo "obase=16;${TEE_LOAD_ADDR}"|bc)
121fi
122
123# mcu
124if [ ! -z "${MCU0_OFFSET}" ]; then
125	MCU0_LOAD_ADDR=$((DARM_BASE+$MCU0_OFFSET))
126	MCU0_LOAD_ADDR=$(echo "obase=16;${MCU0_LOAD_ADDR}"|bc)
127fi
128if [ ! -z "${MCU1_OFFSET}" ]; then
129	MCU1_LOAD_ADDR=$((DARM_BASE+$MCU1_OFFSET))
130	MCU1_LOAD_ADDR=$(echo "obase=16;${MCU1_LOAD_ADDR}"|bc)
131fi
132if [ ! -z "${MCU2_OFFSET}" ]; then
133	MCU2_LOAD_ADDR=$((DARM_BASE+$MCU2_OFFSET))
134	MCU2_LOAD_ADDR=$(echo "obase=16;${MCU2_LOAD_ADDR}"|bc)
135fi
136if [ ! -z "${MCU3_OFFSET}" ]; then
137	MCU3_LOAD_ADDR=$((DARM_BASE+$MCU3_OFFSET))
138	MCU3_LOAD_ADDR=$(echo "obase=16;${MCU3_LOAD_ADDR}"|bc)
139fi
140if [ ! -z "${MCU4_OFFSET}" ]; then
141	MCU4_LOAD_ADDR=$((DARM_BASE+$MCU4_OFFSET))
142	MCU4_LOAD_ADDR=$(echo "obase=16;${MCU4_LOAD_ADDR}"|bc)
143fi
144
145# loadables
146if [ ! -z "${LOAD0_OFFSET}" ]; then
147	LOAD0_LOAD_ADDR=$((DARM_BASE+$LOAD0_OFFSET))
148	LOAD0_LOAD_ADDR=$(echo "obase=16;${LOAD0_LOAD_ADDR}"|bc)
149fi
150if [ ! -z "${LOAD1_OFFSET}" ]; then
151	LOAD1_LOAD_ADDR=$((DARM_BASE+$LOAD1_OFFSET))
152	LOAD1_LOAD_ADDR=$(echo "obase=16;${LOAD1_LOAD_ADDR}"|bc)
153fi
154if [ ! -z "${LOAD2_OFFSET}" ]; then
155	LOAD2_LOAD_ADDR=$((DARM_BASE+$LOAD2_OFFSET))
156	LOAD2_LOAD_ADDR=$(echo "obase=16;${LOAD2_LOAD_ADDR}"|bc)
157fi
158if [ ! -z "${LOAD3_OFFSET}" ]; then
159	LOAD3_LOAD_ADDR=$((DARM_BASE+$LOAD3_OFFSET))
160	LOAD3_LOAD_ADDR=$(echo "obase=16;${LOAD3_LOAD_ADDR}"|bc)
161fi
162if [ ! -z "${LOAD4_OFFSET}" ]; then
163	LOAD4_LOAD_ADDR=$((DARM_BASE+$LOAD4_OFFSET))
164	LOAD4_LOAD_ADDR=$(echo "obase=16;${LOAD4_LOAD_ADDR}"|bc)
165fi
166# echo " ## $DARM_BASE, $UBOOT_LOAD_ADDR, $TEE_LOAD_ADDR, $MCU0_LOAD_ADDR, $MCU1_LOAD_ADDR, $MCU2_LOAD_ADDR, $MCU3_LOAD_ADDR, $MCU4_LOAD_ADDR"
167