Add basic support to run m68k under QEMU via kunit_tool.
Signed-off-by: Geert Uytterhoeven geert@linux-m68k.org --- Does this need CONFIG_VIRTIO_CONSOLE=y? It seems to work fine without.
drivers/clk/.kunitconfig:
Fails because m68k uses big-endian I/O ops
drivers/gpu/drm/tests/.kunitconfig
kernel BUG at drivers/gpu/drm/drm_buddy.c:21! (also on arm, ignored)
drivers/gpu/drm/vc4/tests/.kunitconfig
Depends on arm, works on arm
drivers/hid/.kunitconfig
Unable to handle kernel NULL pointer dereference at virtual address (ptrval) Oops: 00000000 PC: [<001d7380>] uclogic_params_ugee_v2_has_battery+0x6/0x68 (also on arm, ignored)
fs/ext4/.kunitconfig: OK
fs/fat/.kunitconfig: OK
kernel/kcsan/.kunitconfig
Needs HAVE_ARCH_KCSAN and SMP (the former also on arm, ignored)
lib/kunit/.kunitconfig: OK
mm/kfence/.kunitconfig
Needs HAVE_ARCH_KFENCE (fails on arm due to missing CONFIG_KFENCE_KUNIT_TEST=y, which depends on TRACEPOINTS)
net/sunrpc/.kunitconfig
After dropping CONFIG_STACKTRACE=y (why is this needed?) from net/sunrpc/.kunitconfig: Unable to handle kernel NULL pointer dereference at virtual address (ptrval) (also on arm, ignored) --- tools/testing/kunit/qemu_configs/m68k.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tools/testing/kunit/qemu_configs/m68k.py
diff --git a/tools/testing/kunit/qemu_configs/m68k.py b/tools/testing/kunit/qemu_configs/m68k.py new file mode 100644 index 0000000000000000..287fc386f8a7ff16 --- /dev/null +++ b/tools/testing/kunit/qemu_configs/m68k.py @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: GPL-2.0-only +from ..qemu_config import QemuArchParams + +QEMU_ARCH = QemuArchParams(linux_arch='m68k', + kconfig=''' +CONFIG_VIRT=y''', + qemu_arch='m68k', + kernel_path='vmlinux', + kernel_command_line='console=hvc0', + extra_qemu_params=['-machine', 'virt'])
On Mon, 27 Feb 2023 at 19:12, Geert Uytterhoeven geert@linux-m68k.org wrote:
Add basic support to run m68k under QEMU via kunit_tool.
Signed-off-by: Geert Uytterhoeven geert@linux-m68k.org
Thanks very much. This works fine here.
I'll look into failures for individual kunitconfigs and tests later, but the actual kunit_tool/QEMU stuff seems good-to-go to me.
Reviewed-by: David Gow davidgow@google.com
Cheers, -- David
Does this need CONFIG_VIRTIO_CONSOLE=y? It seems to work fine without.
It's working fine here without, too, so _something_ must be sending data to the console.
drivers/clk/.kunitconfig:
Fails because m68k uses big-endian I/O ops
drivers/gpu/drm/tests/.kunitconfig
kernel BUG at drivers/gpu/drm/drm_buddy.c:21! (also on arm, ignored)
drivers/gpu/drm/vc4/tests/.kunitconfig
Depends on arm, works on arm
drivers/hid/.kunitconfig
Unable to handle kernel NULL pointer dereference at virtual address (ptrval) Oops: 00000000 PC: [<001d7380>] uclogic_params_ugee_v2_has_battery+0x6/0x68 (also on arm, ignored)
fs/ext4/.kunitconfig: OK
fs/fat/.kunitconfig: OK
kernel/kcsan/.kunitconfig
Needs HAVE_ARCH_KCSAN and SMP (the former also on arm, ignored)
lib/kunit/.kunitconfig: OK
mm/kfence/.kunitconfig
Needs HAVE_ARCH_KFENCE (fails on arm due to missing CONFIG_KFENCE_KUNIT_TEST=y, which depends on TRACEPOINTS)
net/sunrpc/.kunitconfig
After dropping CONFIG_STACKTRACE=y (why is this needed?) from net/sunrpc/.kunitconfig: Unable to handle kernel NULL pointer dereference at virtual address (ptrval) (also on arm, ignored)
It looks like there are some endianness issues with the apparmor policy_unpack_test, too... Otherwise the default set of tests seems to pass.
tools/testing/kunit/qemu_configs/m68k.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tools/testing/kunit/qemu_configs/m68k.py
diff --git a/tools/testing/kunit/qemu_configs/m68k.py b/tools/testing/kunit/qemu_configs/m68k.py new file mode 100644 index 0000000000000000..287fc386f8a7ff16 --- /dev/null +++ b/tools/testing/kunit/qemu_configs/m68k.py @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: GPL-2.0-only +from ..qemu_config import QemuArchParams
+QEMU_ARCH = QemuArchParams(linux_arch='m68k',
kconfig='''
+CONFIG_VIRT=y''',
qemu_arch='m68k',
kernel_path='vmlinux',
kernel_command_line='console=hvc0',
extra_qemu_params=['-machine', 'virt'])
-- 2.34.1
linux-kselftest-mirror@lists.linaro.org