1*afa5cfeaSSathees Balya#!/bin/sh 2*afa5cfeaSSathees Balya# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. 3*afa5cfeaSSathees Balya# 4*afa5cfeaSSathees Balya# SPDX-License-Identifier: BSD-3-Clause 5*afa5cfeaSSathees Balya 6*afa5cfeaSSathees Balyaset -e 7*afa5cfeaSSathees Balya 8*afa5cfeaSSathees Balyaoutput="bl1_romlib.bin" 9*afa5cfeaSSathees Balya 10*afa5cfeaSSathees Balya# Set trap for removing temporary file 11*afa5cfeaSSathees Balyatrap 'r=$?;rm -f $bin_path/$$.tmp;exit $r' EXIT HUP QUIT INT TERM 12*afa5cfeaSSathees Balya 13*afa5cfeaSSathees Balya# Read input parameters 14*afa5cfeaSSathees Balyafor i 15*afa5cfeaSSathees Balyado 16*afa5cfeaSSathees Balya case $i in 17*afa5cfeaSSathees Balya -o) 18*afa5cfeaSSathees Balya output=$2 19*afa5cfeaSSathees Balya shift 2 20*afa5cfeaSSathees Balya ;; 21*afa5cfeaSSathees Balya --) 22*afa5cfeaSSathees Balya shift 23*afa5cfeaSSathees Balya break 24*afa5cfeaSSathees Balya ;; 25*afa5cfeaSSathees Balya -*) 26*afa5cfeaSSathees Balya echo usage: gen_combined_bl1_romlib.sh [-o output] path_to_build_directory >&2 27*afa5cfeaSSathees Balya ;; 28*afa5cfeaSSathees Balya esac 29*afa5cfeaSSathees Balyadone 30*afa5cfeaSSathees Balya 31*afa5cfeaSSathees Balya 32*afa5cfeaSSathees Balyabin_path=$1 33*afa5cfeaSSathees Balyaromlib_path=$1/romlib 34*afa5cfeaSSathees Balyabl1_file="$1/bl1/bl1.elf" 35*afa5cfeaSSathees Balyaromlib_file="$1/romlib/romlib.elf" 36*afa5cfeaSSathees Balyabl1_end="" 37*afa5cfeaSSathees Balyaromlib_begin="" 38*afa5cfeaSSathees Balya 39*afa5cfeaSSathees Balya# Get address of __BL1_ROM_END__ 40*afa5cfeaSSathees Balyabl1_end=`nm -a "$bl1_file" | 41*afa5cfeaSSathees Balyaawk '$3 == "__BL1_ROM_END__" {print "0x"$1}'` 42*afa5cfeaSSathees Balya 43*afa5cfeaSSathees Balya# Get start address of romlib "text" section 44*afa5cfeaSSathees Balyaromlib_begin=`nm -a "$romlib_file" | 45*afa5cfeaSSathees Balyaawk '$3 == ".text" {print "0x"$1}'` 46*afa5cfeaSSathees Balya 47*afa5cfeaSSathees Balya# Character "U" will be read as "55" in hex when it is 48*afa5cfeaSSathees Balya# concatenated with bl1.bin. Generate combined BL1 and ROMLIB 49*afa5cfeaSSathees Balya# binary with filler bytes for juno 50*afa5cfeaSSathees Balya(cat $bin_path/bl1.bin 51*afa5cfeaSSathees Balya yes U | sed $(($romlib_begin - $bl1_end))q | tr -d '\n' 52*afa5cfeaSSathees Balya cat $bin_path/romlib/romlib.bin) > $bin_path/$$.tmp && 53*afa5cfeaSSathees Balyamv $bin_path/$$.tmp $bin_path/$output 54