You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.1 KiB
107 lines
2.1 KiB
#!/bin/bash
|
|
#
|
|
# Copyright (c) 2020 Rockchip Electronics Co., Ltd
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
|
|
set -e
|
|
|
|
if [ $# -eq 0 ]; then
|
|
echo "ERROR: No args of $0"
|
|
exit 1
|
|
fi
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case $1 in
|
|
--ini)
|
|
INI=$2
|
|
shift 2
|
|
;;
|
|
--spl)
|
|
SPL_BIN=$2
|
|
if [ ! -f ${SPL_BIN} ]; then
|
|
echo "ERROR: No ${SPL_BIN}"
|
|
exit 1
|
|
fi
|
|
shift 2
|
|
;;
|
|
--tpl)
|
|
TPL_BIN=$2
|
|
if [ ! -f ${TPL_BIN} ]; then
|
|
echo "ERROR: No ${TPL_BIN}"
|
|
exit 1
|
|
fi
|
|
shift 2
|
|
;;
|
|
*)
|
|
echo "ERROR: Unknown arg: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ ! -f ${INI} ]; then
|
|
echo "ERROR: No ${INI}"
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${TPL_BIN}" == "" -a "${SPL_BIN}" == "" ]; then
|
|
echo "ERROR: No SPL and TPL file"
|
|
exit 0
|
|
fi
|
|
|
|
rm tmp -rf && mkdir tmp -p
|
|
TMP_INI="tmp/MINIALL.ini"
|
|
cp ${INI} ${TMP_INI}
|
|
|
|
# magic
|
|
MAGIC=`sed -n '/NAME=/s/NAME=//p' ${INI}`
|
|
if [ "${MAGIC}" == "RV1126" ]; then
|
|
MAGIC="110B"
|
|
elif [ "${MAGIC}" == "RKPX30" ]; then
|
|
MAGIC="RK33"
|
|
fi
|
|
|
|
# tpl don't need replace MAGIC
|
|
if grep -q '^NEWIDB=true' ${INI} ; then
|
|
ARG_NEWIDB="y"
|
|
fi
|
|
|
|
# replace
|
|
if [ "${TPL_BIN}" != "" -a "${SPL_BIN}" != "" ]; then
|
|
if [ "${ARG_NEWIDB}" == "y" ]; then
|
|
cp ${TPL_BIN} tmp/tpl.bin
|
|
else
|
|
cp ${TPL_BIN} tmp/u-boot-tpl.bin
|
|
dd if=tmp/u-boot-tpl.bin of=tmp/tpl.bin bs=1 skip=4
|
|
sed -i "1s/^/${MAGIC:0:4}/" tmp/tpl.bin
|
|
fi
|
|
|
|
cp ${SPL_BIN} tmp/u-boot-spl.bin
|
|
sed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${TMP_INI}
|
|
sed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${TMP_INI}
|
|
sed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${TMP_INI}
|
|
LABEL="TPL+SPL"
|
|
elif [ "${TPL_BIN}" != "" ]; then
|
|
if [ "${ARG_NEWIDB}" == "y" ]; then
|
|
cp ${TPL_BIN} tmp/tpl.bin
|
|
else
|
|
cp ${TPL_BIN} tmp/u-boot-tpl.bin
|
|
dd if=tmp/u-boot-tpl.bin of=tmp/tpl.bin bs=1 skip=4
|
|
sed -i "1s/^/${MAGIC:0:4}/" tmp/tpl.bin
|
|
fi
|
|
sed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${TMP_INI}
|
|
sed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${TMP_INI}
|
|
LABEL="TPL"
|
|
else
|
|
cp ${SPL_BIN} tmp/u-boot-spl.bin
|
|
sed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${TMP_INI}
|
|
LABEL="SPL"
|
|
fi
|
|
|
|
./tools/boot_merger ${TMP_INI}
|
|
rm tmp/ -rf
|
|
|
|
echo "pack loader(${LABEL}) okay! Input: ${INI}"
|
|
echo
|
|
|