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 <mikail.sadic@ibm.com>
> ---
> 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()