Add functional coverage for the AST2700 A2 EVB machine by introducing
test cases that boot and validate an OpenBMC SDK v11.00 image on
"ast2700a2-evb".
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
.../functional/aarch64/test_aspeed_ast2700.py | 44 +++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/tests/functional/aarch64/test_aspeed_ast2700.py b/tests/functional/aarch64/test_aspeed_ast2700.py
index 61373ffe5b..68e930ab72 100755
--- a/tests/functional/aarch64/test_aspeed_ast2700.py
+++ b/tests/functional/aarch64/test_aspeed_ast2700.py
@@ -86,6 +86,14 @@ def verify_openbmc_boot_and_login(self, name, enable_pcie=True):
'https://github.com/AspeedTech-BMC/openbmc/releases/download/v11.00/ast2700-a1-dcscm-obmc.tar.gz',
'4f8778be176ece1b57d33c4aee13bb989be114c3e4703150eaeb6f996bd5587f')
+ ASSET_SDK_V1100_AST2700A2 = Asset(
+ 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v11.00/ast2700-default-obmc.tar.gz',
+ 'e2b8f043fe8063dd3b6ded93422e38bd41914dc9c3202199507652df024de4dc')
+
+ ASSET_SDK_V1100_AST2700A2_DCSCM = Asset(
+ 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v11.00/ast2700-dcscm-obmc.tar.gz',
+ '0e93f7976139da71fab9df7952a58bdd80650e23e7abf5853b0eb6695deb02d0')
+
def do_ast2700_i2c_test(self, bus_id):
bus_str = str(bus_id)
exec_command_and_wait_for_pattern(self,
@@ -159,6 +167,18 @@ def test_aarch64_ast2700a1_evb_sdk_v11_00(self):
self.do_ast2700_i2c_test(1)
self.do_ast2700_pcie_test()
+ def test_aarch64_ast2700a2_evb_sdk_v11_00(self):
+ self.set_machine('ast2700a2-evb')
+ self.require_netdev('user')
+
+ self.archive_extract(self.ASSET_SDK_V1100_AST2700A2)
+ self.vm.add_args('-device', 'e1000e,netdev=net1,bus=pcie.2')
+ self.vm.add_args('-netdev', 'user,id=net1')
+ self.start_ast2700_test('ast2700-default', 1)
+ self.verify_openbmc_boot_and_login('ast2700-default')
+ self.do_ast2700_i2c_test(1)
+ self.do_ast2700_pcie_test()
+
def test_aarch64_ast2700a1_evb_sdk_vbootrom_v11_00(self):
self.set_machine('ast2700a1-evb')
self.require_netdev('user')
@@ -170,6 +190,17 @@ def test_aarch64_ast2700a1_evb_sdk_vbootrom_v11_00(self):
self.verify_vbootrom_firmware_flow()
self.verify_openbmc_boot_start()
+ def test_aarch64_ast2700a2_evb_sdk_vbootrom_v11_00(self):
+ self.set_machine('ast2700a2-evb')
+ self.require_netdev('user')
+
+ self.archive_extract(self.ASSET_SDK_V1100_AST2700A2)
+ self.vm.add_args('-device', 'e1000e,netdev=net1,bus=pcie.2')
+ self.vm.add_args('-netdev', 'user,id=net1')
+ self.start_ast2700_test_vbootrom('ast2700-default', 1)
+ self.verify_vbootrom_firmware_flow()
+ self.verify_openbmc_boot_start()
+
def test_aarch64_ast2700a1_evb_ioexp_v11_00(self):
self.set_machine('ast2700a1-evb')
self.require_netdev('user')
@@ -183,5 +214,18 @@ def test_aarch64_ast2700a1_evb_ioexp_v11_00(self):
self.do_ast2700_i2c_test(8)
self.do_ast2700_i2c_test(16)
+ def test_aarch64_ast2700a2_evb_ioexp_v11_00(self):
+ self.set_machine('ast2700a2-evb')
+ self.require_netdev('user')
+
+ self.archive_extract(self.ASSET_SDK_V1100_AST2700A2_DCSCM)
+ self.vm.set_machine('ast2700a2-evb,fmc-model=w25q512jv')
+ self.vm.add_args('-device',
+ 'tmp105,bus=ioexp0.0,address=0x4d,id=tmp-test-16')
+ self.start_ast2700_test('ast2700-dcscm', 8)
+ self.verify_openbmc_boot_and_login('ast2700-dcscm', False)
+ self.do_ast2700_i2c_test(8)
+ self.do_ast2700_i2c_test(16)
+
if __name__ == '__main__':
QemuSystemTest.main()
--
2.43.0
+ Thomas
On 2/6/26 06:33, Jamin Lin wrote:
> Add functional coverage for the AST2700 A2 EVB machine by introducing
> test cases that boot and validate an OpenBMC SDK v11.00 image on
> "ast2700a2-evb".
I wonder if we need to test both machines. The test is already quite long.
On my test system :
qemu:func-aarch64-aspeed_ast2700 OK 119.68s 3 subtests passed
With both machines :
qemu:func-aarch64-aspeed_ast2700 OK 219.79s 6 subtests passed
Thanks,
C.
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> ---
> .../functional/aarch64/test_aspeed_ast2700.py | 44 +++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
> diff --git a/tests/functional/aarch64/test_aspeed_ast2700.py b/tests/functional/aarch64/test_aspeed_ast2700.py
> index 61373ffe5b..68e930ab72 100755
> --- a/tests/functional/aarch64/test_aspeed_ast2700.py
> +++ b/tests/functional/aarch64/test_aspeed_ast2700.py
> @@ -86,6 +86,14 @@ def verify_openbmc_boot_and_login(self, name, enable_pcie=True):
> 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v11.00/ast2700-a1-dcscm-obmc.tar.gz',
> '4f8778be176ece1b57d33c4aee13bb989be114c3e4703150eaeb6f996bd5587f')
>
> + ASSET_SDK_V1100_AST2700A2 = Asset(
> + 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v11.00/ast2700-default-obmc.tar.gz',
> + 'e2b8f043fe8063dd3b6ded93422e38bd41914dc9c3202199507652df024de4dc')
> +
> + ASSET_SDK_V1100_AST2700A2_DCSCM = Asset(
> + 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v11.00/ast2700-dcscm-obmc.tar.gz',
> + '0e93f7976139da71fab9df7952a58bdd80650e23e7abf5853b0eb6695deb02d0')
> +
> def do_ast2700_i2c_test(self, bus_id):
> bus_str = str(bus_id)
> exec_command_and_wait_for_pattern(self,
> @@ -159,6 +167,18 @@ def test_aarch64_ast2700a1_evb_sdk_v11_00(self):
> self.do_ast2700_i2c_test(1)
> self.do_ast2700_pcie_test()
>
> + def test_aarch64_ast2700a2_evb_sdk_v11_00(self):
> + self.set_machine('ast2700a2-evb')
> + self.require_netdev('user')
> +
> + self.archive_extract(self.ASSET_SDK_V1100_AST2700A2)
> + self.vm.add_args('-device', 'e1000e,netdev=net1,bus=pcie.2')
> + self.vm.add_args('-netdev', 'user,id=net1')
> + self.start_ast2700_test('ast2700-default', 1)
> + self.verify_openbmc_boot_and_login('ast2700-default')
> + self.do_ast2700_i2c_test(1)
> + self.do_ast2700_pcie_test()
> +
> def test_aarch64_ast2700a1_evb_sdk_vbootrom_v11_00(self):
> self.set_machine('ast2700a1-evb')
> self.require_netdev('user')
> @@ -170,6 +190,17 @@ def test_aarch64_ast2700a1_evb_sdk_vbootrom_v11_00(self):
> self.verify_vbootrom_firmware_flow()
> self.verify_openbmc_boot_start()
>
> + def test_aarch64_ast2700a2_evb_sdk_vbootrom_v11_00(self):
> + self.set_machine('ast2700a2-evb')
> + self.require_netdev('user')
> +
> + self.archive_extract(self.ASSET_SDK_V1100_AST2700A2)
> + self.vm.add_args('-device', 'e1000e,netdev=net1,bus=pcie.2')
> + self.vm.add_args('-netdev', 'user,id=net1')
> + self.start_ast2700_test_vbootrom('ast2700-default', 1)
> + self.verify_vbootrom_firmware_flow()
> + self.verify_openbmc_boot_start()
> +
> def test_aarch64_ast2700a1_evb_ioexp_v11_00(self):
> self.set_machine('ast2700a1-evb')
> self.require_netdev('user')
> @@ -183,5 +214,18 @@ def test_aarch64_ast2700a1_evb_ioexp_v11_00(self):
> self.do_ast2700_i2c_test(8)
> self.do_ast2700_i2c_test(16)
>
> + def test_aarch64_ast2700a2_evb_ioexp_v11_00(self):
> + self.set_machine('ast2700a2-evb')
> + self.require_netdev('user')
> +
> + self.archive_extract(self.ASSET_SDK_V1100_AST2700A2_DCSCM)
> + self.vm.set_machine('ast2700a2-evb,fmc-model=w25q512jv')
> + self.vm.add_args('-device',
> + 'tmp105,bus=ioexp0.0,address=0x4d,id=tmp-test-16')
> + self.start_ast2700_test('ast2700-dcscm', 8)
> + self.verify_openbmc_boot_and_login('ast2700-dcscm', False)
> + self.do_ast2700_i2c_test(8)
> + self.do_ast2700_i2c_test(16)
> +
> if __name__ == '__main__':
> QemuSystemTest.main()
On 06/02/2026 11.11, Cédric Le Goater wrote: > + Thomas > > On 2/6/26 06:33, Jamin Lin wrote: >> Add functional coverage for the AST2700 A2 EVB machine by introducing >> test cases that boot and validate an OpenBMC SDK v11.00 image on >> "ast2700a2-evb". > > I wonder if we need to test both machines. The test is already quite long. > > On my test system : > > qemu:func-aarch64-aspeed_ast2700 OK 119.68s 3 > subtests passed > > With both machines : > > qemu:func-aarch64-aspeed_ast2700 OK 219.79s 6 > subtests passed If the machines are very similar, it's maybe better to mark one of the tests with a decorator (skipSlowTest maybe), so we don't have to execute it by default, but we still have the test around if we need it. Thomas
On Fri, 6 Feb 2026 at 10:40, Thomas Huth <thuth@redhat.com> wrote: > > On 06/02/2026 11.11, Cédric Le Goater wrote: > > + Thomas > > > > On 2/6/26 06:33, Jamin Lin wrote: > >> Add functional coverage for the AST2700 A2 EVB machine by introducing > >> test cases that boot and validate an OpenBMC SDK v11.00 image on > >> "ast2700a2-evb". > > > > I wonder if we need to test both machines. The test is already quite long. > > > > On my test system : > > > > qemu:func-aarch64-aspeed_ast2700 OK 119.68s 3 > > subtests passed > > > > With both machines : > > > > qemu:func-aarch64-aspeed_ast2700 OK 219.79s 6 > > subtests passed > > If the machines are very similar, it's maybe better to mark one of the tests > with a decorator (skipSlowTest maybe), so we don't have to execute it by > default, but we still have the test around if we need it. It might also be nice to have them be a separate top level test, so that the tests can be run in parallel. AIUI having 1 test with 6 subtests forces all 6 to run in sequence, whereas with 2 tests and 3 subtests each you can at least use 2 host CPUs. Or does the qtest subtest handling include parallelism? -- PMM
On 06/02/2026 12.33, Peter Maydell wrote: > On Fri, 6 Feb 2026 at 10:40, Thomas Huth <thuth@redhat.com> wrote: >> >> On 06/02/2026 11.11, Cédric Le Goater wrote: >>> + Thomas >>> >>> On 2/6/26 06:33, Jamin Lin wrote: >>>> Add functional coverage for the AST2700 A2 EVB machine by introducing >>>> test cases that boot and validate an OpenBMC SDK v11.00 image on >>>> "ast2700a2-evb". >>> >>> I wonder if we need to test both machines. The test is already quite long. >>> >>> On my test system : >>> >>> qemu:func-aarch64-aspeed_ast2700 OK 119.68s 3 >>> subtests passed >>> >>> With both machines : >>> >>> qemu:func-aarch64-aspeed_ast2700 OK 219.79s 6 >>> subtests passed >> >> If the machines are very similar, it's maybe better to mark one of the tests >> with a decorator (skipSlowTest maybe), so we don't have to execute it by >> default, but we still have the test around if we need it. > > > It might also be nice to have them be a separate top level test, > so that the tests can be run in parallel. AIUI having 1 test > with 6 subtests forces all 6 to run in sequence, whereas with > 2 tests and 3 subtests each you can at least use 2 host CPUs. > Or does the qtest subtest handling include parallelism? No, there is no parallel execution for subtests, in neither the qtest nor the functional testing framework. So yes, if you want to execute this in parallel, put it into separate files. Thomas
Hi Thomas, Peter, Cédric > Subject: Re: [PATCH v1 08/10] tests/functional/aarch64/test_aspeed_ast2700: > Add AST2700 A2 EVB functional tests > > On 06/02/2026 12.33, Peter Maydell wrote: > > On Fri, 6 Feb 2026 at 10:40, Thomas Huth <thuth@redhat.com> wrote: > >> > >> On 06/02/2026 11.11, Cédric Le Goater wrote: > >>> + Thomas > >>> > >>> On 2/6/26 06:33, Jamin Lin wrote: > >>>> Add functional coverage for the AST2700 A2 EVB machine by > >>>> introducing test cases that boot and validate an OpenBMC SDK v11.00 > >>>> image on "ast2700a2-evb". > >>> > >>> I wonder if we need to test both machines. The test is already quite long. > >>> > >>> On my test system : > >>> > >>> qemu:func-aarch64-aspeed_ast2700 OK > 119.68s 3 > >>> subtests passed > >>> > >>> With both machines : > >>> > >>> qemu:func-aarch64-aspeed_ast2700 OK > 219.79s 6 > >>> subtests passed > >> > >> If the machines are very similar, it's maybe better to mark one of > >> the tests with a decorator (skipSlowTest maybe), so we don't have to > >> execute it by default, but we still have the test around if we need it. > > > > > > It might also be nice to have them be a separate top level test, so > > that the tests can be run in parallel. AIUI having 1 test with 6 > > subtests forces all 6 to run in sequence, whereas with > > 2 tests and 3 subtests each you can at least use 2 host CPUs. > > Or does the qtest subtest handling include parallelism? > > No, there is no parallel execution for subtests, in neither the qtest nor the > functional testing framework. So yes, if you want to execute this in parallel, put > it into separate files. > > Thomas Thanks for the review and the suggestions. I plan to rename test_aspeed_ast2700.py to test_aspeed_ast2700a1.py for AST2700 A1 testing. Then, I will add a new test_aspeed_ast2700.py for AST2700 A2 testing. This test will cover the latest EVB machine and SoC. Please let me know if you have any suggestions. Thanks-Jamin
© 2016 - 2026 Red Hat, Inc.