Lines Matching +full:toolchain +full:- +full:prefix

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…
29 # Declare global toolchain path for CROSS_COMPILE, updated in select_toolchain()
30 TOOLCHAIN=
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"
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)
148 # fit: pack non-secure uboot.img && boot.img
150 if [ "$2" == "spl" -o "$2" == "tpl" ]; then
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 --spl-fwver)
196 ARG_FIT_FWVER="${ARG_FIT_FWVER} --spl-fwver $2"
200 --fwver)
201 ARG_FIT_FWVER="${ARG_FIT_FWVER} --fwver $2"
205 --uboot|--fdt|--optee|--mcu|--bl31) # uboot.img components
206 mkdir -p ${REP_DIR}
207 if [ ! -f $2 ]; then
211 if [ "$1" == "--uboot" ]; then
212 cp $2 ${REP_DIR}/u-boot-nodtb.bin
213 elif [ "$1" == "--fdt" ]; then
214 cp $2 ${REP_DIR}/u-boot.dtb
215 elif [ "$1" == "--optee" ]; then
217 elif [ "$1" == "--mcu" ]; then
219 elif [ "$1" == "--bl31" ]; then
230 NUM=$(${SCRIPT_FIT} --args $1)
231 if [ ${NUM} -ne 0 ]; then
232 [ ${NUM} -eq 1 ] && ARG_LIST_FIT="${ARG_LIST_FIT} $1"
233 [ ${NUM} -eq 2 ] && ARG_LIST_FIT="${ARG_LIST_FIT} $1 $2"
237 elif [ -z $(echo $1 | sed 's/[0-9,a-f,A-F,x,X,-]//g') ]; then
242 if [ ! -f configs/${ARG_BOARD}_defconfig -a ! -f configs/${ARG_BOARD}.config ]; then
243 echo -e "\n${SUPPORT_LIST}\n"
246 elif [ -f configs/${ARG_BOARD}.config ]; then
249 MAKE_CMD="make ${BASE0_DEFCONFIG} ${BASE1_DEFCONFIG} ${ARG_BOARD}.config -j${JOB}"
252 rm -f ${CC_FILE}
254 MAKE_CMD="make ${ARG_BOARD}_defconfig -j${JOB}"
257 rm -f ${CC_FILE}
265 if [ ! -f .config ]; then
277 if [ -f ${CC_FILE} ]; then
281 if grep -q '^CONFIG_ARM64=y' .config ; then
282 CROSS_COMPILE_ARM64=$(cd `dirname ${CROSS_COMPILE_ARM64}`; pwd)"/aarch64-linux-gnu-"
284 CROSS_COMPILE_ARM32=$(cd `dirname ${CROSS_COMPILE_ARM32}`; pwd)"/arm-linux-gnueabihf-"
289 if grep -q '^CONFIG_ARM64=y' .config ; then
290 TOOLCHAIN=${CROSS_COMPILE_ARM64}
295 TOOLCHAIN=${CROSS_COMPILE_ARM32}
301 if [ ! `which ${TOOLCHAIN}gcc` ]; then
302 echo "ERROR: No find ${TOOLCHAIN}gcc"
308 echo "${TOOLCHAIN}" > ${CC_FILE}
323 # - PX30, PX3SE
324 # - RK????, RK????X
325 # - RV????
326 CHIP_PATTERN='^CONFIG_ROCKCHIP_[R,P][X,V,K][0-9ESXB]{1,5}'
327 RKCHIP=`egrep -o ${CHIP_PATTERN} .config`
334 if [ -z "${RKCHIP_LABEL}" ]; then
350 PLAT_UBOOT_SIZE="--size ${U_KB} ${U_NUM}"
351 PLAT_TRUST_SIZE="--size ${T_KB} ${T_NUM}"
352 PLAT_SHA="--sha ${SHA}"
353 PLAT_RSA="--rsa ${RSA}"
356 if [ ! -z "${ARG_UBOOT_SIZE}" ]; then
359 if [ ! -z "${ARG_TRUST_SIZE}" ]; then
376 if [ ! -z "${NAME}" ]; then
380 if [ ! -z "${NAME}" ]; then
385 if [ ! -z "${ARG_INI_TRUST}" ]; then
388 if [ ! -z "${ARG_INI_LOADER}" ]; then
395 # skip "--" parameter, such as "--rollback-index-..."
396 if [[ ${CMD_ARGS} != --* ]]; then
397 CMD=${CMD_ARGS%-*}
398 ARG=${CMD_ARGS#*-}
403 if [ "${ARG_TSPL}" == "tpl" -o "${ARG_TSPL}" == "spl" ]; then
404 ELF=`find -name u-boot-${ARG_TSPL}`
405 MAP=`find -name u-boot-${ARG_TSPL}.map`
406 SYM=`find -name u-boot-${ARG_TSPL}.sym`
408 ELF=u-boot
409 MAP=u-boot.map
410 SYM=u-boot.sym
416 echo -e "\n${ELF}: file format elf\n"
417 ${TOOLCHAIN_NM} -r --size ${ELF} | grep -iv 'b' | less
419 if [ "${CMD}" == "elf" -a "${ARG}" == "elf" ]; then
422 ${TOOLCHAIN_OBJDUMP} -${ARG} ${ELF} | less
439 # Non-secure
440 ${SCRIPT_FIT} --boot_img_dir images/ ${ARG_LIST_FIT}
460 make CROSS_COMPILE=${TOOLCHAIN} envtools
463 --idblock)
467 --tpl|--spl|tpl|spl)
480 RELOCOFF=${FUNCADDR#*-}
481 FUNCADDR=${FUNCADDR%-*}
483 if [ -z $(echo ${FUNCADDR} | sed 's/[0-9,a-f,A-F,x,X,-]//g') ] && [ ${FUNCADDR} ]; then
484 # With prefix: '0x' or '0X'
485 if [ `echo ${FUNCADDR} | sed -n "/0[x,X]/p" | wc -l` -ne 0 ]; then
487 FUNCADDR=`echo "obase=16;${FUNCADDR}"|bc | tr '[A-Z]' '[a-z]'`
489 if [ `echo ${RELOCOFF} | sed -n "/0[x,X]/p" | wc -l` -ne 0 ] && [ ${RELOCOFF} ]; then
491 RELOCOFF=`echo "obase=16;${RELOCOFF}"|bc | tr '[A-Z]' '[a-z]'`
496 # Hex -> Dec -> SUB -> Hex
499 FUNCADDR=$((FUNCADDR-RELOCOFF))
500 FUNCADDR=$(echo "obase=16;${FUNCADDR}"|bc | tr '[A-Z]' '[a-z]')
504 sed -n "/${FUNCADDR}/p" ${SYM}
505 ${TOOLCHAIN_ADDR2LINE} -e ${ELF} ${FUNCADDR}
513 if [ ! -f ${INI} ]; then
519 COMMON_H=`grep "_common.h:" include/autoconf.mk.dep | awk -F "/" '{ printf $3 }'`
525 if [ ! -z "${ARG_SPL_BIN}" ]; then
528 if [ ! -z "${ARG_TPL_BIN}" ]; then
533 rm idblock.bin -f
534 ./tools/mkimage -n ${PLAT} -T rksd -d ${TPL_BIN}:${SPL_BIN} idblock.bin
547 if [ ! -f ${INI} ]; then
553 BL31_ELF=`sed -n '/_bl31_/s/PATH=//p' ${INI} | tr -d '\r'`
554 BL32_BIN=`sed -n '/_bl32_/s/PATH=//p' ${INI} | tr -d '\r'`
555 rm bl31.elf tee.bin -rf
557 if grep BL32_OPTION -A 1 ${INI} | grep SEC=1 ; then
559 TEE_ADDR=`grep BL32_OPTION -A 3 ${INI} | grep ADDR= | awk -F "=" '{ printf $2 }' | tr -d '\r'`
560 TEE_ARG="-t ${TEE_ADDR}"
566 if [ ! -z "${TOSTA}" ]; then
568 elif [ ! -z "${TOS}" ]; then
573 if [ ! -z "${TOSTA}" -o ! -z "${TOS}" ]; then
576 …DRAM_BASE=`sed -n "/CONFIG_SYS_SDRAM_BASE=/s/CONFIG_SYS_SDRAM_BASE=//p" ${srctree}/include/autocon…
579 TEE_ARG="-t ${TEE_ADDR}"
588 ENABLED=`awk -F "," '/'${INIT_IDX}'=/ { printf $3 }' ${INI} | tr -d ' '`
589 if [ "${ENABLED}" == "enabled" -o "${ENABLED}" == "okay" ]; then
590 NAME=`awk -F "," '/'${INIT_IDX}'=/ { printf $1 }' ${INI} | tr -d ' ' | awk -F "=" '{ print $2 }'`
591 OFFS=`awk -F "," '/'${INIT_IDX}'=/ { printf $2 }' ${INI} | tr -d ' '`
593 if [ -z ${OFFS} ]; then
597 INIT_ARG=${INIT_ARG}" -i${i} ${OFFS}"
608 ENABLED=`awk -F"," '/MCU=/ { printf $3 }' ${INI} | tr -d ' '`
609 if [ ${i} -eq 0 ]; then
610 ENABLED=`awk -F"," '/MCU=/ { printf $3 }' ${INI} | tr -d ' '`
611 if [ ! -z ${ENABLED} ]; then
616 ENABLED=`awk -F "," '/'${MCU_IDX}'=/ { printf $3 }' ${INI} | tr -d ' '`
617 if [ "${ENABLED}" == "enabled" -o "${ENABLED}" == "okay" ]; then
618 NAME=`awk -F "," '/'${MCU_IDX}'=/ { printf $1 }' ${INI} | tr -d ' ' | awk -F "=" '{ print $2 }'`
619 OFFS=`awk -F "," '/'${MCU_IDX}'=/ { printf $2 }' ${INI} | tr -d ' '`
621 if [ -z ${OFFS} ]; then
625 MCU_ARG=${MCU_ARG}" -m${i} ${OFFS}"
634 ENABLED=`awk -F "," '/'${LOAD_IDX}'=/ { printf $3 }' ${INI} | tr -d ' '`
635 if [ "${ENABLED}" == "enabled" -o "${ENABLED}" == "okay" ]; then
636 NAME=`awk -F "," '/'${LOAD_IDX}'=/ { printf $1 }' ${INI} | tr -d ' ' | awk -F "=" '{ print $2 }'`
637 OFFS=`awk -F "," '/'${LOAD_IDX}'=/ { printf $2 }' ${INI} | tr -d ' '`
639 if [ -z ${OFFS} ]; then
643 LOAD_ARG=${LOAD_ARG}" -l${i} ${OFFS}"
648 if grep -q '^CONFIG_IMAGE_GZIP=y' .config ; then
649 COMPRESSION_ARG="-c gzip"
651 COMPRESSION=`awk -F"," '/COMPRESSION=/ { printf $1 }' ${INI} | tr -d ' ' | cut -c 13-`
652 if [ ! -z "${COMPRESSION}" -a "${COMPRESSION}" != "none" ]; then
653 COMPRESSION_ARG="-c ${COMPRESSION}"
657 if [ -d ${REP_DIR} ]; then
662 if [ ! -z ${SPL_FIT_SOURCE} ]; then
663 cp ${SPL_FIT_SOURCE} u-boot.its
668 ${SPL_FIT_GENERATOR} u-boot.dtb > u-boot.its
670 … ${SPL_FIT_GENERATOR} ${TEE_ARG} ${COMPRESSION_ARG} ${INIT_ARG} ${MCU_ARG} ${LOAD_ARG} > u-boot.its
674 ./tools/mkimage -f u-boot.its -E u-boot.itb >/dev/null 2>&1
675 echo "pack u-boot.itb okay! Input: ${INI}"
681 rm -f *loader*.bin *download*.bin *idblock*.img
685 if [ ! -z "${ARG_SPL_BIN}" -a ! -z "${ARG_TPL_BIN}" ]; then
686 ${SCRIPT_SPL} --ini ${INI_LOADER} --tpl ${SRCTREE}/${ARG_TPL_BIN} --spl ${SRCTREE}/${ARG_SPL_BIN}
687 elif [ ! -z "${ARG_TPL_BIN}" ]; then
688 ${SCRIPT_SPL} --ini ${INI_LOADER} --tpl ${SRCTREE}/${ARG_TPL_BIN}
690 ${SCRIPT_SPL} --ini ${INI_LOADER} --spl ${SRCTREE}/${ARG_SPL_BIN}
692 cd -
693 if [ -f ${DEF_PATH} ]; then
696 if [ -f ${IDB_PATH} ]; then
703 rm u-boot.img u-boot-dtb.img -f
704 …LOAD_ADDR=`sed -n "/CONFIG_SYS_TEXT_BASE=/s/CONFIG_SYS_TEXT_BASE=//p" include/autoconf.mk|tr -d '\…
705 if [ -z "${LOAD_ADDR}" ]; then
706 # upstream U-Boot
707 …LOAD_ADDR=`grep CONFIG_SYS_TEXT_BASE include/generated/autoconf.h | awk '{ print $3 }' | tr -d '\r…
710 if [ -z "${LOAD_ADDR}" ]; then
711 echo "ERROR: No CONFIG_SYS_TEXT_BASE for u-boot";
715 ${SCRIPT_UBOOT} --load ${LOAD_ADDR} ${PLAT_UBOOT_SIZE}
720 rm -f *loader*.bin *download*.bin *idblock*.img
724 ${SCRIPT_LOADER} --ini ${INI_LOADER}
725 cd -
726 if [ -f ${DEF_PATH} ]; then
729 if [ -f ${IDB_PATH} ]; then
738 rm trust*.img -f
741 ${SCRIPT_ATF} --ini ${INI_TRUST} ${PLAT_SHA} ${PLAT_RSA} ${PLAT_TRUST_SIZE}
743 ${SCRIPT_TOS} --ini ${INI_TRUST} --base ${DRAM_BASE} ${PLAT_TRUST_SIZE}
745 cd -
746 if [ -f ${RKBIN}/trust*.img ]; then
755 echo "ERROR: No 'dtc', please: apt-get install device-tree-compiler"
766 rm u-boot-nodtb.bin u-boot.dtb -f
767 touch u-boot-nodtb.bin u-boot.dtb
770 rm uboot.img trust*.img -rf
771 ${SCRIPT_FIT} ${ARG_LIST_FIT} --chip ${RKCHIP_LABEL}
773 rm ${REP_DIR} -rf
779 ARG_LIST_FIT="${ARG_LIST_FIT} --ini-trust ${INI_TRUST} --ini-loader ${INI_LOADER} ${ARG_FIT_FWVER}"
784 rm spl/u-boot-spl.dtb tpl/u-boot-tpl.dtb u-boot.dtb -f
785 rm spl/u-boot-spl tpl/u-boot-tpl u-boot -f
794 ${SCRIPT_DECOMP} ${ARG_LIST_FIT} --chip ${RKCHIP_LABEL}
825 make PYTHON=python2 ${ARG_SPL_FWVER} ${ARG_FWVER} CROSS_COMPILE=${TOOLCHAIN} all --jobs=${JOB}
828 echo ${TOOLCHAIN}