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