xref: /kvm-unit-tests/powerpc/run (revision 61ff990187ed8d2f29b648609f1b4e5791366600)
11b7dd7d3SSergey Bronnikov#!/usr/bin/env bash
28c85a478SAndrew Jones
3610c5a9cSNicholas Pigginget_qemu_machine ()
4610c5a9cSNicholas Piggin{
5610c5a9cSNicholas Piggin	if [ "$MACHINE" ]; then
6610c5a9cSNicholas Piggin		echo $MACHINE
7610c5a9cSNicholas Piggin	else
8610c5a9cSNicholas Piggin		echo pseries
9610c5a9cSNicholas Piggin	fi
10610c5a9cSNicholas Piggin}
11610c5a9cSNicholas Piggin
1257ab5a6dSThomas Huthif [ -z "$KUT_STANDALONE" ]; then
138c85a478SAndrew Jones	if [ ! -f config.mak ]; then
148c85a478SAndrew Jones		echo "run ./configure && make first. See ./configure -h"
158c85a478SAndrew Jones		exit 2
168c85a478SAndrew Jones	fi
178c85a478SAndrew Jones	source config.mak
18b2a2aa5dSAndrew Jones	source scripts/arch-run.bash
19*db9c4e1cSAlexandru Elisei	source scripts/vmm.bash
208c85a478SAndrew Jonesfi
218c85a478SAndrew Jones
2201e047d0SGavin Shanset_qemu_accelerator || exit $?
238c85a478SAndrew Jones
24610c5a9cSNicholas PigginMACHINE=$(get_qemu_machine) ||
25fcf4e0d9SRadim Krčmář	exit $?
268c85a478SAndrew Jones
27610c5a9cSNicholas Pigginif [[ "$MACHINE" == "powernv"* ]] && [ "$ACCEL" = "kvm" ]; then
28610c5a9cSNicholas Piggin	echo "PowerNV machine does not support KVM. ACCEL=tcg must be specified."
298c85a478SAndrew Jones	exit 2
308c85a478SAndrew Jonesfi
318c85a478SAndrew Jones
32610c5a9cSNicholas Pigginqemu=$(search_qemu_binary) ||
33610c5a9cSNicholas Piggin	exit $?
348ad8b8cdSNicholas Piggin
35610c5a9cSNicholas Pigginif ! $qemu -machine '?' 2>&1 | grep $MACHINE > /dev/null; then
36610c5a9cSNicholas Piggin	echo "$qemu doesn't support '-machine $MACHINE'. Exiting."
37610c5a9cSNicholas Piggin	exit 2
38610c5a9cSNicholas Pigginfi
39610c5a9cSNicholas Piggin
4031f2ceceSNicholas PigginA="-accel $ACCEL$ACCEL_PROPS"
41610c5a9cSNicholas PigginM="-machine $MACHINE"
42610c5a9cSNicholas PigginB=""
43610c5a9cSNicholas PigginD=""
44610c5a9cSNicholas Piggin
45610c5a9cSNicholas Pigginif [[ "$MACHINE" == "pseries"* ]] ; then
468ad8b8cdSNicholas Piggin	if [[ "$ACCEL" == "tcg" ]] ; then
478ad8b8cdSNicholas Piggin		M+=",cap-cfpc=broken,cap-sbbc=broken,cap-ibs=broken,cap-ccf-assist=off"
4806806ed9SNicholas Piggin	elif [[ "$ACCEL" == "kvm" ]] ; then
4906806ed9SNicholas Piggin		M+=",cap-ccf-assist=off"
508ad8b8cdSNicholas Piggin	fi
51610c5a9cSNicholas Piggin	B+="-bios $FIRMWARE"
52610c5a9cSNicholas Pigginfi
538ad8b8cdSNicholas Piggin
54610c5a9cSNicholas Pigginif [[ "$MACHINE" == "powernv"* ]] ; then
55610c5a9cSNicholas Piggin	D+="-device ipmi-bmc-sim,id=bmc0 -device isa-ipmi-bt,bmc=bmc0,irq=10"
56610c5a9cSNicholas Pigginfi
57610c5a9cSNicholas Piggin
5831f2ceceSNicholas Piggincommand="$qemu -nodefaults $A $M $B $D"
598b13a5b5SRadim Krčmářcommand+=" -display none -serial stdio -kernel"
6037abdda9SThomas Huthcommand="$(migration_cmd) $(timeout_cmd) $command"
618c85a478SAndrew Jones
62b2a2aa5dSAndrew Jones# powerpc tests currently exit with rtas-poweroff, which exits with 0.
63*db9c4e1cSAlexandru Elisei# run_test treats that as a failure exit and returns 1, so we need
64b2a2aa5dSAndrew Jones# to fixup the fixup below by parsing the true exit code from the output.
65b2a2aa5dSAndrew Jones# The second fixup is also a FIXME, because once we add chr-testdev
66b2a2aa5dSAndrew Jones# support for powerpc, we won't need the second fixup.
67*db9c4e1cSAlexandru Eliseirun_test_status $command "$@"
68