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

post_tf_build() {
	# Download and archive FVP-R files
	url="$tfa_downloads/fvp_r_2023/core-image-minimal-fvp-baser-aemv8r64.wic" saveas="rootfs.bin" fetch_file
	url="$tfa_downloads/fvp_r_2023/fvp-baser-aemv8r64.dtb" saveas="dtb.bin" fetch_file
	url="$tfa_downloads/fvp_r_2023/Image" saveas="kernel.bin" fetch_file
	url="$tfa_downloads/fvp_r_2023/u-boot.bin" saveas="uboot.bin" fetch_file

	archive_file "rootfs.bin"
	archive_file "dtb.bin"
	archive_file "kernel.bin"
	archive_file "uboot.bin"

	# Build FIP image with Uboot as BL33
	build_fip BL33="$archive/uboot.bin"
}

generate_lava_job_template() {
	payload_type="linux" gen_yaml_template
}

generate_lava_job() {
	local model="baser-aemv8r"

	uart="0" set_expect_variable "num_cpus" "1"
	uart="0" file="fvp-r-yocto.exp" track_expect

	model="$model" \
		dtb_addr="0x0fc00000" \
		fip_addr="0x40000000" \
		kernel_addr="0x00800000" \
		gen_model_params

	model="$model" gen_fvp_yaml
}
