#!/usr/bin/env bash
#
# Copyright (c) 2021 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/mcp_romfw.bin" saveas="mcp_rom.bin" fetch_file
                archive_file "mcp_rom.bin"
        fi
        if [ ! -f "$archive/scp_rom.bin" ]; then
                url="$scp_mcp_prebuilts/scp_bl1.bin" saveas="scp_rom.bin" fetch_file
                archive_file "scp_rom.bin"
        fi
        if [ ! -f "$archive/scp_ram.bin" ]; then
                url="$scp_mcp_prebuilts/scp_bl2.bin" saveas="scp_ram.bin" fetch_file
                archive_file "scp_ram.bin"
        fi
        if [ ! -f "$archive/mcp_ram.bin" ]; then
                url="$scp_mcp_prebuilts/mcp_ramfw.bin" saveas="mcp_ram.bin" fetch_file
                archive_file "mcp_ram.bin"
        fi

        # Create FIP for SCP
        "$fiptool" create --soc-fw "$tf_root/build/n1sdp/$bin_mode/bl31.bin" --scp-fw "$archive/scp_ram.bin" "scp_fw.bin"
        archive_file "scp_fw.bin"

        # Create FIP 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"
}
