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