1ae465c3dSCédric Le Goater# Test class to boot aspeed machines
2ae465c3dSCédric Le Goater#
3ae465c3dSCédric Le Goater# SPDX-License-Identifier: GPL-2.0-or-later
4ae465c3dSCédric Le Goater
5*3ddac7e4SCédric Le Goaterfrom .cmd import exec_command_and_wait_for_pattern
6ae465c3dSCédric Le Goaterfrom .linuxkernel import LinuxKernelTest
7ae465c3dSCédric Le Goater
8ae465c3dSCédric Le Goaterclass AspeedTest(LinuxKernelTest):
9ae465c3dSCédric Le Goater
10ae465c3dSCédric Le Goater    def do_test_arm_aspeed(self, machine, image):
11ae465c3dSCédric Le Goater        self.set_machine(machine)
12ae465c3dSCédric Le Goater        self.vm.set_console()
13ae465c3dSCédric Le Goater        self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
14ae465c3dSCédric Le Goater                         '-net', 'nic', '-snapshot')
15ae465c3dSCédric Le Goater        self.vm.launch()
16ae465c3dSCédric Le Goater
17ae465c3dSCédric Le Goater        self.wait_for_console_pattern("U-Boot 2016.07")
18ae465c3dSCédric Le Goater        self.wait_for_console_pattern("## Loading kernel from FIT Image at 20080000")
19ae465c3dSCédric Le Goater        self.wait_for_console_pattern("Starting kernel ...")
20ae465c3dSCédric Le Goater        self.wait_for_console_pattern("Booting Linux on physical CPU 0x0")
21ae465c3dSCédric Le Goater        self.wait_for_console_pattern(
22ae465c3dSCédric Le Goater                "aspeed-smc 1e620000.spi: read control register: 203b0641")
23ae465c3dSCédric Le Goater        self.wait_for_console_pattern("ftgmac100 1e660000.ethernet eth0: irq ")
24ae465c3dSCédric Le Goater        self.wait_for_console_pattern("systemd[1]: Set hostname to")
25*3ddac7e4SCédric Le Goater
26*3ddac7e4SCédric Le Goater    def do_test_arm_aspeed_buildroot_start(self, image, cpu_id, pattern='Aspeed EVB'):
27*3ddac7e4SCédric Le Goater        self.require_netdev('user')
28*3ddac7e4SCédric Le Goater        self.vm.set_console()
29*3ddac7e4SCédric Le Goater        self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw,read-only=true',
30*3ddac7e4SCédric Le Goater                         '-net', 'nic', '-net', 'user')
31*3ddac7e4SCédric Le Goater        self.vm.launch()
32*3ddac7e4SCédric Le Goater
33*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern('U-Boot 2019.04')
34*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern('## Loading kernel from FIT Image')
35*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern('Starting kernel ...')
36*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern('Booting Linux on physical CPU ' + cpu_id)
37*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern('lease of 10.0.2.15')
38*3ddac7e4SCédric Le Goater        # the line before login:
39*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern(pattern)
40*3ddac7e4SCédric Le Goater        exec_command_and_wait_for_pattern(self, 'root', 'Password:')
41*3ddac7e4SCédric Le Goater        exec_command_and_wait_for_pattern(self, 'passw0rd', '#')
42*3ddac7e4SCédric Le Goater
43*3ddac7e4SCédric Le Goater    def do_test_arm_aspeed_buildroot_poweroff(self):
44*3ddac7e4SCédric Le Goater        exec_command_and_wait_for_pattern(self, 'poweroff',
45*3ddac7e4SCédric Le Goater                                          'reboot: System halted');
46*3ddac7e4SCédric Le Goater
47*3ddac7e4SCédric Le Goater    def do_test_arm_aspeed_sdk_start(self, image):
48*3ddac7e4SCédric Le Goater        self.require_netdev('user')
49*3ddac7e4SCédric Le Goater        self.vm.set_console()
50*3ddac7e4SCédric Le Goater        self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
51*3ddac7e4SCédric Le Goater                         '-net', 'nic', '-net', 'user', '-snapshot')
52*3ddac7e4SCédric Le Goater        self.vm.launch()
53*3ddac7e4SCédric Le Goater
54*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern('U-Boot 2019.04')
55*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern('## Loading kernel from FIT Image')
56*3ddac7e4SCédric Le Goater        self.wait_for_console_pattern('Starting kernel ...')
57