blob: 8a14517aba107b7b894c582be6549145e6e7e6e6 [file] [log] [blame]
#!/bin/bash
#
# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
# Generate a JSON file which will be fed to TF-A as SPM_LAYOUT_FILE to package
# Secure Partitions as part of FIP.
# Note the script will append the partition to the existing layout file.
# If you wish to only generate a layout file with this partition first run
# "make realclean" to remove the existing file.
# $1 = Secure Partition
# $2 = Platform built path
# $3 = Ivy Shim present
# Output = $2/sp_layout.json
GENERATED_JSON=$2/sp_layout.json
primary_dts="$1.dts"
if [ "$1" == "ivy" ]; then
if [ "$3" == "1" ]; then
primary_dts="ivy-sel1.dts"
else
primary_dts="ivy-sel0.dts"
fi
fi
# Remove closing bracket and add comma if the dts is already present.
if [ ! -f "$GENERATED_JSON" ]; then
echo -e "{\n" >> "$GENERATED_JSON"
else
if [ $(grep "$primary_dts" "$GENERATED_JSON" | wc -l) -eq "0" ]; then
sed -i '$d' "$GENERATED_JSON"
sed -i '$ s/$/,/' "$GENERATED_JSON"
echo -e "\n" >> "$GENERATED_JSON"
else
exit 0
fi
fi
# To demonstrate communication between SP's, two cactus S-EL1 instances used.
# To also test mapping of the RXTX region a third cactus S-EL1 instance is used.
# cactus-primary, cactus-secondary and cactus-tertiary have same binary but
# different partition manifests.
if [ "$1" == "cactus" ]; then
echo -e "\t\"$1-primary\" : {\n \
\t\"image\": {\n \
\t\t\"file\": \"$1.bin\",\n \
\t\t\"offset\":\"0x2000\"\n\
\t},\n \
\t\"pm\": {\n \
\t\t\"file\": \"$1.dts\",\n \
\t\t\"offset\":\"0x1000\"\n\
\t},\n
\t\"owner\": \"SiP\"\n\t},\n\n\t\"$1-secondary\" : {\n \
\t\"image\": \"$1.bin\",\n \
\t\"pm\": \"$1-secondary.dts\",\n \
\t\"owner\": \"Plat\"\n\t},\n\n\t\"$1-tertiary\" : {\n \
\t\"image\": \"$1.bin\",\n \
\t\"pm\": \"$1-tertiary.dts\",\n \
\t\"owner\": \"Plat\"\n\t}" \
>> "$GENERATED_JSON"
elif [ "$1" == "ivy" ]; then
echo -e "\t\"ivy\" : {\n \
\t\"image\": \"ivy.bin\",\n \
\t\"pm\": \"$primary_dts\",\n \
\t\"owner\": \"Plat\"\n\t}" >> "$GENERATED_JSON"
else
echo -e "\nWarning: Secure Partition not supported\n"
fi
echo -e "}" >> "$GENERATED_JSON"