xref: /qemu/tests/functional/aspeed.py (revision b103cc6e74ac92f070a0e004bd84334e845c20b5)
1# Test class to boot aspeed machines
2#
3# SPDX-License-Identifier: GPL-2.0-or-later
4
5from qemu_test import exec_command_and_wait_for_pattern
6from qemu_test import LinuxKernelTest
7
8class AspeedTest(LinuxKernelTest):
9
10    def do_test_arm_aspeed_openbmc(self, machine, image, uboot='2019.04',
11                                   cpu_id='0x0', soc='AST2500 rev A1'):
12        hostname = machine.removesuffix('-bmc')
13
14        self.set_machine(machine)
15        self.vm.set_console()
16        self.vm.add_args('-drive', f'file={image},if=mtd,format=raw',
17                         '-snapshot')
18        self.vm.launch()
19
20        self.wait_for_console_pattern(f'U-Boot {uboot}')
21        self.wait_for_console_pattern('## Loading kernel from FIT Image')
22        self.wait_for_console_pattern('Starting kernel ...')
23        self.wait_for_console_pattern(f'Booting Linux on physical CPU {cpu_id}')
24        self.wait_for_console_pattern(f'ASPEED {soc}')
25        self.wait_for_console_pattern('/init as init process')
26        self.wait_for_console_pattern(f'systemd[1]: Hostname set to <{hostname}>.')
27
28    def do_test_arm_aspeed_buildroot_start(self, image, cpu_id, pattern='Aspeed EVB'):
29        self.require_netdev('user')
30        self.vm.set_console()
31        self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw,read-only=true',
32                         '-net', 'nic', '-net', 'user')
33        self.vm.launch()
34
35        self.wait_for_console_pattern('U-Boot 2019.04')
36        self.wait_for_console_pattern('## Loading kernel from FIT Image')
37        self.wait_for_console_pattern('Starting kernel ...')
38        self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id)
39        self.wait_for_console_pattern('lease of 10.0.2.15')
40        # the line before login:
41        self.wait_for_console_pattern(pattern)
42        exec_command_and_wait_for_pattern(self, 'root', 'Password:')
43        exec_command_and_wait_for_pattern(self, 'passw0rd', '#')
44
45    def do_test_arm_aspeed_buildroot_poweroff(self):
46        exec_command_and_wait_for_pattern(self, 'poweroff',
47                                          'System halted')
48
49    def do_test_arm_aspeed_sdk_start(self, image):
50        self.require_netdev('user')
51        self.vm.set_console()
52        self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
53                         '-net', 'nic', '-net', 'user', '-snapshot')
54        self.vm.launch()
55
56        self.wait_for_console_pattern('U-Boot 2019.04')
57        self.wait_for_console_pattern('## Loading kernel from FIT Image')
58        self.wait_for_console_pattern('Starting kernel ...')
59