xref: /rk3399_rockchip-uboot/arch/arm/mach-rockchip/fit_args.sh (revision e2c3dedb0d8a8964c3cc0907af681da4e60244d7)
1bc77fafeSJoseph Chen#!/bin/bash
2bc77fafeSJoseph Chen#
3bc77fafeSJoseph Chen# Copyright (c) 2020 Rockchip Electronics Co., Ltd
4bc77fafeSJoseph Chen#
5bc77fafeSJoseph Chen# SPDX-License-Identifier: GPL-2.0
6bc77fafeSJoseph Chen#
7bc77fafeSJoseph Chen
8bc77fafeSJoseph Chensrctree=$PWD
9bc77fafeSJoseph Chen
10bc77fafeSJoseph Chenfunction help()
11bc77fafeSJoseph Chen{
12bc77fafeSJoseph Chen	echo
13bc77fafeSJoseph Chen	echo "Description:"
14bc77fafeSJoseph Chen	echo "    Process args for all rockchip fit generator script, and providing variables for it's caller"
15bc77fafeSJoseph Chen	echo
16bc77fafeSJoseph Chen	echo "Usage:"
17bc77fafeSJoseph Chen	echo "    $0 [args]"
18bc77fafeSJoseph Chen	echo
19bc77fafeSJoseph Chen	echo "[args]:"
20bc77fafeSJoseph Chen	echo "--------------------------------------------------------------------------------------------"
21bc77fafeSJoseph Chen	echo "    arg                 type       output variable       description"
22bc77fafeSJoseph Chen	echo "--------------------------------------------------------------------------------------------"
23bc77fafeSJoseph Chen	echo "    -c [comp]     ==>   <string>   COMPRESSION           set compression: \"none\", \"gzip\""
24bc77fafeSJoseph Chen	echo "    -m0 [offset]  ==>   <hex>      MCU0_LOAD_ADDR        set mcu0.bin load address"
25bc77fafeSJoseph Chen	echo "    -m1 [offset]  ==>   <hex>      MCU1_LOAD_ADDR        set mcu1.bin load address"
26bc77fafeSJoseph Chen	echo "    -m2 [offset]  ==>   <hex>      MCU2_LOAD_ADDR        set mcu2.bin load address"
27bc77fafeSJoseph Chen	echo "    -m3 [offset]  ==>   <hex>      MCU3_LOAD_ADDR        set mcu3.bin load address"
28bc77fafeSJoseph Chen	echo "    -m4 [offset]  ==>   <hex>      MCU4_LOAD_ADDR        set mcu4.bin load address"
29bc77fafeSJoseph Chen	echo "    -l0 [offset]  ==>   <hex>      LOAD0_LOAD_ADDR       set load0.bin load address"
30bc77fafeSJoseph Chen	echo "    -l1 [offset]  ==>   <hex>      LOAD1_LOAD_ADDR       set load1.bin load address"
31bc77fafeSJoseph Chen	echo "    -l2 [offset]  ==>   <hex>      LOAD2_LOAD_ADDR       set load2.bin load address"
32bc77fafeSJoseph Chen	echo "    -l3 [offset]  ==>   <hex>      LOAD3_LOAD_ADDR       set load3.bin load address"
33bc77fafeSJoseph Chen	echo "    -l4 [offset]  ==>   <hex>      LOAD4_LOAD_ADDR       set load4.bin load address"
34bc77fafeSJoseph Chen	echo "    -t [offset]   ==>   <hex>      TEE_LOAD_ADDR         set tee.bin load address"
35bc77fafeSJoseph Chen	echo "    (none)        ==>   <hex>      UBOOT_LOAD_ADDR       set U-Boot load address"
36bc77fafeSJoseph Chen	echo "    (none)        ==>   <string>   ARCH                  set arch: \"arm\", \"arm64\""
37bc77fafeSJoseph Chen	echo
38bc77fafeSJoseph Chen}
39bc77fafeSJoseph Chen
40e034a1b9SJoseph ChenDRAM_BASE=`sed -n "/CONFIG_SYS_SDRAM_BASE=/s/CONFIG_SYS_SDRAM_BASE=//p" ${srctree}/include/autoconf.mk|tr -d '\r'`
41e034a1b9SJoseph Chen
42bc77fafeSJoseph Chenif [ $# -eq 1 ]; then
43bc77fafeSJoseph Chen	# default
44bc77fafeSJoseph Chen	TEE_OFFSET=0x08400000
45*e2c3dedbSJoseph Chen	TEE_LOAD_ADDR="0x"$(echo "obase=16;$((DRAM_BASE+TEE_OFFSET))"|bc)
46bc77fafeSJoseph Chenelse
47bc77fafeSJoseph Chen	# args
48bc77fafeSJoseph Chen	while [ $# -gt 0 ]; do
49bc77fafeSJoseph Chen		case $1 in
50bc77fafeSJoseph Chen			--help|-help|help|--h|-h)
51bc77fafeSJoseph Chen				help
52bc77fafeSJoseph Chen				exit
53bc77fafeSJoseph Chen				;;
54bc77fafeSJoseph Chen			-c)
55bc77fafeSJoseph Chen				COMPRESSION=$2
56bc77fafeSJoseph Chen				shift 2
57bc77fafeSJoseph Chen				;;
5824ea65e6SJoseph Chen			-i0)
59e034a1b9SJoseph Chen				INIT0_LOAD_ADDR=$2
6024ea65e6SJoseph Chen				shift 2
6124ea65e6SJoseph Chen				;;
62bc77fafeSJoseph Chen			-m0)
63e034a1b9SJoseph Chen				MCU0_LOAD_ADDR=$2
64bc77fafeSJoseph Chen				shift 2
65bc77fafeSJoseph Chen				;;
66bc77fafeSJoseph Chen			-m1)
67e034a1b9SJoseph Chen				MCU1_LOAD_ADDR=$2
68bc77fafeSJoseph Chen				shift 2
69bc77fafeSJoseph Chen				;;
70bc77fafeSJoseph Chen			-m2)
71e034a1b9SJoseph Chen				MCU2_LOAD_ADDR=$2
72bc77fafeSJoseph Chen				shift 2
73bc77fafeSJoseph Chen				;;
74bc77fafeSJoseph Chen			-m3)
75e034a1b9SJoseph Chen				MCU3_LOAD_ADDR=$2
76bc77fafeSJoseph Chen				shift 2
77bc77fafeSJoseph Chen				;;
78bc77fafeSJoseph Chen			-m4)
79e034a1b9SJoseph Chen				MCU4_LOAD_ADDR=$2
80bc77fafeSJoseph Chen				shift 2
81bc77fafeSJoseph Chen				;;
82bc77fafeSJoseph Chen			-l0)
83e034a1b9SJoseph Chen				LOAD0_LOAD_ADDR=$2
84bc77fafeSJoseph Chen				shift 2
85bc77fafeSJoseph Chen				;;
86bc77fafeSJoseph Chen			-l1)
87e034a1b9SJoseph Chen				LOAD1_LOAD_ADDR=$2
88bc77fafeSJoseph Chen				shift 2
89bc77fafeSJoseph Chen				;;
90bc77fafeSJoseph Chen			-l2)
91e034a1b9SJoseph Chen				LOAD2_LOAD_ADDR=$2
92bc77fafeSJoseph Chen				shift 2
93bc77fafeSJoseph Chen				;;
94bc77fafeSJoseph Chen			-l3)
95e034a1b9SJoseph Chen				LOAD3_LOAD_ADDR=$2
96bc77fafeSJoseph Chen				shift 2
97bc77fafeSJoseph Chen				;;
98bc77fafeSJoseph Chen			-l4)
99e034a1b9SJoseph Chen				LOAD4_LOAD_ADDR=$2
100bc77fafeSJoseph Chen				shift 2
101bc77fafeSJoseph Chen				;;
102bc77fafeSJoseph Chen			-t)
103*e2c3dedbSJoseph Chen				TEE_LOAD_ADDR=$2
104*e2c3dedbSJoseph Chen				# Compatible leagcy: Offset
105*e2c3dedbSJoseph Chen				if ((TEE_LOAD_ADDR < DRAM_BASE));  then
106*e2c3dedbSJoseph Chen					TEE_LOAD_ADDR="0x"$(echo "obase=16;$((DRAM_BASE+$2))"|bc)
107*e2c3dedbSJoseph Chen				fi
108bc77fafeSJoseph Chen				shift 2
109bc77fafeSJoseph Chen				;;
110bc77fafeSJoseph Chen			*)
111bc77fafeSJoseph Chen				echo "Invalid arg: $1"
112bc77fafeSJoseph Chen				help
113bc77fafeSJoseph Chen				exit 1
114bc77fafeSJoseph Chen				;;
115bc77fafeSJoseph Chen		esac
116bc77fafeSJoseph Chen	done
117bc77fafeSJoseph Chenfi
118bc77fafeSJoseph Chen
119999755ecSJoseph Chenif ! grep -q '^CONFIG_FIT_OMIT_UBOOT=y' .config ; then
120bc77fafeSJoseph Chen	UBOOT_LOAD_ADDR=`sed -n "/CONFIG_SYS_TEXT_BASE=/s/CONFIG_SYS_TEXT_BASE=//p" ${srctree}/include/autoconf.mk|tr -d '\r'`
121999755ecSJoseph Chenfi
122990e82c1SJoseph Chen
123990e82c1SJoseph Chen# ARCH
124990e82c1SJoseph ChenU_ARCH="arm"
125bc77fafeSJoseph Chenif grep -q '^CONFIG_ARM64=y' .config ; then
126bc77fafeSJoseph Chen	ARCH="arm64"
127990e82c1SJoseph Chen	U_ARCH="arm64"
128990e82c1SJoseph Chenelif grep -q '^CONFIG_ARM64_BOOT_AARCH32=y' .config ; then
129990e82c1SJoseph Chen	ARCH="arm64"
130bc77fafeSJoseph Chenelse
131bc77fafeSJoseph Chen	ARCH="arm"
132bc77fafeSJoseph Chenfi
133