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