master
py 66 lines 2.78 KB
Raw
1 # Test class to boot aspeed machines
2 #
3 # SPDX-License-Identifier: GPL-2.0-or-later
4
5 from qemu_test import exec_command_and_wait_for_pattern
6 from qemu_test import LinuxKernelTest
7
8 class 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 self.set_machine(machine)
13 self.vm.set_console()
14 self.vm.add_args('-drive', f'file={image},if=mtd,format=raw',
15 '-snapshot')
16 self.vm.launch()
17
18 self.wait_for_console_pattern(f'U-Boot {uboot}')
19 self.wait_for_console_pattern('## Loading kernel from FIT Image')
20 self.wait_for_console_pattern('Starting kernel ...')
21 self.wait_for_console_pattern(f'Booting Linux on physical CPU {cpu_id}')
22 self.wait_for_console_pattern(f'ASPEED {soc}')
23 self.wait_for_console_pattern('/init as init process')
24 self.wait_for_boot_complete()
25
26 def wait_for_boot_complete(self):
27 self.wait_for_console_pattern('login:')
28
29 def do_test_arm_aspeed_buildroot_start(self, image, cpu_id, pattern='Aspeed EVB'):
30 self.require_netdev('user')
31 self.vm.set_console()
32 self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw,read-only=true',
33 '-net', 'nic', '-net', 'user')
34 self.vm.launch()
35
36 self.wait_for_console_pattern('U-Boot 2019.04')
37 self.wait_for_console_pattern('## Loading kernel from FIT Image')
38 self.wait_for_console_pattern('Starting kernel ...')
39 self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id)
40 self.wait_for_console_pattern('lease of 10.0.2.15')
41 # the line before login:
42 self.wait_for_console_pattern(pattern)
43 exec_command_and_wait_for_pattern(self, 'root', 'Password:')
44 exec_command_and_wait_for_pattern(self, 'passw0rd', '#')
45
46 def do_test_arm_aspeed_buildroot_poweroff(self):
47 exec_command_and_wait_for_pattern(self, 'poweroff',
48 'System halted')
49
50 def do_test_arm_aspeed_sdk_start(self, image):
51 self.require_netdev('user')
52 self.vm.set_console()
53 self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
54 '-net', 'nic', '-net', 'user', '-snapshot')
55 self.vm.launch()
56
57 self.wait_for_console_pattern('U-Boot 2019.04')
58 self.wait_for_console_pattern('## Loading kernel from FIT Image')
59 self.wait_for_console_pattern('Starting kernel ...')
60
61 def generate_otpmem_image(self):
62 path = self.scratch_file("otpmem.img")
63 pattern = b'\x00\x00\x00\x00\xff\xff\xff\xff' * (16 * 1024 // 8)
64 with open(path, "wb") as f:
65 f.write(pattern)
66 return path