xref: /openbmc/qemu/tests/functional/test_arm_aspeed_ast1030.py (revision 6503087fc3df35401e29c0a350b5a2f0249c2172)
1*6503087fSCédric Le Goater#!/usr/bin/env python3
2*6503087fSCédric Le Goater#
3*6503087fSCédric Le Goater# Functional test that boots the ASPEED SoCs with firmware
4*6503087fSCédric Le Goater#
5*6503087fSCédric Le Goater# Copyright (C) 2022 ASPEED Technology Inc
6*6503087fSCédric Le Goater#
7*6503087fSCédric Le Goater# SPDX-License-Identifier: GPL-2.0-or-later
8*6503087fSCédric Le Goater
9*6503087fSCédric Le Goaterimport os
10*6503087fSCédric Le Goater
11*6503087fSCédric Le Goaterfrom qemu_test import LinuxKernelTest, Asset
12*6503087fSCédric Le Goaterfrom qemu_test import exec_command_and_wait_for_pattern
13*6503087fSCédric Le Goaterfrom zipfile import ZipFile
14*6503087fSCédric Le Goater
15*6503087fSCédric Le Goaterclass AST1030Machine(LinuxKernelTest):
16*6503087fSCédric Le Goater
17*6503087fSCédric Le Goater    ASSET_ZEPHYR_1_04 = Asset(
18*6503087fSCédric Le Goater        ('https://github.com/AspeedTech-BMC'
19*6503087fSCédric Le Goater         '/zephyr/releases/download/v00.01.04/ast1030-evb-demo.zip'),
20*6503087fSCédric Le Goater        '4ac6210adcbc61294927918707c6762483fd844dde5e07f3ba834ad1f91434d3')
21*6503087fSCédric Le Goater
22*6503087fSCédric Le Goater    def test_ast1030_zephyros_1_04(self):
23*6503087fSCédric Le Goater        self.set_machine('ast1030-evb')
24*6503087fSCédric Le Goater
25*6503087fSCédric Le Goater        zip_file = self.ASSET_ZEPHYR_1_04.fetch()
26*6503087fSCédric Le Goater
27*6503087fSCédric Le Goater        kernel_name = "ast1030-evb-demo/zephyr.elf"
28*6503087fSCédric Le Goater        with ZipFile(zip_file, 'r') as zf:
29*6503087fSCédric Le Goater                     zf.extract(kernel_name, path=self.workdir)
30*6503087fSCédric Le Goater        kernel_file = os.path.join(self.workdir, kernel_name)
31*6503087fSCédric Le Goater
32*6503087fSCédric Le Goater        self.vm.set_console()
33*6503087fSCédric Le Goater        self.vm.add_args('-kernel', kernel_file, '-nographic')
34*6503087fSCédric Le Goater        self.vm.launch()
35*6503087fSCédric Le Goater        self.wait_for_console_pattern("Booting Zephyr OS")
36*6503087fSCédric Le Goater        exec_command_and_wait_for_pattern(self, "help",
37*6503087fSCédric Le Goater                                          "Available commands")
38*6503087fSCédric Le Goater
39*6503087fSCédric Le Goater    ASSET_ZEPHYR_1_07 = Asset(
40*6503087fSCédric Le Goater        ('https://github.com/AspeedTech-BMC'
41*6503087fSCédric Le Goater         '/zephyr/releases/download/v00.01.07/ast1030-evb-demo.zip'),
42*6503087fSCédric Le Goater        'ad52e27959746988afaed8429bf4e12ab988c05c4d07c9d90e13ec6f7be4574c')
43*6503087fSCédric Le Goater
44*6503087fSCédric Le Goater    def test_ast1030_zephyros_1_07(self):
45*6503087fSCédric Le Goater        self.set_machine('ast1030-evb')
46*6503087fSCédric Le Goater
47*6503087fSCédric Le Goater        zip_file = self.ASSET_ZEPHYR_1_07.fetch()
48*6503087fSCédric Le Goater
49*6503087fSCédric Le Goater        kernel_name = "ast1030-evb-demo/zephyr.bin"
50*6503087fSCédric Le Goater        with ZipFile(zip_file, 'r') as zf:
51*6503087fSCédric Le Goater                     zf.extract(kernel_name, path=self.workdir)
52*6503087fSCédric Le Goater        kernel_file = os.path.join(self.workdir, kernel_name)
53*6503087fSCédric Le Goater
54*6503087fSCédric Le Goater        self.vm.set_console()
55*6503087fSCédric Le Goater        self.vm.add_args('-kernel', kernel_file, '-nographic')
56*6503087fSCédric Le Goater        self.vm.launch()
57*6503087fSCédric Le Goater        self.wait_for_console_pattern("Booting Zephyr OS")
58*6503087fSCédric Le Goater        for shell_cmd in [
59*6503087fSCédric Le Goater                'kernel stacks',
60*6503087fSCédric Le Goater                'otp info conf',
61*6503087fSCédric Le Goater                'otp info scu',
62*6503087fSCédric Le Goater                'hwinfo devid',
63*6503087fSCédric Le Goater                'crypto aes256_cbc_vault',
64*6503087fSCédric Le Goater                'random get',
65*6503087fSCédric Le Goater                'jtag JTAG1 sw_xfer high TMS',
66*6503087fSCédric Le Goater                'adc ADC0 resolution 12',
67*6503087fSCédric Le Goater                'adc ADC0 read 42',
68*6503087fSCédric Le Goater                'adc ADC1 read 69',
69*6503087fSCédric Le Goater                'i2c scan I2C_0',
70*6503087fSCédric Le Goater                'i3c attach I3C_0',
71*6503087fSCédric Le Goater                'hash test',
72*6503087fSCédric Le Goater                'kernel uptime',
73*6503087fSCédric Le Goater                'kernel reboot warm',
74*6503087fSCédric Le Goater                'kernel uptime',
75*6503087fSCédric Le Goater                'kernel reboot cold',
76*6503087fSCédric Le Goater                'kernel uptime',
77*6503087fSCédric Le Goater        ]: exec_command_and_wait_for_pattern(self, shell_cmd, "uart:~$")
78*6503087fSCédric Le Goater
79*6503087fSCédric Le Goater
80*6503087fSCédric Le Goaterif __name__ == '__main__':
81*6503087fSCédric Le Goater    LinuxKernelTest.main()
82