| 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 | |
| 9 | from aspeed import AspeedTest |
| 10 | from qemu_test import Asset, exec_command_and_wait_for_pattern |
| 11 | |
| 12 | |
| 13 | class AST1030Machine(AspeedTest): |
| 14 | |
| 15 | ASSET_ZEPHYR_3_08 = Asset( |
| 16 | ('https://github.com/AspeedTech-BMC' |
| 17 | '/zephyr/releases/download/v00.03.08/ast1030-evb-demo.zip'), |
| 18 | '9eac3691bc7bce1b912bbe2ae4e36608a6532ff8d607f4d1e44b88407a48d4e5') |
| 19 | |
| 20 | def test_arm_ast1030_zephyros_3_08(self): |
| 21 | self.set_machine('ast1030-evb') |
| 22 | |
| 23 | kernel_name = "ast1030-evb-demo/zephyr.elf" |
| 24 | kernel_file = self.archive_extract( |
| 25 | self.ASSET_ZEPHYR_3_08, member=kernel_name) |
| 26 | |
| 27 | self.vm.set_console() |
| 28 | self.vm.add_args('-kernel', kernel_file, '-nographic') |
| 29 | self.vm.launch() |
| 30 | self.wait_for_console_pattern("Booting Zephyr OS") |
| 31 | exec_command_and_wait_for_pattern(self, "help", |
| 32 | "Available commands") |
| 33 | |
| 34 | ASSET_ZEPHYR_1_07 = Asset( |
| 35 | ('https://github.com/AspeedTech-BMC' |
| 36 | '/zephyr/releases/download/v00.01.07/ast1030-evb-demo.zip'), |
| 37 | 'ad52e27959746988afaed8429bf4e12ab988c05c4d07c9d90e13ec6f7be4574c') |
| 38 | |
| 39 | def test_arm_ast1030_zephyros_1_07(self): |
| 40 | self.set_machine('ast1030-evb') |
| 41 | |
| 42 | kernel_name = "ast1030-evb-demo/zephyr.bin" |
| 43 | kernel_file = self.archive_extract( |
| 44 | self.ASSET_ZEPHYR_1_07, member=kernel_name) |
| 45 | |
| 46 | self.vm.set_console() |
| 47 | self.vm.add_args('-kernel', kernel_file, '-nographic') |
| 48 | self.vm.launch() |
| 49 | self.wait_for_console_pattern("Booting Zephyr OS") |
| 50 | for shell_cmd in [ |
| 51 | 'kernel stacks', |
| 52 | 'otp info conf', |
| 53 | 'otp info scu', |
| 54 | 'hwinfo devid', |
| 55 | 'crypto aes256_cbc_vault', |
| 56 | 'random get', |
| 57 | 'jtag JTAG1 sw_xfer high TMS', |
| 58 | 'adc ADC0 resolution 12', |
| 59 | 'adc ADC0 read 42', |
| 60 | 'adc ADC1 read 69', |
| 61 | 'i2c scan I2C_0', |
| 62 | 'i3c attach I3C_0', |
| 63 | 'hash test', |
| 64 | 'kernel uptime', |
| 65 | 'kernel reboot warm', |
| 66 | 'kernel uptime', |
| 67 | 'kernel reboot cold', |
| 68 | 'kernel uptime', |
| 69 | ]: exec_command_and_wait_for_pattern(self, shell_cmd, "uart:~$") |
| 70 | |
| 71 | def test_arm_ast1030_otp_blockdev_device(self): |
| 72 | self.vm.set_machine("ast1030-evb") |
| 73 | |
| 74 | kernel_name = "ast1030-evb-demo/zephyr.elf" |
| 75 | kernel_file = self.archive_extract(self.ASSET_ZEPHYR_3_08, |
| 76 | member=kernel_name) |
| 77 | otp_img = self.generate_otpmem_image() |
| 78 | |
| 79 | self.vm.set_console() |
| 80 | self.vm.add_args( |
| 81 | "-kernel", kernel_file, |
| 82 | "-blockdev", f"driver=file,filename={otp_img},node-name=otp", |
| 83 | "-global", "aspeed-otp.drive=otp", |
| 84 | ) |
| 85 | self.vm.launch() |
| 86 | self.wait_for_console_pattern("Booting Zephyr OS") |
| 87 | |
| 88 | if __name__ == '__main__': |
| 89 | AspeedTest.main() |