xref: /rk3399_ARM-atf/lib/romlib/gen_combined_bl1_romlib.sh (revision afa5cfea6079bf7a10db53edcc72e6b8fa05c600)
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