diff options
author | Riku Voipio <riku.voipio@linaro.org> | 2014-06-23 14:38:58 +0300 |
---|---|---|
committer | Milosz Wasilewski <milosz.wasilewski@linaro.org> | 2014-07-02 20:44:20 +0000 |
commit | 49f2dc181dd6f19f7a2e8e3487423bd806a2b10f (patch) | |
tree | eff7ac0f9950baf001f510589779d67c5cfd952f /common/scripts/kvm | |
parent | 229ade0fe12b342eb33349acbbf24a26a60437a4 (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>
Diffstat (limited to 'common/scripts/kvm')
-rwxr-xr-x | common/scripts/kvm/test-kvm.sh | 66 |
1 files changed, 55 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/ |