mirror of https://gitlab.com/qemu-project/qemu
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
#
|
|
# Functional test that boots a Linux kernel and checks the console
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
import os
|
|
|
|
from qemu_test import LinuxKernelTest, Asset
|
|
|
|
|
|
class Smdkc210Machine(LinuxKernelTest):
|
|
|
|
ASSET_DEB = Asset(
|
|
('https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/'
|
|
'main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb'),
|
|
'421804e7579ef40d554c962850dbdf1bfc79f7fa7faec9d391397170dc806c3e')
|
|
|
|
ASSET_ROOTFS = Asset(
|
|
('https://github.com/groeck/linux-build-test/raw/'
|
|
'2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/arm/'
|
|
'rootfs-armv5.cpio.gz'),
|
|
'334b8d256db67a3f2b3ad070aa08b5ade39624e0e7e35b02f4359a577bc8f39b')
|
|
|
|
def test_arm_exynos4210_initrd(self):
|
|
self.set_machine('smdkc210')
|
|
|
|
kernel_path = self.archive_extract(self.ASSET_DEB,
|
|
member='boot/vmlinuz-4.19.0-6-armmp')
|
|
dtb_path = 'usr/lib/linux-image-4.19.0-6-armmp/exynos4210-smdkv310.dtb'
|
|
dtb_path = self.archive_extract(self.ASSET_DEB, member=dtb_path)
|
|
|
|
initrd_path = self.uncompress(self.ASSET_ROOTFS)
|
|
|
|
self.vm.set_console()
|
|
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
|
|
'earlycon=exynos4210,0x13800000 earlyprintk ' +
|
|
'console=ttySAC0,115200n8 ' +
|
|
'random.trust_cpu=off cryptomgr.notests ' +
|
|
'cpuidle.off=1 panic=-1 noreboot')
|
|
|
|
self.vm.add_args('-kernel', kernel_path,
|
|
'-dtb', dtb_path,
|
|
'-initrd', initrd_path,
|
|
'-append', kernel_command_line,
|
|
'-no-reboot')
|
|
self.vm.launch()
|
|
|
|
self.wait_for_console_pattern('Boot successful.')
|
|
# TODO user command, for now the uart is stuck
|
|
|
|
if __name__ == '__main__':
|
|
LinuxKernelTest.main()
|