11b7dd7d3SSergey Bronnikov#!/usr/bin/env bash 25e61cba0SAndrew Jones 357ab5a6dSThomas Huthif [ -z "$KUT_STANDALONE" ]; then 45e61cba0SAndrew Jones if [ ! -f config.mak ]; then 5b6ff178dSAndrew Jones echo "run ./configure && make first. See ./configure -h" 65e61cba0SAndrew Jones exit 2 75e61cba0SAndrew Jones fi 85e61cba0SAndrew Jones source config.mak 9b2a2aa5dSAndrew Jones source scripts/arch-run.bash 10b6ff178dSAndrew Jonesfi 1139ac3f84SAndrew Jonesprocessor="$PROCESSOR" 125e61cba0SAndrew Jones 13f4d99928SRadim KrčmářACCEL=$(get_qemu_accelerator) || 14f4d99928SRadim Krčmář exit $? 150601b85cSAndrew Jones 16fcf4e0d9SRadim Krčmářqemu=$(search_qemu_binary) || 17fcf4e0d9SRadim Krčmář exit $? 185e61cba0SAndrew Jones 195e61cba0SAndrew Jonesif ! $qemu -machine '?' 2>&1 | grep 'ARM Virtual Machine' > /dev/null; then 204b968505SBalamuruhan S echo "$qemu doesn't support mach-virt ('-machine virt'). Exiting." 215e61cba0SAndrew Jones exit 2 225e61cba0SAndrew Jonesfi 235e61cba0SAndrew Jones 245e61cba0SAndrew JonesM='-machine virt' 255e61cba0SAndrew Jones 26d9729025SAndrew Jonesif [ "$ACCEL" = "kvm" ]; then 27d9729025SAndrew Jones if $qemu $M,\? 2>&1 | grep gic-version > /dev/null; then 28d9729025SAndrew Jones M+=',gic-version=host' 29d9729025SAndrew Jones fi 3067c2cc50SAlex Bennée if [ "$HOST" = "aarch64" ] || [ "$HOST" = "arm" ]; then 31d9729025SAndrew Jones processor="host" 3267c2cc50SAlex Bennée if [ "$ARCH" = "arm" ] && [ "$HOST" = "aarch64" ]; then 33d9729025SAndrew Jones processor+=",aarch64=off" 34d9729025SAndrew Jones fi 35d9729025SAndrew Jones fi 36d9729025SAndrew Jonesfi 37d9729025SAndrew Jones 381f0a5c19SAndrew Jonesif [ "$ARCH" = "arm" ]; then 391f0a5c19SAndrew Jones M+=",highmem=off" 401f0a5c19SAndrew Jonesfi 411f0a5c19SAndrew Jones 425e61cba0SAndrew Jonesif ! $qemu $M -device '?' 2>&1 | grep virtconsole > /dev/null; then 434b968505SBalamuruhan S echo "$qemu doesn't support virtio-console for chr-testdev. Exiting." 445e61cba0SAndrew Jones exit 2 455e61cba0SAndrew Jonesfi 465e61cba0SAndrew Jones 47b6f901ceSAndrew Jonesif $qemu $M -chardev testdev,id=id -initrd . 2>&1 \ 485e61cba0SAndrew Jones | grep backend > /dev/null; then 494b968505SBalamuruhan S echo "$qemu doesn't support chr-testdev. Exiting." 505e61cba0SAndrew Jones exit 2 515e61cba0SAndrew Jonesfi 525e61cba0SAndrew Jones 535e61cba0SAndrew Joneschr_testdev='-device virtio-serial-device' 545e61cba0SAndrew Joneschr_testdev+=' -device virtconsole,chardev=ctd -chardev testdev,id=ctd' 555e61cba0SAndrew Jones 56f7f81c6aSAlexander Gordeevpci_testdev= 57f7f81c6aSAlexander Gordeevif $qemu $M -device '?' 2>&1 | grep pci-testdev > /dev/null; then 58f7f81c6aSAlexander Gordeev pci_testdev="-device pci-testdev" 59f7f81c6aSAlexander Gordeevfi 60f7f81c6aSAlexander Gordeev 61*856587f0SAlex BennéeA="-accel $ACCEL" 62*856587f0SAlex Bennéecommand="$qemu -nodefaults $M $A -cpu $processor $chr_testdev $pci_testdev" 638b13a5b5SRadim Krčmářcommand+=" -display none -serial stdio -kernel" 6441c0f78cSEric Augercommand="$(migration_cmd) $(timeout_cmd) $command" 6592a1afcbSAndrew Jones 66b2a2aa5dSAndrew Jonesrun_qemu $command "$@" 67