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