| | |
| | | PRFX_PATH=$PRJ_PATH/install |
| | | |
| | | # binaries finally install path if needed |
| | | INST_PATH=/tftp |
| | | #INST_PATH=/tftp |
| | | |
| | | # download taballs path |
| | | TARBALL_PATH=$PRJ_PATH/tarballs |
| | | |
| | | # config file path |
| | | CONF_FILE=$TOP_PATH/config.json |
| | |
| | | echo -e "\033[40;32m $1 \033[0m" |
| | | } |
| | | |
| | | # decompress a packet to destination path |
| | | function do_unpack() |
| | | { |
| | | tarball=$1 |
| | | dstpath=`pwd` |
| | | |
| | | if [[ $# == 2 ]] ; then |
| | | dstpath=$2 |
| | | fi |
| | | |
| | | pr_info "decompress $tarball => $dstpath" |
| | | |
| | | mkdir -p $dstpath |
| | | case $tarball in |
| | | *.tar.gz) |
| | | tar -xzf $tarball -C $dstpath |
| | | ;; |
| | | |
| | | *.tar.bz2) |
| | | tar -xjf $tarball -C $dstpath |
| | | ;; |
| | | |
| | | *.tar.xz) |
| | | tar -xJf $tarball -C $dstpath |
| | | ;; |
| | | |
| | | *.tar.zst) |
| | | tar -I zstd -xf $tarball -C $dstpath |
| | | ;; |
| | | |
| | | *.tar) |
| | | tar -xf $tarball -C $dstpath |
| | | ;; |
| | | |
| | | *.zip) |
| | | unzip -qo $tarball -d $dstpath |
| | | ;; |
| | | |
| | | *) |
| | | pr_error "decompress Unsupport packet: $tarball" |
| | | return 1; |
| | | ;; |
| | | esac |
| | | } |
| | | |
| | | # select firmware version by BSP version |
| | | function export_fmver() |
| | | { |
| | |
| | | { |
| | | export BOARD=`jq -r ".bsp.board" $CONF_FILE | tr 'A-Z' 'a-z'` |
| | | export BSP_VER=`jq -r ".bsp.version" $CONF_FILE | tr 'A-Z' 'a-z'` |
| | | export GIT_URL=`jq -r ".bsp.giturl" $CONF_FILE | tr 'A-Z' 'a-z'` |
| | | export BSP_URL=`jq -r ".bsp.giturl" $CONF_FILE` |
| | | export CROSS_COMPILE=`jq -r ".bsp.cortexAtool" $CONF_FILE` |
| | | export MCORE_COMPILE=`jq -r ".bsp.cortexMtool" $CONF_FILE` |
| | | |
| | |
| | | fi |
| | | |
| | | pr_info "start fetch $src source code" |
| | | git clone $GIT_URL/$src.git -b $BRANCH --depth=1 |
| | | |
| | | if [[ $BSP_URL =~ github.com ]] ; then |
| | | git clone $BSP_URL/$src.git -b $BRANCH --depth=1 |
| | | else |
| | | mkdir -p $TARBALL_PATH |
| | | |
| | | # Download source code packet |
| | | if [ ! -s $TARBALL_PATH/$src.tar.xz ] ; then |
| | | wget $BSP_URL/bsp/$BSP_VER/$src.tar.xz -P $TARBALL_PATH |
| | | fi |
| | | |
| | | # decompress source code packet |
| | | do_unpack $TARBALL_PATH/$src.tar.xz |
| | | fi |
| | | |
| | | # do patch if patch file exist |
| | | patch_file=$PRJ_PATH/patches/$BOARD/$src-$BSP_VER.patch |
| | |
| | | return ; |
| | | fi |
| | | |
| | | # Download CortexM FreeRTOS SDK if needed |
| | | if [ "$BUILD_MCORE" == "yes" ] ; then |
| | | |
| | | src=cortexm-sdk |
| | | |
| | | cd $PRJ_PATH |
| | | |
| | | if [ -d $src ] ; then |
| | | pr_info "$src source code fetched already" |
| | | else |
| | | pr_info "start fetch $src source code" |
| | | |
| | | if [[ $BSP_URL =~ github.com ]] ; then |
| | | pr_error "INFO: Please download $BOARD CortexM SDK from https://mcuxpresso.nxp.com by manual." |
| | | else |
| | | pack=cortexm-sdk-${BOARD} |
| | | |
| | | # Download source code packet |
| | | if [ ! -s $TARBALL_PATH/$pack.tar.gz ] ; then |
| | | wget $BSP_URL/bsp/$BSP_VER/$pack.tar.gz -P $TARBALL_PATH |
| | | fi |
| | | |
| | | # decompress source code packet |
| | | do_unpack $TARBALL_PATH/$pack.tar.gz $PRJ_PATH/$src |
| | | fi |
| | | fi |
| | | fi |
| | | |
| | | # Download firmware from NXP official URL |
| | | mkdir -p $FMW_PATH && cd $FMW_PATH |
| | | |
| | | for fmw in $FMWS |
| | |
| | | # Cortex-M SDK download from https://mcuxpresso.nxp.com/ by manual |
| | | function build_cortexM() |
| | | { |
| | | SRC=mcore-sdk |
| | | SRC=cortexm-sdk |
| | | |
| | | if [ "$BUILD_MCORE" != "yes" ] ; then |
| | | pr_warn "Skip build Cortex-M core SDK source code '$SRC'" |
| | |
| | | fi |
| | | |
| | | build_atf |
| | | build_cortexM |
| | | build_imxboot |
| | | build_cortexM |
| | | } |
| | | |
| | | function do_install() |
| | |
| | | done |
| | | |
| | | rm -rf $PRJ_PATH/firmware |
| | | rm -rf $PRJ_PATH/cortexm-sdk |
| | | rm -rf $PRJ_PATH/tarballs |
| | | rm -rf $PRFX_PATH |
| | | } |
| | | |