make.sh: support "./make trust-all" command

support parse "ADDR" and "OUTPUT" from *TOS.ini

Change-Id: Ie98d858c832eecd7736cf3b4a020dfc91b10241c
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
Joseph Chen 2019-04-11 09:37:28 +08:00 committed by Jianhong Chen
parent cd2acdbee7
commit 69cce37bfc
1 changed files with 91 additions and 46 deletions

107
make.sh
View File

@ -78,7 +78,7 @@ help()
echo " ./make.sh [board|subcmd] [O=<dir>]" echo " ./make.sh [board|subcmd] [O=<dir>]"
echo echo
echo " - board: board name of defconfig" echo " - board: board name of defconfig"
echo " - subcmd: loader|loader-all|trust|uboot|elf|map|sym|<addr>|" echo " - subcmd: loader|loader-all|trust|trust-all|uboot|elf|map|sym|<addr>|"
echo " - O=<dir>: assigned output directory" echo " - O=<dir>: assigned output directory"
echo echo
echo "Example:" echo "Example:"
@ -92,10 +92,11 @@ help()
echo " After build, Images of uboot, loader and trust are all generated." echo " After build, Images of uboot, loader and trust are all generated."
echo echo
echo "2. Pack helper:" echo "2. Pack helper:"
echo " ./make.sh trust --- pack trust.img"
echo " ./make.sh uboot --- pack uboot.img" echo " ./make.sh uboot --- pack uboot.img"
echo " ./make.sh trust --- pack trust.img"
echo " ./make.sh trust-all --- pack trust img (all supported)"
echo " ./make.sh loader --- pack loader bin" echo " ./make.sh loader --- pack loader bin"
echo " ./make.sh loader-all --- pack loader bin (all supported loaders)" echo " ./make.sh loader-all --- pack loader bin (all supported)"
echo echo
echo "3. Debug helper:" echo "3. Debug helper:"
echo " ./make.sh elf --- dump elf file with -D(default)" echo " ./make.sh elf --- dump elf file with -D(default)"
@ -119,7 +120,7 @@ prepare()
else else
case $BOARD in case $BOARD in
# Parse from exit .config # Parse from exit .config
''|elf*|loader*|debug*|trust|uboot|map|sym) ''|elf*|loader*|debug*|trust*|uboot|map|sym)
count=`find -name .config | wc -l` count=`find -name .config | wc -l`
dir=`find -name .config` dir=`find -name .config`
# Good, find only one .config # Good, find only one .config
@ -159,7 +160,7 @@ prepare()
;; ;;
#Subcmd #Subcmd
''|elf*|loader*|debug*|trust|uboot|map|sym) ''|elf*|loader*|debug*|trust*|uboot|map|sym)
;; ;;
*) *)
@ -261,7 +262,7 @@ sub_commands()
;; ;;
trust) trust)
pack_trust_image pack_trust_image ${opt}
exit 0 exit 0
;; ;;
@ -271,7 +272,7 @@ sub_commands()
;; ;;
uboot) uboot)
pack_uboot_image pack_uboot_image ${opt}
exit 0 exit 0
;; ;;
@ -569,28 +570,27 @@ pack_loader_image()
cd - && mv ${RKBIN}/*_loader_*.bin ./ cd - && mv ${RKBIN}/*_loader_*.bin ./
} }
pack_trust_image() __pack_32bit_trust_image()
{ {
local TOS TOS_TA DARM_BASE TEE_LOAD_ADDR TEE_OFFSET=0x8400000 local ini=$1 TOS TOS_TA DARM_BASE TEE_LOAD_ADDR TEE_OUTPUT TEE_OFFSET
# ARM64 uses trust_merger if [ ! -f ${ini} ]; then
if grep -Eq ''^CONFIG_ARM64=y'|'^CONFIG_ARM64_BOOT_AARCH32=y'' ${OUTDIR}/.config ; then echo "pack trust failed! Can't find: ${ini}"
if [ ! -f ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini ]; then
echo "pack trust failed! Can't find: ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini"
return return
fi fi
cd ${RKBIN} # Parse orignal path
${RKTOOLS}/trust_merger ${PLATFORM_SHA} ${PLATFORM_RSA} ${PLATFORM_TRUST_IMG_SIZE} ${BIN_PATH_FIXUP} \ TOS=`sed -n "/TOS=/s/TOS=//p" ${ini} |tr -d '\r'`
${PACK_IGNORE_BL32} ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini TOS_TA=`sed -n "/TOSTA=/s/TOSTA=//p" ${ini} |tr -d '\r'`
cd - && mv ${RKBIN}/trust.img ./trust.img # Parse address and output name
echo "pack trust okay! Input: ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini" TEE_OUTPUT=`sed -n "/OUTPUT=/s/OUTPUT=//p" ${ini} |tr -d '\r'`
# ARM uses loaderimage if [ "$TEE_OUTPUT" = "" ]; then
else TEE_OUTPUT="./trust.img"
if [ ! -f ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini ]; then fi
echo "pack trust failed! Can't find: ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini" TEE_OFFSET=`sed -n "/ADDR=/s/ADDR=//p" ${ini} |tr -d '\r'`
return if [ "$TEE_OFFSET" = "" ]; then
TEE_OFFSET=0x8400000
fi fi
# OP-TEE is 132M(0x8400000) offset from DRAM base. # OP-TEE is 132M(0x8400000) offset from DRAM base.
@ -600,24 +600,69 @@ pack_trust_image()
# Convert Dec to Hex # Convert Dec to Hex
TEE_LOAD_ADDR=$(echo "obase=16;${TEE_LOAD_ADDR}"|bc) TEE_LOAD_ADDR=$(echo "obase=16;${TEE_LOAD_ADDR}"|bc)
# Parse orignal path # Replace "./tools/rk_tools/" with "./" to compatible legacy ini content of rkdevelop branch
TOS=`sed -n "/TOS=/s/TOS=//p" ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini|tr -d '\r'`
TOS_TA=`sed -n "/TOSTA=/s/TOSTA=//p" ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini|tr -d '\r'`
# replace "./tools/rk_tools/" with "./" to compatible legacy ini content of rkdevelop branch
TOS=$(echo ${TOS} | sed "s/tools\/rk_tools\//\.\//g") TOS=$(echo ${TOS} | sed "s/tools\/rk_tools\//\.\//g")
TOS_TA=$(echo ${TOS_TA} | sed "s/tools\/rk_tools\//\.\//g") TOS_TA=$(echo ${TOS_TA} | sed "s/tools\/rk_tools\//\.\//g")
if [ $TOS_TA ]; then if [ $TOS_TA ]; then
${RKTOOLS}/loaderimage --pack --trustos ${RKBIN}/${TOS_TA} ./trust.img ${TEE_LOAD_ADDR} ${PLATFORM_TRUST_IMG_SIZE} ${RKTOOLS}/loaderimage --pack --trustos ${RKBIN}/${TOS_TA} ${TEE_OUTPUT} ${TEE_LOAD_ADDR} ${PLATFORM_TRUST_IMG_SIZE}
elif [ $TOS ]; then elif [ $TOS ]; then
${RKTOOLS}/loaderimage --pack --trustos ${RKBIN}/${TOS} ./trust.img ${TEE_LOAD_ADDR} ${PLATFORM_TRUST_IMG_SIZE} ${RKTOOLS}/loaderimage --pack --trustos ${RKBIN}/${TOS} ${TEE_OUTPUT} ${TEE_LOAD_ADDR} ${PLATFORM_TRUST_IMG_SIZE}
else else
echo "Can't find any tee bin" echo "Can't find any tee bin"
exit 1 exit 1
fi fi
echo "pack trust okay! Input: ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini" echo "pack trust okay! Input: ${ini}"
echo
}
__pack_64bit_trust_image()
{
local ini=$1
if [ ! -f ${ini} ]; then
echo "pack trust failed! Can't find: ${ini}"
return
fi
cd ${RKBIN}
${RKTOOLS}/trust_merger ${PLATFORM_SHA} ${PLATFORM_RSA} ${PLATFORM_TRUST_IMG_SIZE} ${BIN_PATH_FIXUP} \
${PACK_IGNORE_BL32} ${ini}
cd - && mv ${RKBIN}/trust*.img ./
echo "pack trust okay! Input: ${ini}"
echo
}
pack_trust_image()
{
local mode=$1 files ini
# ARM64 uses trust_merger
if grep -Eq ''^CONFIG_ARM64=y'|'^CONFIG_ARM64_BOOT_AARCH32=y'' ${OUTDIR}/.config ; then
ini=${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini
if [ "${mode}" = 'all' ]; then
files=`ls ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST*.ini`
for ini in $files
do
__pack_64bit_trust_image ${ini}
done
else
__pack_64bit_trust_image ${ini}
fi
# ARM uses loaderimage
else
ini=${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini
if [ "${mode}" = 'all' ]; then
files=`ls ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS*.ini`
for ini in $files
do
__pack_32bit_trust_image ${ini}
done
else
__pack_32bit_trust_image ${ini}
fi
fi fi
} }