124a8c2d6SJoseph Chen#!/bin/bash 224a8c2d6SJoseph Chenset -e 324a8c2d6SJoseph Chen 4*15aaf94fSJoseph Chenfunction pack_loader_image() 524a8c2d6SJoseph Chen{ 6*15aaf94fSJoseph Chen for FILE in `ls ./RKBOOT/*MINIALL*.ini` 724a8c2d6SJoseph Chen do 8*15aaf94fSJoseph Chen if [ "${FILE}" = "./RKBOOT/RK302AMINIALL.ini" -o \ 9*15aaf94fSJoseph Chen "${FILE}" = "./RKBOOT/RK30BMINIALL.ini" -o \ 10*15aaf94fSJoseph Chen "${FILE}" = "./RKBOOT/RK30MINIALL.ini" -o \ 11*15aaf94fSJoseph Chen "${FILE}" = "./RKBOOT/RK310BMINIALL.ini" ]; then 1224a8c2d6SJoseph Chen continue; 1324a8c2d6SJoseph Chen fi 1424a8c2d6SJoseph Chen 15*15aaf94fSJoseph Chen if grep -q '^PATH=img/' ${FILE}; then 1607c86261SJoseph Chen continue; 1707c86261SJoseph Chen fi 1807c86261SJoseph Chen 19*15aaf94fSJoseph Chen echo "Pack loader: ${FILE}" 20*15aaf94fSJoseph Chen ./tools/boot_merger ${FILE} 21f3822d68SJoseph Chen rm -f *loader*.bin *download*.bin *idblock*.img 2224a8c2d6SJoseph Chen echo 2324a8c2d6SJoseph Chen done 2424a8c2d6SJoseph Chen} 2524a8c2d6SJoseph Chen 26*15aaf94fSJoseph Chenfunction pack_trust_image() 2724a8c2d6SJoseph Chen{ 2824a8c2d6SJoseph Chen # Pack 32-bit trust 29*15aaf94fSJoseph Chen for FILE in `ls ./RKTRUST/*TOS*.ini` 3024a8c2d6SJoseph Chen do 31*15aaf94fSJoseph Chen if ! test -s ${FILE}; then 32075296bdSJoseph Chen continue; 33*15aaf94fSJoseph Chen elif ! grep -q 'TOS' ${FILE}; then 34d4bf7444SJoseph Chen continue; 35*15aaf94fSJoseph Chen elif grep -q '^PATH=img/' ${FILE}; then 3607c86261SJoseph Chen continue; 3707c86261SJoseph Chen fi 3807c86261SJoseph Chen 39*15aaf94fSJoseph Chen echo "Pack trust: ${FILE}" 4024a8c2d6SJoseph Chen # Parse orignal path 41*15aaf94fSJoseph Chen TOS=`sed -n "/TOS=/s/TOS=//p" ${FILE}|tr -d '\r'` 42*15aaf94fSJoseph Chen TOS_TA=`sed -n "/TOSTA=/s/TOSTA=//p" ${FILE}|tr -d '\r'` 4324a8c2d6SJoseph Chen 4424a8c2d6SJoseph Chen # replace "./tools/rk_tools/" with "./" to compatible legacy ini content of rkdevelop branch 4524a8c2d6SJoseph Chen TOS=$(echo ${TOS} | sed "s/tools\/rk_tools\//\.\//g") 4624a8c2d6SJoseph Chen TOS_TA=$(echo ${TOS_TA} | sed "s/tools\/rk_tools\//\.\//g") 4724a8c2d6SJoseph Chen 489d00b70aSJoseph Chen if [ x${TOS_TA} != x -a x${TOS} != x ]; then 4924a8c2d6SJoseph Chen ./tools/loaderimage --pack --trustos ${TOS} ./trust.img 0x68400000 5024a8c2d6SJoseph Chen ./tools/loaderimage --pack --trustos ${TOS_TA} ./trust_with_ta.img 0x68400000 519d00b70aSJoseph Chen elif [ ${TOS} ]; then 5224a8c2d6SJoseph Chen ./tools/loaderimage --pack --trustos ${TOS} ./trust.img 0x68400000 539d00b70aSJoseph Chen elif [ ${TOS_TA} ]; then 5424a8c2d6SJoseph Chen ./tools/loaderimage --pack --trustos ${TOS_TA} ./trust.img 0x68400000 5524a8c2d6SJoseph Chen else 5624a8c2d6SJoseph Chen exit 1 5724a8c2d6SJoseph Chen fi 58f3822d68SJoseph Chen rm -f trust*.img 5924a8c2d6SJoseph Chen echo 6024a8c2d6SJoseph Chen done 6124a8c2d6SJoseph Chen 6224a8c2d6SJoseph Chen # Pack 64-bit trust 63*15aaf94fSJoseph Chen for FILE in `ls ./RKTRUST/*TRUST*.ini` 6424a8c2d6SJoseph Chen do 65*15aaf94fSJoseph Chen if grep -q '^PATH=img/' ${FILE}; then 6607c86261SJoseph Chen continue; 6707c86261SJoseph Chen fi 6807c86261SJoseph Chen 69*15aaf94fSJoseph Chen echo "Pack trust: ${FILE}" 70*15aaf94fSJoseph Chen ./tools/trust_merger ${FILE} 71*15aaf94fSJoseph Chen rm -f trust*.img 7224a8c2d6SJoseph Chen echo 7324a8c2d6SJoseph Chen done 7424a8c2d6SJoseph Chen} 7524a8c2d6SJoseph Chen 76*15aaf94fSJoseph Chenfunction check_dirty() 777448aaf2SJoseph Chen{ 78*15aaf94fSJoseph Chen for FILE in `find -name '*spl*.bin' -o -name '*tpl*.bin' -o -name '*usbplug*.bin'`; do 79*15aaf94fSJoseph Chen echo "Checking dirty: ${FILE}" 80*15aaf94fSJoseph Chen if strings ${FILE} | grep '\-dirty ' ; then 81*15aaf94fSJoseph Chen echo "ERROR: ${FILE} is dirty" 827448aaf2SJoseph Chen exit 1 837448aaf2SJoseph Chen fi 847448aaf2SJoseph Chen done 857448aaf2SJoseph Chen} 867448aaf2SJoseph Chen 87*15aaf94fSJoseph Chenfunction check_stripped() 88c0efc7efSJoseph Chen{ 89*15aaf94fSJoseph Chen for FILE in `find -name '*bl31*.elf'`; do 90*15aaf94fSJoseph Chen echo "Checking strip: ${FILE}" 91*15aaf94fSJoseph Chen INFO=`file ${FILE}` 92*15aaf94fSJoseph Chen if echo ${INFO} | grep -q "not stripped" ; then 93*15aaf94fSJoseph Chen echo "ERROR: ${FILE} is not stripped" 94c0efc7efSJoseph Chen exit 1 95c0efc7efSJoseph Chen fi 96c0efc7efSJoseph Chen done 97c0efc7efSJoseph Chen} 98c0efc7efSJoseph Chen 99*15aaf94fSJoseph Chenfunction finish() 10024a8c2d6SJoseph Chen{ 10124a8c2d6SJoseph Chen echo "Packing loader and trust successfully." 10224a8c2d6SJoseph Chen echo 10324a8c2d6SJoseph Chen} 10424a8c2d6SJoseph Chen 1057448aaf2SJoseph Chencheck_dirty 106c0efc7efSJoseph Chencheck_stripped 10724a8c2d6SJoseph Chenpack_loader_image 10824a8c2d6SJoseph Chenpack_trust_image 10924a8c2d6SJoseph Chenfinish 110