#!/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
		--load)
			LOAD_ADDR=$2
			shift 2
			;;
		--size)
			SIZE="$1 $2 $3"
			shift 3
			;;
		*)
			echo "ERROR: Unknown arg: $1"
			exit 1
			;;
	esac
done

rm uboot.img -f

if [ -z "${LOAD_ADDR}" ]; then
	echo "ERROR: No load address"
	exit 1
fi

HEAD_KB=2
BIN_KB=`ls -l u-boot.bin | awk '{ print $5 }'`
if [ -z "${SIZE}" ]; then
	MAX_KB=1046528
else
	MAX_KB=`echo ${SIZE} | awk '{print strtonum($2)}'`
	MAX_KB=$(((MAX_KB-HEAD_KB)*1024))
fi

if [ ${BIN_KB} -gt ${MAX_KB} ]; then
	echo "ERROR: pack uboot failed! u-boot.bin actual: ${BIN_KB} bytes, max limit: ${MAX_KB} bytes"
	exit 1
fi

../rkbin/tools/loaderimage --pack --uboot u-boot.bin uboot.img ${LOAD_ADDR} ${SIZE}
echo "pack uboot okay! Input: u-boot.bin"
echo