From: Philippe Mathieu-Daudé <f4...@amsat.org> This test boots a Linux kernel on a smdkc210 board and verify the serial output is working.
The cpio image used comes from the linux-build-test project: https://github.com/groeck/linux-build-test Since this test is not reliable due to clock timing issues, it is disabled with the 'skip' property. Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- v2: - use archive.gzip_uncompress (Cleber) - check getenv(AVOCADO_ALLOW_UNTRUSTED_CODE) (pm215) --- tests/acceptance/boot_linux_console.py | 47 ++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py index cbb8cddf47..489df4862c 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -13,6 +13,7 @@ import lzma import gzip import shutil +from avocado import skip from avocado import skipUnless from avocado_qemu import MachineTest from avocado_qemu import exec_command_and_wait_for_pattern @@ -474,6 +475,52 @@ class BootLinuxConsole(MachineTest): self.wait_for_console_pattern('Boot successful.') # TODO user command, for now the uart is stuck + @skip("unstable clock timings") + def test_arm_exynos4210_sdcard(self): + """ + :avocado: tags=arch:arm + :avocado: tags=machine:smdkc210 + """ + deb_url = ('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') + deb_hash = 'fa9df4a0d38936cb50084838f2cb933f570d7d82' + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) + kernel_path = self.extract_from_deb(deb_path, + '/boot/vmlinuz-4.19.0-6-armmp') + dtb_path = '/usr/lib/linux-image-4.19.0-6-armmp/exynos4210-smdkv310.dtb' + dtb_path = self.extract_from_deb(deb_path, dtb_path) + + rootfs_url = ('https://github.com/groeck/linux-build-test/raw/' + '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/' + 'arm/rootfs-armv5.ext2.gz') + rootfs_hash = '093e89d2b4d982234bf528bc9fb2f2f17a9d1f93' + rootfs_path_gz = self.fetch_asset(rootfs_url, asset_hash=rootfs_hash) + rootfs_path = os.path.join(self.workdir, 'rootfs.ext2') + archive.gzip_uncompress(rootfs_path_gz, rootfs_path) + + self.vm.set_machine('smdkc210') + self.vm.set_console(console_index=1) + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + + 'earlycon=exynos4210,0x13810000 earlyprintk ' + + 'console=ttySAC1,115200n8 ' + + 'random.trust_cpu=off cryptomgr.notests ' + + 'root=/dev/mmcblk0 rootwait rw ' + + 'cpuidle.off=1 panic=-1 noreboot') + + self.vm.add_args('-kernel', kernel_path, + '-dtb', dtb_path, + '-append', kernel_command_line, + # The external MMC is on the 3rd slot + '-drive', 'if=sd,driver=null-co', + '-drive', 'if=sd,driver=null-co', + '-drive', 'if=sd,file=' + rootfs_path + ',format=raw', + '-no-reboot') + self.vm.launch() + + self.wait_for_console_pattern('Boot successful.') + # TODO user command, for now the uart is stuck + def test_s390x_s390_ccw_virtio(self): """ :avocado: tags=arch:s390x -- 2.21.0