From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766968683; cv=none; d=zohomail.com; s=zohoarc; b=UAYmRt0v8ngBxtWrOUOVr9EaB8+1e8Vv/9PQs8OGE7Qa5LCGkGAAzhYhWg2Is715ulbU/yMQGclwb7qbx7CoDB9uGNcKEOoAjzUY2N2M81qYB2Q+6+eFDsBcZdx0sqhllRhDWifcQg5aiX68sSnLt/0WOAYR5HO0uXv1Wi/vbw8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766968683; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=nogVXYS5TaSKPM6xLE8YC0n6PMyW6fu22HyazHTjDI4=; b=VUT8knpLJlNFUR5Y7MBbJ4HxnkAyBUT08QWCiUxLDDD3NN7l1DomIQtJKyceu4q4MT4pLLsg8O1pDHe3XzKJCFVY8OOt7IU7vu0uJmz1kUdnOSUmv29Lw6yPdQze0fU2lLuixQLQfAiTZHx1tx5Br6WZT7+ACyCtcLdO9q3W5TI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766968683962942.0930427619843; Sun, 28 Dec 2025 16:38:03 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 20EF441910; Sun, 28 Dec 2025 19:37:52 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id BD5C141873; Sun, 28 Dec 2025 19:30:04 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 28EF341AB5; Sun, 28 Dec 2025 18:49:06 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id BE0E8418BB for ; Sun, 28 Dec 2025 18:40:55 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-668-BdGN4XzAP-i6b2dBLqgD4w-1; Sun, 28 Dec 2025 18:40:54 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 500F6195608A for ; Sun, 28 Dec 2025 23:40:53 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 91846180035A for ; Sun, 28 Dec 2025 23:40:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965255; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nogVXYS5TaSKPM6xLE8YC0n6PMyW6fu22HyazHTjDI4=; b=iXr5lnEz/4kyqU30MbZktf4ibdVRcija9bmJBGs69coMsjrL9Ki5nPDfo9vtY8SUmlXHg1 TJVhEv5lcT70nkwaVQHRAmXzY+faS8+Ds9v0rnu14uPW2p0gdnC/hVF7p0+p4al9p9blIZ 0tCjLUbkCCd2PSQ0wXHXcMq3HmfxQOg= X-MC-Unique: BdGN4XzAP-i6b2dBLqgD4w-1 X-Mimecast-MFC-AGG-ID: BdGN4XzAP-i6b2dBLqgD4w_1766965253 To: devel@lists.libvirt.org Subject: [PATCH 01/29] schemas: Drop pflashFormat Date: Mon, 29 Dec 2025 00:40:20 +0100 Message-ID: <20251228234048.1711701-2-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: yxFo0B3Xump51qvc2hZM_Ex7VnaYU_mcbXfNGjFssuw_1766965253 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 667YTIZRIE6AURCFB5AX2WCBTY3J4VG6 X-Message-ID-Hash: 667YTIZRIE6AURCFB5AX2WCBTY3J4VG6 X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766968685408158500 Content-Type: text/plain; charset="utf-8"; x-default="true" It offers very little savings (dropping it actually reduces the numbers of lines in the file slightly) and gets in the way of upcoming changes. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/conf/schemas/domaincommon.rng | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index c7346526ef..400e7eec22 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -341,7 +341,9 @@ - + + + @@ -361,7 +363,9 @@ - + + + @@ -8027,12 +8031,6 @@ =20 - - - - - - --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766968628; cv=none; d=zohomail.com; s=zohoarc; b=fDBSPZxdMWglUmG6eWU++ugH3S3NKrgD/zVer829qk+W17Xt6xjSc/VubAd0ToI5NvGJmisyWdvqqY9hNMrp6oGV8WoTDNkeW/O0bYv2ceUkgV94glYiIfyE1NUTT2mOzHeOD3u+rSSZdcOfhr5fnO0jhVsYJEIrlBBVhshR0HQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766968628; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=pko6c5uE+8L4wYD10N/Xc2vEYXi0lsD5EWJDTl7oKHA=; b=dxcOBzcr+4jCiWVWkJ0aWIFuHgL7Nwz+IFZ0hOSX1FceefTctxhnqgHQWrT3DB/lOauHa2MZGWf724gybG3r9EwIFq7c+h9QJviwCeGVPxcjzPhBtpHisRFs+Y+yCErPvRh9D6t/Txd9gB0UaFbYRMYZQUtV9j57J8W+ZSOZJgM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766968628079865.475703912313; Sun, 28 Dec 2025 16:37:08 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id DFA2C418BA; Sun, 28 Dec 2025 19:36:53 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 1E73F3F31C; Sun, 28 Dec 2025 19:29:32 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 5066F3FC7D; Sun, 28 Dec 2025 18:49:05 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 1661D41B76 for ; Sun, 28 Dec 2025 18:40:57 -0500 (EST) Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-494-Ur5q1t9vMhqFGvkZblHI1A-1; Sun, 28 Dec 2025 18:40:55 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7C89A19560B2 for ; Sun, 28 Dec 2025 23:40:54 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BE6AA1800367 for ; Sun, 28 Dec 2025 23:40:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pko6c5uE+8L4wYD10N/Xc2vEYXi0lsD5EWJDTl7oKHA=; b=Rd24d+687G8ndhMKIkr+GRwef7BVlDyvIb09UK7+VeO2azJLwMGYekXr4le9az9prv8mU9 29DXsfTFi+xYIaB0e5OlqH4NVA1EsxZb2ua1DT3ftd5zEPJwoodMfuSaqZwYpikMFeyVXP Vs8dbJLz/poBzDMrfwcjE7jGshZqDJw= X-MC-Unique: Ur5q1t9vMhqFGvkZblHI1A-1 X-Mimecast-MFC-AGG-ID: Ur5q1t9vMhqFGvkZblHI1A_1766965254 To: devel@lists.libvirt.org Subject: [PATCH 02/29] schemas: Introduce firmware(Loader|Nvram)Formats Date: Mon, 29 Dec 2025 00:40:21 +0100 Message-ID: <20251228234048.1711701-3-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: i6hiN9h8XEiz9faQMb9TPtLM8jMDWDRSqqS0QCd5mQI_1766965254 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: CRZTNXBELEH52LGG3P6X6PHTGJBTKJYD X-Message-ID-Hash: CRZTNXBELEH52LGG3P6X6PHTGJBTKJYD X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766968629173158500 Content-Type: text/plain; charset="utf-8"; x-default="true" The name "pflashFormatTypes" was already inaccurate, since the format attribute applies to ROM loaders too. Additionally, we are soon going to introduce support for formats that can be used for NVRAMs and their templates but not for the corresponding executables, so we need two distinct lists despite the partial overlap. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/conf/schemas/domaincommon.rng | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 400e7eec22..c799bf04b7 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -342,7 +342,7 @@ - + @@ -359,12 +359,12 @@ - + - + @@ -8024,7 +8024,14 @@ =20 - + + + raw + qcow2 + + + + raw qcow2 --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766968744; cv=none; d=zohomail.com; s=zohoarc; b=Jk4G4jYFy3Hr63cWkIMpS9dPa1fkM1HNcCO2/t7ZgJe4zN1aL8Uf6s2cWK+6KolfPRRCl7RoWZPnI7nrPz2X+KLPMEol6ygWVFHbuihLAW1sWihlSIRXxsGap+h8ncsYsRVdKXE5BUIWQ4ll9Jk9s99sXaBxXsyNB8Ep1Z7SFm0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766968744; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=B91cenme06bXH//5Dkh7x+UoTPpcEYfoayDAXs51Md4=; b=F6v1TcIdlfjx/oy0pJUbm6t7OZXYHSL/hKkCioArIF5aXNZOyn7wr54RiQKEj9BaiE2qt4OqfAFZZRyZxv4VtECJ7cLJOQmZZ959QF7/j76BWePlK1q7Q7JVQQbQGkNxO5X9FYz+hlsAlz/69+Bv0JPFyo5mMq0MiY2AW01bswY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 17669687446151006.0786741422785; Sun, 28 Dec 2025 16:39:04 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 8967B3F8AE; Sun, 28 Dec 2025 19:39:03 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id DF86443EBF; Sun, 28 Dec 2025 19:30:52 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 54D2241A12; Sun, 28 Dec 2025 18:49:06 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id CE6D341A89 for ; Sun, 28 Dec 2025 18:40:58 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-512-q8e7-NF6NJykhtb1Os40qg-1; Sun, 28 Dec 2025 18:40:56 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CD5741956080 for ; Sun, 28 Dec 2025 23:40:55 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EB0011800367 for ; Sun, 28 Dec 2025 23:40:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=B91cenme06bXH//5Dkh7x+UoTPpcEYfoayDAXs51Md4=; b=X9c/kUu7ucUlnO/80kWYNB7vZFKEGDU7MWNZacVOWq4g3W4GAkIoVRX1nIkfzXIpb9HSWb Jkp4B/NI+8R+ZnsDrQWIt4w2ZJovNfJoZdP7yRulGCOIWQjZ8ko78WD/BmzDFjOyYbiMf2 Im8XmPZip1IgF8snpSBElfTKl7pSLQ8= X-MC-Unique: q8e7-NF6NJykhtb1Os40qg-1 X-Mimecast-MFC-AGG-ID: q8e7-NF6NJykhtb1Os40qg_1766965255 To: devel@lists.libvirt.org Subject: [PATCH 03/29] schemas: Allow JSON format for NVRAM Date: Mon, 29 Dec 2025 00:40:22 +0100 Message-ID: <20251228234048.1711701-4-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: zbmQtmYIpVihf8mgfLqfgBOVfBn5dtlaj95oUZ8cSL0_1766965255 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: I3ODZCVF47YGOQ5FRTDTYPEXJGXFHMFK X-Message-ID-Hash: I3ODZCVF47YGOQ5FRTDTYPEXJGXFHMFK X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766968745507158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/conf/schemas/domaincommon.rng | 1 + 1 file changed, 1 insertion(+) diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index c799bf04b7..ea5f8dac85 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -8035,6 +8035,7 @@ raw qcow2 + json =20 --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766968888; cv=none; d=zohomail.com; s=zohoarc; b=Rorv7+1KbVU1mWEgdXfLZ9ZFSadsY27cdyJCVBkVLj84DSDFSIJk5UMerClsaxY+8xiN8BMtj7LPDURhzRIj6kPbMpOMA/4mu1ty1boCd12bGTCjzELCG6AfnvcTyFI1CHSArA2fy+CN9VKXHDUQvay9IRwyTOc8/83QVHExPY0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766968888; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=wKNjEt1uuZIXByHGuTkreaJnbK877NUBDlWgcVw7rOE=; b=DbDjh2o9znbZLn/bKfwC7ODQ0iZ2xJrEsBk3dHRdjIHJZcnJiagvssaHN/IZOS3hRkgeVsdfV/75MMdA/sBSTkNk5hwRhv3QSzSELKam60hpj77m19FnKJ+tuyvtxTuiokkaR76XAAS1SWRdVZKPgvRPhDAugi/FhND32/4OESA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766968888005262.58874979819814; Sun, 28 Dec 2025 16:41:28 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id AEC3E419EC; Sun, 28 Dec 2025 19:41:24 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id A8AEA3F8A4; Sun, 28 Dec 2025 19:32:45 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 183B5419D3; Sun, 28 Dec 2025 18:49:08 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 3881F41B24 for ; Sun, 28 Dec 2025 18:40:59 -0500 (EST) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-636-H4Bt5uv1PxuRonk821heZQ-1; Sun, 28 Dec 2025 18:40:57 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DF8B41800342 for ; Sun, 28 Dec 2025 23:40:56 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2E43F1800367 for ; Sun, 28 Dec 2025 23:40:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wKNjEt1uuZIXByHGuTkreaJnbK877NUBDlWgcVw7rOE=; b=GhCayT8iobI/h5Wk6LatbT7CNivHlli04Z/gjzcHAbCzf/TKs8hzvFEzdGiPmDEgtsgGjI Vb1q2vdZMiWpsxNw6SVGQaMLzZMY+qxOr4NPoj35y7ELUwGUS0RO81Ei6FdWdKDZ2k0NZN GtlY/tMGKNFPphE0oeCz4zgVnAKfrk8= X-MC-Unique: H4Bt5uv1PxuRonk821heZQ-1 X-Mimecast-MFC-AGG-ID: H4Bt5uv1PxuRonk821heZQ_1766965257 To: devel@lists.libvirt.org Subject: [PATCH 04/29] conf: Introduce VIR_STORAGE_FILE_JSON Date: Mon, 29 Dec 2025 00:40:23 +0100 Message-ID: <20251228234048.1711701-5-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: q3PzRcSfRi-_VNsXidXug7E3-oZgoSXfUkCd35R92oI_1766965257 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TB7577OEYENCSO5ZV2GR4LL6KNI543C4 X-Message-ID-Hash: TB7577OEYENCSO5ZV2GR4LL6KNI543C4 X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766968889970158500 Content-Type: text/plain; charset="utf-8"; x-default="true" We will need to handle storage files using JSON format soon. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/conf/storage_source_conf.c | 2 +- src/conf/storage_source_conf.h | 1 + src/qemu/qemu_block.c | 2 ++ tests/storagepoolcapsschemadata/poolcaps-fs.xml | 5 +++++ tests/storagepoolcapsschemadata/poolcaps-full.xml | 5 +++++ .../out/qcow2-qcow2_qcow2-qcow2_qcow2-auto | 2 +- .../virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-auto | 2 +- tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-raw | 2 +- tests/virstoragetestdata/out/qcow2-symlinks | 2 +- .../out/qcow2datafile-qcow2_qcow2-datafile | 2 +- 10 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c index 087de1eaf2..e62707ba9b 100644 --- a/src/conf/storage_source_conf.c +++ b/src/conf/storage_source_conf.c @@ -57,7 +57,7 @@ VIR_ENUM_IMPL(virStorageFileFormat, "none", "raw", "dir", "bochs", "cloop", "dmg", "iso", - "vpc", "vdi", + "vpc", "vdi", "json", /* Not direct file formats, but used for various drivers */ "fat", "vhd", "ploop", /* Formats with backing file below here */ diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h index fc868b31af..0682da27f0 100644 --- a/src/conf/storage_source_conf.h +++ b/src/conf/storage_source_conf.h @@ -63,6 +63,7 @@ typedef enum { VIR_STORAGE_FILE_ISO, VIR_STORAGE_FILE_VPC, VIR_STORAGE_FILE_VDI, + VIR_STORAGE_FILE_JSON, =20 /* Not direct file formats, but used for various drivers */ VIR_STORAGE_FILE_FAT, diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index a7062d3e96..66384a8159 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1322,6 +1322,7 @@ qemuBlockStorageSourceGetBlockdevFormatProps(virStora= geSource *src) case VIR_STORAGE_FILE_COW: case VIR_STORAGE_FILE_ISO: case VIR_STORAGE_FILE_DIR: + case VIR_STORAGE_FILE_JSON: virReportError(VIR_ERR_INTERNAL_ERROR, _("mishandled storage format '%1$s'"), virStorageFileFormatTypeToString(src->format)); @@ -2317,6 +2318,7 @@ qemuBlockStorageSourceCreateGetFormatProps(virStorage= Source *src, case VIR_STORAGE_FILE_COW: case VIR_STORAGE_FILE_ISO: case VIR_STORAGE_FILE_DIR: + case VIR_STORAGE_FILE_JSON: return 0; =20 case VIR_STORAGE_FILE_AUTO_SAFE: diff --git a/tests/storagepoolcapsschemadata/poolcaps-fs.xml b/tests/storag= epoolcapsschemadata/poolcaps-fs.xml index eee75af746..1f59d33aef 100644 --- a/tests/storagepoolcapsschemadata/poolcaps-fs.xml +++ b/tests/storagepoolcapsschemadata/poolcaps-fs.xml @@ -12,6 +12,7 @@ iso vpc vdi + json fat vhd ploop @@ -55,6 +56,7 @@ iso vpc vdi + json fat vhd ploop @@ -88,6 +90,7 @@ iso vpc vdi + json fat vhd ploop @@ -167,6 +170,7 @@ iso vpc vdi + json fat vhd ploop @@ -193,6 +197,7 @@ iso vpc vdi + json fat vhd ploop diff --git a/tests/storagepoolcapsschemadata/poolcaps-full.xml b/tests/stor= agepoolcapsschemadata/poolcaps-full.xml index 805950a937..a4f532cbb8 100644 --- a/tests/storagepoolcapsschemadata/poolcaps-full.xml +++ b/tests/storagepoolcapsschemadata/poolcaps-full.xml @@ -12,6 +12,7 @@ iso vpc vdi + json fat vhd ploop @@ -55,6 +56,7 @@ iso vpc vdi + json fat vhd ploop @@ -88,6 +90,7 @@ iso vpc vdi + json fat vhd ploop @@ -167,6 +170,7 @@ iso vpc vdi + json fat vhd ploop @@ -193,6 +197,7 @@ iso vpc vdi + json fat vhd ploop diff --git a/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_qcow2-aut= o b/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_qcow2-auto index 79943f432e..c9db352af8 100644 --- a/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_qcow2-auto +++ b/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_qcow2-auto @@ -1,6 +1,6 @@ path:ABS_SRCDIR/virstoragetestdata/images/qcow2_qcow2-qcow2_qcow2-auto.qco= w2 backingStoreRaw: qcow2_qcow2-auto.qcow2 -backingStoreRawFormat: qcow2(14) +backingStoreRawFormat: qcow2(15) dataFileRaw: capacity: 1024 encryption: 0 diff --git a/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-auto = b/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-auto index 02e2c5a966..713df6086d 100644 --- a/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-auto +++ b/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-auto @@ -1,6 +1,6 @@ path:ABS_SRCDIR/virstoragetestdata/images/qcow2_qcow2-qcow2_raw-auto.qcow2 backingStoreRaw: qcow2_raw-auto.qcow2 -backingStoreRawFormat: qcow2(14) +backingStoreRawFormat: qcow2(15) dataFileRaw: capacity: 1024 encryption: 0 diff --git a/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-raw b= /tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-raw index 843a013ef5..fb741133df 100644 --- a/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-raw +++ b/tests/virstoragetestdata/out/qcow2-qcow2_qcow2-qcow2_raw-raw @@ -1,6 +1,6 @@ path:ABS_BUILDDIR/virstoragedata/wrap backingStoreRaw: ABS_BUILDDIR/virstoragedata/qcow2 -backingStoreRawFormat: qcow2(14) +backingStoreRawFormat: qcow2(15) dataFileRaw: capacity: 1024 encryption: 0 diff --git a/tests/virstoragetestdata/out/qcow2-symlinks b/tests/virstorage= testdata/out/qcow2-symlinks index c74cf6be53..8cc5d43e8f 100644 --- a/tests/virstoragetestdata/out/qcow2-symlinks +++ b/tests/virstoragetestdata/out/qcow2-symlinks @@ -1,6 +1,6 @@ path:ABS_SRCDIR/virstoragetestdata/images/sub/link2 backingStoreRaw: ../sub/link1 -backingStoreRawFormat: qcow2(14) +backingStoreRawFormat: qcow2(15) dataFileRaw: capacity: 1024 encryption: 0 diff --git a/tests/virstoragetestdata/out/qcow2datafile-qcow2_qcow2-datafil= e b/tests/virstoragetestdata/out/qcow2datafile-qcow2_qcow2-datafile index a200ba98fa..51dacec39c 100644 --- a/tests/virstoragetestdata/out/qcow2datafile-qcow2_qcow2-datafile +++ b/tests/virstoragetestdata/out/qcow2datafile-qcow2_qcow2-datafile @@ -1,6 +1,6 @@ path:ABS_SRCDIR/virstoragetestdata/images/qcow2datafile-datafile.qcow2 backingStoreRaw: datafile.qcow2 -backingStoreRawFormat: qcow2(14) +backingStoreRawFormat: qcow2(15) dataFileRaw: raw capacity: 1024 encryption: 0 --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766968801; cv=none; d=zohomail.com; s=zohoarc; b=XGHwv8zgijE6fH2Ix42cA6ornrVKRlEZHC+TizDjum+evEgXKzJCepN2y+pTV3yrby3Ht3Ybh3OeM3Zv4BJ1d1D4yfd1H68eNDyxjvjT0xpQZjSMghy9BHtcYy5b2IojUWX5alA5gQyrj2mfElo5+5f/YJg4BDiuUn9kg2uJyCs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766968801; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=QJJrFCstBboPPB7j4ur4E7Sh+FIFLOLT37zP9k6xwsU=; b=WjntpYxLG7nWNKlXF06yX0MZUZmLapWPGGUye41PKtFGcyBTuMB66wMUU3lFpSojcdkVkFTX77jWRM4V2Gzt8v6WHyGvWY/mLr8LWZvzBVKDYFiOXaC3S0FdxTw/aQYkVllsC5YSMwGi08iRBHX6igSgyVfYxcsB2nJhrzbSjeg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766968801377581.6270039029791; Sun, 28 Dec 2025 16:40:01 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 2CE6A41989; Sun, 28 Dec 2025 19:39:58 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id BA79541B5D; Sun, 28 Dec 2025 19:31:34 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 77DB141A16; Sun, 28 Dec 2025 18:49:07 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 131F941BAF for ; Sun, 28 Dec 2025 18:41:01 -0500 (EST) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-624-ByZc8AfIPfak0CSPuhIm9Q-1; Sun, 28 Dec 2025 18:40:58 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2EBD31800358 for ; Sun, 28 Dec 2025 23:40:58 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 5B49C1800367 for ; Sun, 28 Dec 2025 23:40:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QJJrFCstBboPPB7j4ur4E7Sh+FIFLOLT37zP9k6xwsU=; b=M23fYKcEEDXaLVyQTiGXm9sd0uExDH80Ng7CWTrSH6Y0BzKbjYdLKoHL6Knv0LhIW2UTym rXVjg926Fm/WvkiSAuT4rkz+cKfg6K8OZInKGmT6hn7k+boHNptERYY3FKMR8yy6OA4IzV bshgVnUdfl01Pa+ggN1D8kPw9SH+nhA= X-MC-Unique: ByZc8AfIPfak0CSPuhIm9Q-1 X-Mimecast-MFC-AGG-ID: ByZc8AfIPfak0CSPuhIm9Q_1766965258 To: devel@lists.libvirt.org Subject: [PATCH 05/29] conf: Allow JSON format for NVRAM in the parser Date: Mon, 29 Dec 2025 00:40:24 +0100 Message-ID: <20251228234048.1711701-6-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: KHlwjDZTkppalQmnGb7EPx3lqLmrpf0WP7-dWhh-pmc_1766965258 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: E3LAIKFVE3Y6WYDVOJPNJWPTVJNIXCZJ X-Message-ID-Hash: E3LAIKFVE3Y6WYDVOJPNJWPTVJNIXCZJ X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766968801693158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/conf/domain_conf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 25494cb01a..6fad82c026 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -17766,7 +17766,8 @@ virDomainLoaderDefParseXMLNvram(virDomainLoaderDef = *loader, =20 if (loader->nvramTemplateFormat !=3D VIR_STORAGE_FILE_NONE && loader->nvramTemplateFormat !=3D VIR_STORAGE_FILE_RAW && - loader->nvramTemplateFormat !=3D VIR_STORAGE_FILE_QCOW2) { + loader->nvramTemplateFormat !=3D VIR_STORAGE_FILE_QCOW2 && + loader->nvramTemplateFormat !=3D VIR_STORAGE_FILE_JSON) { virReportError(VIR_ERR_XML_ERROR, _("Unsupported nvram template format '%1$s'"), virStorageFileFormatTypeToString(loader->nvramTempl= ateFormat)); @@ -17782,7 +17783,8 @@ virDomainLoaderDefParseXMLNvram(virDomainLoaderDef = *loader, =20 if (src->format !=3D VIR_STORAGE_FILE_NONE && src->format !=3D VIR_STORAGE_FILE_RAW && - src->format !=3D VIR_STORAGE_FILE_QCOW2) { + src->format !=3D VIR_STORAGE_FILE_QCOW2 && + src->format !=3D VIR_STORAGE_FILE_JSON) { virReportError(VIR_ERR_XML_ERROR, _("Unsupported nvram format '%1$s'"), virStorageFileFormatTypeToString(src->format)); --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766968978; cv=none; d=zohomail.com; s=zohoarc; b=lY0hDBqWINkyhn4YBUuZfMbin+S4vo+dZynk3pXJtBu5ywX5EYGdJdsbReFiMd/t5OspifiFFo3ZJyTMmkDnOUvBiXN22St+qgey8iFxNs/2f/+cGzFFVp8iXS1mfAg3HaK9eWVQct5gpFRkDFBH+VbqFrJrF+b5tG+fBGS5FLs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766968978; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=hTntU4tYHgypZP0iS0ghrn8ATKYKvpd0nBNss8iLhkM=; b=fQEFbDTt9X1ZVkpUu1srH9oeSPRPk6/PfG1Vxj+Kiy2WfknX3B5Z9NCyC5T6m6cJoLApBOm3bo3ShQKPDaXDqtr4ZcvjnMtgrgT3tuVkM10VKLmxltEHt8oJp5PO7AjXGbyAP5ohollgld4ZF4EHUU8ZOYyv2UNIwddPNkT5maI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766968978786446.9321841663543; Sun, 28 Dec 2025 16:42:58 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id C8D1941C09; Sun, 28 Dec 2025 19:42:36 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 0099C43FE0; Sun, 28 Dec 2025 19:34:31 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id B197E41903; Sun, 28 Dec 2025 18:49:18 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id B75E641BD8 for ; Sun, 28 Dec 2025 18:41:02 -0500 (EST) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-425-BZqvGfp_MyCAM8p295TL6A-1; Sun, 28 Dec 2025 18:41:00 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 466C81800654 for ; Sun, 28 Dec 2025 23:40:59 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 8800B180035A for ; Sun, 28 Dec 2025 23:40:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hTntU4tYHgypZP0iS0ghrn8ATKYKvpd0nBNss8iLhkM=; b=HLd3XFMk+plRvd6QIa54/vJD+POx033BBBQcsK7nZ2IZR9wc8X3n20Exwle6K6NZj4Gjj/ BgUklkx3QuSlfKHVDXw/kO3wGjpdMHAcCjV7IfErBKIAtvd9pkjzTmnF55XvYyIBx58s3f j3rWDM9siZEc4pjX8z1PgstFAYMhnik= X-MC-Unique: BZqvGfp_MyCAM8p295TL6A-1 X-Mimecast-MFC-AGG-ID: BZqvGfp_MyCAM8p295TL6A_1766965259 To: devel@lists.libvirt.org Subject: [PATCH 06/29] qemu_firmware: Rename qemuFirmwareFlashFile to qemuFirmwareFile Date: Mon, 29 Dec 2025 00:40:25 +0100 Message-ID: <20251228234048.1711701-7-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: _wX0ryXQZ9zNqdXHFZI3xy5b7oVa6D8wmbcun-U069E_1766965259 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: MGJSM6SZ6K35AAI6UGCMPARRQ3FS2SMI X-Message-ID-Hash: MGJSM6SZ6K35AAI6UGCMPARRQ3FS2SMI X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766968980381158500 Content-Type: text/plain; charset="utf-8"; x-default="true" This type is currently only used when working with pflash firmware builds, so the name is accurate, but we are about to extend its usage to ROM builds as well. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 47 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 52205b72f8..e3471d9adb 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -61,6 +61,13 @@ VIR_ENUM_IMPL(qemuFirmwareOSInterface, ); =20 =20 +typedef struct _qemuFirmwareFile qemuFirmwareFile; +struct _qemuFirmwareFile { + char *filename; + char *format; +}; + + typedef enum { QEMU_FIRMWARE_FLASH_MODE_SPLIT, QEMU_FIRMWARE_FLASH_MODE_COMBINED, @@ -77,18 +84,12 @@ VIR_ENUM_IMPL(qemuFirmwareFlashMode, "stateless", ); =20 -typedef struct _qemuFirmwareFlashFile qemuFirmwareFlashFile; -struct _qemuFirmwareFlashFile { - char *filename; - char *format; -}; - =20 typedef struct _qemuFirmwareMappingFlash qemuFirmwareMappingFlash; struct _qemuFirmwareMappingFlash { qemuFirmwareFlashMode mode; - qemuFirmwareFlashFile executable; - qemuFirmwareFlashFile nvram_template; + qemuFirmwareFile executable; + qemuFirmwareFile nvram_template; }; =20 =20 @@ -198,7 +199,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuFirmwareOSInterface, = qemuFirmwareOSInterfaceFr =20 =20 static void -qemuFirmwareFlashFileFreeContent(qemuFirmwareFlashFile *flash) +qemuFirmwareFileFreeContent(qemuFirmwareFile *flash) { g_free(flash->filename); g_free(flash->format); @@ -208,8 +209,8 @@ qemuFirmwareFlashFileFreeContent(qemuFirmwareFlashFile = *flash) static void qemuFirmwareMappingFlashFreeContent(qemuFirmwareMappingFlash *flash) { - qemuFirmwareFlashFileFreeContent(&flash->executable); - qemuFirmwareFlashFileFreeContent(&flash->nvram_template); + qemuFirmwareFileFreeContent(&flash->executable); + qemuFirmwareFileFreeContent(&flash->nvram_template); } =20 =20 @@ -325,9 +326,9 @@ qemuFirmwareInterfaceParse(const char *path, =20 =20 static int -qemuFirmwareFlashFileParse(const char *path, - virJSONValue *doc, - qemuFirmwareFlashFile *flash) +qemuFirmwareFileParse(const char *path, + virJSONValue *doc, + qemuFirmwareFile *fwfile) { const char *filename; const char *format; @@ -337,14 +338,14 @@ qemuFirmwareFlashFileParse(const char *path, return -1; } =20 - flash->filename =3D g_strdup(filename); + fwfile->filename =3D g_strdup(filename); =20 if (!(format =3D virJSONValueObjectGetString(doc, "format"))) { VIR_DEBUG("missing 'format' in '%s'", path); return -1; } =20 - flash->format =3D g_strdup(format); + fwfile->format =3D g_strdup(format); =20 return 0; } @@ -382,7 +383,7 @@ qemuFirmwareMappingFlashParse(const char *path, return -1; } =20 - if (qemuFirmwareFlashFileParse(path, executable, &flash->executable) <= 0) + if (qemuFirmwareFileParse(path, executable, &flash->executable) < 0) return -1; =20 if (flash->mode =3D=3D QEMU_FIRMWARE_FLASH_MODE_SPLIT) { @@ -391,7 +392,7 @@ qemuFirmwareMappingFlashParse(const char *path, return -1; } =20 - if (qemuFirmwareFlashFileParse(path, nvram_template, &flash->nvram= _template) < 0) + if (qemuFirmwareFileParse(path, nvram_template, &flash->nvram_temp= late) < 0) return -1; } =20 @@ -637,19 +638,19 @@ qemuFirmwareInterfaceFormat(virJSONValue *doc, =20 =20 static virJSONValue * -qemuFirmwareFlashFileFormat(qemuFirmwareFlashFile flash) +qemuFirmwareFileFormat(qemuFirmwareFile fwfile) { g_autoptr(virJSONValue) json =3D virJSONValueNewObject(); virJSONValue *ret; =20 if (virJSONValueObjectAppendString(json, "filename", - flash.filename) < 0) + fwfile.filename) < 0) return NULL; =20 if (virJSONValueObjectAppendString(json, "format", - flash.format) < 0) + fwfile.format) < 0) return NULL; =20 ret =3D g_steal_pointer(&json); @@ -669,7 +670,7 @@ qemuFirmwareMappingFlashFormat(virJSONValue *mapping, qemuFirmwareFlashModeTypeToString(f= lash->mode)) < 0) return -1; =20 - if (!(executable =3D qemuFirmwareFlashFileFormat(flash->executable))) + if (!(executable =3D qemuFirmwareFileFormat(flash->executable))) return -1; =20 if (virJSONValueObjectAppend(mapping, @@ -678,7 +679,7 @@ qemuFirmwareMappingFlashFormat(virJSONValue *mapping, return -1; =20 if (flash->mode =3D=3D QEMU_FIRMWARE_FLASH_MODE_SPLIT) { - if (!(nvram_template =3D qemuFirmwareFlashFileFormat(flash->nvram_= template))) + if (!(nvram_template =3D qemuFirmwareFileFormat(flash->nvram_templ= ate))) return -1; =20 if (virJSONValueObjectAppend(mapping, --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969052; cv=none; d=zohomail.com; s=zohoarc; b=faxs1t7D83SCTHKXRY0MGSrQzH8ZEbI6vney3IF/u2O2j2BLjWrWiR5yRQdj80mJNkmIO+OKM+5pVulqTHTUbYVmK2nN913oU7D+r9th3t5CLzMfKmKzyBv6K30teiBQbxXybYW4s3c7o60TpH/kzx6aqyb9FZJ1bWug/bquScQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969052; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=DrYYbJGbJo1sm+r+4AC6MgmiR3fA4Y8wwzk0mWpVkW8=; b=Xm0VOXWfRxD8JxUcq1ejvn21XyCb3m2pejXHy2xbJQm21LHyPW42W2bCjl+k2c1a+CC8kUr4+0xW3gENJHkEGKecgGV2HagMB9B0i+uNZePtc1N9yFVXeXTuZjJg9SncTNA/UQS0clk5qZOboX5suYh0U6DBGgFuMjcfplKU9vU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969052525605.9884414617799; Sun, 28 Dec 2025 16:44:12 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 830644193D; Sun, 28 Dec 2025 19:44:09 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 0119241C4D; Sun, 28 Dec 2025 19:36:51 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id A9CE941A27; Sun, 28 Dec 2025 18:49:25 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id B05D74186D for ; Sun, 28 Dec 2025 18:41:03 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-687-8O7FYQL0PKGxX7OTdRB95Q-1; Sun, 28 Dec 2025 18:41:01 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7311E1956089 for ; Sun, 28 Dec 2025 23:41:00 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B4BED1800367 for ; Sun, 28 Dec 2025 23:40:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DrYYbJGbJo1sm+r+4AC6MgmiR3fA4Y8wwzk0mWpVkW8=; b=UEAaIF08po1NeEi6SlNnkWgcYs+6YQgl1vqiol7MPr6wZolBS4rNImVe0BPiTF1uDBus+0 BFAx90nQm3O0QF1ArFbBVyX8Uu/d9WmqYEFE7OzCrDpE520/DWiIqFclKK1GybtX8208vZ 3N41Dqd1NgVRK4r+eXa+Lo4iVqWHY+c= X-MC-Unique: 8O7FYQL0PKGxX7OTdRB95Q-1 X-Mimecast-MFC-AGG-ID: 8O7FYQL0PKGxX7OTdRB95Q_1766965260 To: devel@lists.libvirt.org Subject: [PATCH 07/29] qemu_firmware: Use qemuFirmwareFile in qemuFirmwareMappingMemory Date: Mon, 29 Dec 2025 00:40:26 +0100 Message-ID: <20251228234048.1711701-8-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: pj7SU-Fjbgctq4bmCODOHrH9v7xjoYh5jnUGIaB2zA8_1766965260 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: EV4CQOC2IKYQDA4BBO7RTUFV3JK33YGI X-Message-ID-Hash: EV4CQOC2IKYQDA4BBO7RTUFV3JK33YGI X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969054576158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Not very useful for now, but sets the stage for further changes. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index e3471d9adb..5f5550424f 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -95,7 +95,7 @@ struct _qemuFirmwareMappingFlash { =20 typedef struct _qemuFirmwareMappingMemory qemuFirmwareMappingMemory; struct _qemuFirmwareMappingMemory { - char *filename; + qemuFirmwareFile executable; }; =20 =20 @@ -217,7 +217,7 @@ qemuFirmwareMappingFlashFreeContent(qemuFirmwareMapping= Flash *flash) static void qemuFirmwareMappingMemoryFreeContent(qemuFirmwareMappingMemory *memory) { - g_free(memory->filename); + qemuFirmwareFileFreeContent(&memory->executable); } =20 =20 @@ -412,7 +412,8 @@ qemuFirmwareMappingMemoryParse(const char *path, return -1; } =20 - memory->filename =3D g_strdup(filename); + memory->executable.filename =3D g_strdup(filename); + memory->executable.format =3D g_strdup("raw"); =20 return 0; } @@ -698,7 +699,7 @@ qemuFirmwareMappingMemoryFormat(virJSONValue *mapping, { if (virJSONValueObjectAppendString(mapping, "filename", - memory->filename) < 0) + memory->executable.filename) < 0) return -1; =20 return 0; @@ -890,7 +891,7 @@ qemuFirmwareMatchesPaths(const qemuFirmware *fw, break; case QEMU_FIRMWARE_DEVICE_MEMORY: if (loader && loader->path && - !virFileComparePaths(loader->path, memory->filename)) + !virFileComparePaths(loader->path, memory->executable.filename= )) return false; break; case QEMU_FIRMWARE_DEVICE_NONE: @@ -1481,7 +1482,7 @@ qemuFirmwareEnableFeaturesModern(virDomainDef *def, loader->format =3D VIR_STORAGE_FILE_RAW; =20 VIR_FREE(loader->path); - loader->path =3D g_strdup(memory->filename); + loader->path =3D g_strdup(memory->executable.filename); =20 VIR_DEBUG("decided on loader '%s'", loader->path); @@ -2078,7 +2079,7 @@ qemuFirmwareGetSupported(const char *machine, break; =20 case QEMU_FIRMWARE_DEVICE_MEMORY: - fwpath =3D memory->filename; + fwpath =3D memory->executable.filename; break; =20 case QEMU_FIRMWARE_DEVICE_NONE: --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969156; cv=none; d=zohomail.com; s=zohoarc; b=aGwxoQvkpDezNAXpduX0RXJZlC4IkCleOUjrC3tWSXxkzUWtqN77MMgi4dJaQjNqP6FmDIFxiiHwmHuS3qeCtU/a/pFamSctG0SJeJYy9mSZW6dc8w8/m/sh4xdeHTrS9+UTDuT3Ngcw3sjjFThHG3SzC2ua8ogvprj8F+R/gUA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969156; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=Elw5JQqPQGAXZ0s5AtvF8v9D+eNEE8n6/3pAQFGkh/s=; b=T2uHejWiT9S+xfsGu11KOcWeeiLgLbIIsavs+TxVSkzxbMXXM75df8MnIQUSddamoUa/Dk6IcF/x3QbbABSgF/APkNAnd+95KL3tba0VKXWuYZgGOHSfkk+iT0AsdEVpX1iC1qCCFmMSsRUGRO0LtvnnwEFHj1J5bq8A2CqQjkU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969156455887.920594276151; Sun, 28 Dec 2025 16:45:56 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 749ED3F92F; Sun, 28 Dec 2025 19:45:55 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 2A2C241910; Sun, 28 Dec 2025 19:39:21 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 1B35D419FF; Sun, 28 Dec 2025 18:49:26 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 5198E41BEB for ; Sun, 28 Dec 2025 18:41:04 -0500 (EST) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-630-VJ9HUz19PSqjfk22GvlSFA-1; Sun, 28 Dec 2025 18:41:02 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9EDD9180028B for ; Sun, 28 Dec 2025 23:41:01 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E1D1E1800665 for ; Sun, 28 Dec 2025 23:41:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965264; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Elw5JQqPQGAXZ0s5AtvF8v9D+eNEE8n6/3pAQFGkh/s=; b=TlgN96pn1r8yuiUJmUvrpg62pP4UTUG1wygC58Dbb2Fvy6SYfzz9efwXzW0fc3XHxIhR0a 9lSECMgcHA8ql20mv46xlXOtNAlvat6P7aWhr7HEJBYojBdgDJ1kUPVxeDi6TyyTNtNB4p IZOXCznjEPsCgbkNxk6jw09obezvxdw= X-MC-Unique: VJ9HUz19PSqjfk22GvlSFA-1 X-Mimecast-MFC-AGG-ID: VJ9HUz19PSqjfk22GvlSFA_1766965261 To: devel@lists.libvirt.org Subject: [PATCH 08/29] DONOTMERGE: qemu_firmware: Support extended syntax for ROM firmware descriptors Date: Mon, 29 Dec 2025 00:40:27 +0100 Message-ID: <20251228234048.1711701-9-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: bzg_DbILsR0NKsrkFN3M9hQfLzmQqgLGReDo2K-1bmg_1766965261 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: VKZQUHGGLKP3YWX5FCY4UUVME4ZOIS34 X-Message-ID-Hash: VKZQUHGGLKP3YWX5FCY4UUVME4ZOIS34 X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969157028158500 Content-Type: text/plain; charset="utf-8"; x-default="true" The legacy syntax can only describe stateless firmware builds, while the extended one can additionally describe split builds where an NVRAM file is used for variable storage. The extended syntax is basically identical to the one that we already have to support for flash firmware descriptors. It's a strict superset of the legacy one, so we can always store the former one internally and not worry about the differences past the parse phase. Some of the output files for qemufirmwaretest are updated as a consequence of this, but the changes are not semantically meaningful. DONOTMERGE: The extended syntax has not been accepted into the official spec yet. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 130 ++++++++++++++++-- ...tdx.json =3D> 50-edk2-ovmf-x64-microvm.json} | 12 +- .../firmware/60-edk2-ovmf-x64-inteltdx.json | 6 +- .../out/usr/share/qemu/firmware/91-bios.json | 33 +++++ 4 files changed, 166 insertions(+), 15 deletions(-) copy tests/qemufirmwaredata/out/usr/share/qemu/firmware/{60-edk2-ovmf-x64-= inteltdx.json =3D> 50-edk2-ovmf-x64-microvm.json} (56%) create mode 100644 tests/qemufirmwaredata/out/usr/share/qemu/firmware/91-b= ios.json diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 5f5550424f..bf6090fac0 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -93,9 +93,26 @@ struct _qemuFirmwareMappingFlash { }; =20 =20 +typedef enum { + QEMU_FIRMWARE_MEMORY_MODE_SPLIT, + QEMU_FIRMWARE_MEMORY_MODE_STATELESS, + + QEMU_FIRMWARE_MEMORY_MODE_LAST, +} qemuFirmwareMemoryMode; + +VIR_ENUM_DECL(qemuFirmwareMemoryMode); +VIR_ENUM_IMPL(qemuFirmwareMemoryMode, + QEMU_FIRMWARE_MEMORY_MODE_LAST, + "split", + "stateless", +); + + typedef struct _qemuFirmwareMappingMemory qemuFirmwareMappingMemory; struct _qemuFirmwareMappingMemory { + qemuFirmwareMemoryMode mode; qemuFirmwareFile executable; + qemuFirmwareFile nvram_template; }; =20 =20 @@ -218,6 +235,7 @@ static void qemuFirmwareMappingMemoryFreeContent(qemuFirmwareMappingMemory *memory) { qemuFirmwareFileFreeContent(&memory->executable); + qemuFirmwareFileFreeContent(&memory->nvram_template); } =20 =20 @@ -405,15 +423,90 @@ qemuFirmwareMappingMemoryParse(const char *path, virJSONValue *doc, qemuFirmwareMappingMemory *memory) { - const char *filename; - - if (!(filename =3D virJSONValueObjectGetString(doc, "filename"))) { - VIR_DEBUG("missing 'filename' in '%s'", path); + virJSONValue *mode; + virJSONValue *executable; + virJSONValue *nvram_template; + virJSONValue *filename; + + mode =3D virJSONValueObjectGet(doc, "mode"); + executable =3D virJSONValueObjectGet(doc, "executable"); + nvram_template =3D virJSONValueObjectGet(doc, "nvram-template"); + filename =3D virJSONValueObjectGet(doc, "filename"); + + /* Firmware descriptors can use either the legacy syntax (filename) or + * the extended one (mode, executable and optionally nvram-template), + * but mixing and matching the two is not allowed. Malformed firmware + * descriptors will be ignored */ + if (!executable && !filename) { + VIR_DEBUG("Must have one of 'executable' and 'filename' in '%s'", = path); + return -1; + } + if (executable && filename) { + VIR_DEBUG("Cannot have both 'executable' and 'filename' in '%s'", = path); return -1; } + if (executable && !mode) { + VIR_DEBUG("Must have 'mode' with 'executable' in '%s'", path); + return -1; + } + if (filename && mode) { + VIR_DEBUG("Cannot have 'mode' with 'filename' in '%s'", path); + return -1; + } + if (filename && nvram_template) { + VIR_DEBUG("Cannot have 'nvram_template' with 'filename' in '%s'", = path); + return -1; + } + + if (mode) { + const char *modestr; + int modeval; + + modestr =3D virJSONValueGetString(mode); + if (!modestr) { + VIR_DEBUG("Value of 'mode' is not a string in '%s'", path); + return -1; + } =20 - memory->executable.filename =3D g_strdup(filename); - memory->executable.format =3D g_strdup("raw"); + modeval =3D qemuFirmwareMemoryModeTypeFromString(modestr); + if (modeval < 0) { + VIR_DEBUG("Unrecognized value '%s' for 'mode' in '%s'", modest= r, path); + return -1; + } + + memory->mode =3D modeval; + } else { + /* Default for legacy syntax */ + memory->mode =3D QEMU_FIRMWARE_MEMORY_MODE_STATELESS; + } + + if (executable) { + if (qemuFirmwareFileParse(path, executable, &memory->executable) <= 0) + return -1; + } + + if (memory->mode =3D=3D QEMU_FIRMWARE_MEMORY_MODE_SPLIT) { + if (!nvram_template) { + VIR_DEBUG("Missing mandatory 'nvram-template' for mode=3Dsplit= in '%s'", path); + return -1; + } + + if (qemuFirmwareFileParse(path, nvram_template, &memory->nvram_tem= plate) < 0) + return -1; + } + + if (filename) { + const char *filenameval; + + filenameval =3D virJSONValueGetString(filename); + if (!filenameval) { + VIR_DEBUG("Value of 'filename' is not a string in '%s'", path); + return -1; + } + + memory->executable.filename =3D g_strdup(filenameval); + memory->executable.format =3D g_strdup("raw"); + } =20 return 0; } @@ -697,11 +790,32 @@ static int qemuFirmwareMappingMemoryFormat(virJSONValue *mapping, qemuFirmwareMappingMemory *memory) { + g_autoptr(virJSONValue) executable =3D NULL; + g_autoptr(virJSONValue) nvram_template =3D NULL; + if (virJSONValueObjectAppendString(mapping, - "filename", - memory->executable.filename) < 0) + "mode", + qemuFirmwareMemoryModeTypeToString(= memory->mode)) < 0) + return -1; + + if (!(executable =3D qemuFirmwareFileFormat(memory->executable))) + return -1; + + if (virJSONValueObjectAppend(mapping, + "executable", + &executable) < 0) return -1; =20 + if (memory->mode =3D=3D QEMU_FIRMWARE_MEMORY_MODE_SPLIT) { + if (!(nvram_template =3D qemuFirmwareFileFormat(memory->nvram_temp= late))) + return -1; + + if (virJSONValueObjectAppend(mapping, + "nvram-template", + &nvram_template) < 0) + return -1; + } + return 0; } =20 diff --git a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovm= f-x64-inteltdx.json b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/50= -edk2-ovmf-x64-microvm.json similarity index 56% copy from tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x= 64-inteltdx.json copy to tests/qemufirmwaredata/out/usr/share/qemu/firmware/50-edk2-ovmf-x64= -microvm.json index 2630b57b05..ebe1c2db55 100644 --- a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-i= nteltdx.json +++ b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/50-edk2-ovmf-x64-m= icrovm.json @@ -4,20 +4,20 @@ ], "mapping": { "device": "memory", - "filename": "/usr/share/edk2/ovmf/OVMF.inteltdx.secboot.fd" + "mode": "stateless", + "executable": { + "filename": "/usr/share/edk2/ovmf/MICROVM.fd", + "format": "raw" + } }, "targets": [ { "architecture": "x86_64", "machines": [ - "pc-q35-*" + "microvm" ] } ], "features": [ - "enrolled-keys", - "intel-tdx", - "secure-boot", - "verbose-dynamic" ] } diff --git a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovm= f-x64-inteltdx.json b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60= -edk2-ovmf-x64-inteltdx.json index 2630b57b05..68a1cb4ee0 100644 --- a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-i= nteltdx.json +++ b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-i= nteltdx.json @@ -4,7 +4,11 @@ ], "mapping": { "device": "memory", - "filename": "/usr/share/edk2/ovmf/OVMF.inteltdx.secboot.fd" + "mode": "stateless", + "executable": { + "filename": "/usr/share/edk2/ovmf/OVMF.inteltdx.secboot.fd", + "format": "raw" + } }, "targets": [ { diff --git a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/91-bios.jso= n b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/91-bios.json new file mode 100644 index 0000000000..10a22969f4 --- /dev/null +++ b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/91-bios.json @@ -0,0 +1,33 @@ +{ + "interface-types": [ + "bios" + ], + "mapping": { + "device": "memory", + "mode": "stateless", + "executable": { + "filename": "/usr/share/seabios/bios-256k.bin", + "format": "raw" + } + }, + "targets": [ + { + "architecture": "i386", + "machines": [ + "pc-i440fx-*", + "pc-q35-*" + ] + }, + { + "architecture": "x86_64", + "machines": [ + "pc-i440fx-*", + "pc-q35-*" + ] + } + ], + "features": [ + "acpi-s3", + "acpi-s4" + ] +} --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969613; cv=none; d=zohomail.com; s=zohoarc; b=EuwUVIMGNLBEGgN7U2jfkcbBrsHebPFCyIyAgi+u1nbbFRsCxscq9SAl90QRmONlkAZxiTe5q2rWiNnN3K6Aj7fj5A55hF7mDIOi6sphi97utsLy7aEIvL/5iCIH9o7Vr5Y8CI9RT9+S7WhdpR5fiB4khvN7eIzxy9RwA9sccxQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969613; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=49cpXhy4JfB3MOzMgWkMqCQVgwt3DT9wVlvmJQOEODg=; b=lqRTplpCtrIXF/KQJZyliXMdPBeWkNeKrwuPw37dau+wfdDo9wA3YgOn0hTfZHod0AnWegth3mQWRtejQCt2X7wk2MWeL5vmsKbCrbvAK/HeYwc7zLkKJU7DnHazplxLnnOA9XwNPbe/m82pdICySeaehTEyDWOhOs7/coW5E6g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969613621326.0777181846729; Sun, 28 Dec 2025 16:53:33 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id BD56941939; Sun, 28 Dec 2025 19:53:32 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id A70D243E73; Sun, 28 Dec 2025 19:44:43 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 2769E419FF; Sun, 28 Dec 2025 18:49:31 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 37EEF41BB3 for ; Sun, 28 Dec 2025 18:41:05 -0500 (EST) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-693-_tI_ApCSNdS6budHOqzHQA-1; Sun, 28 Dec 2025 18:41:03 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 91DA518011DF for ; Sun, 28 Dec 2025 23:41:02 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1A317180035A for ; Sun, 28 Dec 2025 23:41:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965264; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=49cpXhy4JfB3MOzMgWkMqCQVgwt3DT9wVlvmJQOEODg=; b=Yse6GjHAlEr1wfnZF0aUOHwuW4x1HXviGYJ9bLr/QYp/uylDb8Bfs/PuDfsuSdeLPq4fmC ruQu45ZkUB+02Nd4EGQfKse10kKclIeMdxfY7aOn72a8iLgQ/L4MU2Zu3MiFaLS2hrPvQo o+JiNlOcVrZxwLX7SxSBSy7f5QuJfBY= X-MC-Unique: _tI_ApCSNdS6budHOqzHQA-1 X-Mimecast-MFC-AGG-ID: _tI_ApCSNdS6budHOqzHQA_1766965262 To: devel@lists.libvirt.org Subject: [PATCH 09/29] qemu_firmware: Report NVRAM template path for ROMs Date: Mon, 29 Dec 2025 00:40:28 +0100 Message-ID: <20251228234048.1711701-10-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: jhWcCqXNXagc5lfm5K2QNOfxtXw2MF_v640O4gjyFh0_1766965262 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: GX3IPHA5FKQJRSHHTUIHTUMN74TU57QY X-Message-ID-Hash: GX3IPHA5FKQJRSHHTUIHTUMN74TU57QY X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969614778158500 Content-Type: text/plain; charset="utf-8"; x-default="true" This was not necessary until now since ROMs couldn't have an associate NVRAM template, but that's a possibility now and we have to account for it. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index bf6090fac0..770c886136 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -2194,6 +2194,7 @@ qemuFirmwareGetSupported(const char *machine, =20 case QEMU_FIRMWARE_DEVICE_MEMORY: fwpath =3D memory->executable.filename; + nvrampath =3D memory->nvram_template.filename; break; =20 case QEMU_FIRMWARE_DEVICE_NONE: --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969384; cv=none; d=zohomail.com; s=zohoarc; b=GVAzp6B2yAjnwsQIcs5NWlVN/JDcjy7Uu1Wjslk7Ugi8PSmHllqVT8bktim0im1GwFhOhKya1wSHyCuHBcI7+ErxNLJEKsLex3oD4LeSK6azY0De7J7qcsY/7gkzM7kyGAbeLHtoa91pYquLMzJo7LUvalagX5gQR7HM+gw2tvk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969384; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=n2DiFzHY+dVrGxX5QI/6RWn4/wSYw6kElVUR3y+5kzs=; b=UUOoCLR/8f0HakHeRDxTFa4Re8V35BUuVUwUtLHRCnsuJ54kz+5UhggJ+mL0H7wArsce1O/Segs+qcEOIE9h2OX8fSZCnygQBx7z2JXHecDoE/3FdY/dAAO2vrETE4NlKMsn2vlzRNEzyoiO6czo2rxWNKaEAhHQSURH1vD4RjI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969384433892.4315782084544; Sun, 28 Dec 2025 16:49:44 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 7C48E41B17; Sun, 28 Dec 2025 19:49:38 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 5F47343DAA; Sun, 28 Dec 2025 19:42:07 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 84D50418DD; Sun, 28 Dec 2025 18:49:30 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 513F141C9C for ; Sun, 28 Dec 2025 18:41:06 -0500 (EST) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-27-1i7eApEpMxKkvZSzJwS3GQ-1; Sun, 28 Dec 2025 18:41:04 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C0D55195DE61 for ; Sun, 28 Dec 2025 23:41:03 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 0DDE9180035A for ; Sun, 28 Dec 2025 23:41:02 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=n2DiFzHY+dVrGxX5QI/6RWn4/wSYw6kElVUR3y+5kzs=; b=TfdURYudur6X0oMikzx3PO+kdRyp5tmiWC3ouhJ8m40vGf2UbcdjW/0q+4owdbD70k5LSc LF2TvLj82DcY4PhBrYQCgGI9gPSbF0V+NCFZSpCRzgWayVmfa7XegQ0zBeL0BeGrgnCYgg gE9SxQxsIFtMQZp4oQa8bb9z8SmQH/I= X-MC-Unique: 1i7eApEpMxKkvZSzJwS3GQ-1 X-Mimecast-MFC-AGG-ID: 1i7eApEpMxKkvZSzJwS3GQ_1766965263 To: devel@lists.libvirt.org Subject: [PATCH 10/29] qemu_firmware: Fill in more information for ROMs Date: Mon, 29 Dec 2025 00:40:29 +0100 Message-ID: <20251228234048.1711701-11-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: Law4HXieA7FSiNltUQ3fn6blPvS9-OrfoH7uVjI2X80_1766965263 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 67NDIVX62BMLT66LI2TFRJFFL6R6II45 X-Message-ID-Hash: 67NDIVX62BMLT66LI2TFRJFFL6R6II45 X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969385699158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 30 +++++++++++++++++-- ...ware-auto-bios-stateless.x86_64-latest.xml | 2 +- .../firmware-auto-bios.x86_64-latest.xml | 2 +- ...-manual-efi-tdx.x86_64-latest+inteltdx.xml | 2 +- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 770c886136..fc78433100 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1588,18 +1588,42 @@ qemuFirmwareEnableFeaturesModern(virDomainDef *def, break; =20 case QEMU_FIRMWARE_DEVICE_MEMORY: + if ((format =3D virStorageFileFormatTypeFromString(memory->executa= ble.format)) < 0) + return -1; + if (!def->os.loader) def->os.loader =3D virDomainLoaderDefNew(); loader =3D def->os.loader; =20 loader->type =3D VIR_DOMAIN_LOADER_TYPE_ROM; - loader->format =3D VIR_STORAGE_FILE_RAW; + loader->format =3D format; + + loader->readonly =3D VIR_TRISTATE_BOOL_YES; + + if (memory->mode =3D=3D QEMU_FIRMWARE_MEMORY_MODE_STATELESS) + loader->stateless =3D VIR_TRISTATE_BOOL_YES; =20 VIR_FREE(loader->path); loader->path =3D g_strdup(memory->executable.filename); =20 - VIR_DEBUG("decided on loader '%s'", - loader->path); + if (memory->mode =3D=3D QEMU_FIRMWARE_MEMORY_MODE_SPLIT) { + /* Only fill in nvramTemplate if the NVRAM location is already + * known to be a local path or hasn't been provided, in which + * case a local path will be generated by libvirt later. + * + * We can't create or reset non-local NVRAM files, so filling + * in nvramTemplate for those would be misleading */ + VIR_FREE(loader->nvramTemplate); + loader->nvramTemplateFormat =3D VIR_STORAGE_FILE_NONE; + + if (!loader->nvram || virStorageSourceIsLocalStorage(loader->n= vram)) { + loader->nvramTemplate =3D g_strdup(memory->nvram_template.= filename); + loader->nvramTemplateFormat =3D virStorageFileFormatTypeFr= omString(memory->nvram_template.format); + } + } + + VIR_DEBUG("decided on firmware '%s' template '%s'", + loader->path, NULLSTR(loader->nvramTemplate)); break; =20 case QEMU_FIRMWARE_DEVICE_NONE: diff --git a/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-late= st.xml b/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.x= ml index 547dff5ed3..ca4ffb0e6c 100644 --- a/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.xml @@ -10,7 +10,7 @@ - /usr/share/seabi= os/bios-256k.bin + /usr/share/seabios/bios-256k.bin diff --git a/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml b/t= ests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml index ae9c9f56d9..ca4ffb0e6c 100644 --- a/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml @@ -10,7 +10,7 @@ - /usr/share/seabios/bios-256k.bin + /usr/share/seabios/bios-256k.bin diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-tdx.x86_64-latest+in= teltdx.xml b/tests/qemuxmlconfdata/firmware-manual-efi-tdx.x86_64-latest+in= teltdx.xml index 5b87857425..6dc8496d3d 100644 --- a/tests/qemuxmlconfdata/firmware-manual-efi-tdx.x86_64-latest+inteltdx.= xml +++ b/tests/qemuxmlconfdata/firmware-manual-efi-tdx.x86_64-latest+inteltdx.= xml @@ -10,7 +10,7 @@ - /usr/share/edk2/o= vmf/OVMF.inteltdx.secboot.fd + /usr/share/edk2/ovmf/OVMF.inteltdx.secboot.fd --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969229; cv=none; d=zohomail.com; s=zohoarc; b=cnBt4XR4L9L+ET4xI5Mk0dcGBaOoofSUr17Zk6Zi0iIhRdbosRUlX+IwRlikrpkBVpEGBlWq2wzGYzBvUDDEO0aph99Xx+RSVTiU5ng/0UBhLhNI1yZeV2o0W9TP4z64ErI2vQBDTsvaWl37eKD7Y8WjcJ9WgK7iduxe74iqgkg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969229; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=XeOZmyM2nC7YtF3uC2eBoPQ6GOPt74JSdErGeoB6bDg=; b=GC1cBKmnbWnc4mMossHY5ayuFcCiB4nHsl53Dh8hZmkpvnFIaYbCJy3yUy9Bldq+Vs2HDls0Bzqd3zLJ6Yf+1ybK2jNfljmf8s5B+nek2FPnbzOb3YY9fzMapUq0PikwjydOojHvEMBn/Wlmj2wDoQcwdIBszChspLqxk1itWSc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969229686318.0855651018078; Sun, 28 Dec 2025 16:47:09 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 86ADD3F95B; Sun, 28 Dec 2025 19:47:07 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 4965941ADE; Sun, 28 Dec 2025 19:40:44 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 6A058417EB; Sun, 28 Dec 2025 18:49:29 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 62B8E419EC for ; Sun, 28 Dec 2025 18:41:07 -0500 (EST) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-86-0nnMGpkAPVSMigTl5DpkeQ-1; Sun, 28 Dec 2025 18:41:05 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EC7DC1800669 for ; Sun, 28 Dec 2025 23:41:04 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3B3931800367 for ; Sun, 28 Dec 2025 23:41:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XeOZmyM2nC7YtF3uC2eBoPQ6GOPt74JSdErGeoB6bDg=; b=Fu0gJc30YWqjPv7q9yuOZJR4wxXySoM5hK0Z0/Uf4BPU4nAET7QIDvfTJSjeemDUuS/nxg uFK8eWvpiOsRwYgSwXGLiAADmCP62tnHmIC0jpR5IAJfb07N7niRm8R3exqspDsyLKL38N E8725ZnKfgwZw16BhX3bEddLeP/TI+E= X-MC-Unique: 0nnMGpkAPVSMigTl5DpkeQ-1 X-Mimecast-MFC-AGG-ID: 0nnMGpkAPVSMigTl5DpkeQ_1766965265 To: devel@lists.libvirt.org Subject: [PATCH 11/29] qemu_firmware: Don't skip EnsureNVRAM() for ROMs Date: Mon, 29 Dec 2025 00:40:30 +0100 Message-ID: <20251228234048.1711701-12-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: U-yAys1bPFjBH8V04U0ixW21Z1a6DjUZQ8S-hlxayZE_1766965265 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: OI3R4QKMLCKU33XTAGSHJ2TVDAORUGEP X-Message-ID-Hash: OI3R4QKMLCKU33XTAGSHJ2TVDAORUGEP X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969231194158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Now that we expect NVRAM to be used together with ROM firmware builds, we need to ensure that the corresponding configuration is always populated correctly. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index fc78433100..1b97cdb316 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1076,9 +1076,6 @@ qemuFirmwareEnsureNVRAM(virDomainDef *def, if (!loader) return; =20 - if (loader->type !=3D VIR_DOMAIN_LOADER_TYPE_PFLASH) - return; - if (loader->readonly !=3D VIR_TRISTATE_BOOL_YES) return; =20 --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969301; cv=none; d=zohomail.com; s=zohoarc; b=MP960qM5ixMAIRx7OmyrvT4pDVOQ3XZA+VxrZ20ib8qEtGfLfAW1maxXbhWlI+LGT3Anhd/ANvPD3OoGbRxlg0RBzXI6IpkJsuNhUDsSZAgUJnziSWzkI7lX7dh1/nHxuhRXj9PLrSbB5gWskhepzBEMgTZEGlAYv7x4HxaswGc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969301; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=pzHDGur+mTLn6ZZCUBB+tXxi9UH5zvVAqNlGYbRFyuw=; b=ipMidFfUB7rsxpV1KgpYYUDZa/BxCRpgFk7lPp2ezPw0pZ7W2/0kW8gRBpKMIJ3ykLUsbO7Bb7lQIeyxm3EK/uEAKO9PHsPzwJnn9FmcnbMnMPK54I53Cv8KB1UuBSEkcx37IcYExxdoBWAiMMrzktClwa/FI2hwfsukS8fxLEQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969301607623.9887921602685; Sun, 28 Dec 2025 16:48:21 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 7349F41892; Sun, 28 Dec 2025 19:48:19 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id E8F4B43E95; Sun, 28 Dec 2025 19:41:39 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 786DB418BB; Sun, 28 Dec 2025 18:49:29 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 935074188A for ; Sun, 28 Dec 2025 18:41:08 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-116-sSsct-PWPiq0EtTMssc1Pw-1; Sun, 28 Dec 2025 18:41:06 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 26DBB1956080 for ; Sun, 28 Dec 2025 23:41:06 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 67B191800367 for ; Sun, 28 Dec 2025 23:41:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS,UPPERCASE_50_75 autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965268; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pzHDGur+mTLn6ZZCUBB+tXxi9UH5zvVAqNlGYbRFyuw=; b=JGIm6EDOV/5DsKwe1ppZ7O8Kwq3yg+HpVT/y03qOULftllTRfBgLVXPOg+Nm+auFtL/N7o unOugpA4a2s3UDlgZaAtLsiyODq049NvRe6XfVH2XEWdUrxMX9c5RJQYv3VxmJXPq9cAKP Jr/EsdC0UU0GajWvUie7GseaFQloHAs= X-MC-Unique: sSsct-PWPiq0EtTMssc1Pw-1 X-Mimecast-MFC-AGG-ID: sSsct-PWPiq0EtTMssc1Pw_1766965266 To: devel@lists.libvirt.org Subject: [PATCH 12/29] qemu_firmware: Parse host-uefi-vars firmware feature Date: Mon, 29 Dec 2025 00:40:31 +0100 Message-ID: <20251228234048.1711701-13-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: m5xAAbw5C5VJcsu3aiRpocRjn--4LYxlp9-gTGb7zEU_1766965266 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: PIF27FLP5UEKSW27KL3T64AUIWJ4VU5P X-Message-ID-Hash: PIF27FLP5UEKSW27KL3T64AUIWJ4VU5P X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969303435158500 Content-Type: text/plain; charset="utf-8"; x-default="true" When present in a firmware descriptor, this feature indicates that the corresponding executable expects to access variable storage through the uefi-vars QEMU device. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 1b97cdb316..309ec3f349 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -163,6 +163,7 @@ typedef enum { QEMU_FIRMWARE_FEATURE_ENROLLED_KEYS, QEMU_FIRMWARE_FEATURE_REQUIRES_SMM, QEMU_FIRMWARE_FEATURE_SECURE_BOOT, + QEMU_FIRMWARE_FEATURE_HOST_UEFI_VARS, QEMU_FIRMWARE_FEATURE_VERBOSE_DYNAMIC, QEMU_FIRMWARE_FEATURE_VERBOSE_STATIC, =20 @@ -182,6 +183,7 @@ VIR_ENUM_IMPL(qemuFirmwareFeature, "enrolled-keys", "requires-smm", "secure-boot", + "host-uefi-vars", "verbose-dynamic", "verbose-static" ); @@ -1294,6 +1296,7 @@ qemuFirmwareMatchDomain(const virDomainDef *def, hasEnrolledKeys =3D true; break; =20 + case QEMU_FIRMWARE_FEATURE_HOST_UEFI_VARS: case QEMU_FIRMWARE_FEATURE_VERBOSE_DYNAMIC: case QEMU_FIRMWARE_FEATURE_VERBOSE_STATIC: case QEMU_FIRMWARE_FEATURE_NONE: @@ -1652,6 +1655,7 @@ qemuFirmwareEnableFeaturesModern(virDomainDef *def, case QEMU_FIRMWARE_FEATURE_AMD_SEV_ES: case QEMU_FIRMWARE_FEATURE_AMD_SEV_SNP: case QEMU_FIRMWARE_FEATURE_INTEL_TDX: + case QEMU_FIRMWARE_FEATURE_HOST_UEFI_VARS: case QEMU_FIRMWARE_FEATURE_VERBOSE_DYNAMIC: case QEMU_FIRMWARE_FEATURE_VERBOSE_STATIC: case QEMU_FIRMWARE_FEATURE_NONE: @@ -1707,6 +1711,7 @@ qemuFirmwareSanityCheck(const qemuFirmware *fw, case QEMU_FIRMWARE_FEATURE_NONE: case QEMU_FIRMWARE_FEATURE_ACPI_S3: case QEMU_FIRMWARE_FEATURE_ACPI_S4: + case QEMU_FIRMWARE_FEATURE_HOST_UEFI_VARS: case QEMU_FIRMWARE_FEATURE_VERBOSE_DYNAMIC: case QEMU_FIRMWARE_FEATURE_VERBOSE_STATIC: case QEMU_FIRMWARE_FEATURE_LAST: @@ -2200,6 +2205,7 @@ qemuFirmwareGetSupported(const char *machine, case QEMU_FIRMWARE_FEATURE_INTEL_TDX: case QEMU_FIRMWARE_FEATURE_ENROLLED_KEYS: case QEMU_FIRMWARE_FEATURE_SECURE_BOOT: + case QEMU_FIRMWARE_FEATURE_HOST_UEFI_VARS: case QEMU_FIRMWARE_FEATURE_VERBOSE_DYNAMIC: case QEMU_FIRMWARE_FEATURE_VERBOSE_STATIC: case QEMU_FIRMWARE_FEATURE_LAST: --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969467; cv=none; d=zohomail.com; s=zohoarc; b=VyI0nwQtA1ukc+pkF016Mic/82ii83l0qjX0DhtZjRAHIamwVvifb7JwN3aT94PJlkPAJxsDqafJVGYX2A+sTG8H5Um8wLkIYdODJPm2Q8UBNoncCQ6CuI/0LkSYHBd7qVfDGG8OhH4MMd4rtVDhOa2CFMnKKWYaR173Tt0H3IU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969467; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=eo1Ffcoe7lT4V1pC/Frbx8QT5m8AFqx8eZVRK7BYaiE=; b=ggochDyy020bso1Ou4TFaxMvx6b4kzvRxOR2PYRByOLOXab0OpOK1VNA5ZAtelSLnkKuR4ZSd6YIupQXrPx6GR169FT5nhg5HuTCf1q9Wr4nvSwuhexLXybBWpewxeoyVviaBCnj+gsb4FQjjni0vXczwY9A1cwDsltIacDI02Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969467452366.62645130648184; Sun, 28 Dec 2025 16:51:07 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 766903F963; Sun, 28 Dec 2025 19:51:06 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id D1C2143F7C; Sun, 28 Dec 2025 19:42:20 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id E3A203FD0B; Sun, 28 Dec 2025 18:49:30 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id B9CA641CAD for ; Sun, 28 Dec 2025 18:41:09 -0500 (EST) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-131--2j7lkYUPECet0NItG-AKQ-1; Sun, 28 Dec 2025 18:41:08 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 514F218005B0 for ; Sun, 28 Dec 2025 23:41:07 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 946F51800367 for ; Sun, 28 Dec 2025 23:41:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965269; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eo1Ffcoe7lT4V1pC/Frbx8QT5m8AFqx8eZVRK7BYaiE=; b=QNVQMtd/r5y+vPtteB7GhIJ+LZotrIFAHPkzEi3rSIfB0Lnu6wOoAVA2Kw11spEvmN3ZXc K2b+MciJVxAZXrtk17pND2XExu5zgR2ybcs1nk6yAc9iUmeduyrkgqrQzRORS+v5TbLrKp v06KZ7vRFtXWhE1AweEJl9DLedz5e1k= X-MC-Unique: -2j7lkYUPECet0NItG-AKQ-1 X-Mimecast-MFC-AGG-ID: -2j7lkYUPECet0NItG-AKQ_1766965267 To: devel@lists.libvirt.org Subject: [PATCH 13/29] qemu_firmware: Split sanity check Date: Mon, 29 Dec 2025 00:40:32 +0100 Message-ID: <20251228234048.1711701-14-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: cYrzvkeL_U8eSRJSynxyLYj1An7aZGVGufXuVsRNvwI_1766965267 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 7HWGKJU4FX4NSOS6SFZA2CYZS75NZ3KB X-Message-ID-Hash: 7HWGKJU4FX4NSOS6SFZA2CYZS75NZ3KB X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969468193158500 Content-Type: text/plain; charset="utf-8"; x-default="true" The two checks are semantically different, so it makes sense to perform them separately. We will soon extend the first one. While at it, start printing out the value of isConfidential. We could print the value of each firmware feature it's derived from, but that would make things unnecessarily verbose; at the same time, knowing that libvirt believes that the firmware build is targeting the confidential use case can be useful for debugging so it's worth including it. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 309ec3f349..68563b8083 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1726,16 +1726,23 @@ qemuFirmwareSanityCheck(const qemuFirmware *fw, * VMs also don't support EFI variable storage in NVRAM, instead * the secureboot state is hardcoded to enabled. */ - if ((!isConfidential && - (supportsSecureBoot !=3D requiresSMM)) || - (hasEnrolledKeys && !supportsSecureBoot)) { + if (!isConfidential && + supportsSecureBoot !=3D requiresSMM) { VIR_WARN("Firmware description '%s' has invalid set of features: " - "%s =3D %d, %s =3D %d, %s =3D %d", + "%s =3D %d, %s =3D %d (isConfidential =3D %d)", filename, qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_REQ= UIRES_SMM), requiresSMM, qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_SEC= URE_BOOT), supportsSecureBoot, + isConfidential); + } + if (hasEnrolledKeys && !supportsSecureBoot) { + VIR_WARN("Firmware description '%s' has invalid set of features: " + "%s =3D %d, %s =3D %d", + filename, + qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_SEC= URE_BOOT), + supportsSecureBoot, qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_ENR= OLLED_KEYS), hasEnrolledKeys); } --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969793; cv=none; d=zohomail.com; s=zohoarc; b=Xi7Bg1Bj8/ShJJ8OBovzsRhrVoJHjTSoM6pJ6kruou26oGpNWj1xSJPlM18nulIde9i7Zit7J1BjnXIf9qBLdBeVJ3A/GfjP8lDgT2UFDdTjCp3Ds3PKlLS383euWeV50l0z6WcUsRNEL4zOQr4CUB0DN5cMXJyDkUCPZsbNCtI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969793; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=uFvdnhjCgjBV/5VcYsnk9OkbqKJcEdoNy/MA4zkTmMA=; b=jIuVwKC//5+dbWFvQKc/DCRraxODrfUl72zWLYkhPsMfqIfCg/Qa1PZoH6Cu3t7YCpCoN8/6ZqLbuEwU33ohDHjiXJBHrR+uHjEHJGVwp6Y+AklkBM9ptbbrGBvlNpGJjHQadQlZ3GdjWeeVC/6RdoTHzXlEHnQkljNozURpxAQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969793427269.90661893660933; Sun, 28 Dec 2025 16:56:33 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 9398241A1A; Sun, 28 Dec 2025 19:56:32 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 4093D43DF6; Sun, 28 Dec 2025 19:49:49 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id D10A241922; Sun, 28 Dec 2025 18:49:33 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id E72A441940 for ; Sun, 28 Dec 2025 18:41:10 -0500 (EST) Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-653-SwroQJ3rPS-CfymMr9G26w-1; Sun, 28 Dec 2025 18:41:09 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7E7EB1956058 for ; Sun, 28 Dec 2025 23:41:08 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C0D031800663 for ; Sun, 28 Dec 2025 23:41:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965270; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uFvdnhjCgjBV/5VcYsnk9OkbqKJcEdoNy/MA4zkTmMA=; b=DfmVUaGTJoH8T68F+Qci/Q65U7HYgTvYUU7aCJhAYkQoQLtdPImwrfEzSbe3HfWATcpuPS CluoPwnpps96jn5gHl6dKkO+N2dgWHTZ+zbOKtzUvqY0SNMd7DS5sik+nWxuk2OHzpOgm6 GNV7k5lgnH5tBEtarJ3EgRM9H8kC1bc= X-MC-Unique: SwroQJ3rPS-CfymMr9G26w-1 X-Mimecast-MFC-AGG-ID: SwroQJ3rPS-CfymMr9G26w_1766965268 To: devel@lists.libvirt.org Subject: [PATCH 14/29] qemu_firmware: Consider host-uefi-vars feature in sanity check Date: Mon, 29 Dec 2025 00:40:33 +0100 Message-ID: <20251228234048.1711701-15-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 8rqaP-k81Udf-sW2X7EXisNvn4VGWxZTHuSDVoi_Z-I_1766965268 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 57Y5ASZ3TJ747GQYWQISKU65K235CLB3 X-Message-ID-Hash: 57Y5ASZ3TJ747GQYWQISKU65K235CLB3 X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969793654158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Just like with firmware builds targeting the confidential use case, use of the uefi-vars device obviates the need to have SMM emulation enabled while still guaranteeing that protected EFI variables work as intended. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 68563b8083..962d6cdee7 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1689,6 +1689,7 @@ qemuFirmwareSanityCheck(const qemuFirmware *fw, bool requiresSMM =3D false; bool supportsSecureBoot =3D false; bool hasEnrolledKeys =3D false; + bool usesUefiVarsDevice =3D false; bool isConfidential =3D false; =20 for (i =3D 0; i < fw->nfeatures; i++) { @@ -1702,6 +1703,9 @@ qemuFirmwareSanityCheck(const qemuFirmware *fw, case QEMU_FIRMWARE_FEATURE_ENROLLED_KEYS: hasEnrolledKeys =3D true; break; + case QEMU_FIRMWARE_FEATURE_HOST_UEFI_VARS: + usesUefiVarsDevice =3D true; + break; case QEMU_FIRMWARE_FEATURE_AMD_SEV: case QEMU_FIRMWARE_FEATURE_AMD_SEV_ES: case QEMU_FIRMWARE_FEATURE_AMD_SEV_SNP: @@ -1711,7 +1715,6 @@ qemuFirmwareSanityCheck(const qemuFirmware *fw, case QEMU_FIRMWARE_FEATURE_NONE: case QEMU_FIRMWARE_FEATURE_ACPI_S3: case QEMU_FIRMWARE_FEATURE_ACPI_S4: - case QEMU_FIRMWARE_FEATURE_HOST_UEFI_VARS: case QEMU_FIRMWARE_FEATURE_VERBOSE_DYNAMIC: case QEMU_FIRMWARE_FEATURE_VERBOSE_STATIC: case QEMU_FIRMWARE_FEATURE_LAST: @@ -1725,14 +1728,21 @@ qemuFirmwareSanityCheck(const qemuFirmware *fw, * support SMM. This is OK, because EFI binaries for confidential * VMs also don't support EFI variable storage in NVRAM, instead * the secureboot state is hardcoded to enabled. + * + * Similarly, use of the uefi-vars QEMU device guarantees that + * protected EFI variables work as expected without requiring SMM + * emulation. */ if (!isConfidential && + !usesUefiVarsDevice && supportsSecureBoot !=3D requiresSMM) { VIR_WARN("Firmware description '%s' has invalid set of features: " - "%s =3D %d, %s =3D %d (isConfidential =3D %d)", + "%s =3D %d, %s =3D %d, %s =3D %d (isConfidential =3D %d)", filename, qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_REQ= UIRES_SMM), requiresSMM, + qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_HOS= T_UEFI_VARS), + usesUefiVarsDevice, qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_SEC= URE_BOOT), supportsSecureBoot, isConfidential); --=20 2.52.0 From nobody Thu Jan 8 12:09:43 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766969546; cv=none; d=zohomail.com; s=zohoarc; b=UF4t3Ua4dPzHJcv63UYjlrrkGeVZRcztrhhRlTg/k5APe45kExCx3vzeV/XNDU8LAO+Paj0x00bcvySCnYxUZIGzqz0uwVJK8hDh76mEoApJ9GdDBmVnNV4cjxAXLM5jXsolqcs2EWLmHNRyRVwsv2OPLSfAbA07sbpoO1qfceE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766969546; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=YgsL2TuhVRk42InK4QF4XQF6egcv7uI20LwV1mn4Gac=; b=DJVpogBewqu55mrgEmhOnTQLhDuxLLNCF/bNJ9gTVmsPvT0AdaQN1LwgRiEzkDaog26XseSV/PF4NyVj1SA8o+C5bwiqGGD05ae/Ql8VuTloNFxYn6rpWpwInSClwQaYZckSaPSotyOZ5eBukqio1c6XS6FxsSKwxRefNRu/IZ4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766969546373423.1538938469415; Sun, 28 Dec 2025 16:52:26 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 8357941875; Sun, 28 Dec 2025 19:52:25 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id A710843FCD; Sun, 28 Dec 2025 19:42:36 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 950543F330; Sun, 28 Dec 2025 18:49:31 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 12D9141B82 for ; Sun, 28 Dec 2025 18:41:12 -0500 (EST) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-653-_2pV6pdfP7WFmOZlCTm7vw-1; Sun, 28 Dec 2025 18:41:10 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id AA3D41800358 for ; Sun, 28 Dec 2025 23:41:09 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id ED59C180035A for ; Sun, 28 Dec 2025 23:41:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766965271; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YgsL2TuhVRk42InK4QF4XQF6egcv7uI20LwV1mn4Gac=; b=RePC7x3txwlnRfEH9bp3Octi56m7H1JMnitsrTG4H8X7+rnjZU26JxyhL+7v54zGM4SVw1 LYkcFAYZIPaEyNGvToEra0/vOVWnLlcntJN5nV2T4cJyx2paHLE/q2POtWO1NVxUvYLRNf fX2JhwDNFwFrCKNsY1Ohuko7UPUxN8s= X-MC-Unique: _2pV6pdfP7WFmOZlCTm7vw-1 X-Mimecast-MFC-AGG-ID: _2pV6pdfP7WFmOZlCTm7vw_1766965269 To: devel@lists.libvirt.org Subject: [PATCH 15/29] tests: Add firmware-manual-efi-qemuvars-q35 Date: Mon, 29 Dec 2025 00:40:34 +0100 Message-ID: <20251228234048.1711701-16-abologna@redhat.com> In-Reply-To: <20251228234048.1711701-1-abologna@redhat.com> References: <20251228234048.1711701-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 34ssUJ3hIu3EIlUjh47vdz3MjXkwpUoByq_eUo8OCoI_1766965269 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LHNXKE2DHNMCMMUG5BXJS3TH6KSBOK2R X-Message-ID-Hash: LHNXKE2DHNMCMMUG5BXJS3TH6KSBOK2R X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766969546692158500 Content-Type: text/plain; charset="utf-8"; x-default="true" This test case demonstrates how to manually configure an x86_64 guest to use the uefi-vars device. It currently fails because the QEMU driver does not yet allow the use of JSON for NVRAM. That will change in a future commit. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- ...-manual-efi-qemuvars-q35.x86_64-latest.err | 1 + ...-manual-efi-qemuvars-q35.x86_64-latest.xml | 36 +++++++++++++++++++ .../firmware-manual-efi-qemuvars-q35.xml | 19 ++++++++++ tests/qemuxmlconftest.c | 2 ++ 4 files changed, 58 insertions(+) create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.= x86_64-latest.err create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.= x86_64-latest.xml create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.= xml diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.x86_64-= latest.err b/tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.x86_64-= latest.err new file mode 100644 index 0000000000..e5f67f8d09 --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.x86_64-latest.= err @@ -0,0 +1 @@ +unsupported configuration: Unsupported nvram format 'json' diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.x86_64-= latest.xml b/tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.x86_64-= latest.xml new file mode 100644 index 0000000000..a16c404eaf --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-manual-efi-qemuvars-q35.x86_64-latest.= xml @@ -0,0 +1,36 @@ + + guest + 63840878-0deb-4095-97e6-fc444d9bc9fa + 1048576 + 1048576 + 1 + + hvm + /usr/share/edk2/ovmf/OVMF.qemuvars.fd + /path/to/guest.json + + + + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + +
+ + + + +