1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Copyright (c) 2020 Rockchip Electronics Co., Ltd 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunset -e 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunif [ $# -eq 0 ]; then 11*4882a593Smuzhiyun echo "ERROR: No args of $0" 12*4882a593Smuzhiyun exit 1 13*4882a593Smuzhiyunfi 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunwhile [ $# -gt 0 ]; do 16*4882a593Smuzhiyun case $1 in 17*4882a593Smuzhiyun --load) 18*4882a593Smuzhiyun LOAD_ADDR=$2 19*4882a593Smuzhiyun shift 2 20*4882a593Smuzhiyun ;; 21*4882a593Smuzhiyun --size) 22*4882a593Smuzhiyun SIZE="$1 $2 $3" 23*4882a593Smuzhiyun shift 3 24*4882a593Smuzhiyun ;; 25*4882a593Smuzhiyun *) 26*4882a593Smuzhiyun echo "ERROR: Unknown arg: $1" 27*4882a593Smuzhiyun exit 1 28*4882a593Smuzhiyun ;; 29*4882a593Smuzhiyun esac 30*4882a593Smuzhiyundone 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunrm uboot.img -f 33*4882a593Smuzhiyun 34*4882a593Smuzhiyunif [ -z "${LOAD_ADDR}" ]; then 35*4882a593Smuzhiyun echo "ERROR: No load address" 36*4882a593Smuzhiyun exit 1 37*4882a593Smuzhiyunfi 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunHEAD_KB=2 40*4882a593SmuzhiyunBIN_KB=`ls -l u-boot.bin | awk '{ print $5 }'` 41*4882a593Smuzhiyunif [ -z "${SIZE}" ]; then 42*4882a593Smuzhiyun MAX_KB=1046528 43*4882a593Smuzhiyunelse 44*4882a593Smuzhiyun MAX_KB=`echo ${SIZE} | awk '{print strtonum($2)}'` 45*4882a593Smuzhiyun MAX_KB=$(((MAX_KB-HEAD_KB)*1024)) 46*4882a593Smuzhiyunfi 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunif [ ${BIN_KB} -gt ${MAX_KB} ]; then 49*4882a593Smuzhiyun echo "ERROR: pack uboot failed! u-boot.bin actual: ${BIN_KB} bytes, max limit: ${MAX_KB} bytes" 50*4882a593Smuzhiyun exit 1 51*4882a593Smuzhiyunfi 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun../rkbin/tools/loaderimage --pack --uboot u-boot.bin uboot.img ${LOAD_ADDR} ${SIZE} 54*4882a593Smuzhiyunecho "pack uboot okay! Input: u-boot.bin" 55*4882a593Smuzhiyunecho 56