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