Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2196374/?format=api
{ "id": 2196374, "url": "http://patchwork.ozlabs.org/api/patches/2196374/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260213154859.1551283-7-alex.bennee@linaro.org/", "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": "<20260213154859.1551283-7-alex.bennee@linaro.org>", "list_archive_url": null, "date": "2026-02-13T15:48:59", "name": "[6/6] tests/functional: add Arm VBSA uefi conformance test", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "c1388cecc45d88639ebb32fdd13d56e72e94f27a", "submitter": { "id": 39532, "url": "http://patchwork.ozlabs.org/api/people/39532/?format=api", "name": "Alex Bennée", "email": "alex.bennee@linaro.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260213154859.1551283-7-alex.bennee@linaro.org/mbox/", "series": [ { "id": 492115, "url": "http://patchwork.ozlabs.org/api/series/492115/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=492115", "date": "2026-02-13T15:48:56", "name": "testing/next: libvirt-ci, tests/vm and vbsa functional test", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/492115/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2196374/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2196374/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 (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=x2RnXYWR;\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 4fCGpx2LgXz1xpl\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 14 Feb 2026 02:50:49 +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 1vqvPs-0001tj-Ft; Fri, 13 Feb 2026 10:49:12 -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 <alex.bennee@linaro.org>)\n id 1vqvPr-0001sv-DO\n for qemu-devel@nongnu.org; Fri, 13 Feb 2026 10:49:11 -0500", "from mail-ed1-x529.google.com ([2a00:1450:4864:20::529])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1vqvPm-0007x9-Lg\n for qemu-devel@nongnu.org; Fri, 13 Feb 2026 10:49:10 -0500", "by mail-ed1-x529.google.com with SMTP id\n 4fb4d7f45d1cf-6594382a264so1640760a12.1\n for <qemu-devel@nongnu.org>; Fri, 13 Feb 2026 07:49:06 -0800 (PST)", "from draig.lan ([185.124.0.126]) by smtp.gmail.com with ESMTPSA id\n 4fb4d7f45d1cf-65bad19bfc8sm774340a12.1.2026.02.13.07.49.02\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 13 Feb 2026 07:49:04 -0800 (PST)", "from draig.lan (localhost [IPv6:::1])\n by draig.lan (Postfix) with ESMTP id 6BF0F5FC85;\n Fri, 13 Feb 2026 15:49:00 +0000 (GMT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1770997745; x=1771602545; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=zC+gcSeZ99GKv5sRztPc7adAuVq0E0dT5LvwAnUamAA=;\n b=x2RnXYWRrYuiW5rFX9brGT8jgHHiM3Yeq8XqjsWO2x2DR9IK33V8MU9UsBk7QRCFmF\n M5GQ7a8wlkzTScOA9aR0tkmFM8HSWp70oWJNMigMQJw9Few6jqHOEnCZVGUnKjhVRJKF\n X9YQsTPfuPy1wZTtvjRfatPMdjdTpV3Ry0Ongi3SCwoabXX3boZADSohVwUGEnXLJNk/\n iRE3aZRffylxV9J2MswBwKtCugEfW3E3oo2LyXA0+SUQtVg/P00FSLMruAEdPn6gjy6E\n O4udj/8NnDhrHdF6xCGuBSy/3XUymfn+5F4ndZqvZgi30Fjk6X8ZK9FS0YFTVXJvwE4p\n Fl2A==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770997745; x=1771602545;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=zC+gcSeZ99GKv5sRztPc7adAuVq0E0dT5LvwAnUamAA=;\n b=agiJJE1ww73h17Ah6cldXH3FE7poid2c2J2sglRgVpE3TCfQCjn0hu5EUjliH0MRHv\n 1J5wnDHV3B0wcPlDCu5/l7rp4fldanJK19Buojk4U8jEJc6CmWY8lCu1FW8RbczLzutl\n tl0lyEEnX49Idpzkh2R1iLpW89lSZUrBxz6ppS+a4pEu6fnVuz/aDa7b4iOm7DerF+Gl\n QZAUjySOE21gjuioRjR0ekQG0r88dUauuZal24ynCfYmXRBml2x3JVV7+CZIBubWy2DV\n Z2/1C6rdg099CwdPTnTozUZnopek8Y/sR5PJqaI1AZH7bTGSjZVoUtaK9BkIN17UlKyX\n YqKw==", "X-Gm-Message-State": "AOJu0Yxu0/EmTSXp0li4qjT7GMfq5qgEogttLFJZtkF444qgUSl8xGUJ\n ZU8e28Em3sHdEbBSgCyPa7uw/oo1KoTDF8hTQaNdpnfAGmvuXWtpnTdq1/uUcCsAh2I=", "X-Gm-Gg": "AZuq6aLrvJrGtmzsBbU25hF7uw2urzEIDH1NM3cdudWZXA/jIsixz95PT64XQq0ainV\n 2ezsSliAmeyIWbWlOrIyklkHEQwdbYvlBMqrINi4J3FGIY/o8G/AcZq5nlV/+AFMEyqOCJDVoss\n A/vasugAy6ptwD3B5UEune8SZ5FiyJsTPXdTGAZpjEjF/n91a5R4xeAnTLlfn+AyGVDn39XFAq3\n PzktApVWQ2GhABSOKX0qkMuxY8Z2OucChYWfeIjVdoGJkUPV6nQb828KRmynwV1XRN+fqzCM+28\n 2oCqig6B2OgwRFbBuzMw2dpUHuSfca/jGdAeXo6063SRFdrzTNI68cbwlgk3EpHbFp1bprLkJnJ\n Y241vHoeACfPE8cV5y4yIKvIB9P0mUqczq9WH9Fqic39nSXz2SFahohtaqnv6fwGDUkyJnBE18G\n UiYiqsNDXCDy91tR1Zewbdrpw=", "X-Received": "by 2002:a05:6402:42ce:b0:659:40a9:713a with SMTP id\n 4fb4d7f45d1cf-65bb116439fmr1070623a12.12.1770997745082;\n Fri, 13 Feb 2026 07:49:05 -0800 (PST)", "From": "=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>", "To": "qemu-devel@nongnu.org", "Cc": "Brad Smith <brad@comstyle.com>,\n =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n Warner Losh <imp@bsdimp.com>,\n =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n Thomas Huth <thuth@redhat.com>, Kyle Evans <kevans@freebsd.org>,\n Peter Maydell <peter.maydell@linaro.org>, qemu-arm@nongnu.org", "Subject": "[PATCH 6/6] tests/functional: add Arm VBSA uefi conformance test", "Date": "Fri, 13 Feb 2026 15:48:59 +0000", "Message-ID": "<20260213154859.1551283-7-alex.bennee@linaro.org>", "X-Mailer": "git-send-email 2.47.3", "In-Reply-To": "<20260213154859.1551283-1-alex.bennee@linaro.org>", "References": "<20260213154859.1551283-1-alex.bennee@linaro.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2a00:1450:4864:20::529;\n envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x529.google.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, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham 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": "The VBSA test is a subset of the wider Arm architecture compliance\nsuites (ACS) which validate machines meet particular minimum set of\nrequirements. The VBSA is for virtual machines so it makes sense we\nshould check the -M virt machine is compliant.\n\nFortunately there are prebuilt binaries published via github so all we\nneed to do is build an EFI partition and place things in the right\nplace.\n\nThere are some additional Linux based tests which are left for later.\n\nSigned-off-by: Alex Bennée <alex.bennee@linaro.org>\n---\n tests/functional/aarch64/meson.build | 1 +\n tests/functional/aarch64/test_virt_vbsa.py | 99 ++++++++++++++++++++++\n 2 files changed, 100 insertions(+)\n create mode 100755 tests/functional/aarch64/test_virt_vbsa.py", "diff": "diff --git a/tests/functional/aarch64/meson.build b/tests/functional/aarch64/meson.build\nindex 49eca120589..7ea8c22b048 100644\n--- a/tests/functional/aarch64/meson.build\n+++ b/tests/functional/aarch64/meson.build\n@@ -46,6 +46,7 @@ tests_aarch64_system_thorough = [\n 'tuxrun',\n 'virt',\n 'virt_gpu',\n+ 'virt_vbsa',\n 'xen',\n 'xlnx_versal',\n ]\ndiff --git a/tests/functional/aarch64/test_virt_vbsa.py b/tests/functional/aarch64/test_virt_vbsa.py\nnew file mode 100755\nindex 00000000000..53cabf9d6c5\n--- /dev/null\n+++ b/tests/functional/aarch64/test_virt_vbsa.py\n@@ -0,0 +1,99 @@\n+#!/usr/bin/env python3\n+#\n+# Functional test that runs the Arm VBSA conformance tests.\n+#\n+# Copyright (c) 2026 Linaro Ltd.\n+#\n+# Author:\n+# Alex Bennée <alex.bennee@linaro.org>\n+#\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+\n+import shutil\n+from subprocess import check_call, DEVNULL\n+\n+from qemu_test import QemuSystemTest, Asset\n+from qemu_test import wait_for_console_pattern, get_qemu_img, skipIfMissingCommands\n+from qemu_test import exec_command_and_wait_for_pattern as ec_and_wait\n+\n+\n+@skipIfMissingCommands(\"mformat\", \"mcopy\", \"mmd\")\n+class Aarch64VirtMachine(QemuSystemTest):\n+ KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '\n+ timeout = 360\n+\n+ def wait_for_console_pattern(self, success_message, vm=None):\n+ wait_for_console_pattern(self, success_message,\n+ failure_message='Kernel panic - not syncing',\n+ vm=vm)\n+\n+ ASSET_VBSA_EFI = Asset('https://github.com/ARM-software/sysarch-acs/raw/refs/heads/main'\n+ '/prebuilt_images/VBSA/v25.12_VBSA_0.7.0/Vbsa.efi',\n+ '80f37d2fb86d152d95dec4d05ff099c9e47ee8a89314268e08056b0e1359e1fa')\n+\n+ ASSET_BSA_SHELL = Asset('https://github.com/ARM-software/bsa-acs/raw/refs/heads/main/'\n+ 'prebuilt_images/BSA_DT/v20.05_05_ALPHA/Shell.efi',\n+ '763e7b293fa9d1582153ea8fd0cf60e2a7a87d092d35d342cf9b3b697f47b588')\n+\n+ def test_aarch64_vbsa_uefi_tests(self):\n+ \"\"\"\n+ Launch the UEFI based VBSA test from an EFI file-system\n+ \"\"\"\n+\n+ self.vm.set_console()\n+\n+ # virt machine wi\n+ self.set_machine('virt')\n+ self.vm.add_args('-M', 'virt,gic-version=max,virtualization=on')\n+ self.vm.add_args('-cpu', 'max','-m', '1024')\n+\n+ # We will use the QEMU firmware blobs to boot\n+ code_path = self.build_file('pc-bios', 'edk2-aarch64-code.fd')\n+ vars_source = self.build_file('pc-bios', 'edk2-arm-vars.fd')\n+ vars_path = self.scratch_file('vars.fd')\n+ shutil.copy(vars_source, vars_path)\n+\n+ self.vm.add_args('-drive', f'if=pflash,format=raw,readonly=on,file={code_path}')\n+ self.vm.add_args('-drive', f'if=pflash,format=raw,file={vars_path}')\n+\n+ # Build an EFI FAT32 file-system for the UEFI tests\n+ vbsa_efi = self.ASSET_VBSA_EFI.fetch()\n+ bsa_shell = self.ASSET_BSA_SHELL.fetch()\n+\n+ img_path = self.scratch_file('vbsa.img')\n+ qemu_img = get_qemu_img(self)\n+ check_call([qemu_img, 'create', '-f', 'raw', img_path, '64M'],\n+ stdout=DEVNULL, stderr=DEVNULL)\n+\n+ check_call(['mformat', '-i', img_path, '-v', 'VBSA', '::'],\n+ stdout=DEVNULL, stderr=DEVNULL)\n+\n+ check_call(['mmd', '-i', img_path, '::/EFI'],\n+ stdout=DEVNULL, stderr=DEVNULL)\n+\n+ check_call(['mmd', '-i', img_path, '::/EFI/BOOT'],\n+ stdout=DEVNULL, stderr=DEVNULL)\n+\n+ check_call(['mcopy', '-i', img_path, bsa_shell, '::/EFI/BOOT/BOOTAA64.EFI'],\n+ stdout=DEVNULL, stderr=DEVNULL)\n+\n+ check_call(['mcopy', '-i', img_path, vbsa_efi, '::/Vbsa.efi'],\n+ stdout=DEVNULL, stderr=DEVNULL)\n+\n+ self.vm.add_args('-drive', f'file={img_path},format=raw,if=none,id=drive0')\n+ self.vm.add_args('-device', 'virtio-blk-pci,drive=drive0')\n+\n+ self.vm.launch()\n+\n+ # wait for EFI prompt\n+ self.wait_for_console_pattern('Shell>')\n+\n+ # Start the VBSA tests\n+ ec_and_wait(self, \"FS0:Vbsa.efi\", 'VBSA Architecture Compliance Suite')\n+\n+ # could we parse the summary somehow?\n+\n+ self.wait_for_console_pattern('VBSA tests complete. Reset the system.')\n+\n+if __name__ == '__main__':\n+ QemuSystemTest.main()\n", "prefixes": [ "6/6" ] }