xref: /kvm-unit-tests/arm/run (revision 856587f07b4bd6ab6bd605446468076a832ddc0a)
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