1#!/usr/bin/env bash 2 3if [ -z "$KUT_STANDALONE" ]; then 4 if [ ! -f config.mak ]; then 5 echo "run ./configure && make first. See ./configure -h" 6 exit 2 7 fi 8 source config.mak 9 source scripts/arch-run.bash 10 source scripts/vmm.bash 11fi 12 13# Allow user overrides of some config.mak variables 14mach=$MACHINE_OVERRIDE 15qemu_cpu=$TARGET_CPU_OVERRIDE 16firmware=$FIRMWARE_OVERRIDE 17 18: "${mach:=virt}" 19: "${qemu_cpu:=$TARGET_CPU}" 20: "${qemu_cpu:=$DEFAULT_QEMU_CPU}" 21: "${firmware:=$FIRMWARE}" 22[ "$firmware" ] && firmware="-bios $firmware" 23 24set_qemu_accelerator || exit $? 25[ "$ACCEL" = "kvm" ] && QEMU_ARCH=$HOST 26acc="-accel $ACCEL$ACCEL_PROPS" 27 28qemu=$(search_qemu_binary) || exit $? 29if [ "$mach" = 'virt' ] && ! $qemu -machine '?' | grep -q 'RISC-V VirtIO board'; then 30 echo "$qemu doesn't support mach-virt ('-machine virt'). Exiting." 31 exit 2 32fi 33mach="-machine $mach" 34 35command="$qemu -nodefaults -nographic -serial mon:stdio" 36command+=" $mach $acc $firmware -cpu $qemu_cpu " 37command="$(migration_cmd) $(timeout_cmd) $command" 38 39if [ "$UEFI_SHELL_RUN" = "y" ]; then 40 ENVIRON_DEFAULT=n run_test_status $command "$@" 41else 42 # We return the exit code via stdout, not via the QEMU return code 43 run_test_status $command -kernel "$@" 44fi 45