| #!/usr/bin/env bash |
| # |
| # Copyright (c) 2023 Arm Limited. All rights reserved. |
| # |
| # SPDX-License-Identifier: BSD-3-Clause |
| # |
| |
| set -u |
| |
| rootfs_url="$tfa_downloads/linux_boot/busybox.cpio.gz" |
| uefi_url="$tfa_downloads/linux_boot/qemu/QEMU_EFI.fd" |
| |
| # Default QEMU model variables |
| default_model_dtb="dtb.bin" |
| |
| # QEMU Kernel URLs |
| declare -A kernel_list=( |
| [qemu-busybox]="$tfa_downloads/linux_boot/Image.gz" |
| ) |
| |
| gen_qemu_yaml(){ |
| model="${model:?}" |
| model_bin="${model_bin:qemu-system-aarch64}" |
| |
| yaml_template_file="$workspace/qemu_template.yaml" |
| yaml_file="$workspace/qemu.yaml" |
| yaml_job_file="$workspace/job.yaml" |
| lava_model_params="$workspace/lava_model_params" |
| |
| # this function expects a template, quit if it is not present |
| if [ ! -f "$yaml_template_file" ]; then |
| return |
| fi |
| |
| prompt="${prompt:-root@tf-busyboot:/root#}" |
| |
| # Any addition on this array requires an addition in the qemu |
| # templates. |
| declare -A qemu_artefact_urls=( |
| [kernel]="$(gen_bin_url kernel.bin)" |
| [bios]="$(gen_bin_url qemu_bios.bin)" |
| [initrd]="$(gen_bin_url rootfs.bin.gz)" |
| [uboot]="$(gen_bin_url uboot.bin)" |
| ) |
| |
| declare -A qemu_artefact_filters=( |
| [kernel]="kernel.bin" |
| [bios]="qemu_bios.bin" |
| [initrd]="rootfs.bin" |
| [uboot]="uboot.bin" |
| ) |
| |
| declare -A qemu_artefact_macros=( |
| ["kernel.bin"]="{kernel}" |
| ["qemu_bios.bin"]="{bios}" |
| ["rootfs.bin"]="{initrd}" |
| ["uboot.bin"]="{uboot}" |
| ) |
| |
| declare -a qemu_artefacts |
| filter_artefacts qemu_artefacts qemu_artefact_filters |
| |
| lava_model_params="${lava_model_params}" \ |
| gen_lava_model_params qemu_artefact_macros |
| |
| yaml_template_file="$yaml_template_file" \ |
| yaml_file="$yaml_file" \ |
| yaml_job_file="$yaml_job_file" \ |
| gen_lava_job_def qemu_artefacts qemu_artefact_urls |
| } |
| |
| gen_qemu_image(){ |
| local image=${image:?} |
| local bl1_path=${bl1_path:?} |
| local fip_path=${fip_path:?} |
| |
| # Cocatenate bl1 and fip images to create a single BIOS consumed by QEMU. |
| cp $bl1_path "$image" |
| dd if=$fip_path of="$image" bs=64k seek=4 |
| |
| archive_file "$image" |
| } |
| |
| set +u |