19e9eb320SCédric Le Goater#!/usr/bin/env python3 29e9eb320SCédric Le Goater# 39e9eb320SCédric Le Goater# Functional test that boots the ASPEED machines 49e9eb320SCédric Le Goater# 59e9eb320SCédric Le Goater# SPDX-License-Identifier: GPL-2.0-or-later 69e9eb320SCédric Le Goater 79e9eb320SCédric Le Goaterfrom qemu_test import Asset 89e9eb320SCédric Le Goaterfrom qemu_test.aspeed import AspeedTest 99e9eb320SCédric Le Goater 109e9eb320SCédric Le Goaterclass RainierMachine(AspeedTest): 119e9eb320SCédric Le Goater 129e9eb320SCédric Le Goater ASSET_RAINIER_EMMC = Asset( 139e9eb320SCédric Le Goater ('https://fileserver.linaro.org/s/B6pJTwWEkzSDi36/download/' 149e9eb320SCédric Le Goater 'mmc-p10bmc-20240617.qcow2'), 159e9eb320SCédric Le Goater 'd523fb478d2b84d5adc5658d08502bc64b1486955683814f89c6137518acd90b') 169e9eb320SCédric Le Goater 179e9eb320SCédric Le Goater def test_arm_aspeed_emmc_boot(self): 189e9eb320SCédric Le Goater self.set_machine('rainier-bmc') 199e9eb320SCédric Le Goater self.require_netdev('user') 209e9eb320SCédric Le Goater 219e9eb320SCédric Le Goater image_path = self.ASSET_RAINIER_EMMC.fetch() 229e9eb320SCédric Le Goater 239e9eb320SCédric Le Goater self.vm.set_console() 249e9eb320SCédric Le Goater self.vm.add_args('-drive', 259e9eb320SCédric Le Goater 'file=' + image_path + ',if=sd,id=sd2,index=2', 269e9eb320SCédric Le Goater '-net', 'nic', '-net', 'user', '-snapshot') 279e9eb320SCédric Le Goater self.vm.launch() 289e9eb320SCédric Le Goater 299e9eb320SCédric Le Goater self.wait_for_console_pattern('U-Boot SPL 2019.04') 309e9eb320SCédric Le Goater self.wait_for_console_pattern('Trying to boot from MMC1') 319e9eb320SCédric Le Goater self.wait_for_console_pattern('U-Boot 2019.04') 329e9eb320SCédric Le Goater self.wait_for_console_pattern('eMMC 2nd Boot') 339e9eb320SCédric Le Goater self.wait_for_console_pattern('## Loading kernel from FIT Image') 349e9eb320SCédric Le Goater self.wait_for_console_pattern('Starting kernel ...') 359e9eb320SCédric Le Goater self.wait_for_console_pattern('Booting Linux on physical CPU 0xf00') 369e9eb320SCédric Le Goater self.wait_for_console_pattern('mmcblk0: p1 p2 p3 p4 p5 p6 p7') 379e9eb320SCédric Le Goater self.wait_for_console_pattern('IBM eBMC (OpenBMC for IBM Enterprise') 389e9eb320SCédric Le Goater 39*df4589adSCédric Le Goater ASSET_DEBIAN_LINUX_ARMHF_DEB = Asset( 40*df4589adSCédric Le Goater ('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'), 41*df4589adSCédric Le Goater '8acb2b4439faedc2f3ed4bdb2847ad4f6e0491f73debaeb7f660c8abe4dcdc0e') 42*df4589adSCédric Le Goater 43*df4589adSCédric Le Goater def test_arm_debian_kernel_boot(self): 44*df4589adSCédric Le Goater self.set_machine('rainier-bmc') 45*df4589adSCédric Le Goater 46*df4589adSCédric Le Goater deb_path = self.ASSET_DEBIAN_LINUX_ARMHF_DEB.fetch() 47*df4589adSCédric Le Goater 48*df4589adSCédric Le Goater kernel_path = self.extract_from_deb(deb_path, '/boot/vmlinuz-5.17.0-2-armmp') 49*df4589adSCédric Le Goater dtb_path = self.extract_from_deb(deb_path, 50*df4589adSCédric Le Goater '/usr/lib/linux-image-5.17.0-2-armmp/aspeed-bmc-ibm-rainier.dtb') 51*df4589adSCédric Le Goater 52*df4589adSCédric Le Goater self.vm.set_console() 53*df4589adSCédric Le Goater self.vm.add_args('-kernel', kernel_path, 54*df4589adSCédric Le Goater '-dtb', dtb_path, 55*df4589adSCédric Le Goater '-net', 'nic') 56*df4589adSCédric Le Goater self.vm.launch() 57*df4589adSCédric Le Goater 58*df4589adSCédric Le Goater self.wait_for_console_pattern("Booting Linux on physical CPU 0xf00") 59*df4589adSCédric Le Goater self.wait_for_console_pattern("SMP: Total of 2 processors activated") 60*df4589adSCédric Le Goater self.wait_for_console_pattern("No filesystem could mount root") 61*df4589adSCédric Le Goater 62*df4589adSCédric Le Goater 639e9eb320SCédric Le Goaterif __name__ == '__main__': 649e9eb320SCédric Le Goater AspeedTest.main() 65