summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2022-08-23 00:13:35 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2022-08-23 18:32:15 -0400
commit0c415915cf69f4d7e45c0a05bd8a8c4648f7f85c (patch)
tree40207f96a88843c38ff3dca9a286ba5d0dca3e73
parent9ca87ce77ce2085446342bdfa01b32b7a80c1496 (diff)
Add arm support
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rwxr-xr-xbuild-test-kernel23
-rw-r--r--lib/common.sh17
-rw-r--r--lib/libktest.sh4
-rwxr-xr-xroot_image2
-rw-r--r--tests/kconfig.sh29
5 files changed, 57 insertions, 18 deletions
diff --git a/build-test-kernel b/build-test-kernel
index 2ffaf15..6a0b19e 100755
--- a/build-test-kernel
+++ b/build-test-kernel
@@ -194,13 +194,22 @@ build_kernel()
local BOOT=$ktest_kernel_build/arch/$KERNEL_ARCH/boot
- if [[ -f "$BOOT/bzImage" ]]; then
- install -m0644 "$BOOT/bzImage" "$ktest_kernel_binary/vmlinuz"
- elif [[ -f "$BOOT/vmlinux.strip" ]]; then
- install -m0644 "$BOOT/vmlinux.strip" "$ktest_kernel_binary/vmlinuz"
- else
- install -m0644 "$ktest_kernel_build/vmlinux" "$ktest_kernel_binary/vmlinuz"
- fi
+ case $ktest_arch in
+ x86*)
+ install -m0644 "$BOOT/bzImage" "$ktest_kernel_binary/vmlinuz"
+ ;;
+ aarch64)
+ install -m0644 "$BOOT/Image" "$ktest_kernel_binary/vmlinuz"
+ ;;
+ mips)
+ install -m0644 "$BOOT/vmlinux.strip" "$ktest_kernel_binary/vmlinuz"
+ #install -m0644 "$ktest_kernel_build/vmlinux" "$ktest_kernel_binary/vmlinuz"
+ ;;
+ default)
+ echo "Don't know how to install kernel"
+ exit 1
+ ;;
+ esac
install -m0644 "$ktest_kernel_build/vmlinux" "$ktest_kernel_binary/vmlinux"
install -m0644 "$ktest_kernel_build/.config" "$ktest_kernel_binary/config"
diff --git a/lib/common.sh b/lib/common.sh
index e8e2ab5..a43a816 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -105,6 +105,17 @@ parse_arch()
QEMU_PACKAGE=qemu-system-x86
QEMU_BIN=qemu-system-x86_64
;;
+ aarch64)
+ ktest_arch=aarch64
+ DEBIAN_ARCH=arm64
+ ARCH_TRIPLE=
+
+ KERNEL_ARCH=arm64
+ BITS=64
+
+ QEMU_PACKAGE=qemu-system-arm
+ QEMU_BIN=qemu-system-aarch64
+ ;;
mips)
DEBIAN_ARCH=mips
ARCH_TRIPLE=mips-linux-gnu
@@ -184,11 +195,7 @@ checkdep()
local dep=$1
local package=$dep
- if [[ $# -ge 2 ]]; then
- package=$2
- else
- package=$dep
- fi
+ [[ $# -ge 2 ]] && package=$2
local found=0
diff --git a/lib/libktest.sh b/lib/libktest.sh
index 282870c..186f96c 100644
--- a/lib/libktest.sh
+++ b/lib/libktest.sh
@@ -285,7 +285,6 @@ start_vm()
local kernelargs=()
kernelargs+=(mitigations=off)
- kernelargs+=(console=hvc0)
kernelargs+=(root=/dev/sda rw log_buf_len=8M)
kernelargs+=("ktest.dir=$ktest_dir")
kernelargs+=(ktest.env=$(readlink -f "$ktest_out/vm/env"))
@@ -300,6 +299,9 @@ start_vm()
x86|x86_64)
qemu_cmd+=(-cpu host -machine type=q35,accel=kvm,nvdimm=on)
;;
+ aarch64)
+ qemu_cmd+=(-cpu host -machine type=virt,gic-version=max,accel=kvm)
+ ;;
mips)
qemu_cmd+=(-cpu 24Kf -machine malta)
ktest_cpus=1
diff --git a/root_image b/root_image
index 1dfe50a..fea5f09 100755
--- a/root_image
+++ b/root_image
@@ -75,7 +75,7 @@ PACKAGES=(kexec-tools less psmisc openssh-server \
build-essential make gcc g++ \
autoconf automake autopoint bison \
pkg-config libtool-bin \
- gdb strace ltrace linux-perf trace-cmd blktrace sysstat \
+ gdb strace linux-perf trace-cmd blktrace sysstat \
hdparm mdadm lvm2 \
btrfs-progs jfsutils nilfs-tools f2fs-tools \
bc attr gawk acl rsync git python3-docutils \
diff --git a/tests/kconfig.sh b/tests/kconfig.sh
index 5cb3f2f..873c415 100644
--- a/tests/kconfig.sh
+++ b/tests/kconfig.sh
@@ -13,10 +13,13 @@ case $ktest_arch in
require-kernel-config ACPI # way slower without it, do not know why
require-kernel-config UNWINDER_FRAME_POINTER
require-kernel-config HARDLOCKUP_DETECTOR
+ require-kernel-config RTC_DRV_CMOS
have_kvmguest=1
have_virtio=1
have_suspend=1
+
+ require-kernel-append console=hvc0
;;
x86_64)
require-kernel-config SMP
@@ -27,10 +30,22 @@ case $ktest_arch in
require-kernel-config ACPI # way slower without it, do not know why
require-kernel-config UNWINDER_FRAME_POINTER
require-kernel-config HARDLOCKUP_DETECTOR
+ require-kernel-config RTC_DRV_CMOS
have_kvmguest=1
have_virtio=1
have_suspend=1
+
+ require-kernel-append console=hvc0
+ ;;
+ aarch64)
+ require-kernel-config CONFIG_SERIAL_AMBA_PL011
+ require-kernel-config CONFIG_SERIAL_AMBA_PL011_CONSOLE
+ require-kernel-config PCI_HOST_GENERIC
+
+ have_virtio=1
+
+ require-kernel-append console=hvc0
;;
powerpc)
require-kernel-config ADVANCED_OPTIONS
@@ -38,6 +53,8 @@ case $ktest_arch in
have_kvmguest=1
have_virtio=1
have_suspend=1
+
+ require-kernel-append console=hvc0
;;
mips)
require-kernel-config MIPS_MALTA
@@ -48,6 +65,12 @@ case $ktest_arch in
have_virtio=1
ktest_storage_bus=piix4-ide
+
+ require-kernel-append console=hvc0
+ ;;
+ *)
+ echo "Kernel architecture not supported by kconfig.sh"
+ exit 1
;;
esac
@@ -85,11 +108,13 @@ fi
if [[ $have_virtio = 1 ]]; then
require-kernel-config VIRTIO_MENU
+ require-kernel-config VIRTIO_MMIO
require-kernel-config VIRTIO_PCI
require-kernel-config HW_RANDOM_VIRTIO
require-kernel-config VIRTIO_CONSOLE
require-kernel-config VIRTIO_NET
require-kernel-config NET_9P_VIRTIO
+ require-kernel-config CONFIG_CRYPTO_DEV_VIRTIO
fi
if [[ $have_suspend = 1 ]]; then
@@ -131,7 +156,6 @@ require-kernel-config HW_RANDOM
# Clock:
require-kernel-config RTC_CLASS
require-kernel-config RTC_HCTOSYS
-require-kernel-config RTC_DRV_CMOS
# Console:
require-kernel-config SERIAL_8250 # XXX can probably drop
@@ -163,9 +187,6 @@ require-kernel-config NET_9P
require-kernel-config NETWORK_FILESYSTEMS
require-kernel-config 9P_FS
-# Fast RNG:
-require-kernel-config CONFIG_CRYPTO_DEV_VIRTIO
-
# Crash dumps
#if [[ $ktest_crashdump = 1 ]]; then
# require-kernel-config KEXEC