124a8c2d6SJoseph Chen#!/bin/bash 224a8c2d6SJoseph Chenset -e 324a8c2d6SJoseph Chen 424a8c2d6SJoseph Chenpack_loader_image() 524a8c2d6SJoseph Chen{ 624a8c2d6SJoseph Chen local files ini 724a8c2d6SJoseph Chen 824a8c2d6SJoseph Chen files=`ls ./RKBOOT/*MINIALL*.ini` 99d00b70aSJoseph Chen for ini in ${files} 1024a8c2d6SJoseph Chen do 119d00b70aSJoseph Chen if [ -f "${ini}" ]; then 1224a8c2d6SJoseph Chen # Ignore unused 139d00b70aSJoseph Chen if [ "${ini}" = "./RKBOOT/RK302AMINIALL.ini" -o \ 149d00b70aSJoseph Chen "${ini}" = "./RKBOOT/RK30BMINIALL.ini" -o \ 159d00b70aSJoseph Chen "${ini}" = "./RKBOOT/RK30MINIALL.ini" -o \ 169d00b70aSJoseph Chen "${ini}" = "./RKBOOT/RK310BMINIALL.ini" ]; then 1724a8c2d6SJoseph Chen continue; 1824a8c2d6SJoseph Chen fi 1924a8c2d6SJoseph Chen 209d00b70aSJoseph Chen if grep -q '^PATH=img/' ${ini}; then 2107c86261SJoseph Chen continue; 2207c86261SJoseph Chen fi 2307c86261SJoseph Chen 249d00b70aSJoseph Chen echo "pack Input: ${ini}" 259d00b70aSJoseph Chen ./tools/boot_merger ${ini} 26f3822d68SJoseph Chen rm -f *loader*.bin *download*.bin *idblock*.img 2724a8c2d6SJoseph Chen echo 2824a8c2d6SJoseph Chen fi 2924a8c2d6SJoseph Chen done 3024a8c2d6SJoseph Chen} 3124a8c2d6SJoseph Chen 3224a8c2d6SJoseph Chenpack_trust_image() 3324a8c2d6SJoseph Chen{ 3424a8c2d6SJoseph Chen local files ini TOS TOS_TA 3524a8c2d6SJoseph Chen 3624a8c2d6SJoseph Chen# Pack 32-bit trust 3724a8c2d6SJoseph Chen files=`ls ./RKTRUST/*TOS*.ini` 389d00b70aSJoseph Chen for ini in ${files} 3924a8c2d6SJoseph Chen do 40075296bdSJoseph Chen if ! test -s ${ini}; then 41075296bdSJoseph Chen continue; 42*d4bf7444SJoseph Chen elif ! grep -q '^TOS/' ${ini}; then 43*d4bf7444SJoseph Chen continue; 44*d4bf7444SJoseph Chen elif grep -q '^PATH=img/' ${ini}; then 4507c86261SJoseph Chen continue; 4607c86261SJoseph Chen fi 4707c86261SJoseph Chen 489d00b70aSJoseph Chen if [ -f "${ini}" ]; then 499d00b70aSJoseph Chen echo "pack Input: ${ini}" 5024a8c2d6SJoseph Chen 5124a8c2d6SJoseph Chen # Parse orignal path 529d00b70aSJoseph Chen TOS=`sed -n "/TOS=/s/TOS=//p" ${ini}|tr -d '\r'` 539d00b70aSJoseph Chen TOS_TA=`sed -n "/TOSTA=/s/TOSTA=//p" ${ini}|tr -d '\r'` 5424a8c2d6SJoseph Chen 5524a8c2d6SJoseph Chen # replace "./tools/rk_tools/" with "./" to compatible legacy ini content of rkdevelop branch 5624a8c2d6SJoseph Chen TOS=$(echo ${TOS} | sed "s/tools\/rk_tools\//\.\//g") 5724a8c2d6SJoseph Chen TOS_TA=$(echo ${TOS_TA} | sed "s/tools\/rk_tools\//\.\//g") 5824a8c2d6SJoseph Chen 599d00b70aSJoseph Chen if [ x${TOS_TA} != x -a x${TOS} != x ]; then 6024a8c2d6SJoseph Chen ./tools/loaderimage --pack --trustos ${TOS} ./trust.img 0x68400000 6124a8c2d6SJoseph Chen ./tools/loaderimage --pack --trustos ${TOS_TA} ./trust_with_ta.img 0x68400000 629d00b70aSJoseph Chen elif [ ${TOS} ]; then 6324a8c2d6SJoseph Chen ./tools/loaderimage --pack --trustos ${TOS} ./trust.img 0x68400000 649d00b70aSJoseph Chen elif [ ${TOS_TA} ]; then 6524a8c2d6SJoseph Chen ./tools/loaderimage --pack --trustos ${TOS_TA} ./trust.img 0x68400000 6624a8c2d6SJoseph Chen else 6724a8c2d6SJoseph Chen exit 1 6824a8c2d6SJoseph Chen fi 69f3822d68SJoseph Chen rm -f trust*.img 7024a8c2d6SJoseph Chen echo 7124a8c2d6SJoseph Chen fi 7224a8c2d6SJoseph Chen done 7324a8c2d6SJoseph Chen 7424a8c2d6SJoseph Chen# Pack 64-bit trust 7524a8c2d6SJoseph Chen files=`ls ./RKTRUST/*TRUST*.ini` 769d00b70aSJoseph Chen for ini in ${files} 7724a8c2d6SJoseph Chen do 789d00b70aSJoseph Chen if grep -q '^PATH=img/' ${ini}; then 7907c86261SJoseph Chen continue; 8007c86261SJoseph Chen fi 8107c86261SJoseph Chen 829d00b70aSJoseph Chen if [ -f "${ini}" ]; then 839d00b70aSJoseph Chen echo "pack Input: ${ini}" 849d00b70aSJoseph Chen ./tools/trust_merger ${ini} 8524a8c2d6SJoseph Chen rm trust*.img 8624a8c2d6SJoseph Chen echo 8724a8c2d6SJoseph Chen fi 8824a8c2d6SJoseph Chen done 8924a8c2d6SJoseph Chen} 9024a8c2d6SJoseph Chen 917448aaf2SJoseph Chencheck_dirty() 927448aaf2SJoseph Chen{ 937448aaf2SJoseph Chen for file in `find -name '*spl*.bin' -o -name '*tpl*.bin' -o -name '*usbplug*.bin'`; do 947448aaf2SJoseph Chen if strings ${file} | grep '\-dirty ' ; then 957448aaf2SJoseph Chen echo "ERROR: ${file} is dirty" 967448aaf2SJoseph Chen exit 1 977448aaf2SJoseph Chen fi 987448aaf2SJoseph Chen done 997448aaf2SJoseph Chen} 1007448aaf2SJoseph Chen 101c0efc7efSJoseph Chencheck_stripped() 102c0efc7efSJoseph Chen{ 103c0efc7efSJoseph Chen for elf in `find -name '*bl31*.elf'`; do 104c0efc7efSJoseph Chen info=`file ${elf}` 105c0efc7efSJoseph Chen if echo ${info} | grep -q "not stripped" ; then 106c0efc7efSJoseph Chen echo "ERROR: ${elf} is not stripped" 107c0efc7efSJoseph Chen exit 1 108c0efc7efSJoseph Chen fi 109c0efc7efSJoseph Chen done 110c0efc7efSJoseph Chen} 111c0efc7efSJoseph Chen 11224a8c2d6SJoseph Chenfinish() 11324a8c2d6SJoseph Chen{ 11424a8c2d6SJoseph Chen echo "Packing loader and trust successfully." 11524a8c2d6SJoseph Chen echo 11624a8c2d6SJoseph Chen} 11724a8c2d6SJoseph Chen 1187448aaf2SJoseph Chencheck_dirty 119c0efc7efSJoseph Chencheck_stripped 12024a8c2d6SJoseph Chenpack_loader_image 12124a8c2d6SJoseph Chenpack_trust_image 12224a8c2d6SJoseph Chenfinish 123