xref: /kvm-unit-tests/riscv/run (revision db9c4e1c8c2ab14af6a61d62604b7754b808833f)
177955fb5SAndrew Jones#!/usr/bin/env bash
277955fb5SAndrew Jones
377955fb5SAndrew Jonesif [ -z "$KUT_STANDALONE" ]; then
477955fb5SAndrew Jones	if [ ! -f config.mak ]; then
577955fb5SAndrew Jones		echo "run ./configure && make first. See ./configure -h"
677955fb5SAndrew Jones		exit 2
777955fb5SAndrew Jones	fi
877955fb5SAndrew Jones	source config.mak
977955fb5SAndrew Jones	source scripts/arch-run.bash
10*db9c4e1cSAlexandru Elisei	source scripts/vmm.bash
1177955fb5SAndrew Jonesfi
1277955fb5SAndrew Jones
1377955fb5SAndrew Jones# Allow user overrides of some config.mak variables
14bc315beaSAndrew Jonesmach=$MACHINE_OVERRIDE
155f77b72dSJean-Philippe Bruckerqemu_cpu=$TARGET_CPU_OVERRIDE
1677955fb5SAndrew Jonesfirmware=$FIRMWARE_OVERRIDE
1777955fb5SAndrew Jones
18bc315beaSAndrew Jones: "${mach:=virt}"
195f77b72dSJean-Philippe Brucker: "${qemu_cpu:=$TARGET_CPU}"
205f77b72dSJean-Philippe Brucker: "${qemu_cpu:=$DEFAULT_QEMU_CPU}"
2177955fb5SAndrew Jones: "${firmware:=$FIRMWARE}"
2277955fb5SAndrew Jones[ "$firmware" ] && firmware="-bios $firmware"
2377955fb5SAndrew Jones
2477955fb5SAndrew Jonesset_qemu_accelerator || exit $?
2577955fb5SAndrew Jones[ "$ACCEL" = "kvm" ] && QEMU_ARCH=$HOST
2677955fb5SAndrew Jonesacc="-accel $ACCEL$ACCEL_PROPS"
2777955fb5SAndrew Jones
2877955fb5SAndrew Jonesqemu=$(search_qemu_binary) || exit $?
29bc315beaSAndrew Jonesif [ "$mach" = 'virt' ] && ! $qemu -machine '?' | grep -q 'RISC-V VirtIO board'; then
3077955fb5SAndrew Jones	echo "$qemu doesn't support mach-virt ('-machine virt'). Exiting."
3177955fb5SAndrew Jones	exit 2
3277955fb5SAndrew Jonesfi
33bc315beaSAndrew Jonesmach="-machine $mach"
3477955fb5SAndrew Jones
3577955fb5SAndrew Jonescommand="$qemu -nodefaults -nographic -serial mon:stdio"
365f77b72dSJean-Philippe Bruckercommand+=" $mach $acc $firmware -cpu $qemu_cpu "
3777955fb5SAndrew Jonescommand="$(migration_cmd) $(timeout_cmd) $command"
3877955fb5SAndrew Jones
39a755990cSAndrew Jonesif [ "$UEFI_SHELL_RUN" = "y" ]; then
40*db9c4e1cSAlexandru Elisei	ENVIRON_DEFAULT=n run_test_status $command "$@"
4177955fb5SAndrew Joneselse
4277955fb5SAndrew Jones	# We return the exit code via stdout, not via the QEMU return code
43*db9c4e1cSAlexandru Elisei	run_test_status $command -kernel "$@"
4477955fb5SAndrew Jonesfi
45