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

fetch_tf_resource() {
	# Fetch the pre-built SCP/MCP binaries if they haven't been built
	if [ ! -f "$archive/mcp_ram.bin" ]; then
		url="$scp_mcp_prebuilts/sgi575-mcp-bl2.bin" saveas="mcp_ram.bin" fetch_file
		archive_file "mcp_ram.bin"
	fi
	if [ ! -f "$archive/mcp_rom.bin" ]; then
		url="$scp_mcp_prebuilts/sgi575-mcp-bl1.bin" saveas="mcp_rom.bin" fetch_file
		archive_file "mcp_rom.bin"
	fi
	if [ ! -f "$archive/scp_ram.bin" ]; then
		url="$scp_mcp_prebuilts/sgi575-bl2.bin" saveas="scp_ram.bin" fetch_file
		archive_file "scp_ram.bin"
	fi
	if [ ! -f "$archive/scp_rom.bin" ]; then
		url="$scp_mcp_prebuilts/sgi575-bl1.bin" saveas="scp_rom.bin" fetch_file
		archive_file "scp_rom.bin"
	fi
}

generate_lava_job() {
	local model="css-sgi575"

	# Hold terminal_uart_aon
	uart="2" file="hold_uart.exp" track_expect

	set_run_env "ports_script" "$ci_root/model/css-sgi575-ports.awk"
	set_run_env "num_uarts" "3"

	model="$model" gen_model_params
	model="$model" gen_fvp_yaml
}
