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'` 110if ! grep -q '^CONFIG_FIT_OMIT_UBOOT=y' .config ; then 111 UBOOT_LOAD_ADDR=`sed -n "/CONFIG_SYS_TEXT_BASE=/s/CONFIG_SYS_TEXT_BASE=//p" ${srctree}/include/autoconf.mk|tr -d '\r'` 112fi 113 114# ARCH 115U_ARCH="arm" 116if grep -q '^CONFIG_ARM64=y' .config ; then 117 ARCH="arm64" 118 U_ARCH="arm64" 119elif grep -q '^CONFIG_ARM64_BOOT_AARCH32=y' .config ; then 120 ARCH="arm64" 121else 122 ARCH="arm" 123fi 124 125# tee 126if [ ! -z "${TEE_OFFSET}" ]; then 127 TEE_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+TEE_OFFSET))"|bc) 128fi 129 130# mcu 131if [ ! -z "${MCU0_OFFSET}" ]; then 132 MCU0_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$MCU0_OFFSET))"|bc) 133fi 134if [ ! -z "${MCU1_OFFSET}" ]; then 135 MCU1_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$MCU1_OFFSET))"|bc) 136fi 137if [ ! -z "${MCU2_OFFSET}" ]; then 138 MCU2_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$MCU2_OFFSET))"|bc) 139fi 140if [ ! -z "${MCU3_OFFSET}" ]; then 141 MCU3_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$MCU3_OFFSET))"|bc) 142fi 143if [ ! -z "${MCU4_OFFSET}" ]; then 144 MCU4_LOAD_ADDR="0x"$(echo "obase=16;$$((DARM_BASE+$MCU4_OFFSET))"|bc) 145fi 146 147# loadables 148if [ ! -z "${LOAD0_OFFSET}" ]; then 149 LOAD0_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$LOAD0_OFFSET))"|bc) 150fi 151if [ ! -z "${LOAD1_OFFSET}" ]; then 152 LOAD1_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$LOAD1_OFFSET))"|bc) 153fi 154if [ ! -z "${LOAD2_OFFSET}" ]; then 155 LOAD2_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$LOAD2_OFFSET))"|bc) 156fi 157if [ ! -z "${LOAD3_OFFSET}" ]; then 158 LOAD3_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$LOAD3_OFFSET))"|bc) 159fi 160if [ ! -z "${LOAD4_OFFSET}" ]; then 161 LOAD4_LOAD_ADDR="0x"$(echo "obase=16;$((DARM_BASE+$LOAD4_OFFSET))"|bc) 162fi 163# 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