Antonio Nino Diaz | 1451f61 | 2018-11-30 10:51:26 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | # |
Olivier Deprez | 48e6d26 | 2020-03-13 18:04:17 +0100 | [diff] [blame^] | 4 | # Copyright (c) 2018-2020, Arm Limited. All rights reserved. |
Antonio Nino Diaz | 1451f61 | 2018-11-30 10:51:26 +0000 | [diff] [blame] | 5 | # |
| 6 | # SPDX-License-Identifier: BSD-3-Clause |
| 7 | # |
| 8 | |
| 9 | # Generate a DTB file from a base DTS file and the MAP file generated during the |
| 10 | # compilation of a Secure Partition. |
| 11 | |
| 12 | # $1 = image_name (lowercase) |
| 13 | # $2 = path/to/file.dts |
| 14 | # $3 = build/$PLAT/$BUILD_TYPE/ |
| 15 | |
| 16 | ORIGINAL_DTS=$2 |
| 17 | MAPFILE="$3/$1/$1.map" |
| 18 | EXTRA_DTS="$3/$1/$1_extra.dts" |
| 19 | COMBINED_DTS="$3/$1/$1_combined.dts" |
| 20 | PREPROCESSED_DTS="$3/$1/$1_preprocessed.dts" |
| 21 | GENERATED_DTB="$3/$1.dtb" |
| 22 | |
| 23 | # Look for the start and end of the sections that are only known in the elf file |
| 24 | # after compiling the partition. |
| 25 | |
| 26 | TEXT_START=$(grep __TEXT_START__ $MAPFILE | awk {'print $1'}) |
| 27 | TEXT_END=$(grep __TEXT_END__ $MAPFILE | awk {'print $1'}) |
| 28 | |
| 29 | RODATA_START=$(grep __RODATA_START__ $MAPFILE | awk {'print $1'}) |
| 30 | RODATA_END=$(grep __RODATA_END__ $MAPFILE | awk {'print $1'}) |
| 31 | |
| 32 | DATA_START=$(grep __DATA_START__ $MAPFILE | awk {'print $1'}) |
| 33 | DATA_END=$(grep __DATA_END__ $MAPFILE | awk {'print $1'}) |
| 34 | |
| 35 | BSS_START=$(grep __BSS_START__ $MAPFILE | awk {'print $1'}) |
| 36 | BSS_END=$(grep __BSS_END__ $MAPFILE | awk {'print $1'}) |
| 37 | |
| 38 | # Inject new sections to the base DTS |
| 39 | |
Olivier Deprez | 48e6d26 | 2020-03-13 18:04:17 +0100 | [diff] [blame^] | 40 | # Memory region generation discarded |
Antonio Nino Diaz | 1451f61 | 2018-11-30 10:51:26 +0000 | [diff] [blame] | 41 | |
Olivier Deprez | 48e6d26 | 2020-03-13 18:04:17 +0100 | [diff] [blame^] | 42 | cat "$ORIGINAL_DTS" > "$COMBINED_DTS" |
Antonio Nino Diaz | 1451f61 | 2018-11-30 10:51:26 +0000 | [diff] [blame] | 43 | |
| 44 | INCLUDES="-I spm/cactus |
| 45 | -I spm/ivy |
Antonio Nino Diaz | 26b3864 | 2019-03-28 13:16:04 +0000 | [diff] [blame] | 46 | -I spm/quark |
Antonio Nino Diaz | 1451f61 | 2018-11-30 10:51:26 +0000 | [diff] [blame] | 47 | -I spm/include |
| 48 | -I include/lib" |
| 49 | |
Deepika Bhavnani | c249d5e | 2020-02-06 16:29:45 -0600 | [diff] [blame] | 50 | cpp -x c -P -o "$PREPROCESSED_DTS" "$COMBINED_DTS" ${INCLUDES} |
Antonio Nino Diaz | 1451f61 | 2018-11-30 10:51:26 +0000 | [diff] [blame] | 51 | dtc -I dts -O dtb "$PREPROCESSED_DTS" > "$GENERATED_DTB" |