Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2194481/?format=api
{ "id": 2194481, "url": "http://patchwork.ozlabs.org/api/patches/2194481/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260209065044.239378-2-clg@redhat.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260209065044.239378-2-clg@redhat.com>", "list_archive_url": null, "date": "2026-02-09T06:50:43", "name": "[1/2] tests/functional: Split Aspeed ARM tests into separate files", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "d7f521938e237bb5e5803fde98ebd9a315d4a9b9", "submitter": { "id": 85406, "url": "http://patchwork.ozlabs.org/api/people/85406/?format=api", "name": "Cédric Le Goater", "email": "clg@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260209065044.239378-2-clg@redhat.com/mbox/", "series": [ { "id": 491467, "url": "http://patchwork.ozlabs.org/api/series/491467/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491467", "date": "2026-02-09T06:50:42", "name": "tests/functional: Aspeed ARM tests enhancements", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/491467/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2194481/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2194481/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=MUP1DzUE;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f8b2p2YcWz1xvc\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 09 Feb 2026 17:51:46 +1100 (AEDT)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vpL6w-00047I-74; Mon, 09 Feb 2026 01:51:06 -0500", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <clg@redhat.com>) id 1vpL6t-00046p-TB\n for qemu-devel@nongnu.org; Mon, 09 Feb 2026 01:51:03 -0500", "from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <clg@redhat.com>) id 1vpL6r-0005EZ-Lm\n for qemu-devel@nongnu.org; Mon, 09 Feb 2026 01:51:03 -0500", "from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-287-AryQbmWJNBC-6Lws7s8J1A-1; Mon,\n 09 Feb 2026 01:50:57 -0500", "from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 18F6218003FC; Mon, 9 Feb 2026 06:50:55 +0000 (UTC)", "from corto.redhat.com (unknown [10.45.224.73])\n by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 647291956053; Mon, 9 Feb 2026 06:50:50 +0000 (UTC)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1770619860;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=7F52/TWqPcU0bnghy6HMfsqTcH1NrXFJpSGb9WW08rs=;\n b=MUP1DzUEly55bHMCSj50s1DPa+XBL+c+jWxFGOTFSxE+TtRyL50GFF5BL6rjTmsXnJqh4h\n zGk2OOHE/bEO6dowUH+U4UgndqP/g5bzQvt7+m+lo0QXnZ+T8V335it3++h+2LqrZ7gwMG\n Fw7Cd7/i2mnsLDBDKGJuZT1z+vqPvX8=", "X-MC-Unique": "AryQbmWJNBC-6Lws7s8J1A-1", "X-Mimecast-MFC-AGG-ID": "AryQbmWJNBC-6Lws7s8J1A_1770619855", "From": "=?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@redhat.com>", "To": "qemu-devel@nongnu.org,\n\tqemu-arm@nongnu.org", "Cc": "Peter Maydell <peter.maydell@linaro.org>,\n Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>,\n Jamin Lin <jamin_lin@aspeedtech.com>,\n Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>,\n Thomas Huth <thuth@redhat.com>,\n =?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@redhat.com>", "Subject": "[PATCH 1/2] tests/functional: Split Aspeed ARM tests into separate\n files", "Date": "Mon, 9 Feb 2026 07:50:43 +0100", "Message-ID": "<20260209065044.239378-2-clg@redhat.com>", "In-Reply-To": "<20260209065044.239378-1-clg@redhat.com>", "References": "<20260209065044.239378-1-clg@redhat.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.17", "Received-SPF": "pass client-ip=170.10.129.124; envelope-from=clg@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,\n RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001,\n SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "Reorganize the monolithic Aspeed functional test files into separate\nfiles based on firmware type (Buildroot vs SDK) and specific test\nscenarios. This allows the test suite to run tests in parallel more\neffectively and makes it easier to identify and run specific test\nscenarios independently.\n\nSigned-off-by: Cédric Le Goater <clg@redhat.com>\n---\n tests/functional/arm/meson.build | 14 +++--\n tests/functional/arm/test_aspeed_ast1060.py | 0\n ...00.py => test_aspeed_ast2500_buildroot.py} | 14 -----\n .../functional/arm/test_aspeed_ast2500_sdk.py | 29 +++++++++\n .../arm/test_aspeed_ast2600_buildroot.py | 41 +------------\n .../arm/test_aspeed_ast2600_buildroot_tpm.py | 60 +++++++++++++++++++\n .../functional/arm/test_aspeed_ast2600_sdk.py | 15 -----\n .../arm/test_aspeed_ast2600_sdk_otp.py | 34 +++++++++++\n 8 files changed, 134 insertions(+), 73 deletions(-)\n mode change 100644 => 100755 tests/functional/arm/test_aspeed_ast1060.py\n rename tests/functional/arm/{test_aspeed_ast2500.py => test_aspeed_ast2500_buildroot.py} (74%)\n create mode 100755 tests/functional/arm/test_aspeed_ast2500_sdk.py\n create mode 100755 tests/functional/arm/test_aspeed_ast2600_buildroot_tpm.py\n create mode 100755 tests/functional/arm/test_aspeed_ast2600_sdk_otp.py", "diff": "diff --git a/tests/functional/arm/meson.build b/tests/functional/arm/meson.build\nindex 1762a496049d..175a83a2acd7 100644\n--- a/tests/functional/arm/meson.build\n+++ b/tests/functional/arm/meson.build\n@@ -4,9 +4,12 @@ test_arm_timeouts = {\n 'aspeed_palmetto' : 120,\n 'aspeed_romulus' : 120,\n 'aspeed_witherspoon' : 120,\n- 'aspeed_ast2500' : 720,\n- 'aspeed_ast2600_buildroot' : 720,\n- 'aspeed_ast2600_sdk' : 1200,\n+ 'aspeed_ast2500_sdk' : 720,\n+ 'aspeed_ast2500_buildroot' : 480,\n+ 'aspeed_ast2600_buildroot' : 480,\n+ 'aspeed_ast2600_buildroot_tpm' : 720,\n+ 'aspeed_ast2600_sdk' : 720,\n+ 'aspeed_ast2600_sdk_otp' : 720,\n 'aspeed_bletchley' : 480,\n 'aspeed_catalina' : 480,\n 'aspeed_gb200nvl_bmc' : 480,\n@@ -32,9 +35,12 @@ tests_arm_system_thorough = [\n 'aspeed_palmetto',\n 'aspeed_romulus',\n 'aspeed_witherspoon',\n- 'aspeed_ast2500',\n+ 'aspeed_ast2500_sdk',\n+ 'aspeed_ast2500_buildroot',\n 'aspeed_ast2600_buildroot',\n+ 'aspeed_ast2600_buildroot_tpm',\n 'aspeed_ast2600_sdk',\n+ 'aspeed_ast2600_sdk_otp',\n 'aspeed_bletchley',\n 'aspeed_catalina',\n 'aspeed_gb200nvl_bmc',\ndiff --git a/tests/functional/arm/test_aspeed_ast1060.py b/tests/functional/arm/test_aspeed_ast1060.py\nold mode 100644\nnew mode 100755\ndiff --git a/tests/functional/arm/test_aspeed_ast2500.py b/tests/functional/arm/test_aspeed_ast2500_buildroot.py\nsimilarity index 74%\nrename from tests/functional/arm/test_aspeed_ast2500.py\nrename to tests/functional/arm/test_aspeed_ast2500_buildroot.py\nindex 5d75e20184d6..8196923ee04d 100755\n--- a/tests/functional/arm/test_aspeed_ast2500.py\n+++ b/tests/functional/arm/test_aspeed_ast2500_buildroot.py\n@@ -37,20 +37,6 @@ def test_arm_ast2500_evb_buildroot(self):\n \n self.do_test_arm_aspeed_buildroot_poweroff()\n \n- ASSET_SDK_V1000_AST2500 = Asset(\n- 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v10.00/ast2500-default-obmc.tar.gz',\n- '7d71a3f71d5f4d9f3451f59a73bf9baf8fd9f6a24107eb504a3216151a8b2b5b')\n-\n- def test_arm_ast2500_evb_sdk(self):\n- self.set_machine('ast2500-evb')\n-\n- self.archive_extract(self.ASSET_SDK_V1000_AST2500)\n-\n- self.do_test_arm_aspeed_sdk_start(\n- self.scratch_file(\"ast2500-default\", \"image-bmc\"))\n-\n- self.wait_for_console_pattern('ast2500-default login:')\n-\n \n if __name__ == '__main__':\n AspeedTest.main()\ndiff --git a/tests/functional/arm/test_aspeed_ast2500_sdk.py b/tests/functional/arm/test_aspeed_ast2500_sdk.py\nnew file mode 100755\nindex 000000000000..2c9211aeddc8\n--- /dev/null\n+++ b/tests/functional/arm/test_aspeed_ast2500_sdk.py\n@@ -0,0 +1,29 @@\n+#!/usr/bin/env python3\n+#\n+# Functional test that boots the ASPEED machines\n+#\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+\n+from qemu_test import Asset\n+from aspeed import AspeedTest\n+\n+\n+class AST2500Machine(AspeedTest):\n+\n+ ASSET_SDK_V1000_AST2500 = Asset(\n+ 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v10.00/ast2500-default-obmc.tar.gz',\n+ '7d71a3f71d5f4d9f3451f59a73bf9baf8fd9f6a24107eb504a3216151a8b2b5b')\n+\n+ def test_arm_ast2500_evb_sdk(self):\n+ self.set_machine('ast2500-evb')\n+\n+ self.archive_extract(self.ASSET_SDK_V1000_AST2500)\n+\n+ self.do_test_arm_aspeed_sdk_start(\n+ self.scratch_file(\"ast2500-default\", \"image-bmc\"))\n+\n+ self.wait_for_console_pattern('ast2500-default login:')\n+\n+\n+if __name__ == '__main__':\n+ AspeedTest.main()\ndiff --git a/tests/functional/arm/test_aspeed_ast2600_buildroot.py b/tests/functional/arm/test_aspeed_ast2600_buildroot.py\nindex 3d130b9fd189..cc5ab9796a5e 100755\n--- a/tests/functional/arm/test_aspeed_ast2600_buildroot.py\n+++ b/tests/functional/arm/test_aspeed_ast2600_buildroot.py\n@@ -11,7 +11,7 @@\n \n from aspeed import AspeedTest\n from qemu_test import Asset\n-from qemu_test import exec_command_and_wait_for_pattern, skipIfMissingCommands\n+from qemu_test import exec_command_and_wait_for_pattern\n \n \n class AST2600Machine(AspeedTest):\n@@ -61,45 +61,6 @@ def test_arm_ast2600_evb_buildroot(self):\n '0000000 ffaa ffff ffff ffff ffff ffff ffff ffff')\n self.do_test_arm_aspeed_buildroot_poweroff()\n \n- ASSET_BR2_202302_AST2600_TPM_FLASH = Asset(\n- ('https://github.com/legoater/qemu-aspeed-boot/raw/master/'\n- 'images/ast2600-evb/buildroot-2023.02-tpm/flash.img'),\n- 'a46009ae8a5403a0826d607215e731a8c68d27c14c41e55331706b8f9c7bd997')\n-\n- def _test_arm_ast2600_evb_buildroot_tpm(self, tpmstate_dir):\n- image_path = self.ASSET_BR2_202302_AST2600_TPM_FLASH.fetch()\n-\n- socket = os.path.join(tpmstate_dir, 'swtpm-socket')\n-\n- # We must put the TPM state dir in /tmp/, not the build dir,\n- # because some distros use AppArmor to lock down swtpm and\n- # restrict the set of locations it can access files in.\n- subprocess.run(['swtpm', 'socket', '-d', '--tpm2',\n- '--tpmstate', f'dir={tpmstate_dir}',\n- '--ctrl', f'type=unixio,path={socket}'],\n- check=True)\n-\n- self.vm.add_args('-chardev', f'socket,id=chrtpm,path={socket}')\n- self.vm.add_args('-tpmdev', 'emulator,id=tpm0,chardev=chrtpm')\n- self.vm.add_args('-device',\n- 'tpm-tis-i2c,tpmdev=tpm0,bus=aspeed.i2c.bus.12,address=0x2e')\n- self.do_test_arm_aspeed_buildroot_start(image_path, '0xf00', 'Aspeed AST2600 EVB')\n-\n- exec_command_and_wait_for_pattern(self,\n- 'echo tpm_tis_i2c 0x2e > /sys/bus/i2c/devices/i2c-12/new_device',\n- 'tpm_tis_i2c 12-002e: 2.0 TPM (device-id 0x1, rev-id 1)')\n- exec_command_and_wait_for_pattern(self,\n- 'cat /sys/class/tpm/tpm0/pcr-sha256/0',\n- 'B804724EA13F52A9072BA87FE8FDCC497DFC9DF9AA15B9088694639C431688E0')\n-\n- self.do_test_arm_aspeed_buildroot_poweroff()\n-\n- @skipIfMissingCommands('swtpm')\n- def test_arm_ast2600_evb_buildroot_tpm(self):\n- self.set_machine('ast2600-evb')\n- with tempfile.TemporaryDirectory(prefix=\"qemu_\") as tpmstate_dir:\n- self._test_arm_ast2600_evb_buildroot_tpm(tpmstate_dir)\n-\n \n if __name__ == '__main__':\n AspeedTest.main()\ndiff --git a/tests/functional/arm/test_aspeed_ast2600_buildroot_tpm.py b/tests/functional/arm/test_aspeed_ast2600_buildroot_tpm.py\nnew file mode 100755\nindex 000000000000..7ec996e9cf22\n--- /dev/null\n+++ b/tests/functional/arm/test_aspeed_ast2600_buildroot_tpm.py\n@@ -0,0 +1,60 @@\n+#!/usr/bin/env python3\n+#\n+# Functional test that boots the ASPEED machines\n+#\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+\n+import os\n+import time\n+import tempfile\n+import subprocess\n+\n+from aspeed import AspeedTest\n+from qemu_test import Asset\n+from qemu_test import exec_command_and_wait_for_pattern, skipIfMissingCommands\n+\n+\n+class AST2600Machine(AspeedTest):\n+\n+ ASSET_BR2_202302_AST2600_TPM_FLASH = Asset(\n+ ('https://github.com/legoater/qemu-aspeed-boot/raw/master/'\n+ 'images/ast2600-evb/buildroot-2023.02-tpm/flash.img'),\n+ 'a46009ae8a5403a0826d607215e731a8c68d27c14c41e55331706b8f9c7bd997')\n+\n+ def _test_arm_ast2600_evb_buildroot_tpm(self, tpmstate_dir):\n+ image_path = self.ASSET_BR2_202302_AST2600_TPM_FLASH.fetch()\n+\n+ socket = os.path.join(tpmstate_dir, 'swtpm-socket')\n+\n+ # We must put the TPM state dir in /tmp/, not the build dir,\n+ # because some distros use AppArmor to lock down swtpm and\n+ # restrict the set of locations it can access files in.\n+ subprocess.run(['swtpm', 'socket', '-d', '--tpm2',\n+ '--tpmstate', f'dir={tpmstate_dir}',\n+ '--ctrl', f'type=unixio,path={socket}'],\n+ check=True)\n+\n+ self.vm.add_args('-chardev', f'socket,id=chrtpm,path={socket}')\n+ self.vm.add_args('-tpmdev', 'emulator,id=tpm0,chardev=chrtpm')\n+ self.vm.add_args('-device',\n+ 'tpm-tis-i2c,tpmdev=tpm0,bus=aspeed.i2c.bus.12,address=0x2e')\n+ self.do_test_arm_aspeed_buildroot_start(image_path, '0xf00', 'Aspeed AST2600 EVB')\n+\n+ exec_command_and_wait_for_pattern(self,\n+ 'echo tpm_tis_i2c 0x2e > /sys/bus/i2c/devices/i2c-12/new_device',\n+ 'tpm_tis_i2c 12-002e: 2.0 TPM (device-id 0x1, rev-id 1)')\n+ exec_command_and_wait_for_pattern(self,\n+ 'cat /sys/class/tpm/tpm0/pcr-sha256/0',\n+ 'B804724EA13F52A9072BA87FE8FDCC497DFC9DF9AA15B9088694639C431688E0')\n+\n+ self.do_test_arm_aspeed_buildroot_poweroff()\n+\n+ @skipIfMissingCommands('swtpm')\n+ def test_arm_ast2600_evb_buildroot_tpm(self):\n+ self.set_machine('ast2600-evb')\n+ with tempfile.TemporaryDirectory(prefix=\"qemu_\") as tpmstate_dir:\n+ self._test_arm_ast2600_evb_buildroot_tpm(tpmstate_dir)\n+\n+\n+if __name__ == '__main__':\n+ AspeedTest.main()\ndiff --git a/tests/functional/arm/test_aspeed_ast2600_sdk.py b/tests/functional/arm/test_aspeed_ast2600_sdk.py\nindex 3485feaf2c39..46b9f7058c08 100755\n--- a/tests/functional/arm/test_aspeed_ast2600_sdk.py\n+++ b/tests/functional/arm/test_aspeed_ast2600_sdk.py\n@@ -82,21 +82,6 @@ def test_arm_ast2600_evb_sdk(self):\n self.do_ast2600_pcie_test()\n self.do_ast2600_i3c_test()\n \n- def test_arm_ast2600_otp_blockdev_device(self):\n- self.vm.set_machine(\"ast2600-evb\")\n-\n- image_path = self.archive_extract(self.ASSET_SDK_V1100_AST2600)\n- otp_img = self.generate_otpmem_image()\n-\n- self.vm.set_console()\n- self.vm.add_args(\n- \"-blockdev\", f\"driver=file,filename={otp_img},node-name=otp\",\n- \"-global\", \"aspeed-otp.drive=otp\",\n- )\n- self.do_test_arm_aspeed_sdk_start(\n- self.scratch_file(\"ast2600-default\", \"image-bmc\"))\n- self.wait_for_console_pattern(\"ast2600-default login:\")\n-\n \n if __name__ == '__main__':\n AspeedTest.main()\ndiff --git a/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py b/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py\nnew file mode 100755\nindex 000000000000..4066532d5dec\n--- /dev/null\n+++ b/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py\n@@ -0,0 +1,34 @@\n+#!/usr/bin/env python3\n+#\n+# Functional test that boots the ASPEED machines\n+#\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+\n+from qemu_test import Asset\n+from aspeed import AspeedTest\n+\n+\n+class AST2600Machine(AspeedTest):\n+\n+ ASSET_SDK_V1100_AST2600 = Asset(\n+ 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v11.00/ast2600-default-obmc.tar.gz',\n+ '64d8926a7d01b649168be96c986603b5690f06391286c438a3a772c8c7039e93')\n+\n+ def test_arm_ast2600_otp_blockdev_device(self):\n+ self.vm.set_machine(\"ast2600-evb\")\n+\n+ image_path = self.archive_extract(self.ASSET_SDK_V1100_AST2600)\n+ otp_img = self.generate_otpmem_image()\n+\n+ self.vm.set_console()\n+ self.vm.add_args(\n+ \"-blockdev\", f\"driver=file,filename={otp_img},node-name=otp\",\n+ \"-global\", \"aspeed-otp.drive=otp\",\n+ )\n+ self.do_test_arm_aspeed_sdk_start(\n+ self.scratch_file(\"ast2600-default\", \"image-bmc\"))\n+ self.wait_for_console_pattern(\"ast2600-default login:\")\n+\n+\n+if __name__ == '__main__':\n+ AspeedTest.main()\n", "prefixes": [ "1/2" ] }