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