scripts: fit: support set image version of uboot.img and boot.img

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I1fafa347e3b3f53d4987b145642bb96726870ee3
This commit is contained in:
Joseph Chen 2020-06-15 18:22:38 +08:00
parent ad07c38f68
commit 1de0df4512
1 changed files with 38 additions and 14 deletions

View File

@ -39,6 +39,8 @@ UBOOT_DTB="u-boot.dtb"
# its # its
ITS_UBOOT="u-boot.its" ITS_UBOOT="u-boot.its"
ITS_BOOT="boot.its" ITS_BOOT="boot.its"
ARG_VER_UBOOT="0"
ARG_VER_BOOT="0"
function help() function help()
{ {
@ -49,6 +51,8 @@ function help()
echo "args:" echo "args:"
echo " --rollback-index-boot <decimal integer>" echo " --rollback-index-boot <decimal integer>"
echo " --rollback-index-uboot <decimal integer>" echo " --rollback-index-uboot <decimal integer>"
echo " --version-uboot <decimal integer>"
echo " --version-boot <decimal integer>"
echo " --ini-trust" echo " --ini-trust"
echo " --ini-loader" echo " --ini-loader"
echo " --no-vboot" echo " --no-vboot"
@ -95,7 +99,7 @@ function validate_arg()
--uboot-itb|--boot-itb|--no-vboot|--no-rebuild|--no-check|--spl-new) --uboot-itb|--boot-itb|--no-vboot|--no-rebuild|--no-check|--spl-new)
shift=1 shift=1
;; ;;
--ini-trust|--ini-loader|--rollback-index-boot|--rollback-index-uboot|--boot_img) --ini-trust|--ini-loader|--rollback-index-boot|--rollback-index-uboot|--boot_img|--version-uboot|--version-boot)
shift=2 shift=2
;; ;;
*) *)
@ -164,6 +168,16 @@ function fit_process_args()
ARG_EXT_BOOT=$2 ARG_EXT_BOOT=$2
shift 2 shift 2
;; ;;
--version-uboot)
ARG_VER_UBOOT=$2
arg_check_decimal $2
shift 2
;;
--version-boot)
ARG_VER_BOOT=$2
arg_check_decimal $2
shift 2
;;
*) *)
help help
exit 1 exit 1
@ -188,7 +202,7 @@ function fit_gen_uboot_itb()
check_its ${ITS_UBOOT} check_its ${ITS_UBOOT}
if [ "${ARG_NO_VBOOT}" == "y" ]; then if [ "${ARG_NO_VBOOT}" == "y" ]; then
${MKIMAGE} -f ${ITS_UBOOT} -E -p ${OFFS_NS_UBOOT} ${ITB_UBOOT} ${MKIMAGE} -f ${ITS_UBOOT} -E -p ${OFFS_NS_UBOOT} ${ITB_UBOOT} -v ${ARG_VER_UBOOT}
if [ "${ARG_SPL_NEW}" == "y" ]; then if [ "${ARG_SPL_NEW}" == "y" ]; then
./make.sh spl-s ${ARG_INI_LOADER} ./make.sh spl-s ${ARG_INI_LOADER}
echo "pack loader with new: spl/u-boot-spl.bin" echo "pack loader with new: spl/u-boot-spl.bin"
@ -224,12 +238,12 @@ function fit_gen_uboot_itb()
# u-boot.dtb must contains rsa key # u-boot.dtb must contains rsa key
if ! fdtget -l ${UBOOT_DTB} /signature >/dev/null 2>&1 ; then if ! fdtget -l ${UBOOT_DTB} /signature >/dev/null 2>&1 ; then
${MKIMAGE} -f ${ITS_UBOOT} -k ${KEY_DIR} -K ${UBOOT_DTB} -E -p ${OFFS_S_UBOOT} -r ${ITB_UBOOT} ${MKIMAGE} -f ${ITS_UBOOT} -k ${KEY_DIR} -K ${UBOOT_DTB} -E -p ${OFFS_S_UBOOT} -r ${ITB_UBOOT} -v ${ARG_VER_UBOOT}
echo "Adding RSA public key into ${UBOOT_DTB}" echo "Adding RSA public key into ${UBOOT_DTB}"
fi fi
# Pack # Pack
${MKIMAGE} -f ${ITS_UBOOT} -k ${KEY_DIR} -K ${SPL_DTB} -E -p ${OFFS_S_UBOOT} -r ${ITB_UBOOT} ${MKIMAGE} -f ${ITS_UBOOT} -k ${KEY_DIR} -K ${SPL_DTB} -E -p ${OFFS_S_UBOOT} -r ${ITB_UBOOT} -v ${ARG_VER_UBOOT}
mv ${SIG_BIN} ${SIG_UBOOT} mv ${SIG_BIN} ${SIG_UBOOT}
# rollback-index read back check # rollback-index read back check
@ -305,7 +319,7 @@ function fit_gen_boot_itb()
fi fi
if [ "${ARG_NO_VBOOT}" == "y" ]; then if [ "${ARG_NO_VBOOT}" == "y" ]; then
${MKIMAGE} -f ${ITS_BOOT} -E -p ${OFFS_NS_BOOT} ${ITB_BOOT} ${MKIMAGE} -f ${ITS_BOOT} -E -p ${OFFS_NS_BOOT} ${ITB_BOOT} -v ${ARG_VER_BOOT}
else else
if [ ! -f ${RSA_PRI_KEY} ]; then if [ ! -f ${RSA_PRI_KEY} ]; then
echo "ERROR: No ${RSA_PRI_KEY}" echo "ERROR: No ${RSA_PRI_KEY}"
@ -345,7 +359,7 @@ function fit_gen_boot_itb()
sed -i "s/${VERSION}/ <${ARG_ROLLBACK_IDX_BOOT}>;/g" ${ITS_BOOT} sed -i "s/${VERSION}/ <${ARG_ROLLBACK_IDX_BOOT}>;/g" ${ITS_BOOT}
fi fi
${MKIMAGE} -f ${ITS_BOOT} -k ${KEY_DIR} -K ${UBOOT_DTB} -E -p ${OFFS_S_BOOT} -r ${ITB_BOOT} ${MKIMAGE} -f ${ITS_BOOT} -k ${KEY_DIR} -K ${UBOOT_DTB} -E -p ${OFFS_S_BOOT} -r ${ITB_BOOT} -v ${ARG_VER_BOOT}
mv ${SIG_BIN} ${SIG_BOOT} mv ${SIG_BIN} ${SIG_BOOT}
# rollback-index read back check # rollback-index read back check
@ -419,30 +433,40 @@ function fit_gen_boot_img()
function fit_msg_uboot() function fit_msg_uboot()
{ {
if [ "${ARG_NO_VBOOT}" == "y" ]; then if [ "${ARG_NO_VBOOT}" == "y" ]; then
MSG="no-signed" MSG_SIGN="no-signed"
else else
MSG="signed" MSG_SIGN="signed"
fi
VERSION=`fdtget -ti ${ITB_UBOOT} / version`
if [ "${VERSION}" != "" ]; then
MSG_VER=", version=${VERSION}"
fi fi
if [ "${ARG_SPL_ROLLBACK_PROTECT}" == "y" ]; then if [ "${ARG_SPL_ROLLBACK_PROTECT}" == "y" ]; then
echo "Image(${MSG}, rollback-index=${ARG_ROLLBACK_IDX_UBOOT}): ${IMG_UBOOT} (with uboot, trust...) is ready" echo "Image(${MSG_SIGN}${MSG_VER}, rollback-index=${ARG_ROLLBACK_IDX_UBOOT}): ${IMG_UBOOT} (with uboot, trust...) is ready"
else else
echo "Image(${MSG}): ${IMG_UBOOT} (FIT with uboot, trust...) is ready" echo "Image(${MSG_SIGN}${MSG_VER}): ${IMG_UBOOT} (FIT with uboot, trust...) is ready"
fi fi
} }
function fit_msg_boot() function fit_msg_boot()
{ {
if [ "${ARG_NO_VBOOT}" == "y" ]; then if [ "${ARG_NO_VBOOT}" == "y" ]; then
MSG="no-signed" MSG_SIGN="no-signed"
else else
MSG="signed" MSG_SIGN="signed"
fi
VERSION=`fdtget -ti ${ITB_BOOT} / version`
if [ "${VERSION}" != "" ]; then
MSG_VER=", version=${VERSION}"
fi fi
if [ "${ARG_ROLLBACK_PROTECT}" == "y" ]; then if [ "${ARG_ROLLBACK_PROTECT}" == "y" ]; then
echo "Image(${MSG}, rollback-index=${ARG_ROLLBACK_IDX_BOOT}): ${IMG_BOOT} is ready" echo "Image(${MSG_SIGN}${MSG_VER}, rollback-index=${ARG_ROLLBACK_IDX_BOOT}): ${IMG_BOOT} is ready"
else else
echo "Image(${MSG}): ${IMG_BOOT} (FIT with kernel, fdt, resource...) is ready" echo "Image(${MSG_SIGN}${MSG_VER}): ${IMG_BOOT} (FIT with kernel, fdt, resource...) is ready"
fi fi
} }