#!/usr/bin/env bash
#
# Copyright (c) 2021-2023 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
post_tf_build() {
	# Fetch pre-built SCP/MCP binaries if they haven't been built
	if [ ! -f "$archive/mcp_rom.bin" ]; then
		url="$scp_mcp_prebuilts/morello-mcp-bl1.bin" saveas="mcp_rom.bin" fetch_file
		archive_file "mcp_rom.bin"
	fi

	if [ ! -f "$archive/scp_rom.bin" ]; then
		url="$scp_mcp_prebuilts/morello-bl1.bin" saveas="scp_rom.bin" fetch_file
		archive_file "scp_rom.bin"
	fi

	if [ ! -f "$archive/mcp_ram.bin" ]; then
		url="$scp_mcp_prebuilts/morello-fvp-mcp-bl2.bin" saveas="mcp_ram.bin" fetch_file
		archive_file "mcp_ram.bin"
	fi

	if [ ! -f "$archive/scp_ram.bin" ]; then
		url="$scp_mcp_prebuilts/morello-fvp-bl2.bin" saveas="scp_ram.bin" fetch_file
		archive_file "scp_ram.bin"
	fi

	# Create FIP layout for SCP
	"$fiptool" create --scp-fw "$archive/scp_ram.bin" "scp_fw.bin"
	archive_file "scp_fw.bin"

	# Create FIP layout for MCP, this needs fixed uuid for now
	"$fiptool" create --blob uuid=54464222-a4cf-4bf8-b1b6-cee7dade539e,file="$archive/mcp_ram.bin" "mcp_fw.bin"
	archive_file "mcp_fw.bin"

	# Fetch BL33 [uefi.bin] for Morello
	url="$morello_prebuilts/uefi.bin" filename="uefi.bin" fetch_and_archive

	# Create FIP for BL2, BL31, and BL33
	build_fip BL31="$bl31" BL2="$bl2" BL33="$archive/uefi.bin"
}
