1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Copyright (c) 2020 Rockchip Electronics Co., Ltd 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunset -e 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunif [ $# -eq 0 ]; then 11*4882a593Smuzhiyun echo "ERROR: No args of $0" 12*4882a593Smuzhiyun exit 1 13*4882a593Smuzhiyunfi 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunwhile [ $# -gt 0 ]; do 16*4882a593Smuzhiyun case $1 in 17*4882a593Smuzhiyun --ini) 18*4882a593Smuzhiyun INI=$2 19*4882a593Smuzhiyun shift 2 20*4882a593Smuzhiyun ;; 21*4882a593Smuzhiyun --spl) 22*4882a593Smuzhiyun SPL_BIN=$2 23*4882a593Smuzhiyun if [ ! -f ${SPL_BIN} ]; then 24*4882a593Smuzhiyun echo "ERROR: No ${SPL_BIN}" 25*4882a593Smuzhiyun exit 1 26*4882a593Smuzhiyun fi 27*4882a593Smuzhiyun shift 2 28*4882a593Smuzhiyun ;; 29*4882a593Smuzhiyun --tpl) 30*4882a593Smuzhiyun TPL_BIN=$2 31*4882a593Smuzhiyun if [ ! -f ${TPL_BIN} ]; then 32*4882a593Smuzhiyun echo "ERROR: No ${TPL_BIN}" 33*4882a593Smuzhiyun exit 1 34*4882a593Smuzhiyun fi 35*4882a593Smuzhiyun shift 2 36*4882a593Smuzhiyun ;; 37*4882a593Smuzhiyun *) 38*4882a593Smuzhiyun echo "ERROR: Unknown arg: $1" 39*4882a593Smuzhiyun exit 1 40*4882a593Smuzhiyun ;; 41*4882a593Smuzhiyun esac 42*4882a593Smuzhiyundone 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunif [ ! -f ${INI} ]; then 45*4882a593Smuzhiyun echo "ERROR: No ${INI}" 46*4882a593Smuzhiyun exit 0 47*4882a593Smuzhiyunfi 48*4882a593Smuzhiyun 49*4882a593Smuzhiyunif [ "${TPL_BIN}" == "" -a "${SPL_BIN}" == "" ]; then 50*4882a593Smuzhiyun echo "ERROR: No SPL and TPL file" 51*4882a593Smuzhiyun exit 0 52*4882a593Smuzhiyunfi 53*4882a593Smuzhiyun 54*4882a593Smuzhiyunrm tmp -rf && mkdir tmp -p 55*4882a593SmuzhiyunTMP_INI="tmp/MINIALL.ini" 56*4882a593Smuzhiyuncp ${INI} ${TMP_INI} 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun# magic 59*4882a593SmuzhiyunMAGIC=`sed -n '/NAME=/s/NAME=//p' ${INI}` 60*4882a593Smuzhiyunif [ "${MAGIC}" == "RV1126" ]; then 61*4882a593Smuzhiyun MAGIC="110B" 62*4882a593Smuzhiyunelif [ "${MAGIC}" == "RKPX30" ]; then 63*4882a593Smuzhiyun MAGIC="RK33" 64*4882a593Smuzhiyunfi 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun# tpl don't need replace MAGIC 67*4882a593Smuzhiyunif grep -q '^NEWIDB=true' ${INI} ; then 68*4882a593Smuzhiyun ARG_NEWIDB="y" 69*4882a593Smuzhiyunfi 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun# replace 72*4882a593Smuzhiyunif [ "${TPL_BIN}" != "" -a "${SPL_BIN}" != "" ]; then 73*4882a593Smuzhiyun if [ "${ARG_NEWIDB}" == "y" ]; then 74*4882a593Smuzhiyun cp ${TPL_BIN} tmp/tpl.bin 75*4882a593Smuzhiyun else 76*4882a593Smuzhiyun cp ${TPL_BIN} tmp/u-boot-tpl.bin 77*4882a593Smuzhiyun dd if=tmp/u-boot-tpl.bin of=tmp/tpl.bin bs=1 skip=4 78*4882a593Smuzhiyun sed -i "1s/^/${MAGIC:0:4}/" tmp/tpl.bin 79*4882a593Smuzhiyun fi 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun cp ${SPL_BIN} tmp/u-boot-spl.bin 82*4882a593Smuzhiyun sed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${TMP_INI} 83*4882a593Smuzhiyun sed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${TMP_INI} 84*4882a593Smuzhiyun sed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${TMP_INI} 85*4882a593Smuzhiyun LABEL="TPL+SPL" 86*4882a593Smuzhiyunelif [ "${TPL_BIN}" != "" ]; then 87*4882a593Smuzhiyun if [ "${ARG_NEWIDB}" == "y" ]; then 88*4882a593Smuzhiyun cp ${TPL_BIN} tmp/tpl.bin 89*4882a593Smuzhiyun else 90*4882a593Smuzhiyun cp ${TPL_BIN} tmp/u-boot-tpl.bin 91*4882a593Smuzhiyun dd if=tmp/u-boot-tpl.bin of=tmp/tpl.bin bs=1 skip=4 92*4882a593Smuzhiyun sed -i "1s/^/${MAGIC:0:4}/" tmp/tpl.bin 93*4882a593Smuzhiyun fi 94*4882a593Smuzhiyun sed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${TMP_INI} 95*4882a593Smuzhiyun sed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${TMP_INI} 96*4882a593Smuzhiyun LABEL="TPL" 97*4882a593Smuzhiyunelse 98*4882a593Smuzhiyun cp ${SPL_BIN} tmp/u-boot-spl.bin 99*4882a593Smuzhiyun sed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${TMP_INI} 100*4882a593Smuzhiyun LABEL="SPL" 101*4882a593Smuzhiyunfi 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun./tools/boot_merger ${TMP_INI} 104*4882a593Smuzhiyunrm tmp/ -rf 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunecho "pack loader(${LABEL}) okay! Input: ${INI}" 107*4882a593Smuzhiyunecho 108