Lines Matching +full:boot +full:- +full:loader
5 # SPDX-License-Identifier: GPL-2.0
8 set -e
9 JOB=`sed -n "N;/processor/p" /proc/cpuinfo|wc -l`
10 SUPPORT_LIST=`ls configs/*[r,p][x,v,k][0-9][0-9]*_defconfig`
15 …MPILE_ARM32=../prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin…
16 …MPILE_ARM64=../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/b…
49 SCRIPT_LOADER="${SRCTREE}/scripts/loader.sh"
51 SCRIPT_CHECKCONFIG="${SRCTREE}/scripts/check-rkconfig.sh"
59 echo " ./make.sh [board|sub-command]"
61 echo " - board: board name of defconfig"
62 echo " - sub-command: elf*|loader|trust|uboot|--spl|--tpl|itb|map|sym|<addr>"
63 echo " - ini: ini file to pack trust/loader"
66 echo " When board built okay, there are uboot/trust/loader images in current directory"
71 echo " ./make.sh evb-rk3399 --- build for evb-rk3399_defconfig"
72 echo " ./make.sh firefly-rk3288 --- build for firefly-rk3288_defconfig"
73 echo " ./make.sh EXT_DTB=rk-kernel.dtb --- build with exist .config and external dtb"
74 echo " ./make.sh --- build with exist .config"
75 echo " ./make.sh env --- build envtools"
78 echo " ./make.sh uboot --- pack uboot.img"
79 echo " ./make.sh trust --- pack trust.img"
80 echo " ./make.sh trust <ini> --- pack trust img with assigned ini file"
81 echo " ./make.sh loader --- pack loader bin"
82 echo " ./make.sh loader <ini> --- pack loader img with assigned ini file"
83 echo " ./make.sh --spl --- pack loader with u-boot-spl.bin"
84 echo " ./make.sh --tpl --- pack loader with u-boot-tpl.bin"
85 echo " ./make.sh --tpl --spl --- pack loader with u-boot-tpl.bin and u-boot-spl.bin"
88 echo " ./make.sh elf --- dump elf file with -D(default)"
89 echo " ./make.sh elf-S --- dump elf file with -S"
90 echo " ./make.sh elf-d --- dump elf file with -d"
91 echo " ./make.sh elf-* --- dump elf file with -*"
92 echo " ./make.sh <no reloc_addr> --- unwind address(no relocated)"
93 echo " ./make.sh <reloc_addr-reloc_off> --- unwind address(relocated)"
94 echo " ./make.sh map --- cat u-boot.map"
95 echo " ./make.sh sym --- cat u-boot.sym"
100 sed -n "/${1}=/s/${1}=//p" $2 | tr -d '\r' | tr -d '"'
105 if [ -d ${RKBIN_TOOLS} ]; then
113 if grep -Eq ''^CONFIG_ARM64=y'|'^CONFIG_ARM64_BOOT_AARCH32=y'' .config ; then
117 if grep -q '^CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y' .config ; then
119 elif grep -q '^CONFIG_SPL_DECOMP_HEADER=y' .config ; then
126 while [ $# -gt 0 ]; do
128 *help|--h|-h)
144 # loader|trust|uboot: pack image
148 # fit: pack non-secure uboot.img && boot.img
149 ''|loader|trust|uboot|debug*|itb|env|fit|map|sym|elf*|nm)
150 if [ "$2" == "spl" -o "$2" == "tpl" ]; then
156 # trust/loader ini files for packing trust.img/loader.img
158 if [ ! -f $1 ]; then
161 if grep -q 'CODE471_OPTION' $1 ; then
163 elif grep -Eq ''BL31_OPTION'|'TOS'' $1 ; then
168 --sz-trust) # set trust size
169 ARG_TRUST_SIZE="--size $2 $3"
172 --sz-uboot) # set uboot size
173 ARG_UBOOT_SIZE="--size $2 $3"
176 --raw-compile) # FIT: build but not pack image
180 --no-uboot) # FIT: pack uboot.img without u-boot
184 --idblock) # pack idblock.bin
187 --tpl|tpl) # use tpl file
188 ARG_TPL_BIN="tpl/u-boot-tpl.bin"
191 --spl|spl*) # use spl file
192 ARG_SPL_BIN="spl/u-boot-spl.bin"
195 --uboot|--fdt|--optee|--mcu|--bl31) # uboot.img components
196 mkdir -p ${REP_DIR}
197 if [ ! -f $2 ]; then
201 if [ "$1" == "--uboot" ]; then
202 cp $2 ${REP_DIR}/u-boot-nodtb.bin
203 elif [ "$1" == "--fdt" ]; then
204 cp $2 ${REP_DIR}/u-boot.dtb
205 elif [ "$1" == "--optee" ]; then
207 elif [ "$1" == "--mcu" ]; then
209 elif [ "$1" == "--bl31" ]; then
220 NUM=$(${SCRIPT_FIT} --args $1)
221 if [ ${NUM} -ne 0 ]; then
222 [ ${NUM} -eq 1 ] && ARG_LIST_FIT="${ARG_LIST_FIT} $1"
223 [ ${NUM} -eq 2 ] && ARG_LIST_FIT="${ARG_LIST_FIT} $1 $2"
227 elif [ -z $(echo $1 | sed 's/[0-9,a-f,A-F,x,X,-]//g') ]; then
232 if [ ! -f configs/${ARG_BOARD}_defconfig -a ! -f configs/${ARG_BOARD}.config ]; then
233 echo -e "\n${SUPPORT_LIST}\n"
236 elif [ -f configs/${ARG_BOARD}.config ]; then
239 MAKE_CMD="make ${BASE0_DEFCONFIG} ${BASE1_DEFCONFIG} ${ARG_BOARD}.config -j${JOB}"
242 rm -f ${CC_FILE}
244 MAKE_CMD="make ${ARG_BOARD}_defconfig -j${JOB}"
247 rm -f ${CC_FILE}
255 if [ ! -f .config ]; then
267 if [ -f ${CC_FILE} ]; then
271 if grep -q '^CONFIG_ARM64=y' .config ; then
272 CROSS_COMPILE_ARM64=$(cd `dirname ${CROSS_COMPILE_ARM64}`; pwd)"/aarch64-linux-gnu-"
274 CROSS_COMPILE_ARM32=$(cd `dirname ${CROSS_COMPILE_ARM32}`; pwd)"/arm-linux-gnueabihf-"
279 if grep -q '^CONFIG_ARM64=y' .config ; then
305 # 2. RKCHIP_LOADER: search ini file to pack loader
313 # - PX30, PX3SE
314 # - RK????, RK????X
315 # - RV????
316 CHIP_PATTERN='^CONFIG_ROCKCHIP_[R,P][X,V,K][0-9ESX]{1,5}'
317 RKCHIP=`egrep -o ${CHIP_PATTERN} .config`
324 if [ -z "${RKCHIP_LABEL}" ]; then
340 PLAT_UBOOT_SIZE="--size ${U_KB} ${U_NUM}"
341 PLAT_TRUST_SIZE="--size ${T_KB} ${T_NUM}"
342 PLAT_SHA="--sha ${SHA}"
343 PLAT_RSA="--rsa ${RSA}"
346 if [ ! -z "${ARG_UBOOT_SIZE}" ]; then
349 if [ ! -z "${ARG_TRUST_SIZE}" ]; then
366 if [ ! -z "${NAME}" ]; then
370 if [ ! -z "${NAME}" ]; then
375 if [ ! -z "${ARG_INI_TRUST}" ]; then
378 if [ ! -z "${ARG_INI_LOADER}" ]; then
385 # skip "--" parameter, such as "--rollback-index-..."
386 if [[ ${CMD_ARGS} != --* ]]; then
387 CMD=${CMD_ARGS%-*}
388 ARG=${CMD_ARGS#*-}
393 if [ "${ARG_TSPL}" == "tpl" -o "${ARG_TSPL}" == "spl" ]; then
394 ELF=`find -name u-boot-${ARG_TSPL}`
395 MAP=`find -name u-boot-${ARG_TSPL}.map`
396 SYM=`find -name u-boot-${ARG_TSPL}.sym`
398 ELF=u-boot
399 MAP=u-boot.map
400 SYM=u-boot.sym
406 echo -e "\n${ELF}: file format elf\n"
407 ${TOOLCHAIN_NM} -r --size ${ELF} | grep -iv 'b' | less
409 if [ "${CMD}" == "elf" -a "${ARG}" == "elf" ]; then
412 ${TOOLCHAIN_OBJDUMP} -${ARG} ${ELF} | less
429 # Non-secure
430 ${SCRIPT_FIT} --boot_img_dir images/ ${ARG_LIST_FIT}
441 loader)
453 --idblock)
457 --tpl|--spl|tpl|spl)
470 RELOCOFF=${FUNCADDR#*-}
471 FUNCADDR=${FUNCADDR%-*}
473 if [ -z $(echo ${FUNCADDR} | sed 's/[0-9,a-f,A-F,x,X,-]//g') ] && [ ${FUNCADDR} ]; then
475 if [ `echo ${FUNCADDR} | sed -n "/0[x,X]/p" | wc -l` -ne 0 ]; then
477 FUNCADDR=`echo "obase=16;${FUNCADDR}"|bc | tr '[A-Z]' '[a-z]'`
479 if [ `echo ${RELOCOFF} | sed -n "/0[x,X]/p" | wc -l` -ne 0 ] && [ ${RELOCOFF} ]; then
481 RELOCOFF=`echo "obase=16;${RELOCOFF}"|bc | tr '[A-Z]' '[a-z]'`
486 # Hex -> Dec -> SUB -> Hex
489 FUNCADDR=$((FUNCADDR-RELOCOFF))
490 FUNCADDR=$(echo "obase=16;${FUNCADDR}"|bc | tr '[A-Z]' '[a-z]')
494 sed -n "/${FUNCADDR}/p" ${SYM}
495 ${TOOLCHAIN_ADDR2LINE} -e ${ELF} ${FUNCADDR}
503 if [ ! -f ${INI} ]; then
509 COMMON_H=`grep "_common.h:" include/autoconf.mk.dep | awk -F "/" '{ printf $3 }'`
515 if [ ! -z "${ARG_SPL_BIN}" ]; then
518 if [ ! -z "${ARG_TPL_BIN}" ]; then
523 rm idblock.bin -f
524 ./tools/mkimage -n ${PLAT} -T rksd -d ${TPL_BIN}:${SPL_BIN} idblock.bin
537 if [ ! -f ${INI} ]; then
543 BL31_ELF=`sed -n '/_bl31_/s/PATH=//p' ${INI} | tr -d '\r'`
544 BL32_BIN=`sed -n '/_bl32_/s/PATH=//p' ${INI} | tr -d '\r'`
545 rm bl31.elf tee.bin -rf
547 if grep BL32_OPTION -A 1 ${INI} | grep SEC=1 ; then
549 TEE_OFFSET=`grep BL32_OPTION -A 3 ${INI} | grep ADDR= | awk -F "=" '{ printf $2 }' | tr -d '\r'`
550 TEE_ARG="-t ${TEE_OFFSET}"
556 if [ ! -z "${TOSTA}" ]; then
558 elif [ ! -z "${TOS}" ]; then
563 if [ ! -z "${TOSTA}" -o ! -z "${TOS}" ]; then
568 TEE_ARG="-t ${TEE_OFFSET}"
579 ENABLED=`awk -F"," '/MCU=/ { printf $3 }' ${INI} | tr -d ' '`
580 if [ ${i} -eq 0 ]; then
581 ENABLED=`awk -F"," '/MCU=/ { printf $3 }' ${INI} | tr -d ' '`
582 if [ ! -z ${ENABLED} ]; then
587 ENABLED=`awk -F "," '/'${MCU_IDX}'=/ { printf $3 }' ${INI} | tr -d ' '`
588 if [ "${ENABLED}" == "enabled" -o "${ENABLED}" == "okay" ]; then
589 NAME=`awk -F "," '/'${MCU_IDX}'=/ { printf $1 }' ${INI} | tr -d ' ' | awk -F "=" '{ print $2 }'`
590 OFFS=`awk -F "," '/'${MCU_IDX}'=/ { printf $2 }' ${INI} | tr -d ' '`
592 if [ -z ${OFFS} ]; then
596 MCU_ARG=${MCU_ARG}" -m${i} ${OFFS}"
605 ENABLED=`awk -F "," '/'${LOAD_IDX}'=/ { printf $3 }' ${INI} | tr -d ' '`
606 if [ "${ENABLED}" == "enabled" -o "${ENABLED}" == "okay" ]; then
607 NAME=`awk -F "," '/'${LOAD_IDX}'=/ { printf $1 }' ${INI} | tr -d ' ' | awk -F "=" '{ print $2 }'`
608 OFFS=`awk -F "," '/'${LOAD_IDX}'=/ { printf $2 }' ${INI} | tr -d ' '`
610 if [ -z ${OFFS} ]; then
614 LOAD_ARG=${LOAD_ARG}" -l${i} ${OFFS}"
619 COMPRESSION=`awk -F"," '/COMPRESSION=/ { printf $1 }' ${INI} | tr -d ' ' | cut -c 13-`
620 if [ ! -z "${COMPRESSION}" -a "${COMPRESSION}" != "none" ]; then
621 COMPRESSION_ARG="-c ${COMPRESSION}"
624 if [ -d ${REP_DIR} ]; then
629 if [ ! -z ${SPL_FIT_SOURCE} ]; then
630 cp ${SPL_FIT_SOURCE} u-boot.its
635 ${SPL_FIT_GENERATOR} u-boot.dtb > u-boot.its
637 ${SPL_FIT_GENERATOR} ${TEE_ARG} ${COMPRESSION_ARG} ${MCU_ARG} ${LOAD_ARG} > u-boot.its
641 ./tools/mkimage -f u-boot.its -E u-boot.itb >/dev/null 2>&1
642 echo "pack u-boot.itb okay! Input: ${INI}"
648 rm -f *loader*.bin *download*.bin *idblock*.img
652 if [ ! -z "${ARG_SPL_BIN}" -a ! -z "${ARG_TPL_BIN}" ]; then
653 ${SCRIPT_SPL} --ini ${INI_LOADER} --tpl ${SRCTREE}/${ARG_TPL_BIN} --spl ${SRCTREE}/${ARG_SPL_BIN}
654 elif [ ! -z "${ARG_TPL_BIN}" ]; then
655 ${SCRIPT_SPL} --ini ${INI_LOADER} --tpl ${SRCTREE}/${ARG_TPL_BIN}
657 ${SCRIPT_SPL} --ini ${INI_LOADER} --spl ${SRCTREE}/${ARG_SPL_BIN}
659 cd -
660 if [ -f ${DEF_PATH} ]; then
663 if [ -f ${IDB_PATH} ]; then
670 rm u-boot.img u-boot-dtb.img -f
671 …LOAD_ADDR=`sed -n "/CONFIG_SYS_TEXT_BASE=/s/CONFIG_SYS_TEXT_BASE=//p" include/autoconf.mk|tr -d '\…
672 if [ -z "${LOAD_ADDR}" ]; then
673 # upstream U-Boot
674 …LOAD_ADDR=`grep CONFIG_SYS_TEXT_BASE include/generated/autoconf.h | awk '{ print $3 }' | tr -d '\r…
677 if [ -z "${LOAD_ADDR}" ]; then
678 echo "ERROR: No CONFIG_SYS_TEXT_BASE for u-boot";
682 ${SCRIPT_UBOOT} --load ${LOAD_ADDR} ${PLAT_UBOOT_SIZE}
687 rm -f *loader*.bin *download*.bin *idblock*.img
691 ${SCRIPT_LOADER} --ini ${INI_LOADER}
692 cd -
693 if [ -f ${DEF_PATH} ]; then
696 if [ -f ${IDB_PATH} ]; then
705 rm trust*.img -f
708 ${SCRIPT_ATF} --ini ${INI_TRUST} ${PLAT_SHA} ${PLAT_RSA} ${PLAT_TRUST_SIZE}
710 ${SCRIPT_TOS} --ini ${INI_TRUST} --base ${DRAM_BASE} ${PLAT_TRUST_SIZE}
712 cd -
713 if [ -f ${RKBIN}/trust*.img ]; then
722 echo "ERROR: No 'dtc', please: apt-get install device-tree-compiler"
733 rm u-boot-nodtb.bin u-boot.dtb -f
734 touch u-boot-nodtb.bin u-boot.dtb
737 rm uboot.img trust*.img -rf
738 ${SCRIPT_FIT} ${ARG_LIST_FIT} --chip ${RKCHIP_LABEL}
740 rm ${REP_DIR} -rf
746 ARG_LIST_FIT="${ARG_LIST_FIT} --ini-trust ${INI_TRUST} --ini-loader ${INI_LOADER}"
751 rm spl/u-boot-spl.dtb tpl/u-boot-tpl.dtb u-boot.dtb -f
752 rm spl/u-boot-spl tpl/u-boot-tpl u-boot -f
761 ${SCRIPT_DECOMP} ${ARG_LIST_FIT} --chip ${RKCHIP_LABEL}
792 make PYTHON=python2 CROSS_COMPILE=${TOOLCHAIN} all --jobs=${JOB}