xref: /rk3399_rockchip-uboot/arch/arm/mach-rockchip/fit_args.sh (revision e2c3dedb0d8a8964c3cc0907af681da4e60244d7)
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
40DRAM_BASE=`sed -n "/CONFIG_SYS_SDRAM_BASE=/s/CONFIG_SYS_SDRAM_BASE=//p" ${srctree}/include/autoconf.mk|tr -d '\r'`
41
42if [ $# -eq 1 ]; then
43	# default
44	TEE_OFFSET=0x08400000
45	TEE_LOAD_ADDR="0x"$(echo "obase=16;$((DRAM_BASE+TEE_OFFSET))"|bc)
46else
47	# args
48	while [ $# -gt 0 ]; do
49		case $1 in
50			--help|-help|help|--h|-h)
51				help
52				exit
53				;;
54			-c)
55				COMPRESSION=$2
56				shift 2
57				;;
58			-i0)
59				INIT0_LOAD_ADDR=$2
60				shift 2
61				;;
62			-m0)
63				MCU0_LOAD_ADDR=$2
64				shift 2
65				;;
66			-m1)
67				MCU1_LOAD_ADDR=$2
68				shift 2
69				;;
70			-m2)
71				MCU2_LOAD_ADDR=$2
72				shift 2
73				;;
74			-m3)
75				MCU3_LOAD_ADDR=$2
76				shift 2
77				;;
78			-m4)
79				MCU4_LOAD_ADDR=$2
80				shift 2
81				;;
82			-l0)
83				LOAD0_LOAD_ADDR=$2
84				shift 2
85				;;
86			-l1)
87				LOAD1_LOAD_ADDR=$2
88				shift 2
89				;;
90			-l2)
91				LOAD2_LOAD_ADDR=$2
92				shift 2
93				;;
94			-l3)
95				LOAD3_LOAD_ADDR=$2
96				shift 2
97				;;
98			-l4)
99				LOAD4_LOAD_ADDR=$2
100				shift 2
101				;;
102			-t)
103				TEE_LOAD_ADDR=$2
104				# Compatible leagcy: Offset
105				if ((TEE_LOAD_ADDR < DRAM_BASE));  then
106					TEE_LOAD_ADDR="0x"$(echo "obase=16;$((DRAM_BASE+$2))"|bc)
107				fi
108				shift 2
109				;;
110			*)
111				echo "Invalid arg: $1"
112				help
113				exit 1
114				;;
115		esac
116	done
117fi
118
119if ! grep -q '^CONFIG_FIT_OMIT_UBOOT=y' .config ; then
120	UBOOT_LOAD_ADDR=`sed -n "/CONFIG_SYS_TEXT_BASE=/s/CONFIG_SYS_TEXT_BASE=//p" ${srctree}/include/autoconf.mk|tr -d '\r'`
121fi
122
123# ARCH
124U_ARCH="arm"
125if grep -q '^CONFIG_ARM64=y' .config ; then
126	ARCH="arm64"
127	U_ARCH="arm64"
128elif grep -q '^CONFIG_ARM64_BOOT_AARCH32=y' .config ; then
129	ARCH="arm64"
130else
131	ARCH="arm"
132fi
133