#!/usr/bin/env bash
#
# Copyright (c) 2023-2024, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#

source "$ci_root/run_config/tc_rse_utils.sh"

post_tf_build() {
    if [ $plat_variant -eq 3 ]; then
        # Use pre-built SCP BL2 binary
        url="$tfa_downloads/total_compute/tc$plat_variant/scp/$scp_revision/tc$plat_variant-bl2.bin" saveas="scp_ram.bin" fetch_file
        archive_file "scp_ram.bin"
        build_fip BL33="$archive/tftf.bin" BL32="$archive/secure_hafnium.bin" SCP_BL2="$archive/scp_ram.bin"
    elif [ $plat_variant -eq 4 ]; then
        build_fip BL33="$archive/tftf.bin" BL32="$archive/secure_hafnium.bin"
    fi
}

fetch_tf_resource() {
    # RSE output is printed to UART 2 so track it.
    uart="1" port="5003" file="hold_uart.exp" track_expect

    get_rse_prov_bins

    sign_image bl1.bin $ap_bl1_flash_load_addr $ap_bl1_flash_size

    update_fip

    # Create GPT image
    gen_gpt_bin $archive/host_flash_fip.bin 12582912 16
}

generate_lava_job_template() {
    uart="2" port="5000" set_primary="1" file="tftf-non-primary.exp" track_expect
    uart="3" port="5001" file="spm-cactus-sp-uart1.exp" track_expect

    set_uart_port "${archive:?}" 0 5002
    set_uart_port "${archive:?}" 1 5003

    payload_type="tftf" memory_tagging_support_level="2" gen_yaml_template
}
