On 7/15/26 17:50, Mikail Sadic wrote:
Add a functional test for the huygens-bmc machine that boots from FMC
flash and a UFS storage image, verifying the full boot sequence from
U-Boot through OpenBMC login and multi-user target.
Note: The Huygens img is not yet public, so this test is for future/internal
use. It has been tested/verified with the correct image, and will gracefully
exit if image is not found.
Signed-off-by: Mikail Sadic <[email protected]>
---
tests/functional/aarch64/meson.build | 2 +
.../functional/aarch64/test_aspeed_huygens.py | 49 +++++++++++++++++++
2 files changed, 51 insertions(+)
create mode 100755 tests/functional/aarch64/test_aspeed_huygens.py
diff --git a/tests/functional/aarch64/meson.build
b/tests/functional/aarch64/meson.build
index e81afd6c39..d81c0d6761 100644
--- a/tests/functional/aarch64/meson.build
+++ b/tests/functional/aarch64/meson.build
@@ -4,6 +4,7 @@ test_aarch64_timeouts = {
'aspeed_ast2700a1' : 600,
'aspeed_ast2700a2' : 600,
'aspeed_ast2700fc' : 600,
+ 'aspeed_huygens' : 600,
'device_passthrough' : 720,
'imx8mm_evk' : 240,
'imx8mp_evk' : 240,
@@ -29,6 +30,7 @@ tests_aarch64_system_thorough = [
'aspeed_ast2700a1',
'aspeed_ast2700a2',
'aspeed_ast2700fc',
+ 'aspeed_huygens',
'device_passthrough',
'hotplug_pci',
'imx8mm_evk',
diff --git a/tests/functional/aarch64/test_aspeed_huygens.py
b/tests/functional/aarch64/test_aspeed_huygens.py
new file mode 100755
index 0000000000..750d6e0d7f
--- /dev/null
+++ b/tests/functional/aarch64/test_aspeed_huygens.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+#
+# Functional test that boots the ASPEED Huygens machine with UFS storage
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import os
+
+from aspeed import AspeedTest
+
+class HuygensMachine(AspeedTest):
+
+ def test_arm_aspeed_ufs_boot(self):
+ self.set_machine('huygens-bmc')
+ self.require_netdev('user')
+
+ # Huygens image is not public yet, skip if missing
+ fmc_path = '/tmp/fmc-huygens.img'
+ ufs_path = '/tmp/ufs-huygens.img'
This is dead code. resend when they are then.
Thanks,
C.
+ if not os.path.exists(fmc_path) or not os.path.exists(ufs_path):
+ self.skipTest(f'Missing required images: {fmc_path}, {ufs_path}')
+
+ self.vm.set_console()
+ self.vm.add_args('-drive',
+ 'file=' + fmc_path + ',if=mtd,format=raw',
+ '-drive',
+ 'file=' + ufs_path +
+ ',if=none,format=raw,readonly=off',
+ '-nic', 'user,model=ftgmac100,net=10.0.2.0/24',
+ '-nic', 'user,model=ftgmac100,net=10.0.3.0/24',
+ '-nic', 'user,model=ftgmac100,net=10.0.4.0/24')
+ self.vm.launch()
+
+ self.wait_for_console_pattern('U-Boot 2023.10')
+ self.wait_for_console_pattern(
+ 'Vendor: ASPEED Prod.: UFS QEMU Rev: 1.00')
+ self.wait_for_console_pattern('Starting kernel ...')
+ self.wait_for_console_pattern('Machine model: Huygens')
+ self.wait_for_console_pattern('Starting systemd-udevd version 257.1')
+ self.wait_for_console_pattern('Phosphor OpenBMC')
+ self.wait_for_console_pattern('huygens login:')
+ self.wait_for_console_pattern('Active BMC Target')
+ self.wait_for_console_pattern('Multi-User System')
+ self.vm.shutdown()
+
+
+if __name__ == '__main__':
+ AspeedTest.main()