mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00

The kernel that is used in the sx1 test prints the usual Linux log onto the serial console, but this test currently ignores it. To make sure that the serial device is working properly, let's check for some strings in the output here. While we're at it, also add the test to the corresponding section in the MAINTAINERS file. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20250226104833.1176253-1-thuth@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
73 lines
3 KiB
Python
Executable file
73 lines
3 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
#
|
|
# Copyright (c) 2024 Linaro Ltd.
|
|
#
|
|
# Functional test that boots a Linux kernel on an sx1 machine
|
|
# and checks the console. We have three variants:
|
|
# * just boot initrd
|
|
# * boot with filesystem on SD card
|
|
# * boot from flash
|
|
# In all cases these images have a userspace that is configured
|
|
# to immediately reboot the system on successful boot, so we
|
|
# only need to wait for QEMU to exit (via -no-reboot).
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
from qemu_test import LinuxKernelTest, Asset
|
|
|
|
|
|
class SX1Test(LinuxKernelTest):
|
|
|
|
ASSET_ZIMAGE = Asset(
|
|
'https://github.com/groeck/linux-test-downloads/raw/225223f2ad7d637b34426810bf6c3b727b76a718/sx1/zImage',
|
|
'a0271899a8dc2165f9e0adb2d0a57fc839ae3a469722ffc56c77e108a8887615')
|
|
|
|
ASSET_INITRD = Asset(
|
|
'https://github.com/groeck/linux-test-downloads/raw/225223f2ad7d637b34426810bf6c3b727b76a718/sx1/rootfs-armv4.cpio',
|
|
'35b0721249821aa544cd85b85d3cb8901db4c6d128eed86ab261e5d9e37d58f8')
|
|
|
|
ASSET_SD_FS = Asset(
|
|
'https://github.com/groeck/linux-test-downloads/raw/225223f2ad7d637b34426810bf6c3b727b76a718/sx1/rootfs-armv4.ext2',
|
|
'c1db7f43ef92469ebc8605013728c8950e7608439f01d13678994f0ce101c3a8')
|
|
|
|
ASSET_FLASH = Asset(
|
|
'https://github.com/groeck/linux-test-downloads/raw/225223f2ad7d637b34426810bf6c3b727b76a718/sx1/flash',
|
|
'17e6a2758fa38efd2666be0879d4751fd37d194f25168a8deede420df519b676')
|
|
|
|
CONSOLE_ARGS = 'console=ttyS0,115200 earlycon=uart8250,mmio32,0xfffb0000,115200n8'
|
|
|
|
def test_arm_sx1_initrd(self):
|
|
self.set_machine('sx1')
|
|
zimage_path = self.ASSET_ZIMAGE.fetch()
|
|
initrd_path = self.ASSET_INITRD.fetch()
|
|
self.vm.add_args('-append', f'kunit.enable=0 rdinit=/sbin/init {self.CONSOLE_ARGS}')
|
|
self.vm.add_args('-no-reboot')
|
|
self.launch_kernel(zimage_path,
|
|
initrd=initrd_path,
|
|
wait_for='Boot successful')
|
|
self.vm.wait(timeout=120)
|
|
|
|
def test_arm_sx1_sd(self):
|
|
self.set_machine('sx1')
|
|
zimage_path = self.ASSET_ZIMAGE.fetch()
|
|
sd_fs_path = self.ASSET_SD_FS.fetch()
|
|
self.vm.add_args('-append', f'kunit.enable=0 root=/dev/mmcblk0 rootwait {self.CONSOLE_ARGS}')
|
|
self.vm.add_args('-no-reboot')
|
|
self.vm.add_args('-snapshot')
|
|
self.vm.add_args('-drive', f'format=raw,if=sd,file={sd_fs_path}')
|
|
self.launch_kernel(zimage_path, wait_for='Boot successful')
|
|
self.vm.wait(timeout=120)
|
|
|
|
def test_arm_sx1_flash(self):
|
|
self.set_machine('sx1')
|
|
zimage_path = self.ASSET_ZIMAGE.fetch()
|
|
flash_path = self.ASSET_FLASH.fetch()
|
|
self.vm.add_args('-append', f'kunit.enable=0 root=/dev/mtdblock3 rootwait {self.CONSOLE_ARGS}')
|
|
self.vm.add_args('-no-reboot')
|
|
self.vm.add_args('-snapshot')
|
|
self.vm.add_args('-drive', f'format=raw,if=pflash,file={flash_path}')
|
|
self.launch_kernel(zimage_path, wait_for='Boot successful')
|
|
self.vm.wait(timeout=120)
|
|
|
|
if __name__ == '__main__':
|
|
LinuxKernelTest.main()
|