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