#!/bin/sh # Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause set -e output="bl1_romlib.bin" # Set trap for removing temporary file trap 'r=$?;rm -f $bin_path/$$.tmp;exit $r' EXIT HUP QUIT INT TERM # Read input parameters for i do case $i in -o) output=$2 shift 2 ;; --) shift break ;; -*) echo usage: gen_combined_bl1_romlib.sh [-o output] path_to_build_directory >&2 ;; esac done bin_path=$1 romlib_path=$1/romlib bl1_file="$1/bl1/bl1.elf" romlib_file="$1/romlib/romlib.elf" bl1_end="" romlib_begin="" # Get address of __BL1_ROM_END__ bl1_end=`nm -a "$bl1_file" | awk '$3 == "__BL1_ROM_END__" {print "0x"$1}'` # Get start address of romlib "text" section romlib_begin=`nm -a "$romlib_file" | awk '$3 == ".text" {print "0x"$1}'` # Character "U" will be read as "55" in hex when it is # concatenated with bl1.bin. Generate combined BL1 and ROMLIB # binary with filler bytes for juno (cat $bin_path/bl1.bin yes U | sed $(($romlib_begin - $bl1_end))q | tr -d '\n' cat $bin_path/romlib/romlib.bin) > $bin_path/$$.tmp && mv $bin_path/$$.tmp $bin_path/$output