1*b42d2103SJoseph Chen#!/bin/bash 2*b42d2103SJoseph Chen# 3*b42d2103SJoseph Chen# Copyright (c) 2020 Rockchip Electronics Co., Ltd 4*b42d2103SJoseph Chen# 5*b42d2103SJoseph Chen# SPDX-License-Identifier: GPL-2.0 6*b42d2103SJoseph Chen# 7*b42d2103SJoseph Chen 8*b42d2103SJoseph Chenif [ $# -eq 0 ]; then 9*b42d2103SJoseph Chen echo "ERROR: No args of $0" 10*b42d2103SJoseph Chen exit 1 11*b42d2103SJoseph Chenfi 12*b42d2103SJoseph Chen 13*b42d2103SJoseph Chenwhile [ $# -gt 0 ]; do 14*b42d2103SJoseph Chen case $1 in 15*b42d2103SJoseph Chen --ini) 16*b42d2103SJoseph Chen INI=$2 17*b42d2103SJoseph Chen shift 2 18*b42d2103SJoseph Chen ;; 19*b42d2103SJoseph Chen --spl) 20*b42d2103SJoseph Chen SPL_BIN=$2 21*b42d2103SJoseph Chen if [ ! -f ${SPL_BIN} ]; then 22*b42d2103SJoseph Chen echo "ERROR: No ${SPL_BIN}" 23*b42d2103SJoseph Chen exit 1 24*b42d2103SJoseph Chen fi 25*b42d2103SJoseph Chen shift 2 26*b42d2103SJoseph Chen ;; 27*b42d2103SJoseph Chen --tpl) 28*b42d2103SJoseph Chen TPL_BIN=$2 29*b42d2103SJoseph Chen if [ ! -f ${TPL_BIN} ]; then 30*b42d2103SJoseph Chen echo "ERROR: No ${TPL_BIN}" 31*b42d2103SJoseph Chen exit 1 32*b42d2103SJoseph Chen fi 33*b42d2103SJoseph Chen shift 2 34*b42d2103SJoseph Chen ;; 35*b42d2103SJoseph Chen *) 36*b42d2103SJoseph Chen echo "ERROR: Unknown arg: $1" 37*b42d2103SJoseph Chen exit 1 38*b42d2103SJoseph Chen ;; 39*b42d2103SJoseph Chen esac 40*b42d2103SJoseph Chendone 41*b42d2103SJoseph Chen 42*b42d2103SJoseph Chenif [ ! -f ${INI} ]; then 43*b42d2103SJoseph Chen echo "ERROR: No ${INI}" 44*b42d2103SJoseph Chen exit 0 45*b42d2103SJoseph Chenfi 46*b42d2103SJoseph Chen 47*b42d2103SJoseph Chenif [ "${TPL_BIN}" == "" -a "${SPL_BIN}" == "" ]; then 48*b42d2103SJoseph Chen echo "ERROR: No SPL and TPL file" 49*b42d2103SJoseph Chen exit 0 50*b42d2103SJoseph Chenfi 51*b42d2103SJoseph Chen 52*b42d2103SJoseph Chenrm tmp -rf && mkdir tmp -p 53*b42d2103SJoseph ChenTMP_INI="tmp/MINIALL.ini" 54*b42d2103SJoseph Chencp ${INI} ${TMP_INI} 55*b42d2103SJoseph Chen 56*b42d2103SJoseph Chen# magic 57*b42d2103SJoseph ChenMAGIC=`sed -n '/NAME=/s/NAME=//p' ${INI}` 58*b42d2103SJoseph Chenif [ "${MAGIC}" == "RV1126" ]; then 59*b42d2103SJoseph Chen MAGIC="110B" 60*b42d2103SJoseph Chenelif [ "${MAGIC}" == "RKPX30" ]; then 61*b42d2103SJoseph Chen MAGIC="RK33" 62*b42d2103SJoseph Chenfi 63*b42d2103SJoseph Chen 64*b42d2103SJoseph Chen# replace 65*b42d2103SJoseph Chenif [ "${TPL_BIN}" != "" -a "${SPL_BIN}" != "" ]; then 66*b42d2103SJoseph Chen cp ${TPL_BIN} tmp/u-boot-tpl.bin 67*b42d2103SJoseph Chen cp ${SPL_BIN} tmp/u-boot-spl.bin 68*b42d2103SJoseph Chen dd if=tmp/u-boot-tpl.bin of=tmp/tpl.bin bs=1 skip=4 69*b42d2103SJoseph Chen 70*b42d2103SJoseph Chen sed -i "1s/^/${MAGIC:0:4}/" tmp/tpl.bin 71*b42d2103SJoseph Chen sed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${TMP_INI} 72*b42d2103SJoseph Chen sed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${TMP_INI} 73*b42d2103SJoseph Chen sed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${TMP_INI} 74*b42d2103SJoseph Chen LABEL="TPL+SPL" 75*b42d2103SJoseph Chenelif [ "${TPL_BIN}" != "" ]; then 76*b42d2103SJoseph Chen cp ${TPL_BIN} tmp/u-boot-tpl.bin 77*b42d2103SJoseph Chen dd if=tmp/u-boot-tpl.bin of=tmp/tpl.bin bs=1 skip=4 78*b42d2103SJoseph Chen sed -i "1s/^/${MAGIC:0:4}/" tmp/tpl.bin 79*b42d2103SJoseph Chen sed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${TMP_INI} 80*b42d2103SJoseph Chen sed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${TMP_INI} 81*b42d2103SJoseph Chen LABEL="TPL" 82*b42d2103SJoseph Chenelse 83*b42d2103SJoseph Chen cp ${SPL_BIN} tmp/u-boot-spl.bin 84*b42d2103SJoseph Chen sed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${TMP_INI} 85*b42d2103SJoseph Chen LABEL="SPL" 86*b42d2103SJoseph Chenfi 87*b42d2103SJoseph Chen 88*b42d2103SJoseph Chenrm *_loader_*.bin -f 89*b42d2103SJoseph Chen./tools/boot_merger ${TMP_INI} 90*b42d2103SJoseph Chen 91*b42d2103SJoseph ChenFNAME=`basename *_loader_*.bin` 92*b42d2103SJoseph Chenif [[ ${FNAME} != *spl* ]]; then 93*b42d2103SJoseph Chen rename 's/loader_/spl_loader_/' *_loader_*.bin 94*b42d2103SJoseph Chenfi 95*b42d2103SJoseph Chenrm tmp/ -rf 96*b42d2103SJoseph Chen 97*b42d2103SJoseph Chenecho "pack loader(${LABEL}) okay! Input: ${INI}" 98*b42d2103SJoseph Chenecho 99