| 1 | #!/usr/bin/env python3 |
| 2 | # |
| 3 | # Functional test that boots the ASPEED machines |
| 4 | # |
| 5 | # SPDX-License-Identifier: GPL-2.0-or-later |
| 6 | |
| 7 | from qemu_test import Asset |
| 8 | from aspeed import AspeedTest |
| 9 | |
| 10 | class RainierMachine(AspeedTest): |
| 11 | |
| 12 | ASSET_RAINIER_EMMC = Asset('https://kaod.org/qemu/aspeed/rainier/mmc-p10bmc-20240617.qcow2', |
| 13 | 'd523fb478d2b84d5adc5658d08502bc64b1486955683814f89c6137518acd90b') |
| 14 | |
| 15 | def test_arm_aspeed_emmc_boot(self): |
| 16 | self.set_machine('rainier-bmc') |
| 17 | self.require_netdev('user') |
| 18 | |
| 19 | image_path = self.ASSET_RAINIER_EMMC.fetch() |
| 20 | |
| 21 | self.vm.set_console() |
| 22 | self.vm.add_args('-drive', |
| 23 | 'file=' + image_path + ',if=sd,id=sd2,index=2', |
| 24 | '-net', 'nic', '-net', 'user', '-snapshot') |
| 25 | self.vm.launch() |
| 26 | |
| 27 | self.wait_for_console_pattern('U-Boot SPL 2019.04') |
| 28 | self.wait_for_console_pattern('Trying to boot from MMC1') |
| 29 | self.wait_for_console_pattern('U-Boot 2019.04') |
| 30 | self.wait_for_console_pattern('eMMC 2nd Boot') |
| 31 | self.wait_for_console_pattern('## Loading kernel from FIT Image') |
| 32 | self.wait_for_console_pattern('Starting kernel ...') |
| 33 | self.wait_for_console_pattern('Booting Linux on physical CPU 0xf00') |
| 34 | self.wait_for_console_pattern('mmcblk0: p1 p2 p3 p4 p5 p6 p7') |
| 35 | self.wait_for_console_pattern('IBM eBMC (OpenBMC for IBM Enterprise') |
| 36 | |
| 37 | ASSET_DEBIAN_LINUX_ARMHF_DEB = Asset( |
| 38 | ('http://snapshot.debian.org/archive/debian/20220606T211338Z/pool/main/l/linux/linux-image-5.17.0-2-armmp_5.17.6-1%2Bb1_armhf.deb'), |
| 39 | '8acb2b4439faedc2f3ed4bdb2847ad4f6e0491f73debaeb7f660c8abe4dcdc0e') |
| 40 | |
| 41 | def test_arm_debian_kernel_boot(self): |
| 42 | self.set_machine('rainier-bmc') |
| 43 | |
| 44 | kernel_path = self.archive_extract( |
| 45 | self.ASSET_DEBIAN_LINUX_ARMHF_DEB, |
| 46 | member='boot/vmlinuz-5.17.0-2-armmp') |
| 47 | dtb_path = self.archive_extract( |
| 48 | self.ASSET_DEBIAN_LINUX_ARMHF_DEB, |
| 49 | member='usr/lib/linux-image-5.17.0-2-armmp/aspeed-bmc-ibm-rainier.dtb') |
| 50 | |
| 51 | self.vm.set_console() |
| 52 | self.vm.add_args('-kernel', kernel_path, |
| 53 | '-dtb', dtb_path, |
| 54 | '-net', 'nic') |
| 55 | self.vm.launch() |
| 56 | |
| 57 | self.wait_for_console_pattern("Booting Linux on physical CPU 0xf00") |
| 58 | self.wait_for_console_pattern("SMP: Total of 2 processors activated") |
| 59 | self.wait_for_console_pattern("No filesystem could mount root") |
| 60 | |
| 61 | |
| 62 | if __name__ == '__main__': |
| 63 | AspeedTest.main() |