tags:
- arm64
+qemu-smoke-arm64-gcc-staticmem:
+ extends: .test-jobs-common
+ variables:
+ CONTAINER: debian:unstable-arm64v8
+ script:
+ - ./automation/scripts/qemu-smoke-arm64.sh static-mem 2>&1 | tee qemu-smoke-arm64.log
+ needs:
+ - debian-unstable-gcc-arm64
+ - kernel-5.9.9-arm64-export
+ - qemu-system-aarch64-6.0.0-arm64-export
+ artifacts:
+ paths:
+ - smoke.serial
+ - '*.log'
+ when: always
+ tags:
+ - arm64
+
qemu-smoke-arm32-gcc:
extends: .test-jobs-common
variables:
make -j$(nproc) -C xen KCONFIG_ALLCONFIG=tools/kconfig/allrandom.config randconfig
hypervisor_only="y"
else
- make -j$(nproc) -C xen defconfig
+ if [[ "${XEN_TARGET_ARCH}" = "arm64" ]]; then
+ echo "
+CONFIG_EXPERT=y
+CONFIG_UNSUPPORTED=y
+CONFIG_STATIC_MEMORY=y" > xen/.config
+ make -j$(nproc) -C xen olddefconfig
+ else
+ make -j$(nproc) -C xen defconfig
+ fi
fi
# Save the config file before building because build failure causes the script
set -ex
+test_variant=$1
+
+passed="BusyBox"
+check=""
+
+if [[ "${test_variant}" == "static-mem" ]]; then
+ # Memory range that is statically allocated to DOM1
+ domu_base="50000000"
+ domu_size="10000000"
+ passed="${test_variant} test passed"
+ check="
+current=\$(hexdump -e '16/1 \"%02x\"' /proc/device-tree/memory@${domu_base}/reg 2>/dev/null)
+expected=$(printf \"%016x%016x\" 0x${domu_base} 0x${domu_size})
+if [[ \"\${expected}\" == \"\${current}\" ]]; then
+ echo \"${passed}\"
+fi
+"
+fi
+
# Install QEMU
export DEBIAN_FRONTENT=noninteractive
apt-get -qy update
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devtmpfs devtmpfs /dev
+${check}
/bin/sh" > initrd/init
chmod +x initrd/init
cd initrd
LOAD_CMD="tftpb"
UBOOT_SOURCE="boot.source"
UBOOT_SCRIPT="boot.scr"' > binaries/config
+
+if [[ "${test_variant}" == "static-mem" ]]; then
+ echo -e "\nDOMU_STATIC_MEM[0]=\"0x${domu_base} 0x${domu_size}\"" >> binaries/config
+fi
+
rm -rf imagebuilder
git clone https://gitlab.com/ViryaOS/imagebuilder
bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
-bios /usr/lib/u-boot/qemu_arm64/u-boot.bin |& tee smoke.serial
set -e
-(grep -q "^BusyBox" smoke.serial && grep -q "DOM1: BusyBox" smoke.serial) || exit 1
+(grep -q "^BusyBox" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1
exit 0