From nobody Sun Jul 26 11:07:40 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1782915443; cv=none; d=zohomail.com; s=zohoarc; b=DqXj/lsedBtwjsCt7zGtvD/NMITMPVgj2PVv4a35PfSwGEd8FKV7ocMpJZmYaQYUXbiLSzhHYNtuX/R8vjoxXHZwKJZgLbcxoLZhgCEKPrCJ6NDIgd0ZxZG13b03IlteJ/8GyAy/wNHMQF8kkPyeaKCZVOUZYLzOGW7tjEcxd5M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782915443; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UqBgkjj4+5qCZafjC2NJKdGLFc9kuK531RBFru072RQ=; b=UP+yxGIrbCZz33GbaVtA7zsUxqCZvd8nP/gbSlOparK2efM96kpJ2aMkA2cihF1YdWzWDJSrnlNnoAxre82u+xVgwsnuGxAlsV8tUXq/dlRg11aUC3L8xMPW0Qu4JsghnZqSNSr7c379WT4O/JjY+kdHu82Xzcngevw8R6LFCO4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782915443287973.4624887837516; Wed, 1 Jul 2026 07:17:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wevkE-0005kf-3H; Wed, 01 Jul 2026 10:16:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wevjr-0005Wo-Nf for qemu-devel@nongnu.org; Wed, 01 Jul 2026 10:16:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wevjo-0000GX-GW for qemu-devel@nongnu.org; Wed, 01 Jul 2026 10:16:31 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-206-a_hFSWPIPkCAI5L5K0jyCA-1; Wed, 01 Jul 2026 10:16:26 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-493c36b290cso2570015e9.3 for ; Wed, 01 Jul 2026 07:16:25 -0700 (PDT) Received: from lleonard-thinkpadx1carbongen13.rmtit.csb ([151.29.41.106]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493be493c24sm53283795e9.0.2026.07.01.07.16.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 07:16:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1782915387; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UqBgkjj4+5qCZafjC2NJKdGLFc9kuK531RBFru072RQ=; b=PSVrZCtzb1Dktf87H83k6Yt5elPcfYNCSkJAWm2Dw4WOu3vhBMWj+/Pj/ow5riDaKIdmTs BjKuIalR4XiBjsol2OKuRwhcakDgeXAs8zyRq6c/c6QvxCrfPVsOjSj86Rux0JoZeQSakv olDSCFEdKriI2AouO7DXNBZFk/CcHjY= X-MC-Unique: a_hFSWPIPkCAI5L5K0jyCA-1 X-Mimecast-MFC-AGG-ID: a_hFSWPIPkCAI5L5K0jyCA_1782915385 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1782915385; x=1783520185; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=UqBgkjj4+5qCZafjC2NJKdGLFc9kuK531RBFru072RQ=; b=RlmifWen4HQ+geolFaWHakl12BpGLy36SIRBRy/DEa+gsPJdOdNwFG7LkAv56y3QGo +P/uMZ05bT0hb8pPeS0huCBu/NdHq8KW/gdumeO2qyNNbpHR3/3gfYwbfI8wYhi7v5A8 v7qBkc/TeIRECK3zofMmgoAZUK8pUzqsF2Xi3YXuDQkCm0RMcjJQ3nJjVylvrOaD53Zr 1M97hao2U/2m6efGctGF3OC8LDLWt1wwo/H7lU2/nJEtK2A/UQ7qDa4fF+hX/Sqs5jCJ 7I5cl6L5g99cMRAf99PTsShPTxv4XNgKpU1oCwBw8Gt+O0E5yk/U7Dk3lOTp0BmvZU05 /rvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782915385; x=1783520185; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=UqBgkjj4+5qCZafjC2NJKdGLFc9kuK531RBFru072RQ=; b=OXXzk19na76MbvuQVZ2E36wVcJp8LJXWr7HJT9+oRdYOv3Fp0HQ+NNt24vzqf74gSh spbl1L6zYpibvzdgDLugVL8h3crHS+oG+v8gKxjz2S0KA0syJjyOFEpm9+vBo7Tl1C7V VBIfRbDugCuMBQrAMMQBSMLfygRExBRpGgzzXHhMfo9QHhNgivud5bSZWzqAQuvSY/WJ DwuTozx6FwZYMBGtIvMhvVtJ0i48/IOCU3VxC9YYqTNaI/+siiYDK/aSoBq4ZpgTqo++ JgQqT786xrAfUYlq7Nsx7ZKfz03R36cp8J2OvG0HWp/iEREEWplfwqB9XZvbxYZQVjcW kAcA== X-Gm-Message-State: AOJu0YzBLmSmIeWpe47lUK5WLaFOMNWRFsVXRANn6HbnD0e5Vb7KpbzN 1ROEuA5mk8u44mI4fHsrDwwMAqxrCQ0JU780oKi13FSxYKpWHk6zNMk15dxn36TL8TM9nJvj2vQ MzFJYb0c3TVoRwsNKoy6HRIJInuFjY032yOJQBekEdXPbVJaOU7yH8xCx X-Gm-Gg: AfdE7ck2OR016AWEs1h5dx4pf5uLivHbv0KJGikxZqpSAsRivlQPpPOcqknrZLBE5lf oiNs92oEpAmSD8sSilVN4CjhZfH+BG8MvNnUhY7A+Cta2wzhBkyoB/nqjIzjHorLKS42j/8LH3I DvwAS+haacDYHZ7A9zSdVXvE5WotS4k3ROyO8qJGZgRSyoiscDudO/wRVmOvuL7Xtjr9XMhk+VF efFomgpgLrgUcKmvBAFgPbNqpY8OoxMmZeDe1plJKX1smAPzYmmEJ/kd9YDUaotUzYNlUk8bwHX w5LXVEFFmenNNhMtVc04SyBS+UrkI4rSz3xHwwaYoooQkSyNxwT624xlXhTfzzjGkKa/bkBITAj aBVcpTzazRy/YvS36Zh5m1CXJ0AynwrNKLh2I2J3p05dekfnJzeBRqn2wvp/iZA80Cv+c0Jl2IP SYP4xP X-Received: by 2002:a05:600c:8217:b0:492:5e71:f6ab with SMTP id 5b1f17b1804b1-493c2b84c14mr29476245e9.20.1782915384517; Wed, 01 Jul 2026 07:16:24 -0700 (PDT) X-Received: by 2002:a05:600c:8217:b0:492:5e71:f6ab with SMTP id 5b1f17b1804b1-493c2b84c14mr29475875e9.20.1782915384073; Wed, 01 Jul 2026 07:16:24 -0700 (PDT) From: Luigi Leonardi Date: Wed, 01 Jul 2026 16:16:17 +0200 Subject: [PATCH 1/3] hw/core/platform-bus: fix crash when num_irqs is zero MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260701-microvm_uefi_var-v1-1-0652cae6a152@redhat.com> References: <20260701-microvm_uefi_var-v1-0-0652cae6a152@redhat.com> In-Reply-To: <20260701-microvm_uefi_var-v1-0-0652cae6a152@redhat.com> To: qemu-devel@nongnu.org Cc: Paolo Bonzini , "Michael S. Tsirkin" , Richard Henderson , Sergio Lopez , Gerd Hoffmann , Luigi Leonardi X-Mailer: b4 0.14.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=leonardi@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1782915444830158500 bitmap_new(0) returns a zero-size allocation, and the subsequent bitmap_zero() dereferences it because small_nbits(0) is true. Skip IRQ initialization entirely when num_irqs is zero, which is valid for platform buses that only provide MMIO mapping. This will be the case for the microvm platform bus which initially has no IRQ lines. Signed-off-by: Luigi Leonardi Suggested-by: Gerd Hoffmann --- hw/core/platform-bus.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/core/platform-bus.c b/hw/core/platform-bus.c index a2217a2dee..4f765582e7 100644 --- a/hw/core/platform-bus.c +++ b/hw/core/platform-bus.c @@ -194,6 +194,10 @@ static void platform_bus_realize(DeviceState *dev, Err= or **errp) pbus->mmio_size); sysbus_init_mmio(d, &pbus->mmio); =20 + if (pbus->num_irqs =3D=3D 0) { + return; + } + pbus->used_irqs =3D bitmap_new(pbus->num_irqs); pbus->irqs =3D g_new0(qemu_irq, pbus->num_irqs); for (i =3D 0; i < pbus->num_irqs; i++) { --=20 2.54.0 From nobody Sun Jul 26 11:07:40 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1782915437; cv=none; d=zohomail.com; s=zohoarc; b=NXRANOCU9N51z1lraE/XOEF/Cq//k+8SL1R8F8ekIlAPmXZykBvuiSXo2B+dRceXH0BDyedLM2pHPpGsS+yDvle7cTOpcSTgLfyIRBx8ZU2jTId6r2cuE/S20zdR6p/i9UfLfYfAHhAJAsnoyJQwMKLXKcqcLTPpQuplZVKIbds= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782915437; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1E586opbSMK99s73IKeOpRcaRb1mqhJgla8yeFcph98=; b=H2Rku8IoTITOKaALp4m0pqdoaK1lv7wg3Ev2Hg2B4V1niwovfmKfcW8Menbnb+BNV655dc/5yp/upuwfUzm7fE8Ew+rAwwnoDs0WmOjww/pNJJ1n6e+zoxPjUDWqfPmWRZ9QyWuz1P1WOqcVwYpHcnkK3QEi4Fbmv7yxyaZT708= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782915437600365.56752132321105; Wed, 1 Jul 2026 07:17:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wevkE-0005mR-9p; Wed, 01 Jul 2026 10:16:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wevju-0005a4-N4 for qemu-devel@nongnu.org; Wed, 01 Jul 2026 10:16:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wevjr-0000Nl-Gm for qemu-devel@nongnu.org; Wed, 01 Jul 2026 10:16:33 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-41-tZ4NKfnmMzKSYnsTpLu3aA-1; Wed, 01 Jul 2026 10:16:27 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4926596eebcso7000865e9.3 for ; Wed, 01 Jul 2026 07:16:27 -0700 (PDT) Received: from lleonard-thinkpadx1carbongen13.rmtit.csb ([151.29.41.106]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493be493c24sm53283795e9.0.2026.07.01.07.16.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 07:16:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1782915390; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1E586opbSMK99s73IKeOpRcaRb1mqhJgla8yeFcph98=; b=RlsrvUksGW8MRvQjlZOhRmAf6JHhDYjEQJca5tVMx3Obgkr4PDO+quWnY1/YLXmb3mc41S p5MzgOH7WcXnb+s+8ABt5qauIoF3F4jZAmwmECX6D/Y+IXTv1lf8DGqbrpKIP0qLmXC1z/ zT7cSSzied/DJjZG66LTrebNst7vdhA= X-MC-Unique: tZ4NKfnmMzKSYnsTpLu3aA-1 X-Mimecast-MFC-AGG-ID: tZ4NKfnmMzKSYnsTpLu3aA_1782915386 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1782915386; x=1783520186; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=1E586opbSMK99s73IKeOpRcaRb1mqhJgla8yeFcph98=; b=gmOQmolvakp/ZIwa4DHSB7W+fvWPgdvSAOUB3P+cpN5SHp0Zjjczu7NXRjEbJ5NTrL OihYfVk9G+BO513+R/tB9GC9Gh2XGStwMf3tFwWbUZ8i90WkrJp7UX7TeTh10hnhZTst Ebn+SfnI8d+ZbipE15O9bPKpLTTZ/LciP07AHIsroCw2tmF0ZWbIuVUm1H5xPbgIXAF3 WDCPHI2SSiRvxdbc+8yMM5V/Nw9AeV89Bzz3bMLuNLg2T/A8u+v0fe+kmxbC8juyCEOc SmfOKpNhxVBpS9yGkwD3cmYk517Hs1lF67BFN20u/3dHs31E7t7SvxOZ9VxlTo8OOPks serw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782915386; x=1783520186; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=1E586opbSMK99s73IKeOpRcaRb1mqhJgla8yeFcph98=; b=PJInChahOLPh87zqCs8Gbnz+PafnJDTIm1UhrbmuqH/9jzosLpG3BJ/I2t8PN5NOzd xdDUKu8Aq0qFvsY9sGjGx1hXQEiU0xCy3Fl0J/iw8yS0N/meWp1c53UcTa1PWUpmreCS cZNqGgWDgD/7CfwbQ493+quP/NJ6hnmC2fZAlF8pOtHK1VRkomx9n57HTtbpJjXsZXLu geTY0itKCX+C1/xX0XV9KGAq5/G/Gsd+zbTztJjJMrwzj5lXy9NXjnmGdGz9WgLtXZGO U6Ddzekyw/gGU04Rpr9Y8Asm+Rb879kNSPRPJ9QZq2cSTfWQTZyGds5KWR9CqC6aQJw1 sR8w== X-Gm-Message-State: AOJu0YyfIj9L3wR+/WdzvNLijBi8YDBxt2SmtRwIoeGhRhrPJSOQPgrg ARXfWOhb5C9RWkUvy4y0LrLDUN6VtzfrrJmbOOIsHXBNybJauzVACSmXHYPMn52LvBHCQt2n+Gr 9niS1D2ItaFruG/SR3kwfkEhBo864v5tIy5QDngxcSzTWvRbF+ZLu/efY X-Gm-Gg: AfdE7ck1vj1sJ7llMFahddux9i81g8GXIsDzKdqxuo7n6Vx5BLkCq4BOD+h2g0pNW4K uBFQcCbcxibhr7PRzVv0ktAAlgUUDmOeeZdcXuj2PeExgqjPsy95f87qVX4bHgG/WirTxOav4OG REAl+U2JY0nyw/cpYb9aGgx/Io6+CeLxy4+Js1xXJDORv+ryOey5VR3/+n+iWUC5NO7CTe7OLC2 1nFhHBJuzrgEcoP6u8O4epvMC5KKqSkUwRM9lcqR/BxGD7TzRcvGVZ8bGShMXwPAo5cyQUzC4du 6jm035Zhbq2HQHZs6WRRWQOp8fzwiphk2D3hlkT/vt5HqQkloz6THUrlRIAypORCi9gzHeX/xKp JlhsQiiEZUEee9L475ro+g/7Ww1vHszoxZ2wUmseUJ37+FVm6SSjWX3515UK04xwi4587beC+AO ZkivJA X-Received: by 2002:a05:600c:8183:b0:492:1e36:1fe9 with SMTP id 5b1f17b1804b1-493c3df34d3mr11294735e9.37.1782915386219; Wed, 01 Jul 2026 07:16:26 -0700 (PDT) X-Received: by 2002:a05:600c:8183:b0:492:1e36:1fe9 with SMTP id 5b1f17b1804b1-493c3df34d3mr11294185e9.37.1782915385691; Wed, 01 Jul 2026 07:16:25 -0700 (PDT) From: Luigi Leonardi Date: Wed, 01 Jul 2026 16:16:18 +0200 Subject: [PATCH 2/3] hw/i386/microvm: add platform bus support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260701-microvm_uefi_var-v1-2-0652cae6a152@redhat.com> References: <20260701-microvm_uefi_var-v1-0-0652cae6a152@redhat.com> In-Reply-To: <20260701-microvm_uefi_var-v1-0-0652cae6a152@redhat.com> To: qemu-devel@nongnu.org Cc: Paolo Bonzini , "Michael S. Tsirkin" , Richard Henderson , Sergio Lopez , Gerd Hoffmann , Luigi Leonardi X-Mailer: b4 0.14.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=leonardi@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1782915438929158500 Add a platform bus to microvm to support dynamic sysbus devices with automatic MMIO address allocation. The bus is mapped at 0xfec20000 with a 1 MB window, placed after the IOAPICs. This is necessary to support the uefi-vars-sysbus device, which will be attached to microvm using the platform bus. The platform bus is created without IRQ lines for now; IRQ support can be added later as needed. Signed-off-by: Luigi Leonardi Suggested-by: Gerd Hoffmann --- hw/i386/Kconfig | 1 + hw/i386/microvm-dt.c | 9 +++++++++ hw/i386/microvm.c | 36 ++++++++++++++++++++++++++++++++++++ include/hw/i386/microvm.h | 4 ++++ 4 files changed, 50 insertions(+) diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index 12473acaa7..e5f5e11980 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -133,6 +133,7 @@ config MICROVM select PCI_EXPRESS_GENERIC_BRIDGE select USB_XHCI_SYSBUS select I8254 + select PLATFORM_BUS =20 config NITRO_ENCLAVE default y diff --git a/hw/i386/microvm-dt.c b/hw/i386/microvm-dt.c index 45fbb5bbd1..69feddc715 100644 --- a/hw/i386/microvm-dt.c +++ b/hw/i386/microvm-dt.c @@ -38,6 +38,7 @@ #include "hw/i386/fw_cfg.h" #include "hw/rtc/mc146818rtc.h" #include "hw/core/sysbus.h" +#include "hw/core/sysbus-fdt.h" #include "hw/virtio/virtio-mmio.h" #include "hw/usb/xhci.h" =20 @@ -337,6 +338,14 @@ void dt_setup_microvm(MicrovmMachineState *mms) qemu_fdt_add_subnode(ms->fdt, "/chosen"); dt_setup_sys_bus(mms); =20 + if (mms->platform_bus_dev) { + /* Platform bus IRQs are not supported, intc is required but unuse= d */ + platform_bus_add_all_fdt_nodes(ms->fdt, "/ioapic1", + MICROVM_PLATFORM_BUS_BASE, + MICROVM_PLATFORM_BUS_SIZE, + 0); + } + /* add to fw_cfg */ if (debug) { fprintf(stderr, "%s: add etc/fdt to fw_cfg\n", __func__); diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 779741ec76..d4836b5e12 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -47,6 +47,7 @@ #include "hw/virtio/virtio-mmio.h" #include "hw/acpi/acpi.h" #include "hw/acpi/generic_event_device.h" +#include "hw/core/platform-bus.h" #include "hw/pci-host/gpex.h" #include "hw/usb/xhci.h" #include "hw/vfio/types.h" @@ -146,6 +147,24 @@ static void create_gpex(MicrovmMachineState *mms) } } =20 +static void create_platform_bus(MicrovmMachineState *mms) +{ + DeviceState *dev; + SysBusDevice *s; + + dev =3D qdev_new(TYPE_PLATFORM_BUS_DEVICE); + dev->id =3D g_strdup(TYPE_PLATFORM_BUS_DEVICE); + qdev_prop_set_uint32(dev, "num_irqs", 0); + qdev_prop_set_uint32(dev, "mmio_size", MICROVM_PLATFORM_BUS_SIZE); + sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + mms->platform_bus_dev =3D dev; + + s =3D SYS_BUS_DEVICE(dev); + memory_region_add_subregion(get_system_memory(), + MICROVM_PLATFORM_BUS_BASE, + sysbus_mmio_get_region(s, 0)); +} + static int microvm_ioapics(MicrovmMachineState *mms) { if (!x86_machine_is_acpi_enabled(X86_MACHINE(mms))) { @@ -248,6 +267,8 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) x86ms->pci_irq_mask =3D 0; } =20 + create_platform_bus(mms); + if (x86ms->pic =3D=3D ON_OFF_AUTO_ON || x86ms->pic =3D=3D ON_OFF_AUTO_= AUTO) { qemu_irq *i8259; =20 @@ -453,12 +474,27 @@ static HotplugHandler *microvm_get_hotplug_handler(Ma= chineState *machine, return NULL; } =20 +static void link_one_device(SysBusDevice *sbdev, void *opaque) +{ + platform_bus_link_device(PLATFORM_BUS_DEVICE(opaque), sbdev); +} + +static void microvm_link_platform_bus_devices(MicrovmMachineState *mms) +{ + if (!mms->platform_bus_dev) { + return; + } + + foreach_dynamic_sysbus_device(link_one_device, mms->platform_bus_dev); +} + static void microvm_machine_done(Notifier *notifier, void *data) { MicrovmMachineState *mms =3D container_of(notifier, MicrovmMachineStat= e, machine_done); X86MachineState *x86ms =3D X86_MACHINE(mms); =20 + microvm_link_platform_bus_devices(mms); acpi_setup_microvm(mms); dt_setup_microvm(mms); fw_cfg_add_e820(x86ms->fw_cfg); diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h index 184b7a8c09..bd2897aa78 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -61,6 +61,9 @@ #define MICROVM_XHCI_BASE 0xfe900000 #define MICROVM_XHCI_IRQ 10 =20 +#define MICROVM_PLATFORM_BUS_BASE 0xfec20000 +#define MICROVM_PLATFORM_BUS_SIZE 0x00100000 + #define PCIE_MMIO_BASE 0xc0000000 #define PCIE_MMIO_SIZE 0x20000000 #define PCIE_ECAM_BASE 0xe0000000 @@ -101,6 +104,7 @@ struct MicrovmMachineState { Notifier machine_done; Notifier powerdown_req; struct GPEXConfig gpex; + DeviceState *platform_bus_dev; =20 uint32_t ioapic_phandle[2]; }; --=20 2.54.0 From nobody Sun Jul 26 11:07:40 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1782915432; cv=none; d=zohomail.com; s=zohoarc; b=OC1MPpKyjy00VpkB5cdY9+zGxoWRmp8Hysmvjlt3jPF1Z8pKdMhgxQroNZJlmVuUmQFCSBVQ6hlyGrhZxYQ/84pDqiw4y3mmlmK0HF0HigqWFOd6nF3r1EJx4pdMl2PlM4NUtBpyktbW755ryhuPcpzaV0Llo0TOsy/sENWkMxQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782915432; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5gEif2qYHepHJvdWURDByK6avdn/IZiDQubCf5GuVgc=; b=GVdqOXRQE6XpwXlfrnUhYyK/nE3ywSzcVddtUPLgmARRymKFl19HY3EwmGcaSBleoTqABbz6lJiEdlLewZBWgmnvfM6SMMiwzBdpW7rSu4t+WK74F2gtU+g1/rmS7j7ZBL7yhwfaAQc31RHbA1SYgxmXSx+xOR5C9DCynok6B6g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782915432115836.4019715244023; Wed, 1 Jul 2026 07:17:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wevkE-0005oQ-Lt; Wed, 01 Jul 2026 10:16:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wevju-0005a3-Mq for qemu-devel@nongnu.org; Wed, 01 Jul 2026 10:16:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wevjs-0000Q6-IJ for qemu-devel@nongnu.org; Wed, 01 Jul 2026 10:16:33 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-84-oDySWi9QPbi6CUNz0_Ne-w-1; Wed, 01 Jul 2026 10:16:30 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-493bfc3b84aso4927575e9.0 for ; Wed, 01 Jul 2026 07:16:30 -0700 (PDT) Received: from lleonard-thinkpadx1carbongen13.rmtit.csb ([151.29.41.106]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493be493c24sm53283795e9.0.2026.07.01.07.16.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 07:16:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1782915392; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5gEif2qYHepHJvdWURDByK6avdn/IZiDQubCf5GuVgc=; b=NDmKDrSonoEGiqAsHiydVSX2STPqrCESYtW9+5tLGRv19UP+kXhUfDvICn1clrL3PScgbV /qyhS9KhF0TUoy70S8M9CIT0+sFJGKifevqsdGEdThYALL85ZOadJBRDDfqLoeZRon92jn dGegzPmuQBK/o5aJWGvq3gP6cN2xIdc= X-MC-Unique: oDySWi9QPbi6CUNz0_Ne-w-1 X-Mimecast-MFC-AGG-ID: oDySWi9QPbi6CUNz0_Ne-w_1782915390 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1782915389; x=1783520189; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5gEif2qYHepHJvdWURDByK6avdn/IZiDQubCf5GuVgc=; b=MV23XodCsEau3g4W9ez23CMgNEnKAoyrLmjtzaUiGcFrQes/rgfAIRKJmgsSB0/7EC 2hSc3OIbzir6JWED0ofU3NvDteNdJIFIKbbEH0dFniG/Va1EItippVHC8OtlzL9UhD4J gZAnmJv5y5ySV5z7oP2oZo/rxLP2lWBGlOcuiu6pmAZU9kBSX2LeHpAlX5MP0XqOBbvp wHj2UFdjz3VPrAUrrrtLHsOCmEctnt0B1AoPXSbuoENs0DJVxkB4nUuS1LL9CQHGjCr0 5W616tlokFmwGYlqLDmnZufjxzsgtZOblcDMACcbrIJwVGT4pL06Oi0Y9RR9SHr+TF8H /neg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782915389; x=1783520189; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5gEif2qYHepHJvdWURDByK6avdn/IZiDQubCf5GuVgc=; b=ol+bnZZHXlYGKAl05AEdvb0X/8kwimQEtKEUVksoaZ6ecsWIlOQaKp3lAc8IK0SBXF XAaOwFKP6bbdgcSVVhjA+hJjpEvqt672Z8CCzk5yLFkqfxKdQii1ynJkCz4DgLW+CKf0 zcmbkNLvbmtciwU7paVpc+mgU475LMFclJ2ZSmwwGVDMUPDA2fsYCEk6sz26cUt/55s+ uFLqosrb6EWrgRBC+T1OzOi22UPLyrh6eCtuFawSz889lvxSAm5PWNdLcv9LYVC5ypAd zOTkoslzhlz8gW0lQd94USSPqVWd3H+BLVTiqB3l4z54+zsva5t2+Fp3hwPEzlnYdUDv R9lA== X-Gm-Message-State: AOJu0YxHP4JQ/8kMauOkVc7um4s1EynwOGe/q7CszY7jbrXZgQX4trcz rVHQIVoi4vYTMd1TegD+PdsC/JC1fwZa6dyNQKujvMr0JVeR47JYJH8xJiJbiDDt7J37ZmfbQEU mgjay0VTP+QZ5EJoQaSBPqlBMhxdEmcFY8xhq80eIoKvRpIXTFMKlAFVD X-Gm-Gg: AfdE7cnlqAR7JTOnUIcM+O04OP/GGNH9oHJPabuNsozTGZWxAQWGfazfaSrmJTfZBvJ sMD/dWpKovBmJ6I6m8rVGoHpGUrVd3b08/OWqxykilIwVhl03U2dYcVFv3APH7vRplt0Ynspf73 K/kdwXuneVMaZHH6+jirZPv++iUostwBdEcFQ0AiErR8yNlRG89hTCsTrAE7VTWyi22byNxbjyw PfJUlcR55+8yZW5zbjrSP8z/orf+PjzEUa+xvR66LVkO1JQH6mdv2/JiKzzdW13cIQu1volXz8m uToLAUvAzTFhMd2ZlMcN+hOHMaBslTN8myzas8rHT3XE/ENoIfotAaiyhVCNcYGdQlrWhQPB8Km rQRDa0dX3GbKLuEdQuce4jI0T8kUSJQnUWaB9iJvWeA908kxElNqTYNkKdG4Cgl/I8WERdBLOLp dZvIQq X-Received: by 2002:a7b:c00f:0:b0:492:4911:8a with SMTP id 5b1f17b1804b1-493c2b4b173mr23639315e9.12.1782915389503; Wed, 01 Jul 2026 07:16:29 -0700 (PDT) X-Received: by 2002:a7b:c00f:0:b0:492:4911:8a with SMTP id 5b1f17b1804b1-493c2b4b173mr23638575e9.12.1782915389013; Wed, 01 Jul 2026 07:16:29 -0700 (PDT) From: Luigi Leonardi Date: Wed, 01 Jul 2026 16:16:19 +0200 Subject: [PATCH 3/3] hw/i386/microvm: add uefi-vars-sysbus support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260701-microvm_uefi_var-v1-3-0652cae6a152@redhat.com> References: <20260701-microvm_uefi_var-v1-0-0652cae6a152@redhat.com> In-Reply-To: <20260701-microvm_uefi_var-v1-0-0652cae6a152@redhat.com> To: qemu-devel@nongnu.org Cc: Paolo Bonzini , "Michael S. Tsirkin" , Richard Henderson , Sergio Lopez , Gerd Hoffmann , Luigi Leonardi X-Mailer: b4 0.14.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=leonardi@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1782915432864158500 Allow the uefi-vars-sysbus device on microvm. This is to support persistent UEFI variables on this architecture. Signed-off-by: Luigi Leonardi Suggested-by: Gerd Hoffmann --- hw/i386/microvm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index d4836b5e12..44a5006b5a 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -55,6 +55,7 @@ #include "elf.h" #include "kvm/kvm_i386.h" #include "hw/xen/start_info.h" +#include "hw/uefi/var-service-api.h" =20 #define MICROVM_QBOOT_FILENAME "qboot.rom" #define MICROVM_BIOS_FILENAME "bios-microvm.bin" @@ -751,6 +752,7 @@ static void microvm_class_init(ObjectClass *oc, const v= oid *data) "Set off to disable adding virtio-mmio devices to the kernel cmdli= ne"); =20 machine_class_allow_dynamic_sysbus_dev(mc, TYPE_RAMFB_DEVICE); + machine_class_allow_dynamic_sysbus_dev(mc, TYPE_UEFI_VARS_SYSBUS); =20 compat_props_add(mc->compat_props, microvm_properties, G_N_ELEMENTS(microvm_properties)); --=20 2.54.0