master
py 63 lines 2.48 KB
Raw
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()