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