@@ -872,6 +872,7 @@ F: tests/qtest/adm1266-test.c
F: pc-bios/npcm7xx_bootrom.bin
F: roms/vbootrom
F: docs/system/arm/nuvoton.rst
+F: tests/functional/test_arm_quanta_gsj.py
Raspberry Pi
M: Peter Maydell <peter.maydell@linaro.org>
@@ -116,92 +116,6 @@ def test_arm_virt(self):
console_pattern = 'Kernel command line: %s' % kernel_command_line
self.wait_for_console_pattern(console_pattern)
- @skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout')
- def test_arm_quanta_gsj(self):
- """
- :avocado: tags=arch:arm
- :avocado: tags=machine:quanta-gsj
- :avocado: tags=accel:tcg
- """
- # 25 MiB compressed, 32 MiB uncompressed.
- image_url = (
- 'https://github.com/hskinnemoen/openbmc/releases/download/'
- '20200711-gsj-qemu-0/obmc-phosphor-image-gsj.static.mtd.gz')
- image_hash = '14895e634923345cb5c8776037ff7876df96f6b1'
- image_path_gz = self.fetch_asset(image_url, asset_hash=image_hash)
- image_name = 'obmc.mtd'
- image_path = os.path.join(self.workdir, image_name)
- archive.gzip_uncompress(image_path_gz, image_path)
-
- self.vm.set_console()
- drive_args = 'file=' + image_path + ',if=mtd,bus=0,unit=0'
- self.vm.add_args('-drive', drive_args)
- self.vm.launch()
-
- # Disable drivers and services that stall for a long time during boot,
- # to avoid running past the 90-second timeout. These may be removed
- # as the corresponding device support is added.
- kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + (
- 'console=${console} '
- 'mem=${mem} '
- 'initcall_blacklist=npcm_i2c_bus_driver_init '
- 'systemd.mask=systemd-random-seed.service '
- 'systemd.mask=dropbearkey.service '
- )
-
- self.wait_for_console_pattern('> BootBlock by Nuvoton')
- self.wait_for_console_pattern('>Device: Poleg BMC NPCM730')
- self.wait_for_console_pattern('>Skip DDR init.')
- self.wait_for_console_pattern('U-Boot ')
- interrupt_interactive_console_until_pattern(
- self, 'Hit any key to stop autoboot:', 'U-Boot>')
- exec_command_and_wait_for_pattern(
- self, "setenv bootargs ${bootargs} " + kernel_command_line,
- 'U-Boot>')
- exec_command_and_wait_for_pattern(
- self, 'run romboot', 'Booting Kernel from flash')
- self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
- self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
- self.wait_for_console_pattern('OpenBMC Project Reference Distro')
- self.wait_for_console_pattern('gsj login:')
-
- def test_arm_quanta_gsj_initrd(self):
- """
- :avocado: tags=arch:arm
- :avocado: tags=machine:quanta-gsj
- :avocado: tags=accel:tcg
- """
- initrd_url = (
- 'https://github.com/hskinnemoen/openbmc/releases/download/'
- '20200711-gsj-qemu-0/obmc-phosphor-initramfs-gsj.cpio.xz')
- initrd_hash = '98fefe5d7e56727b1eb17d5c00311b1b5c945300'
- initrd_path = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
- kernel_url = (
- 'https://github.com/hskinnemoen/openbmc/releases/download/'
- '20200711-gsj-qemu-0/uImage-gsj.bin')
- kernel_hash = 'fa67b2f141d56d39b3c54305c0e8a899c99eb2c7'
- kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- dtb_url = (
- 'https://github.com/hskinnemoen/openbmc/releases/download/'
- '20200711-gsj-qemu-0/nuvoton-npcm730-gsj.dtb')
- dtb_hash = '18315f7006d7b688d8312d5c727eecd819aa36a4'
- dtb_path = self.fetch_asset(dtb_url, asset_hash=dtb_hash)
-
- self.vm.set_console()
- kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
- 'console=ttyS0,115200n8 '
- 'earlycon=uart8250,mmio32,0xf0001000')
- self.vm.add_args('-kernel', kernel_path,
- '-initrd', initrd_path,
- '-dtb', dtb_path,
- '-append', kernel_command_line)
- self.vm.launch()
-
- self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
- self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
- self.wait_for_console_pattern(
- 'Give root password for system maintenance')
-
def test_arm_ast2600_debian(self):
"""
:avocado: tags=arch:arm
@@ -23,6 +23,7 @@ test_timeouts = {
'arm_collie' : 180,
'arm_cubieboard' : 360,
'arm_orangepi' : 540,
+ 'arm_quanta_gsj' : 240,
'arm_raspi2' : 120,
'arm_tuxrun' : 240,
'arm_sx1' : 360,
@@ -80,6 +81,7 @@ tests_arm_system_thorough = [
'arm_emcraft_sf2',
'arm_integratorcp',
'arm_orangepi',
+ 'arm_quanta_gsj',
'arm_raspi2',
'arm_smdkc210',
'arm_sx1',
new file mode 100755
@@ -0,0 +1,99 @@
+#!/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
+import shutil
+
+from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern
+from qemu_test import interrupt_interactive_console_until_pattern
+from qemu_test.utils import gzip_uncompress
+from unittest import skipUnless
+
+class EmcraftSf2Machine(LinuxKernelTest):
+
+ ASSET_IMAGE = Asset(
+ ('https://github.com/hskinnemoen/openbmc/releases/download/'
+ '20200711-gsj-qemu-0/obmc-phosphor-image-gsj.static.mtd.gz'),
+ 'eccd4e375cde53034c84aece5c511932cacf838d9fd3f63da368a511757da72b')
+
+ ASSET_INITRD = Asset(
+ ('https://github.com/hskinnemoen/openbmc/releases/download/'
+ '20200711-gsj-qemu-0/obmc-phosphor-initramfs-gsj.cpio.xz'),
+ '37b05009fc54db1434beac12bd7ff99a2e751a2f032ee18d9042f991dd0cdeaa')
+
+ ASSET_KERNEL = Asset(
+ ('https://github.com/hskinnemoen/openbmc/releases/download/'
+ '20200711-gsj-qemu-0/uImage-gsj.bin'),
+ 'ce6d6b37bff46c74fc7b1e90da10a431cc37a62cdb35ec199fa73473d0790110')
+
+ ASSET_DTB = Asset(
+ ('https://github.com/hskinnemoen/openbmc/releases/download/'
+ '20200711-gsj-qemu-0/nuvoton-npcm730-gsj.dtb'),
+ '3249b2da787d4b9ad4e61f315b160abfceb87b5e1895a7ce898ce7f40c8d4045')
+
+ @skipUnless(os.getenv('QEMU_TEST_TIMEOUT_EXPECTED'), 'Test might timeout')
+ def test_arm_quanta_gsj(self):
+ self.set_machine('quanta-gsj')
+ image_path_gz = self.ASSET_IMAGE.fetch()
+ image_name = 'obmc.mtd'
+ image_path = os.path.join(self.workdir, image_name)
+ gzip_uncompress(image_path_gz, image_path)
+
+ self.vm.set_console()
+ drive_args = 'file=' + image_path + ',if=mtd,bus=0,unit=0'
+ self.vm.add_args('-drive', drive_args)
+ self.vm.launch()
+
+ # Disable drivers and services that stall for a long time during boot,
+ # to avoid running past the 90-second timeout. These may be removed
+ # as the corresponding device support is added.
+ kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + (
+ 'console=${console} '
+ 'mem=${mem} '
+ 'initcall_blacklist=npcm_i2c_bus_driver_init '
+ 'systemd.mask=systemd-random-seed.service '
+ 'systemd.mask=dropbearkey.service '
+ )
+
+ self.wait_for_console_pattern('> BootBlock by Nuvoton')
+ self.wait_for_console_pattern('>Device: Poleg BMC NPCM730')
+ self.wait_for_console_pattern('>Skip DDR init.')
+ self.wait_for_console_pattern('U-Boot ')
+ interrupt_interactive_console_until_pattern(
+ self, 'Hit any key to stop autoboot:', 'U-Boot>')
+ exec_command_and_wait_for_pattern(
+ self, "setenv bootargs ${bootargs} " + kernel_command_line,
+ 'U-Boot>')
+ exec_command_and_wait_for_pattern(
+ self, 'run romboot', 'Booting Kernel from flash')
+ self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
+ self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
+ self.wait_for_console_pattern('OpenBMC Project Reference Distro')
+ self.wait_for_console_pattern('gsj login:')
+
+ def test_arm_quanta_gsj_initrd(self):
+ self.set_machine('quanta-gsj')
+ initrd_path = self.ASSET_INITRD.fetch()
+ kernel_path = self.ASSET_KERNEL.fetch()
+ dtb_path = self.ASSET_DTB.fetch()
+
+ self.vm.set_console()
+ kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+ 'console=ttyS0,115200n8 '
+ 'earlycon=uart8250,mmio32,0xf0001000')
+ self.vm.add_args('-kernel', kernel_path,
+ '-initrd', initrd_path,
+ '-dtb', dtb_path,
+ '-append', kernel_command_line)
+ self.vm.launch()
+
+ self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
+ self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
+ self.wait_for_console_pattern(
+ 'Give root password for system maintenance')
+
+if __name__ == '__main__':
+ LinuxKernelTest.main()
Straight forward conversion, basically just the hashsums needed to be updated to sha256 now. Signed-off-by: Thomas Huth <thuth@redhat.com> --- MAINTAINERS | 1 + tests/avocado/boot_linux_console.py | 86 --------------------- tests/functional/meson.build | 2 + tests/functional/test_arm_quanta_gsj.py | 99 +++++++++++++++++++++++++ 4 files changed, 102 insertions(+), 86 deletions(-) create mode 100755 tests/functional/test_arm_quanta_gsj.py