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:
parent
cd2acdbee7
commit
69cce37bfc
137
make.sh
137
make.sh
|
|
@ -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,55 +570,99 @@ pack_loader_image()
|
||||||
cd - && mv ${RKBIN}/*_loader_*.bin ./
|
cd - && mv ${RKBIN}/*_loader_*.bin ./
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__pack_32bit_trust_image()
|
||||||
|
{
|
||||||
|
local ini=$1 TOS TOS_TA DARM_BASE TEE_LOAD_ADDR TEE_OUTPUT TEE_OFFSET
|
||||||
|
|
||||||
|
if [ ! -f ${ini} ]; then
|
||||||
|
echo "pack trust failed! Can't find: ${ini}"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Parse orignal path
|
||||||
|
TOS=`sed -n "/TOS=/s/TOS=//p" ${ini} |tr -d '\r'`
|
||||||
|
TOS_TA=`sed -n "/TOSTA=/s/TOSTA=//p" ${ini} |tr -d '\r'`
|
||||||
|
|
||||||
|
# Parse address and output name
|
||||||
|
TEE_OUTPUT=`sed -n "/OUTPUT=/s/OUTPUT=//p" ${ini} |tr -d '\r'`
|
||||||
|
if [ "$TEE_OUTPUT" = "" ]; then
|
||||||
|
TEE_OUTPUT="./trust.img"
|
||||||
|
fi
|
||||||
|
TEE_OFFSET=`sed -n "/ADDR=/s/ADDR=//p" ${ini} |tr -d '\r'`
|
||||||
|
if [ "$TEE_OFFSET" = "" ]; then
|
||||||
|
TEE_OFFSET=0x8400000
|
||||||
|
fi
|
||||||
|
|
||||||
|
# OP-TEE is 132M(0x8400000) offset from DRAM base.
|
||||||
|
DARM_BASE=`sed -n "/CONFIG_SYS_SDRAM_BASE=/s/CONFIG_SYS_SDRAM_BASE=//p" ${OUTDIR}/include/autoconf.mk|tr -d '\r'`
|
||||||
|
TEE_LOAD_ADDR=$((DARM_BASE+TEE_OFFSET))
|
||||||
|
|
||||||
|
# Convert Dec to Hex
|
||||||
|
TEE_LOAD_ADDR=$(echo "obase=16;${TEE_LOAD_ADDR}"|bc)
|
||||||
|
|
||||||
|
# Replace "./tools/rk_tools/" with "./" to compatible legacy ini content of rkdevelop branch
|
||||||
|
TOS=$(echo ${TOS} | sed "s/tools\/rk_tools\//\.\//g")
|
||||||
|
TOS_TA=$(echo ${TOS_TA} | sed "s/tools\/rk_tools\//\.\//g")
|
||||||
|
|
||||||
|
if [ $TOS_TA ]; then
|
||||||
|
${RKTOOLS}/loaderimage --pack --trustos ${RKBIN}/${TOS_TA} ${TEE_OUTPUT} ${TEE_LOAD_ADDR} ${PLATFORM_TRUST_IMG_SIZE}
|
||||||
|
elif [ $TOS ]; then
|
||||||
|
${RKTOOLS}/loaderimage --pack --trustos ${RKBIN}/${TOS} ${TEE_OUTPUT} ${TEE_LOAD_ADDR} ${PLATFORM_TRUST_IMG_SIZE}
|
||||||
|
else
|
||||||
|
echo "Can't find any tee bin"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
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()
|
pack_trust_image()
|
||||||
{
|
{
|
||||||
local TOS TOS_TA DARM_BASE TEE_LOAD_ADDR TEE_OFFSET=0x8400000
|
local mode=$1 files ini
|
||||||
|
|
||||||
# ARM64 uses trust_merger
|
# ARM64 uses trust_merger
|
||||||
if grep -Eq ''^CONFIG_ARM64=y'|'^CONFIG_ARM64_BOOT_AARCH32=y'' ${OUTDIR}/.config ; then
|
if grep -Eq ''^CONFIG_ARM64=y'|'^CONFIG_ARM64_BOOT_AARCH32=y'' ${OUTDIR}/.config ; then
|
||||||
if [ ! -f ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini ]; then
|
ini=${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini
|
||||||
echo "pack trust failed! Can't find: ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini"
|
if [ "${mode}" = 'all' ]; then
|
||||||
return
|
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
|
fi
|
||||||
|
|
||||||
cd ${RKBIN}
|
|
||||||
${RKTOOLS}/trust_merger ${PLATFORM_SHA} ${PLATFORM_RSA} ${PLATFORM_TRUST_IMG_SIZE} ${BIN_PATH_FIXUP} \
|
|
||||||
${PACK_IGNORE_BL32} ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini
|
|
||||||
|
|
||||||
cd - && mv ${RKBIN}/trust.img ./trust.img
|
|
||||||
echo "pack trust okay! Input: ${RKBIN}/RKTRUST/${RKCHIP_TRUST}${PLATFORM_AARCH32}TRUST.ini"
|
|
||||||
# ARM uses loaderimage
|
# ARM uses loaderimage
|
||||||
else
|
else
|
||||||
if [ ! -f ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini ]; then
|
ini=${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini
|
||||||
echo "pack trust failed! Can't find: ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini"
|
if [ "${mode}" = 'all' ]; then
|
||||||
return
|
files=`ls ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS*.ini`
|
||||||
fi
|
for ini in $files
|
||||||
|
do
|
||||||
# OP-TEE is 132M(0x8400000) offset from DRAM base.
|
__pack_32bit_trust_image ${ini}
|
||||||
DARM_BASE=`sed -n "/CONFIG_SYS_SDRAM_BASE=/s/CONFIG_SYS_SDRAM_BASE=//p" ${OUTDIR}/include/autoconf.mk|tr -d '\r'`
|
done
|
||||||
TEE_LOAD_ADDR=$((DARM_BASE+TEE_OFFSET))
|
|
||||||
|
|
||||||
# Convert Dec to Hex
|
|
||||||
TEE_LOAD_ADDR=$(echo "obase=16;${TEE_LOAD_ADDR}"|bc)
|
|
||||||
|
|
||||||
# Parse orignal path
|
|
||||||
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_TA=$(echo ${TOS_TA} | sed "s/tools\/rk_tools\//\.\//g")
|
|
||||||
|
|
||||||
if [ $TOS_TA ]; then
|
|
||||||
${RKTOOLS}/loaderimage --pack --trustos ${RKBIN}/${TOS_TA} ./trust.img ${TEE_LOAD_ADDR} ${PLATFORM_TRUST_IMG_SIZE}
|
|
||||||
elif [ $TOS ]; then
|
|
||||||
${RKTOOLS}/loaderimage --pack --trustos ${RKBIN}/${TOS} ./trust.img ${TEE_LOAD_ADDR} ${PLATFORM_TRUST_IMG_SIZE}
|
|
||||||
else
|
else
|
||||||
echo "Can't find any tee bin"
|
__pack_32bit_trust_image ${ini}
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "pack trust okay! Input: ${RKBIN}/RKTRUST/${RKCHIP_TRUST}TOS.ini"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue