summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@linaro.org>2014-06-23 14:38:58 +0300
committerMilosz Wasilewski <milosz.wasilewski@linaro.org>2014-07-02 20:44:20 +0000
commit49f2dc181dd6f19f7a2e8e3487423bd806a2b10f (patch)
treeeff7ac0f9950baf001f510589779d67c5cfd952f
parent229ade0fe12b342eb33349acbbf24a26a60437a4 (diff)
kvm: add armv8 support
Wide range of changes needed to allow kvm tests to run on both ARMv7 and ARMv8 targets. Currently includes some ugly hacks to faciliate booting mustang from nfs (can't use tun). Change-Id: I92ab87b6439b464db14fdef0cbac41efd64ef9a8 Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
-rwxr-xr-xcommon/scripts/kvm/test-kvm.sh66
-rw-r--r--ubuntu/kvm.yaml2
2 files changed, 57 insertions, 11 deletions
diff --git a/common/scripts/kvm/test-kvm.sh b/common/scripts/kvm/test-kvm.sh
index 91eb2d9..872bf51 100755
--- a/common/scripts/kvm/test-kvm.sh
+++ b/common/scripts/kvm/test-kvm.sh
@@ -11,6 +11,8 @@ if [ "x$1" = "xbenchmark" ]; then
KVM_BOOT="$KVM_BOOT 0 none"
fi
+ARCH=`uname -m`
+
dmesg|grep 'Hyp mode initialized successfully' && echo "$KVM_INIT 0 pc pass" || \
{
echo "$KVM_INIT 0 pc fail"
@@ -28,21 +30,40 @@ else
DOWNLOAD_FILE="wget --progress=dot -e dotbytes=2M --no-check-certificate"
fi
-BUILD_NUMBER=`$(echo $EXTRACT_BUILD_NUMBER) https://ci.linaro.org/jenkins/job/linux-vexpress-kvm/lastSuccessfulBuild/buildNumber`
-
-$DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm/$BUILD_NUMBER/kvm.qcow2.gz
-$DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm/$BUILD_NUMBER/zImage
-$DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm/$BUILD_NUMBER/vexpress-v2p-ca15-tc1.dtb
-
-gunzip kvm.qcow2.gz
-if [ $? -ne 0 ]; then
+BUILD_NUMBER_GUEST=`$(echo $EXTRACT_BUILD_NUMBER) https://ci.linaro.org/jenkins/job/kvm-guest-image/lastSuccessfulBuild/buildNumber`
+BUILD_NUMBER_HOST=`$(echo $EXTRACT_BUILD_NUMBER) https://ci.linaro.org/jenkins/job/linux-kvm/lastSuccessfulBuild/buildNumber`
+
+case ${ARCH} in
+ armv7l)
+ $DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm-guest/$BUILD_NUMBER_GUEST/kvm-arm32.qcow2.gz
+ $DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm-guest/$BUILD_NUMBER_GUEST/zImage-vexpress
+ $DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm-guest/$BUILD_NUMBER_GUEST/vexpress-v2p-ca15-tc1.dtb
+ gunzip kvm-arm32.qcow2.gz
+ mv kvm-arm32.qcow2 kvm.qcow2
+ modprobe nbd max_part=16
+ ;;
+ aarch64)
+ $DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm-guest/$BUILD_NUMBER_GUEST/kvm-arm64.qcow2.gz
+ $DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm/$BUILD_NUMBER_HOST/Image-mustang
+ $DOWNLOAD_FILE http://snapshots.linaro.org/ubuntu/images/kvm/$BUILD_NUMBER_HOST/nbd.ko.gz
+ gunzip kvm-arm64.qcow2.gz
+ gunzip nbd.ko.gz
+ mv kvm-arm64.qcow2 kvm.qcow2
+ insmod nbd.ko max_part=16
+ ;;
+ *)
+ echo unknown arch ${ARCH}
+ exit 1
+ ;;
+esac
+
+if [ ! -r kvm.qcow2 ]; then
echo "$KVM_HOST_NET 0 pc skip"
echo "$KVM_BOOT 0 pc skip"
echo "$KVM_GUEST_NET 0 pc skip"
exit 0
fi
-modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 kvm.qcow2
mount /dev/nbd0p2 /mnt/
@@ -72,6 +93,8 @@ umount /mnt
sync
qemu-nbd -d /dev/nbd0
+if [ -e /dev/net/tun ]
+then
echo setting up and testing networking bridge for guest
brctl addbr br0
tunctl -u root
@@ -80,11 +103,16 @@ ifconfig tap0 0.0.0.0 up
brctl addif br0 eth0
brctl addif br0 tap0
udhcpc -t 10 -i br0
-
ping -W 4 -c 10 192.168.1.10 && echo "$KVM_HOST_NET 0 pc pass" || echo "$KVM_HOST_NET 0 pc fail"
+else
+echo "$KVM_HOST_NET 0 pc skip"
+fi
+
+case ${ARCH} in
+ armv7l)
qemu-system-arm -smp 2 -m 1024 -cpu cortex-a15 -M vexpress-a15 \
- -kernel ./zImage -dtb ./vexpress-v2p-ca15-tc1.dtb \
+ -kernel ./zImage-vexpress -dtb ./vexpress-v2p-ca15-tc1.dtb \
-append 'root=/dev/vda2 rw rootwait mem=1024M console=ttyAMA0,38400n8' \
-drive if=none,id=image,file=kvm.qcow2 \
-netdev tap,id=tap0,script=no,downscript=no,ifname="tap0" \
@@ -92,6 +120,22 @@ qemu-system-arm -smp 2 -m 1024 -cpu cortex-a15 -M vexpress-a15 \
-device virtio-blk-device,drive=image \
-nographic -enable-kvm \
2>&1|tee kvm-log.txt
+ ;;
+ aarch64)
+qemu-system-aarch64 -smp 2 -m 1024 -cpu host -M virt \
+ -kernel ./Image-mustang \
+ -append 'root=/dev/vda2 rw rootwait mem=1024M earlyprintk=pl011,0x9000000 console=ttyAMA0,38400n8' \
+ -drive if=none,id=image,file=kvm.qcow2 \
+ -netdev user,id=user0 -device virtio-net-device,netdev=user0 \
+ -device virtio-blk-device,drive=image \
+ -nographic -enable-kvm \
+ 2>&1|tee kvm-log.txt
+ ;;
+ *)
+ echo unknown arch ${ARCH}
+ exit 1
+ ;;
+esac
qemu-nbd -c /dev/nbd0 kvm.qcow2
mount /dev/nbd0p2 /mnt/
diff --git a/ubuntu/kvm.yaml b/ubuntu/kvm.yaml
index e867c72..b1d4b10 100644
--- a/ubuntu/kvm.yaml
+++ b/ubuntu/kvm.yaml
@@ -12,6 +12,8 @@ metadata:
devices:
- arndale
- vexpress-tc2
+ - mustang
+ - midway
install:
deps: