xref: /rk3399_rockchip-uboot/scripts/fit-repack.sh (revision f3797579f0d06cd09733347bf361fd3fbcdb3d9b)
1#!/bin/bash
2#
3# Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
4#
5# SPDX-License-Identifier: GPL-2.0
6#
7
8set -e
9
10IMAGE_OFFS="0x800"
11IMAGE_ITS="image.its"
12IMAGE_ITB="image.itb"
13
14function usage()
15{
16	echo
17	echo "usage:"
18	echo "    $0 -f [fit/itb] -o [output]"
19	echo
20}
21
22function args_process()
23{
24	if [ $# -ne 4 -a $# -ne 2 ]; then
25		usage
26		exit 1
27	fi
28
29	while [ $# -gt 0 ]; do
30		case $1 in
31			-f)
32				IMAGE_ORG=$2
33				shift 2
34				;;
35			-o)
36				IMAGE_DIR=$2
37				shift 2
38				;;
39			*)
40				usage
41				exit 1
42				;;
43		esac
44	done
45
46	if [ ! -f $IMAGE_ORG ]; then
47		echo "ERROR: No $IMAGE_ORG"
48		exit 1
49	fi
50
51	if [ -z $IMAGE_DIR ]; then
52		IMAGE_DIR="out"
53	fi
54
55	mkdir -p $IMAGE_DIR
56}
57
58function fit_repack()
59{
60	./scripts/fit-unpack.sh -f $IMAGE_ORG -o $IMAGE_DIR
61	FIT_IMAGE_ITS=$IMAGE_DIR/$IMAGE_ITS
62
63	if grep -q 'hashed-nodes' $FIT_IMAGE_ITS ; then
64		echo "ERROR: $IMAGE_ORG was signed, unsupport to repack it!"
65		exit 1
66	fi
67
68	if grep -q 'uboot@1' $FIT_IMAGE_ITS ; then
69		IMAGE_NAME="uboot.img"
70	else
71		IMAGE_NAME="boot.img"
72	fi
73
74	rm -rf IMAGE_NAME
75	./tools/mkimage -f $FIT_IMAGE_ITS -E -p $IMAGE_OFFS $IMAGE_NAME
76
77	echo
78	echo "Image: $IMAGE_NAME is ready."
79	echo
80}
81
82args_process $*
83fit_repack
84
85