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