From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253167; cv=none; d=zohomail.com; s=zohoarc; b=KT9vLNfIbMUJCnTM1qVHUie/m5voPtls04jznVccfbX09QBp475PMAtHWwW1im+UqTwzsuhE0X1EBmGruIkREhSXJB9EB0c+tY4r6e6xl1ZXAywLYHfY737WvEVKl0G5KctZwqA3vNutI5r4r/pyE3Scn9Z8POJ5g4IskLm6sl4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253167; h=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=ohi+F3lKklXIM/TQUWoY9PCWQTYMsPvmzNWFHYG+80o=; b=WgNKJiCH9hGf0LIV5uM7xqQapNG1E4CuaANjZnIFcLPSwD2SF94eXqp83x7DnmNrBeXBR9JFdgL1Q3a1rTwOM1pltyz5P5/z8Gt1IgSK8FhRZeP+mipcYFnN62dz79PHa5LSKUlCdkCgXz0C5ivfUxSHtAjsrWLDGdogXVNvqZA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253167981530.3612286726709; Mon, 21 Apr 2025 09:32:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u41-0007qh-Js; Mon, 21 Apr 2025 12:32:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u3y-0007ps-TP for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:06 -0400 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u3x-0003Gs-5r for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:06 -0400 Received: by mail-pl1-x643.google.com with SMTP id d9443c01a7336-223fb0f619dso47132525ad.1 for ; Mon, 21 Apr 2025 09:32:04 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.31.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253123; x=1745857923; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ohi+F3lKklXIM/TQUWoY9PCWQTYMsPvmzNWFHYG+80o=; b=jhxZX+rG/VojI+y7LWvJt4hZ2wViO2mm64eXGyJL/2ttYYrCwQ6BxkrFbtZysIXlxF N2Ar94wP980u4VixifLodovbIETQtWizBup8cZ3BrvQnVnicoNCHE4KDjpQF3GVqaGxm IMdlIhSgGfpSkMQiVOX0nwAfSBEe7pCFjF3B4B3pqEsar4fQ1VB4mxdx8mQrQforE80s yWVHgj3x0IP1rRtChnJ4TtzCJna9ybbLju7Nm/HgOqn5qKUoWMu4GS7UL9V+hEC1fBic I5a6C+zPQH1ybXimaMSg4bPcDYPQxvNVFKfLB4yScCzP/PNSG6cXGnXOw1Yv+/ADlO0O c7lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253123; x=1745857923; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ohi+F3lKklXIM/TQUWoY9PCWQTYMsPvmzNWFHYG+80o=; b=cvs0cZtEXQivkcNg3zeOEbngEQ+qZGXeK9A1RPS614VXDxnUXeu1WcfiN/h/0L+Dbh mJb/igjd5zmwOav6QgYZ3tWuZn+bBqo4ywGLRJsYySsqpKqxF2Dj3gTE/Xiu6KGBuImi toKJqfB4aaNEXqgmmXc59H1KE8qYuE/3/330wewrbbcwrHPuIC2GJbE/W29fqj0fzusf IjRatpJMHndm+hDoBMaUFrtMrEvQnOydnIv8L+4b6vBvv1Rijhurms2zesKYejxWQ+o4 PZO7K1y85/T4evBTyUFmQMOZFY4Zq6s2nibUD0XQTkkBd+4VIEGr0Jnb/6FCYzDaUINd eO5w== X-Gm-Message-State: AOJu0Yz4Sdh5Y4E/3cnPErRhqIx30hww02Qf5rHhQif1S5icoCoBYfdi FehMgi6moWs79m5fWKHbMxLzm4qgzvF1+HK+cxoyrCrAzNx+FhA= X-Gm-Gg: ASbGncsG9tIuxSJyJ5Ir1qpcsNaER9enNRpKxAMOdPoa+k7DZ85G9yzIAShj+/vRglp Eo1P+zUV8e3Nxl+jwY84alChxp3vmlPv6x0uXKE6FSFNDtqAh3oNvh2qxKxu1Ix6FdmddZszDYp D4+S7I51ms8COdQiN4wq/Cw3cg5ZeCwoX2/RIuU0ugXmAAYYpevZvCk3+vOA0BF9dsyHldtkJEu Fx3+4WlXx7U1tV4Xlh0aKE0CMtLMnrN2lFFcfj3sOM1aunuMcQZ4YkiQckdo4U66PYt+9iF3FtH WkkMbsC8o6B3WFNutI+QdGLd1v0LvkJIZTJLAw/oymMNckxNvnZ6Lfe8oxU2RlgY X-Google-Smtp-Source: AGHT+IFlvhoND1PP68Fo4uUJYaEEpwQub9vgifjUTH0t/y5Hw0HrbBlL8jhJ7DM/HGgfpDU3meDMlQ== X-Received: by 2002:a17:902:ce88:b0:223:5e6a:57ab with SMTP id d9443c01a7336-22c5360bdedmr170591465ad.39.1745253123514; Mon, 21 Apr 2025 09:32:03 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 01/11] vfio/igd: Restrict legacy mode to Gen6-9 devices Date: Tue, 22 Apr 2025 00:31:01 +0800 Message-ID: <20250421163112.21316-2-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::643; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x643.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253170175019100 Content-Type: text/plain; charset="utf-8" Intel only provides legacy VBIOS for IGD up to Gen9, and there is no CSM support on later devices. Additionally, Seabios can only handle 32-bit BDSM register used until Gen9. Since legacy mode requires VGA capability, restrict it to Gen6 through Gen9 devices. Link: https://lore.kernel.org/qemu-devel/20250325172239.27926-1-tomitamoeko= @gmail.com/T/ Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index 6678e0e5cd..01826acf10 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -516,11 +516,13 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *= vdev, Error **errp) =20 /* * For backward compatibility, enable legacy mode when + * - Device geneation is 6 to 9 (including both) * - Machine type is i440fx (pc_piix) * - IGD device is at guest BDF 00:02.0 * - Not manually disabled by x-igd-legacy-mode=3Doff */ if ((vdev->igd_legacy_mode !=3D ON_OFF_AUTO_OFF) && + (gen >=3D 6 && gen <=3D 9) && !strcmp(MACHINE_GET_CLASS(qdev_get_machine())->family, "pc_piix") = && (&vdev->pdev =3D=3D pci_find_device(pci_device_root_bus(&vdev->pde= v), 0, PCI_DEVFN(0x2, 0)))) { @@ -565,7 +567,9 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *vd= ev, Error **errp) vdev->features |=3D VFIO_FEATURE_ENABLE_IGD_LPC; } else if (vdev->igd_legacy_mode =3D=3D ON_OFF_AUTO_ON) { error_setg(&err, - "Machine is not i440fx or assigned BDF is not 00:02.0"); + "Machine is not i440fx, assigned BDF is not 00:02.0, " + "or device %04x doesn't support legacy mode", + vdev->device_id); goto error; } =20 --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253150; cv=none; d=zohomail.com; s=zohoarc; b=M1Odzx3qTKKwyaLygMuI21D3uSuHDW5r0yA/Yz8jGfBinDyu7CI5Cr3iZyJr4xqTnfJfLUVLzWXT/9+maM70t7qcBlY4lQb//FaXjmEabCEgZJo79JM95zyvAQNKk1Xumt9FyeSZhJXOH/fQvJN1KaCpPiojw7VzNHWdDRIYOhE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253150; h=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=jvtzbswQ9vJhzuX+aoZ5HpUPq7ZF3b4Ei7MsH336AFY=; b=Ua5A/sA8REKiFIkcI2Nn07sCmVQO7pTw6VEn1H9VXWhwUaHetBo57LUqrzvv8EZra0IA0WeUPMJmgS1NRzdkOYuCxbQ6HNhF5CUNvIWn0ygqaw4YXDCgoZKXlHWwNLRuF3FoC0zZ+iJ+Vfdi847Yc7euofiYstqVXXr58NpI+z0= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253150254257.0283289697777; Mon, 21 Apr 2025 09:32:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u47-0007xH-Lf; Mon, 21 Apr 2025 12:32:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u42-0007rS-By for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:10 -0400 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u40-0003HQ-HG for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:10 -0400 Received: by mail-pl1-x641.google.com with SMTP id d9443c01a7336-227b828de00so42870385ad.1 for ; Mon, 21 Apr 2025 09:32:08 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253127; x=1745857927; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jvtzbswQ9vJhzuX+aoZ5HpUPq7ZF3b4Ei7MsH336AFY=; b=aGDIzpzq7HdOQ1L44n8RWXRWTfBkYV+m11MVufZhUNI7k1CN42qhdFDZ/lXZ9JibiF mzqf57x8MWtGZ0FFosyfdweIJXBqF0mHRzFPLGuS25WUR0mXYUjyQtgqprs9yO/aFK2H 5n4EAMpM7/KQyExNRYEP6etPTrY8gPrn2vSPmAfAEsX+t8Ez5KMhDEkbfSslf4iSmdL9 nw4zIRBYeFvZq4ak8MDFr2spy+m6THdW0j2GI2UjpNpjTf4Q0BFFKWrMD47XHwWGt+lm w7bwBXk7KSmZBCX6YARsbzbxVhMX3mdgsHhDhFAKkUROArGI3xaolz93EK5lAmpD9Scg 3c6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253127; x=1745857927; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jvtzbswQ9vJhzuX+aoZ5HpUPq7ZF3b4Ei7MsH336AFY=; b=K7wlmUvyURVOZUwuYMX5RxWRg8ZNzyS7LYrPVH9dsxec/DJxdXm+hH79CZzmKYhJmj ZJZQOmn2siyeYPKikAIMVC5dWUaDU9xPxZlUOtVBtMcEK3/1S06yIWBP6pwQu4I+Hnkv IssYkr49HYKTLJUgYnIUwhySyzsoAV2hZTrveFQXHnU5B00nenRJHtYvElzFQExqiwUr lBBDFTR7OlZlkxwaqM0LmONIUbguZqWIgOYuhgcm3lzRJKivaPY2FrOFCaFE9mFdaeJk hc+PRa1ZAiazNcYuyuijqh0jv7gZZHdxet0w2z0IzfS8FZEbdrj2s3F0YlOCFMJlzl3l D5FA== X-Gm-Message-State: AOJu0YwSHwIedJUOSwgCPnRXqMLWi7UXddJoq2Yv2dAiRetvyfaMqS0q DinyMhXmjB1nSuedMcgI1BJiJ/oppfxtsDJo1CkL0+wsr8CE7fs= X-Gm-Gg: ASbGncsYi99TyEw4GCQdGTYtE3rjBJAGIh4bLGh5h7o+DsZKzwEDyYwnlSf/xS6wRF6 2FdS77kQnKF/etYqWh5bAUcXyvGeNgoYhx7XSTp0RbxmnV/BhKa4l1YiyjmoSBnxtU0+uCU9MLf VgC/9Fe3/xr9akl5a0PUWgxFV85BWZ9xdcrxpc9n0372xusq1+dTKZUI9c3gLN0yvnus9+BJK2O 2azTm8S+1C9+mtuHZ7AnpQFN3rDeLYL2MPjWyWbe89HMe3KcdfMpXR2HVQgMFX4/0fU07IE0HCs IavAPGcMiOxnaqe/1WTI7c4/c0+6HvkIsVbdtosCnFsgDw/ibdChYg== X-Google-Smtp-Source: AGHT+IGfkjOm0yu2R+ftV+RM65XsM/COimANJtspwxcQQlgYjRwTD4+6/RuL96LQRefj7XiBqBA+6Q== X-Received: by 2002:a17:903:3c6f:b0:223:f408:c3cf with SMTP id d9443c01a7336-22c535831e2mr188050085ad.21.1745253126973; Mon, 21 Apr 2025 09:32:06 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 02/11] vfio/igd: Always emulate ASLS (OpRegion) register Date: Tue, 22 Apr 2025 00:31:02 +0800 Message-ID: <20250421163112.21316-3-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::641; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x641.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253152449019100 Content-Type: text/plain; charset="utf-8" ASLS register represents the base address of OpRegion, and it is programmed with HPA. In IGD passthrough scenario, it needs to be reprogrammed with GPA by guest firmware. To prevent guest accessing wrong memory range, ASLS should always be emulated and cleared. In GVT-g scenario, emulating ASLS is unnecessary as access is handled by kvmgt backend [1]. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tre= e/drivers/gpu/drm/i915/gvt/cfg_space.c?h=3Dv6.14#n295 Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index 01826acf10..36316e50ea 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -182,10 +182,6 @@ static bool vfio_pci_igd_opregion_init(VFIOPCIDevice *= vdev, =20 trace_vfio_pci_igd_opregion_enabled(vdev->vbasedev.name); =20 - pci_set_long(vdev->pdev.config + IGD_ASLS, 0); - pci_set_long(vdev->pdev.wmask + IGD_ASLS, ~0); - pci_set_long(vdev->emulated_config_bits + IGD_ASLS, ~0); - return true; } =20 @@ -583,7 +579,15 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *v= dev, Error **errp) if ((vdev->features & VFIO_FEATURE_ENABLE_IGD_LPC) && !vfio_pci_igd_setup_lpc_bridge(vdev, errp)) { goto error; - } + } + + /* + * ASLS (OpRegion address) is read-only, emulated + * It contains HPA, guest firmware need to reprogram it with GPA. + */ + pci_set_long(vdev->pdev.config + IGD_ASLS, 0); + pci_set_long(vdev->pdev.wmask + IGD_ASLS, ~0); + pci_set_long(vdev->emulated_config_bits + IGD_ASLS, ~0); =20 /* * Allow user to override dsm size using x-igd-gms option, in multiple= s of --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253202; cv=none; d=zohomail.com; s=zohoarc; b=hTi1bXp1KNrGk5EGU3Apt+TB6gFvuUKNndpS/+JW+lFTvPnCbOsDbrAPN1UR3b17AT78b1sPBbudR8qe6uN1v88UL8yo8ZsUSX7WYsKSZ9MRF0fLPEQl/BmEtwWgBEnM6Sn80XPHQr5FdkDfCYu/4VcoBRXCXfUkRuoDVyAnD3Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253202; h=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=5HXze5phW81QOl9x8fGNAdSteA5vpfVCVmxMuwczLAM=; b=ERb6uA2bLcJMv6Ha5qpX7ASnjuTaG+qaTCQVL4AkbyTNK9uSO/KaqFn5jVNtrbPjZ6K1PZUj/OOGl8so+wtYFgO42Mt+fAUiciRe/DraP6NSMY8tkxuFpHT888Jb/i1xGEkf5BPgylxfYYk6YecfOP5SGUOdJuAOUZG7BA7WDig= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253202261390.7906195291896; Mon, 21 Apr 2025 09:33:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u4O-00084j-8q; Mon, 21 Apr 2025 12:32:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u45-0007vK-7S for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:14 -0400 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u43-0003I0-EU for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:12 -0400 Received: by mail-pl1-x641.google.com with SMTP id d9443c01a7336-2264aefc45dso68032855ad.0 for ; Mon, 21 Apr 2025 09:32:10 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253130; x=1745857930; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5HXze5phW81QOl9x8fGNAdSteA5vpfVCVmxMuwczLAM=; b=ApFWjYke3HgNJH+3JcPqVhSfJRxRfz7q+51YZeEbOUHd1bPkknD9QMwLeYYlNfa93M mPxtetTuxETLDXcSCjOzva8pu4I7zoI8hGHD1eRL2XjY3q/obRy97yzdJHSacJZwvbdM /JnOSmkGwrQvIiuwnn4tglrItQ4hM6+dHmN9uRsoQdBLJyBElNE5K4Q0URu8UWV0QCqW 63N8scI6PZJ6Xitzqov13tC3FANF/nXvo5pMR4EL1HEAAE5Ar/k+YdSJXTlZW8qe4/CV kNg+iq1B+UbUIiUkG6Ij7d10ciBQYDE9GoNmQfQ/4LltYGoi1w0zktEoha5tbmKRcLrC SGLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253130; x=1745857930; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5HXze5phW81QOl9x8fGNAdSteA5vpfVCVmxMuwczLAM=; b=SsO+kvaX+wtGGUCeSwyyrqWIZbRCUHMp1mmlm+/V85VARz6uvHXcn9+ATJpxM0zOmR pfl6Aa0f2sUfArQLShzKhhcMTYWkhchzZfAABGnQ5AtvamGZ0Rmd9yDrP5xcxKo2Z0k0 2m/3FwdnVfW3wZzcAECpdAEKoNDXaEO0HoK4J6Mr6mSgV6gq0M5HBYrYWm6+XZE//yMY fnUyER3GnJb4jirNIrr/NuTcjw+XRO1mWx5r6pDHWL8IsMxZOAcT073Ebom8K4S/ybFy m430NC9iyXt+SEpnP1MhL7z7LekOogQzXtFeVDanP9ZZ/IDiWLG+oop03JcDpWOC90wu zSfw== X-Gm-Message-State: AOJu0Ywsy30alX65hxXWfLs4FWYnIcq/CCl5DfYaCwrTBRO2hvYlDGFo EiceEA3itnn7HhqQ3eMS27yxpQ1IAviC7HBljR581GQ/RSzh2zg= X-Gm-Gg: ASbGncvwRi+Ham+emrRpwpcGrhxY5we35dbmO42wR+fI/LFr8zKQkItP90mmSHIz5ij ysgOgZTdNMtj/YMY3AOiIFx4WN9GEcsXbsLfyIrTY6luCZc4mB21mJmPjbXf1Cyf1Lju99Bavuk +JFF7IY5n8dERyOP37+T7uHylQRGJ88FiFrqyASbiC+G7dr2cpxVi8D+oV6B/ORaujdsKcj/zkq 623Xd2hZu6oO95df7Gw3CKzzBOdBB8wcqfO4F3VcbiFaXq0Nq8y8qSCqvA8JqiQPDQV3znwJ0mq YaB0xKGTLHxzIGO41Zxbjq0k9rmnGVgVEqfbhQV79KL2Pg7d7IEk3A== X-Google-Smtp-Source: AGHT+IHrIUvw5zKgpI1ltJvc5Y0bpuWcYo8OEwOVm585pQrDvZ2CblINB6ojDwq565NZp33Wgwn0YA== X-Received: by 2002:a17:902:e743:b0:225:ac99:ae0f with SMTP id d9443c01a7336-22c5356866cmr189206325ad.1.1745253130044; Mon, 21 Apr 2025 09:32:10 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 03/11] vfio/igd: Detect IGD device by OpRegion Date: Tue, 22 Apr 2025 00:31:03 +0800 Message-ID: <20250421163112.21316-4-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::641; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x641.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253203368019000 Content-Type: text/plain; charset="utf-8" There is currently no straightforward way to distinguish if a Intel graphics device is IGD or discrete GPU. However, only IGD devices expose OpRegion. Use the presence of VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION to identify IGD devices. Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index 36316e50ea..7a7c7735c1 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -479,6 +479,7 @@ void vfio_probe_igd_bar0_quirk(VFIOPCIDevice *vdev, int= nr) =20 static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *vdev, Error **errp) { + g_autofree struct vfio_region_info *opregion =3D NULL; int ret, gen; uint64_t gms_size; uint64_t *bdsm_size; @@ -486,16 +487,20 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *= vdev, Error **errp) bool legacy_mode_enabled =3D false; Error *err =3D NULL; =20 - /* - * This must be an Intel VGA device at address 00:02.0 for us to even - * consider enabling legacy mode. The vBIOS has dependencies on the - * PCI bus address. - */ if (!vfio_pci_is(vdev, PCI_VENDOR_ID_INTEL, PCI_ANY_ID) || !vfio_is_vga(vdev)) { return true; } =20 + /* IGD device always comes with OpRegion */ + ret =3D vfio_device_get_region_info_type(&vdev->vbasedev, + VFIO_REGION_TYPE_PCI_VENDOR_TYPE | PCI_VENDOR_ID_INTEL, + VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION, &opregion); + if (ret) { + return true; + } + info_report("OpRegion detected on Intel display %x.", vdev->device_id); + /* * IGD is not a standard, they like to change their specs often. We * only attempt to support back to SandBridge and we hope that newer @@ -570,9 +575,14 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *v= dev, Error **errp) } =20 /* Setup OpRegion access */ - if ((vdev->features & VFIO_FEATURE_ENABLE_IGD_OPREGION) && - !vfio_pci_igd_setup_opregion(vdev, errp)) { - goto error; + if ((vdev->features & VFIO_FEATURE_ENABLE_IGD_OPREGION)) { + if (vdev->pdev.qdev.hotplugged) { + error_setg(errp, "OpRegion is not supported on hotplugged devi= ce"); + goto error; + } + if (!vfio_pci_igd_opregion_init(vdev, opregion, errp)) { + goto error; + } } =20 /* Setup LPC bridge / Host bridge PCI IDs */ --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253347; cv=none; d=zohomail.com; s=zohoarc; b=So3y+AJInyr1MpOWBjlujDgkbR/ekFfVXQhHOAA9q67prH47b3UCtUqQZcshfZbM7xb2NB869AQ/xatrk03PS/KM+6FOSECBAbrfm2Xmnm8u2yQR9c2TtB/0RJgFy/4IJv142H4HNu03A13erWQYvTrVYUyKFC3oiqhHJ4r8ueE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253347; h=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=3318dEN5yphn2eGZq8qF6y5ncWXLMOk5ZMejbsDVdQk=; b=XT7iLhaAmuc2qaKQgkguRE+KCXLrCkoVHnHeoyj3werH3DKYjOM1vqqkFTeAahmUhqweLn1po0oxeBhpVRuJP7NpRZYjT/rrt1Z05h+DnCnPiZC7yPytPBePAUCYpP8UUiY0pjngDDwRlrE/mXqmC7pI/oGCCPtm/MKdgSipu5U= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253347831456.486731985293; Mon, 21 Apr 2025 09:35:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u53-0000EN-7J; Mon, 21 Apr 2025 12:33:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u4A-0007yg-73 for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:25 -0400 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u47-0003IH-38 for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:16 -0400 Received: by mail-pl1-x644.google.com with SMTP id d9443c01a7336-22409077c06so56939785ad.1 for ; Mon, 21 Apr 2025 09:32:14 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253133; x=1745857933; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3318dEN5yphn2eGZq8qF6y5ncWXLMOk5ZMejbsDVdQk=; b=mWAnldTtUKT+e5jKJB1Ln9/6CN9JiT4HR94gWrA5j3Gw87MAqMkpEiGMiF2QIUV1KE hDCttS0FvbAUh/MkQX3jubLKPeXk/zLD5WXozDhI22AObjuBW7CgYcG0BU00Gp8flAHs 77H8w28MKcrLsFzBC0mFhOARSmztBMKJCreJcbVgR+wj1vSZqec5qyDGRD8DUfN1K0DN MbKFClaeA71hslhF+uZ+rzG0qpUWijQvfWoqVyefAGAa/jgbO8zR/uDLOI/fenr/p8qH JbS/o15XIIkO9bY9gUKvUKQH9ma8LPyoWiNql0bEnvqZ6rgL4KZGPzm2hnVQAUVeJ+dB RyVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253133; x=1745857933; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3318dEN5yphn2eGZq8qF6y5ncWXLMOk5ZMejbsDVdQk=; b=X9ql1l25LH8mtFke6s2HOZA5l/eD0lqlygqftr1B3QEKXph0YnveEH9Ay2w82koOfi 898UGw+r41C4E4rh5sUkMwu45FGTyCF+q/zPWYbNttv1fAmRohj8GjWZz/rprQqt4CHA SkQRf0AqyiDt0H6CHjLHq5ZkbW2PxQuLLnJZhs3dWsZoKJXAY0n6TuBgI4WXtkDmjOBr LZfHXsHguO8pOpYEkC8nlf0UP5RTuwdz3RAQARSlaEyj9gohFGE24qjuZIuAt0OuZPf5 ES9T/IrjeIIzsZtRPSGRHzTqdyGDq9FPC7jwTMrLdzG4PNQ294Pl/tr1d7vJMnxwRjvS mS0Q== X-Gm-Message-State: AOJu0YwfXQicwmytW0UBbkGqVzWmyKSEhZuAXhIohCvCOX3EgxMXI1Ay 7RJ/rqTaUlDhbM0Acyb4XpquiKnL/apPIUdp2ZYikZsiZWwrxRE= X-Gm-Gg: ASbGncsPz2bFjxWdlbrea0XpoD4m7j/y15oC5iCkqwCY48Hd7kXB+L3P7ieReGppwy9 //IoTHdUmnHQiqn39pEExXqhrtfY7yLXGp+xQKhyCz5deKoP7Wp1eF7F9MbWwBsjIe35Jf9VslV 9ywK0+0g7m8wbLNyyLQ9igc7SWfCiNSy/FHBBwhWn7m8PmIRQqBRGBONAwqGLWmcdUpoRFqS+AN YbJ2lCRy+F7zxYtbZu2Ctd/857pJlR+wWEQTPNT4GGTbgdk5P9FKjYPMITSqFKfBXV4yOqpO3gq rw57NheQus1xlutL9/UQmljtc1JATu01AFVlqnIR3oMaxqV/2/ggJw== X-Google-Smtp-Source: AGHT+IHUNAU7ZiC7RQMVPSBbSy61NbMAPFEfzxejCErgV0gdk/K7Fk3VkNoFYwS1jq87jgf7DqOjxg== X-Received: by 2002:a17:903:2344:b0:224:23be:c569 with SMTP id d9443c01a7336-22c53583780mr198484455ad.22.1745253133123; Mon, 21 Apr 2025 09:32:13 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 04/11] vfio/igd: Remove vfio_pci_igd_setup_opregion Date: Tue, 22 Apr 2025 00:31:04 +0800 Message-ID: <20250421163112.21316-5-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::644; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x644.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253348799019100 Content-Type: text/plain; charset="utf-8" Since the last commit, vfio_pci_igd_setup_opregion is only called in GVT-g mode. Move its functionality into vfio_pci_kvmgt_config_quirk for more GVT-g-specific error logging. Also, hotplugging GVT-g vGPU is now always disallowed regardless of OpRegion to prevent potential issues. Intel has never claimed support for GVT-g hotplugging. Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 50 +++++++++++++++++++++----------------------------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index 7a7c7735c1..cc397f8829 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -185,33 +185,6 @@ static bool vfio_pci_igd_opregion_init(VFIOPCIDevice *= vdev, return true; } =20 -static bool vfio_pci_igd_setup_opregion(VFIOPCIDevice *vdev, Error **errp) -{ - g_autofree struct vfio_region_info *opregion =3D NULL; - int ret; - - /* Hotplugging is not supported for opregion access */ - if (vdev->pdev.qdev.hotplugged) { - error_setg(errp, "IGD OpRegion is not supported on hotplugged devi= ce"); - return false; - } - - ret =3D vfio_device_get_region_info_type(&vdev->vbasedev, - VFIO_REGION_TYPE_PCI_VENDOR_TYPE | PCI_VENDOR_ID_INTEL, - VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION, &opregion); - if (ret) { - error_setg_errno(errp, -ret, - "Device does not supports IGD OpRegion feature"); - return false; - } - - if (!vfio_pci_igd_opregion_init(vdev, opregion, errp)) { - return false; - } - - return true; -} - /* * The rather short list of registers that we copy from the host devices. * The LPC/ISA bridge values are definitely needed to support the vBIOS, t= he @@ -681,11 +654,30 @@ error: */ static bool vfio_pci_kvmgt_config_quirk(VFIOPCIDevice *vdev, Error **errp) { - if ((vdev->features & VFIO_FEATURE_ENABLE_IGD_OPREGION) && - !vfio_pci_igd_setup_opregion(vdev, errp)) { + /* Hotplugging is not supported for opregion access */ + if (vdev->pdev.qdev.hotplugged) { + error_setg(errp, "Hotplugging Intel GVT-g vGPU is not supported."); return false; } =20 + if (vdev->features & VFIO_FEATURE_ENABLE_IGD_OPREGION) { + g_autofree struct vfio_region_info *opregion =3D NULL; + int ret; + + ret =3D vfio_device_get_region_info_type(&vdev->vbasedev, + VFIO_REGION_TYPE_PCI_VENDOR_TYPE | PCI_VENDOR_ID_I= NTEL, + VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION, &opregion); + if (ret) { + /* Should never reach here, KVMGT always emulates OpRegion */ + error_setg(errp, "No OpRegion on Intel GVT-g vGPU."); + return false; + } + + if (!vfio_pci_igd_opregion_init(vdev, opregion, errp)) { + return false; + } + } + return true; } =20 --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253364; cv=none; d=zohomail.com; s=zohoarc; b=azVeqMRXuhvOdlBdmQ/0ZWcY8TfVLAoui8/5GAgYZ3rf0N9iyR2qa5ejXcxVhluadLwIid5o1NLTgMBOTHvIdbPbORgSO9k9TKkp7bJuBB7bZVw4PCLjcUx1MxpGEPK7G1vdWMlBy4ncEF0FkZDMIGn85HFP1xGPaRJmKl/XtK0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253364; h=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=TRJ4J7IpcJlya+RhRcVzGp5oPkbToRhD/e6mfIMJDDc=; b=NY6riec9euhJukIzhDxoYh7L/PWM8hncWgWY8VOUaIYY39wN29mVuqkcd3JzxP3Pq8JbaMeBEfIAjMA9LcyNkzMonOOcK1GVS01WMXnxfAMfgwVraCEkLeuDVGfcOloLf5FZtySf8n8VYoiPkwN0QOeDZGMZ2OiSNWlN1HCH4WE= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253364059392.275856783628; Mon, 21 Apr 2025 09:36:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u5Q-0000Wz-I3; Mon, 21 Apr 2025 12:33:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u4C-0007z4-EC for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:26 -0400 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u4A-0003IQ-1I for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:19 -0400 Received: by mail-pl1-x641.google.com with SMTP id d9443c01a7336-2240b4de12bso60691035ad.2 for ; Mon, 21 Apr 2025 09:32:17 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253136; x=1745857936; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TRJ4J7IpcJlya+RhRcVzGp5oPkbToRhD/e6mfIMJDDc=; b=QABRCgrFNLT15BzCV0gc9CDnhsh+zUpxIcqY8ZbtxnBlT5tgDBhP0SR2ObPCdH/sds ZHqR+NmLRE842dU05KGTdtXJiudvRVt6YGWk+6Wv6Su2humkcKbzCwFZjP3jcbOuqQI+ JsV5ux6LUVuXb+iOQGrQAgSMNyXl2dH62qgKBoWmC70G2A8q4GEew8gcs9LGgNuvsOqs D1hkpE5OGxeLu44azxoWJBq5myEmcAUHzEdZWt+JF/hp6DV7sqIGP1tKhcV0vIpQVtMN pDeiDdlIq/2RRI1qCf6rWvNQRiDjw9+jBKwUy5yCppfc73lUL6CjglZrYN1bQQ9Jioik v6Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253136; x=1745857936; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TRJ4J7IpcJlya+RhRcVzGp5oPkbToRhD/e6mfIMJDDc=; b=HopCvG2cNTuU3+xompUZpsY/iCeUTDX04FZy8Bc4gnSVJwTuepSvKyF2OVxSkTM3QP 3rL3e6gX7paeNl7ie2YN/xGEmyd8a3iKrSoagx51Hv88vFwHT1Jf6vCJ/MGnJWohVdBD 0XUdTh6n8yOAofPi4il0cqM9SqO31n1X6sgbvAoAIPmQKYntvhvJ9bLPcjJWJqAKH+P0 BjECPdZI9S2OXj6O8Vpo/AoW0czDGroSbSd5CEQQ9NxqsJGz8WBnk9Fw+7Vr8I91AGsX C+bEApZzWBkxfV88tMn4m+88KLqE+SsaKfWbCswXXAq1/UuVXSpOduht16sc0R2FC1NT ro4A== X-Gm-Message-State: AOJu0YwGZtU3dpMprzR4NHcfMiRzLHTYAyTRjfRvxmbVd9SYDzCX+ab+ 2iDGVdaHZIZxP9lUazeG1ZnyOTleO4Els6osN1CHnuV2ULu0LhRSyBfF5LD4cQ== X-Gm-Gg: ASbGncsyTRMJ/dMssfXEYcaWNTTE2JElDN4ddaFMf+IgRqUx9iRACExqTvuU/CgZu9T L32uD+t7Z+YXegQ64cPvMixLrDWwRfVJRvxZmqVa/rRnOizFZZuexx+qrfke8ytR97I45KadFcp PxYWT2MJlfY3bjLaCFdB6wfVBL7uhiY8JvKgiUfsrS4L3iLMVrbwU+Nt70VCM29lDY+dzj8m/mz 2bSsSfK0CCRWCPHLjM0E/Q1dLLcQ0U6IfLP4h6wf8PSSJ4SwbzG2GUVTS1mY2/rP74w7higrUQ1 /iU5vLv85jW0IOxaJd2HfOlwgni4nzolOtWtpEJnvoJcaFRtnI8o3eVMRbg+cgWo X-Google-Smtp-Source: AGHT+IFOuJmmxzA+ReiRbRwypgKWzdA6gCQrhqdrcIm7Sa8UPoBwrHR0OJYs/WH39AmSpYnch5aLdQ== X-Received: by 2002:a17:902:ef0a:b0:21f:85ee:f2df with SMTP id d9443c01a7336-22c5357f28dmr180645165ad.15.1745253136160; Mon, 21 Apr 2025 09:32:16 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 05/11] vfio/igd: Check vendor and device ID on GVT-g mdev Date: Tue, 22 Apr 2025 00:31:05 +0800 Message-ID: <20250421163112.21316-6-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::641; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x641.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253365859019000 Content-Type: text/plain; charset="utf-8" Check the vendor and device ID on GVT-g mdev to ensure it is a supported device [1]. This extra check is required for automatically enabling OpRegion access later. Note that Cherryview and Gemini Lake are marked as supported here since current code cannot distinguish them with other Gen8 and Gen9 devices. Since mdev cannot be created on these devices, this has no functional impact. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree= /drivers/gpu/drm/i915/intel_gvt.c?h=3Dv6.14#n52 Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index cc397f8829..e94ed7029a 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -654,6 +654,19 @@ error: */ static bool vfio_pci_kvmgt_config_quirk(VFIOPCIDevice *vdev, Error **errp) { + int gen; + + if (!vfio_pci_is(vdev, PCI_VENDOR_ID_INTEL, PCI_ANY_ID) || + !vfio_is_vga(vdev)) { + return true; + } + + /* FIXME: Cherryview is Gen8, but don't support GVT-g */ + gen =3D igd_gen(vdev); + if (gen !=3D 8 && gen !=3D 9) { + return true; + } + /* Hotplugging is not supported for opregion access */ if (vdev->pdev.qdev.hotplugged) { error_setg(errp, "Hotplugging Intel GVT-g vGPU is not supported."); --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253276; cv=none; d=zohomail.com; s=zohoarc; b=eYFkS4OzEAtMtb5Ost9Rcwh801YVlRHpZD6Jz2pZeOWAogT5O/luO6bgBr6pIVXI3yuVT3MTvugIL91PN8og6KATEFk4N79rHPMwOqFNRKDNs9cm77AwGdzfTtUrs/oA3z1Y9R2QXbfWVPj/0Wh+ro/RFmn5zBBaALfiT6EeKX4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253276; h=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=RvC99gYRAIEXOQtPt1e5/2mg3W15SfaN/5LpS/IYlFk=; b=M3ieQYabgglm1UfzFKFSbGqMyp9EBgmp31bedUEmJsfF5LgrGC2lbVqrO/Bj4LR/nA1Ng1SkA/bjdPPNu/eLZnWfS31t144AmNC2QPIksAqcu9xBdS/ycHBz+K2/24M7RVEgL0V7ePwK6dc5e/fQNctMIpou6S4wrh2RaEb7A+I= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253276852428.7015445489084; Mon, 21 Apr 2025 09:34:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u4P-00088m-HO; Mon, 21 Apr 2025 12:32:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u4G-0007zJ-F2 for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:29 -0400 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u4D-0003Io-3B for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:23 -0400 Received: by mail-pl1-x641.google.com with SMTP id d9443c01a7336-227b828de00so42872965ad.1 for ; Mon, 21 Apr 2025 09:32:20 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253140; x=1745857940; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RvC99gYRAIEXOQtPt1e5/2mg3W15SfaN/5LpS/IYlFk=; b=Bz3rhySTq9dXr/YpDVM8CVYy+O/TyqepbKOSw20U0RkR6Eg7n3IAKuLPs3J66DtVdC smpTnkrUGxvmfCi0KFyNXBYlBovWhhN/WOc9QeXob+Y6Uhh4ku6FL3Zd2sbPMJ7QWHc3 XjLNkkRe5SfZcGUxpTEtRGItQHRtLoF66x0Gle4YKxybidbj83NIWDlsUv4JHUoSXfEh +vPubo0TmHrra5DuvdJQBVrvFbmbkOv3b0EXrLNHR1N3OQlfsArTPbiwS6iVpwfgtvsR GpHTBXDRctJ3vEP/LrU6qs2m4ddcuaMY3MEmJETZX/0t/LSwgukI6vuB9XnptKm3BTNk ALlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253140; x=1745857940; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RvC99gYRAIEXOQtPt1e5/2mg3W15SfaN/5LpS/IYlFk=; b=CqtbW7mVh3ZDvYyBdACI4M1O0qYQx7MSYLTOmlAfOnayGLxErO5DjTz13vCr950f5J 3V2IzIgicJl52bYnIq7drtAQxtcHLnYFh4rWEr/p0GJ3Lo3tMBmYts92wQuQWKuq+M6/ L+/UtlHNxaKIOhwXY+w3DCsxOfSol8J8NPHeUQJVniMkP25h2xnPa1hWzj0w8hGqeF8J XheMQzi2DZ7E4qDgjY/lbbRGvHDYShUrWM+0iHUOD5L1n1YlSWhZhgF0Og3OsoIi1ZK6 avx51BB3UiJoGI5melrRWQSfanJwVUWqkEmGxJNLQbOdiF6NQtTfRfxaVvHEMl26ATmv lqbQ== X-Gm-Message-State: AOJu0Yw3ZVIlDKiMkDfuvb8+FFiiHPffqirWYdb6DbOMJeJWfO8+G0zE WChlPkGLJf4qyg87qM9NEDCl+8CUvVgxXL2jF9BLvbFWAn4CImSlFWvWIbbg+Q== X-Gm-Gg: ASbGncsWpEcNG7AaOgOKUxi4BJzYB4yz6UGW78Onk98b8s8r57AhisR3CCDEd6A2Vvv 7gMCrz6JGi5xDvvP5k23LettelAh7Tc2I79re8MrGLe58u9A9aFkPSnU3tolCo7Ldk5TkjdmGjT i1rRIMAJqN3QEWHuSfPKn0ZzDkJJqJgE4NsOpW7uZcFIUmHb5ONgJZpOkaVqY2L51vi1i6OkmPn q3oqE9drCdngonWTs46H5ghGAbd6YsY3iDvU+h2riFMMza5nNcrR9Ef0/EYIn4EcT9Q15K3yOAE CqZQMZfEFEOrpS1s6bFEpZh8ICd/U8NGJbK02O2VLWQxXCyKelq2jA== X-Google-Smtp-Source: AGHT+IG5KOMuDw+syVygKtKZbvRcsDy+O4SrasQ9PUJfAcCiU7Ov2frs5yHxYGmZYEoYBaVAswFg3w== X-Received: by 2002:a17:902:e847:b0:223:35cb:e421 with SMTP id d9443c01a7336-22c5362087bmr189089035ad.49.1745253139651; Mon, 21 Apr 2025 09:32:19 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= , Tomita Moeko Subject: [PATCH 06/11] vfio/igd: Enable OpRegion by default Date: Tue, 22 Apr 2025 00:31:06 +0800 Message-ID: <20250421163112.21316-7-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::641; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x641.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253277565019000 Content-Type: text/plain; charset="utf-8" As the presence of OpRegion is used to detect IGD device now, and guest driver usually depends on OpRegion to work. Enable OpRegion on IGD devices by default for out-of-the-box passthrough experience (except pre-boot display output), especially for libvirt users. Example of IGD passthrough with libvirt:
Signed-off-by: Tomita Moeko --- hw/vfio/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 05a7a62204..38ff231625 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -3361,7 +3361,7 @@ static const Property vfio_pci_dev_properties[] =3D { DEFINE_PROP_BIT("x-req", VFIOPCIDevice, features, VFIO_FEATURE_ENABLE_REQ_BIT, true), DEFINE_PROP_BIT("x-igd-opregion", VFIOPCIDevice, features, - VFIO_FEATURE_ENABLE_IGD_OPREGION_BIT, false), + VFIO_FEATURE_ENABLE_IGD_OPREGION_BIT, true), DEFINE_PROP_BIT("x-igd-lpc", VFIOPCIDevice, features, VFIO_FEATURE_ENABLE_IGD_LPC_BIT, false), DEFINE_PROP_ON_OFF_AUTO("x-igd-legacy-mode", VFIOPCIDevice, --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253204; cv=none; d=zohomail.com; s=zohoarc; b=FmXF783Hp26Eagpx7zLesIwDJsl8ky8h8K86ckAjEQgSpjVGB1PKsmFvatfYW/mNsFmH6H+2uqbndieORJ+/pscvQeFvjhlvX5kMTcE6Nm/j9tt8JFQDYUIG5O/CKMPyGvNnfw/v7mKFIIW7fT2ObThzl27EHABDgwZlHm4gbNE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253204; h=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=rDKbRVQwlLuOOUMYpsyapMZZPBBW7Ei89yj6bKmdEwQ=; b=oHcWqWNr3fiMt19G4f8ZIG1BxB74N4nBXWmrRPjd5uevNJzO7FDTgh8hT3Ik5NNUyoQ2MX4LV83K8lyx6nmrGwwdxN68frC3tGSjJTaVL5O3uplT9hvnJfHKbI8BtB9PwtLmX61nsNLCIDGa9QqCewg6/lmRkaI3d+32w3aTqIo= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253204447881.4123936873785; Mon, 21 Apr 2025 09:33:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u4P-00089V-TC; Mon, 21 Apr 2025 12:32:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u4K-00080L-1g for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:30 -0400 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u4G-0003J1-3U for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:25 -0400 Received: by mail-pl1-x642.google.com with SMTP id d9443c01a7336-2254e0b4b79so62269445ad.2 for ; Mon, 21 Apr 2025 09:32:23 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253143; x=1745857943; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rDKbRVQwlLuOOUMYpsyapMZZPBBW7Ei89yj6bKmdEwQ=; b=Rty2v+uDGo3FsX53VVMjLnstWqPLh4yZi2ZVLvYjUjz22yJT0Bm7v9hEPC5b4iJcaX UK6CvK6/qLPhZGrcxlcyw19AvvsYkZ5xFqQPpshMoY+RFO3+OEHkUv9uLNRBxrZWvKjI SuDqfMDDTHL8Y9cZ+5cI29K1YIMdeXpSfUKjihpNp9Oz5x13KieC7ao7jzsUUmjn7SUz AHpH04XzS20xp4p8AYop4QFLG9Gz7zIRM9usZulAin1pcwWqWF6tc5qey+eBNUa/46by SVcoFZWoBPph1SAuq6EskwQhQklRli3gRQBFWfa4qmed3ckfzXqv/2N2zlvPY06ZUoqx 1idw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253143; x=1745857943; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rDKbRVQwlLuOOUMYpsyapMZZPBBW7Ei89yj6bKmdEwQ=; b=AjwY260hW7z+wqGvTM+TjZMJT0GR8n1qJRIhS+QEeD8J6yuzlK5Ef3qmkiUROKjgrT oulT65yrkz7Sz9/t5RrSSFfSF6Jnf0e7CyHtLNm7kHhUh7aGDn2ikGIGVBcP8sB9MbR+ 5/FQS6zruKLJcwsGPN9b0+43gVj9L4qywX7zeRvZasrbgZW/Kfxm1s0ANia8MP4wkdlY 4XUQFC3jG9kxu8OnfXYelsLMxtHBVMHlDZF8uIckSPY7neuieOdi9l9s9s5lrUt9q+sa kbrjhrv8HLpjuS1gQwZxNRoa2e5SM2TgUQnOwMaVCXrTxyxJx4CqCCQaswud0SwoJeiG RXcg== X-Gm-Message-State: AOJu0Ywz0Uy+08clGm7HZOmSuJgh3rUZnLUQCxu8xp7psPvYM+9jI3o4 jxHW7qz2e8SKU+mxftyLbmOBbtAlYHLP4iIUi4KixqtCmk6ch8BDZurJnX8cVg== X-Gm-Gg: ASbGncsiojJ+bWMfobIOfM4nmWaFUyQmYF7dlvvzyrQZGZ1ViI2Y/RKY4202ewr9PYT XQHw7z0rZddralkZvhJvApHFn7y7NtfXBrr8/s9o6wIKWy6w4/VexjHmazaqJmOeqN0KProMsYI vadby3S+TgWgCBQEhGF6EfSAsX08LKs0wmN1r3x8Mta+JqXYUHnI+GhKhJXWFN92gbNRI1/Gx28 LNSKfvIYQIeeZUw5ARJa49f+7e7j3dxwX2XKm95oTLlwpZJqOZ9RPVBDT49B1edu5d2ohsYLrAE A5W97fv7qPiXhQrKCb01u2QLMHwBqNb3YfBetBpJUu/GUWNPrHP9ww== X-Google-Smtp-Source: AGHT+IGmYXEXhiJpb3HSDnaQwvWe6t+IzhX0D+7LP3plN/lI1Q6EOXCnoreyscb1u3ZLAXQUIl4MAA== X-Received: by 2002:a17:902:ec90:b0:227:e709:f71 with SMTP id d9443c01a7336-22c535ad462mr191732755ad.29.1745253142687; Mon, 21 Apr 2025 09:32:22 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 07/11] vfio/igd: Allow hotplugging with OpRegion enabled Date: Tue, 22 Apr 2025 00:31:07 +0800 Message-ID: <20250421163112.21316-8-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::642; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x642.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253206175019100 Content-Type: text/plain; charset="utf-8" OpRegion is exposed to guest as a read-only fw_cfg item, so hotplugging with it wouldn't cause issues. Since OpRegion needs to be set up by guest firmware, a guest reboot is typically required. For linux guests, i915 driver is able to mock VBT [1] when OpRegion is not present, the reboot may not required. Still, hotplugging IGD devices is highly discouraged. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/comm= it/?id=3Dbb1d132935c2f87cd261eb559759fe49d5e5dc43 Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index e94ed7029a..e3ff86d0e6 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -549,10 +549,6 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *v= dev, Error **errp) =20 /* Setup OpRegion access */ if ((vdev->features & VFIO_FEATURE_ENABLE_IGD_OPREGION)) { - if (vdev->pdev.qdev.hotplugged) { - error_setg(errp, "OpRegion is not supported on hotplugged devi= ce"); - goto error; - } if (!vfio_pci_igd_opregion_init(vdev, opregion, errp)) { goto error; } --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253205; cv=none; d=zohomail.com; s=zohoarc; b=B8IDmHUOgCZkMP4bozabwFCFqZgaANOo8DeZTlXt/KGbwCrB4SMHneEoQ2QvD8wz1AgvSrwZ5mhVopQSclFVfmx3yBWJr4jlgICvT9vnSyg8cadBkKk9L5d0+H/1+4QQ4ZvYEk+gxWrPPChZWq/1uuFxsUlPaIoRZj0amAJpFC4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253205; h=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=c87Lgiq7jDdcGg3ilCsOHR7tmTWpS2SJIxQ0tltfjbI=; b=EXJSLSqNmwjL5QFTIl7QOQB98HbPJyt54Zy7QdjXbwSiJULkbxlkdAQBhEHNIdG/vNxlfNJeI4744G8QxLkzoJuyVCyb4TNwDEP3f6yQisBXCoCCRamt97Tr0OQwG3qa947S4BY2f2QDG28VG3uG5gajRpye9gZPm8odKCiBEMQ= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253205925534.108459948003; Mon, 21 Apr 2025 09:33:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u4u-0008Sz-8G; Mon, 21 Apr 2025 12:33:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u4L-00084q-PA for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:30 -0400 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u4J-0003JM-Q1 for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:29 -0400 Received: by mail-pl1-x643.google.com with SMTP id d9443c01a7336-2255003f4c6so46926455ad.0 for ; Mon, 21 Apr 2025 09:32:26 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253146; x=1745857946; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c87Lgiq7jDdcGg3ilCsOHR7tmTWpS2SJIxQ0tltfjbI=; b=TW9ckyZb4mWJ3wQyAImUQBSFo+z4d4WvU6kS5Beo+U+q7pP+vXl5AQyuLxm00cL/0X mCkBfuo+QNiyaaO6zvBnfvN3Wxr7v/0+U1pkogqvKcD0boii/pXxMaH8exj3Mxu8mRcW DffxiWrzB1rDoGjyCCgGkZPFuzejI5wShKiBIYAYvCqLd2boP/RkCBHOSgPpcsNa3j0X rUmilEUTAh/7Run1vwylxxiU/k+aBXnI3H5Y42xOU2CZTNjeXFlJOwyHALLqN8Vxz39U 7SEQ4N+wLOWSAByWR5gKLzFRacfArtTfEtrWG8Pibx2Zz2jD0+C5oMrxyAMtsoUw5ElY m1QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253146; x=1745857946; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c87Lgiq7jDdcGg3ilCsOHR7tmTWpS2SJIxQ0tltfjbI=; b=CdYPa+nGycO0JEarkUakJn1V9pGB4c1UdzGKfhljQIoejA57Y9CPrmps7WeNTyASC/ nKmRs36gwByJMWJhs8SenOTImXqi5Cxm+gC/zhYe8rr7GUKQH5eJJgk85cR2sjZCZWod Vmhl5/E8Kj6tjl4qIw+nnk06SmzvAmVSeKc4BitzBsRJ+FXsDB9o8aiMRZRxDsNS+rUH dtrZRJvoUzCARea/n9gddtRXb5YkNOLJphCUkjH3nExk53SAJ7iOG0YeblRnPA0USXcZ 4nFLTm7tbteSntWDwLGZWWuliqg3o0zd1eKEx531raiew+9NtEyIk/+in+5Pn4yNCd6R dbIg== X-Gm-Message-State: AOJu0YxAT4RiQnJdYZp9E8xORWHDEGsps1uBsTQ9PvRJ+Es7p68y1qXm klvOlflzVeJjycx+oPhnnZSyfeK3A6bzCmNPVs9x6Jdc0bQgA1Y= X-Gm-Gg: ASbGncscRDmfunGdTVVgUZAI/vd5UF5mf6KaOeP9Ki1pXuo0sx3xihHlHthL5gv1duK JB0T6PN3s86aoQKYlPRIDua/IxKrXR/cmBtKnlyEeEuSPoebwPAl42A1Ld1Cq5CvLPAG/vi3wxG aDiUqYA8IoJ3i/tTM3/+meK/iB9C9n+tDIqhkCEsdAFyqGFs8egPam6SAdiTh6t0oqdHk5golxO Mxc4XYIca++rwPYKZRF+Q/9ngTzVrUdN/+lzu+sVPTErUum9BGMfhxlvbos28VsLkBQqAoQCUC/ B1WtWH7F+L9P8N80rRgziH37CQ+rpsO4XpKXeQ0Dtaqtq4az9+dZiQ== X-Google-Smtp-Source: AGHT+IGDNTMhKam1a4+asxir+yL9Zjw6wLiI7H4Dnu01H3w4NxjS5xwLf+636JfF5mCb5YgbgzRiYQ== X-Received: by 2002:a17:903:98f:b0:221:7eae:163b with SMTP id d9443c01a7336-22c53627298mr176429775ad.46.1745253145730; Mon, 21 Apr 2025 09:32:25 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 08/11] vfio/igd: Allow overriding GMS with 0xf0 to 0xfe on Gen9+ Date: Tue, 22 Apr 2025 00:31:08 +0800 Message-ID: <20250421163112.21316-9-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::643; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x643.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253208190019100 Content-Type: text/plain; charset="utf-8" On Gen9 and later IGD devices, GMS 0xf0 to 0xfe represents 4MB to 60MB pre-allocated memory size in 4MB increments. Allow users overriding GMS with these values. Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 59 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index e3ff86d0e6..b747fdfaeb 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -387,6 +387,44 @@ static bool vfio_pci_igd_setup_lpc_bridge(VFIOPCIDevic= e *vdev, Error **errp) return true; } =20 +static bool vfio_pci_igd_override_gms(int gen, uint32_t gms, uint32_t *gmc= h) +{ + bool ret =3D false; + + if (gen =3D=3D -1) { + error_report("x-igd-gms is not supported on this device"); + } else if (gen < 8) { + if (gms <=3D 0x10) { + *gmch &=3D ~(IGD_GMCH_GEN6_GMS_MASK << IGD_GMCH_GEN6_GMS_SHIFT= ); + *gmch |=3D gms << IGD_GMCH_GEN6_GMS_SHIFT; + ret =3D true; + } else { + error_report(QERR_INVALID_PARAMETER_VALUE, "x-igd-gms", "0~0x1= 0"); + } + } else if (gen =3D=3D 8) { + if ((gms <=3D 0x40)) { + *gmch &=3D ~(IGD_GMCH_GEN8_GMS_MASK << IGD_GMCH_GEN8_GMS_SHIFT= ); + *gmch |=3D gms << IGD_GMCH_GEN8_GMS_SHIFT; + ret =3D true; + } else { + error_report(QERR_INVALID_PARAMETER_VALUE, "x-igd-gms", "0~0x4= 0"); + } + } else { + /* 0x0 to 0x40: 32MB increments starting at 0MB */ + /* 0xf0 to 0xfe: 4MB increments starting at 4MB */ + if ((gms <=3D 0x40) || (gms >=3D 0xf0 && gms <=3D 0xfe)) { + *gmch &=3D ~(IGD_GMCH_GEN8_GMS_MASK << IGD_GMCH_GEN8_GMS_SHIFT= ); + *gmch |=3D gms << IGD_GMCH_GEN8_GMS_SHIFT; + ret =3D true; + } else { + error_report(QERR_INVALID_PARAMETER_VALUE, + "x-igd-gms", "0~0x40 or 0xf0~0xfe"); + } + } + + return ret; +} + #define IGD_GGC_MMIO_OFFSET 0x108040 #define IGD_BDSM_MMIO_OFFSET 0x1080C0 =20 @@ -573,24 +611,9 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *v= dev, Error **errp) * 32MiB. This option should only be used when the desired size cannot= be * set from DVMT Pre-Allocated option in host BIOS. */ - if (vdev->igd_gms) { - if (gen < 8) { - if (vdev->igd_gms <=3D 0x10) { - gmch &=3D ~(IGD_GMCH_GEN6_GMS_MASK << IGD_GMCH_GEN6_GMS_SH= IFT); - gmch |=3D vdev->igd_gms << IGD_GMCH_GEN6_GMS_SHIFT; - } else { - error_report(QERR_INVALID_PARAMETER_VALUE, - "x-igd-gms", "0~0x10"); - } - } else { - if (vdev->igd_gms <=3D 0x40) { - gmch &=3D ~(IGD_GMCH_GEN8_GMS_MASK << IGD_GMCH_GEN8_GMS_SH= IFT); - gmch |=3D vdev->igd_gms << IGD_GMCH_GEN8_GMS_SHIFT; - } else { - error_report(QERR_INVALID_PARAMETER_VALUE, - "x-igd-gms", "0~0x40"); - } - } + if (vdev->igd_gms && + !vfio_pci_igd_override_gms(gen, vdev->igd_gms, &gmch)) { + return false; } =20 gms_size =3D igd_stolen_memory_size(gen, gmch); --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253364; cv=none; d=zohomail.com; s=zohoarc; b=KMQ1t0cnYIFJjH9Pz84EX0U0V/CymQOA9X2uJuqMpFBx3Lix6NnKqw9RpB9f7Lf5q3RSt+nLbcC6TwRXYaf97llL72B8OgzB8XLWCK+VT7Pkl9WZhQN2SOBIjffqXIMII9n34I7FRxWHrxBG1ZIAGIwyi1cbmxoUg6hR8+7mVlM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253364; h=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=S4sVFv4vcdQmMjNtEjz8ql1XyA/nlU93n52hTlWvaY4=; b=hAAb9yJU55+T3/VKNw2/ItR8Gla2IaMiQzCh4uKPhgwspsULBb/Hr/x+HqDnSP8lM7IleFo3mzGadiQ1RsSXDldyfsFEDtQBnDgmbwuf8fSXn7PUTA8VmuDt77x9L/458eiC9fuLqpJMp4Q3zyYtjauWxbXXkqFxMkQ0C1hc4c0= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253364408877.050286206692; Mon, 21 Apr 2025 09:36:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u6s-0001g7-4p; Mon, 21 Apr 2025 12:35:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u4P-00088Q-5u for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:33 -0400 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u4N-0003K0-4z for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:32 -0400 Received: by mail-pl1-x643.google.com with SMTP id d9443c01a7336-224019ad9edso59751725ad.1 for ; Mon, 21 Apr 2025 09:32:30 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253150; x=1745857950; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=S4sVFv4vcdQmMjNtEjz8ql1XyA/nlU93n52hTlWvaY4=; b=XRcAQyI1TQN5qbjA4QWIHKQNe/I6am1Lj7026pYJovM4/bZDYldXWlwq6BvLhFHAmp dY+fbtVYarI+EaR1GjhPPE1w9tewff72CMMnZSYbRPVx70W8IyNISSs1X+V4quXO0+jM jTRNOPtqmZ7W1IVkZGToyyTiL2fG5jms+AT62M98pyONlW66zq3OmUvMGfSYgzKNwkW9 nIBRbAs8l6H8GdFValAEF+p3jIo/GlnLX8HdFWYfFeogiJ3R9fj8b6ojDPOM/dtFBqV6 V0xsHN3njtCeBMSs375f1T+u4KIG+hUaU0ED9uOI/i4p1dhe2Zno0qe5IfeY+XXsSQxT XJYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253150; x=1745857950; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=S4sVFv4vcdQmMjNtEjz8ql1XyA/nlU93n52hTlWvaY4=; b=A7s4RElmqFgiNOrOK9ge2BKX1PBg2WkZB/RF9u/vj8xKYHvPKpQTRFYyD7e6QiWIAt wm8y6dh4Q6tLrdet9Fx+LeGpfep/ZFvdFmsXXmzpNYDaJD45YkraKTGaw4sXLLnn7NRH RlMkWCq0daLR32FQ6O9B/AvRMz8Xzdw9+ajfF6dCbQa9F9xuqYJcvRmmYQk2Wt+HmMVQ WtoS1tW4uZB8ZcDaFqFgJ2zTmkELwpw9kQ/PCO3SMnyFTqfg5fE2Mwib/F93F7mvU/NV PsnIP03VlgTH03uiJvVor4jXY3kCVQkWit9SY+qGRYSAlHgjQEvWAdQ0GZgpI6gP4wCd Ziww== X-Gm-Message-State: AOJu0Yx0q3nn9Mw3tFNGi106Oh5lM0lRynL7uPb1VXjmQEkn0GvnphGF xWH4NsWduU9YQXbDBvikVefvPYuuUFQKVnNMqoOOoFntLN+EZMs= X-Gm-Gg: ASbGnctI/wOjejwvflEl9tKN1mGtzyuUYvQx4L5yZORym8GKrUOOe7AIDIp70crIJ2a i+vdECksqroPKuYzTd9ZGdrqrHheefWwWQzSp86C5ruai9cVlhNAjGGXx7BJxRFx9+Ldvg7e93f FXRhWC486xoZriEb8EA6E/4tWCm4PXDlNuz0j8sYTo7SKvAn8YUStH8ufFJ5fWX+h5NCftJ7SIe RqhcnGR5aBy/S8mY47FH/KIxzq7UV95JcWqNcwusIptuvh9L9WFMn8tRR4NUy79NoAmgu9OH6XU vlkZG/qjBXNzSK9diqVUlWUQ9nKv/G+84YZaQa9lx03Jl3MSgnnBUA== X-Google-Smtp-Source: AGHT+IECVA8fAc7p10FAiHSxSfxRuikyZbwjBteFpDMg7o5sVeRCdLqhKeiaFa48rmcDfPawPTshLg== X-Received: by 2002:a17:903:2f88:b0:223:65a9:ab86 with SMTP id d9443c01a7336-22c535a4b55mr187896845ad.12.1745253149681; Mon, 21 Apr 2025 09:32:29 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 09/11] vfio/igd: Only emulate GGC register when x-igd-gms is set Date: Tue, 22 Apr 2025 00:31:09 +0800 Message-ID: <20250421163112.21316-10-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::643; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x643.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253365908019000 Content-Type: text/plain; charset="utf-8" x-igd-gms is used for overriding DSM region size in GGC register in both config space and MMIO BAR0, by default host value is used. There is no need to emulate it in default case. Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index b747fdfaeb..bc4c79837d 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -453,22 +453,24 @@ void vfio_probe_igd_bar0_quirk(VFIOPCIDevice *vdev, i= nt nr) return; } =20 - ggc_quirk =3D vfio_quirk_alloc(1); - ggc_mirror =3D ggc_quirk->data =3D g_malloc0(sizeof(*ggc_mirror)); - ggc_mirror->mem =3D ggc_quirk->mem; - ggc_mirror->vdev =3D vdev; - ggc_mirror->bar =3D nr; - ggc_mirror->offset =3D IGD_GGC_MMIO_OFFSET; - ggc_mirror->config_offset =3D IGD_GMCH; - - memory_region_init_io(ggc_mirror->mem, OBJECT(vdev), - &vfio_generic_mirror_quirk, ggc_mirror, - "vfio-igd-ggc-quirk", 2); - memory_region_add_subregion_overlap(vdev->bars[nr].region.mem, - ggc_mirror->offset, ggc_mirror->me= m, - 1); + if (vdev->igd_gms) { + ggc_quirk =3D vfio_quirk_alloc(1); + ggc_mirror =3D ggc_quirk->data =3D g_malloc0(sizeof(*ggc_mirror)); + ggc_mirror->mem =3D ggc_quirk->mem; + ggc_mirror->vdev =3D vdev; + ggc_mirror->bar =3D nr; + ggc_mirror->offset =3D IGD_GGC_MMIO_OFFSET; + ggc_mirror->config_offset =3D IGD_GMCH; =20 - QLIST_INSERT_HEAD(&vdev->bars[nr].quirks, ggc_quirk, next); + memory_region_init_io(ggc_mirror->mem, OBJECT(vdev), + &vfio_generic_mirror_quirk, ggc_mirror, + "vfio-igd-ggc-quirk", 2); + memory_region_add_subregion_overlap(vdev->bars[nr].region.mem, + ggc_mirror->offset, ggc_mirror= ->mem, + 1); + + QLIST_INSERT_HEAD(&vdev->bars[nr].quirks, ggc_quirk, next); + } =20 bdsm_quirk =3D vfio_quirk_alloc(1); bdsm_mirror =3D bdsm_quirk->data =3D g_malloc0(sizeof(*bdsm_mirror)); @@ -611,9 +613,15 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *v= dev, Error **errp) * 32MiB. This option should only be used when the desired size cannot= be * set from DVMT Pre-Allocated option in host BIOS. */ - if (vdev->igd_gms && - !vfio_pci_igd_override_gms(gen, vdev->igd_gms, &gmch)) { - return false; + if (vdev->igd_gms) { + if (vfio_pci_igd_override_gms(gen, vdev->igd_gms, &gmch)) { + /* GMCH is read-only, emulated */ + pci_set_long(vdev->pdev.config + IGD_GMCH, gmch); + pci_set_long(vdev->pdev.wmask + IGD_GMCH, 0); + pci_set_long(vdev->emulated_config_bits + IGD_GMCH, ~0); + } else { + return false; + } } =20 gms_size =3D igd_stolen_memory_size(gen, gmch); @@ -631,11 +639,6 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *v= dev, Error **errp) fw_cfg_add_file(fw_cfg_find(), "etc/igd-bdsm-size", bdsm_size, sizeof(*bdsm_size)); =20 - /* GMCH is read-only, emulated */ - pci_set_long(vdev->pdev.config + IGD_GMCH, gmch); - pci_set_long(vdev->pdev.wmask + IGD_GMCH, 0); - pci_set_long(vdev->emulated_config_bits + IGD_GMCH, ~0); - /* BDSM is read-write, emulated. The BIOS needs to be able to write i= t */ if (gen < 11) { pci_set_long(vdev->pdev.config + IGD_BDSM, 0); --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253265; cv=none; d=zohomail.com; s=zohoarc; b=iBiPc0xBEowqYYvC4RYwaySvENzojZz9bwbXHq/vBquTibJQAfPJupJDf8j5/Q5xGIO9egMJJgxdyAoHdm7KQMXX4Hs/ldW2izdQ6wGIdz2rB47IKV0RGybbc+t7bf7yjCzplvMAmhRbIq+Hj0NhwvgAhmg7/ijm7Nyqz1oXUTs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253265; h=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=J1vNRoqzehudYEI0Q2G8mTJwn1LELvD7FXG1VA4lp34=; b=IkpCIYek3W4v328efk9yDnLPBZG/A85NqHp1FQZX/YScKP2AYKxPv9eLf5KPDv3k18pW3YOuuSDVIw/QoX9g6PDR4HA8fJi75Rhzw2vdRPK1/HJ5/fEffFCEKwsp+GALSH0LZEWQqCuDyMEg9sXgNjnPzTi6Irtjl89+Mnbgb4E= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253265384317.47634879832935; Mon, 21 Apr 2025 09:34:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u5n-0000uw-Rs; Mon, 21 Apr 2025 12:34:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u4T-0008Di-RS for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:40 -0400 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u4R-0003Kg-Kt for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:37 -0400 Received: by mail-pg1-x541.google.com with SMTP id 41be03b00d2f7-af590aea813so4859162a12.0 for ; Mon, 21 Apr 2025 09:32:35 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253154; x=1745857954; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J1vNRoqzehudYEI0Q2G8mTJwn1LELvD7FXG1VA4lp34=; b=Umpz73WN17a1NsWzoPLlMuRhfcMEpLAqshlBoWyueQJPBnQxdpAaWXtgEfj7UzEghz e9xDkaWNyNYvbA1Ct0zVRJnF5bOi94wjcuLbJAi7VlV/dJxMQVpdBHiL4KkwBgN5o8cC 1KComj68dnF0AZ30IxvSnHoK5rQ1CErB2z6ccRUJbjCSVWNhqENvklGLrkPMG3NSdl0d cCYkaJr0Kx4PVmDmC+maMGzSxmUJfhstlALnEcS5KzyerOCKGBc2zR5olktsBba2qCfk wEwcvT+WR1o3SOE2Tae3AKa4Te2IL8KjQGqEa5O1/lG4/ayeo9scyZ0+Wi2fCmg51zeG mULw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253154; x=1745857954; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J1vNRoqzehudYEI0Q2G8mTJwn1LELvD7FXG1VA4lp34=; b=iOBVfZAYRizkRQEzisvv/iyIiVdA3cukIz2S48mvcix3e8nlBVpg5jMKgaJpEngd5t hRA60Gg+drGaZUMIe/L2htWAViKg/CFxefc/D6RK4xbg5av5oENvRDkCl9+YEbVVf1jC PFdtOv3xg1OmhTQ0q2+jxC3ddbOzcAD4j5gQxfC51ujH84RkBsCkxlft1CwUGDvpaV5m Kt8PYKSgdb4R14qamnD2Lqe69Q53Z6uhLkshCt3UkWfnZJqV3Bw+lQlBz0Fq4sFWsxz7 S+6FdTCiGuNE1c5gqePeX+BEMu+mAYxlLa+RTEv8cfEfOK3gPDHmxIPvyJkInhm12zgF SlhQ== X-Gm-Message-State: AOJu0YzW/oAuhb9VbFOy68KVnXe26AmJRxnGII97WDbkBN3anawb79WY wjRXfLYZLLIGycPhUrgqATSzpzQbb9a0CKGc4A5qmGE2H6xowhgRPJZcCJJUdw== X-Gm-Gg: ASbGncv2b12kHzVtxUz99tW85rabmXmIomQ0BXTd0veasOIWsF4ouvEV7L8hWF3XGjp TD5JRqwSyfb19rYHgysNMoIYRdHW0wB8muc+8vEZ16IfkHWo9fJ2LF2Kg/vluKOS3grrd3ChO0u Bb367BJzRGM9VoXaY6daOb97Y/FnkK4uWkH6z/ILfobWdQ1KvBIqwOmKFMX/jQoGtYt8VTz9c0i wq6uX6eN7Wo0Okc0LnHmqHAcyNA4CbWMClRL6AV6UpjDvP3lsIKP6jed3DPsTbLeBcYoEboC/ER 6QjWCrQ8XLVyLLq6zA1IFW6kr/oQa1lhOndlDiUYMlPXmAVAL8fiOw== X-Google-Smtp-Source: AGHT+IGSEVKkBuEueWU7f5Vj1M05pw0lJFM2nSDbbzrlrbrW9A5r1Ii2+1m4doUKBMdM83DNMqXIaA== X-Received: by 2002:a17:90a:fc46:b0:302:fc48:4f0a with SMTP id 98e67ed59e1d1-3087c1c120dmr18123052a91.0.1745253153757; Mon, 21 Apr 2025 09:32:33 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 10/11] vfio/igd: Remove generation limitation for IGD passthrough Date: Tue, 22 Apr 2025 00:31:10 +0800 Message-ID: <20250421163112.21316-11-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::541; envelope-from=tomitamoeko@gmail.com; helo=mail-pg1-x541.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253267662019000 Content-Type: text/plain; charset="utf-8" Starting from Intel Core Ultra Series (Meteor Lake), Data Stolen Memory has became a part of LMEMBAR (MMIO BAR2) [1][2], meaning that BDSM and GGC register quirks are no longer needed on these platforms. To support Meteor/Arrow/Lunar Lake and future IGD devices, remove the generation limitation in IGD passthrough, and apply BDSM and GGC quirks only to known Gen6-12 devices. [1] https://edc.intel.com/content/www/us/en/design/publications/14th-genera= tion-core-processors-cfg-and-mem-registers/d2-f0-processor-graphics-registe= rs/ [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree= /drivers/gpu/drm/i915/gem/i915_gem_stolen.c?h=3Dv6.14#n142 Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 58 +++++++++++++++++++-------------------------------- 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index bc4c79837d..5b888616f0 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -103,6 +103,7 @@ static int igd_gen(VFIOPCIDevice *vdev) /* * Unfortunately, Intel changes it's specification quite often. This m= akes * it impossible to use a suitable default value for unknown devices. + * Return -1 for not applying any generation-specific quirks. */ return -1; } @@ -434,20 +435,12 @@ void vfio_probe_igd_bar0_quirk(VFIOPCIDevice *vdev, i= nt nr) VFIOConfigMirrorQuirk *ggc_mirror, *bdsm_mirror; int gen; =20 - /* - * This must be an Intel VGA device at address 00:02.0 for us to even - * consider enabling legacy mode. Some driver have dependencies on the= PCI - * bus address. - */ if (!vfio_pci_is(vdev, PCI_VENDOR_ID_INTEL, PCI_ANY_ID) || !vfio_is_vga(vdev) || nr !=3D 0) { return; } =20 - /* - * Only on IGD devices of gen 11 and above, the BDSM register is mirro= red - * into MMIO space and read from MMIO space by the Windows driver. - */ + /* Only on IGD Gen6-12 device needs quirks in BAR 0 */ gen =3D igd_gen(vdev); if (gen < 6) { return; @@ -494,7 +487,7 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *vd= ev, Error **errp) { g_autofree struct vfio_region_info *opregion =3D NULL; int ret, gen; - uint64_t gms_size; + uint64_t gms_size =3D 0; uint64_t *bdsm_size; uint32_t gmch; bool legacy_mode_enabled =3D false; @@ -514,18 +507,7 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *v= dev, Error **errp) } info_report("OpRegion detected on Intel display %x.", vdev->device_id); =20 - /* - * IGD is not a standard, they like to change their specs often. We - * only attempt to support back to SandBridge and we hope that newer - * devices maintain compatibility with generation 8. - */ gen =3D igd_gen(vdev); - if (gen =3D=3D -1) { - error_report("IGD device %s is unsupported in legacy mode, " - "try SandyBridge or newer", vdev->vbasedev.name); - return true; - } - gmch =3D vfio_pci_read_config(&vdev->pdev, IGD_GMCH, 4); =20 /* @@ -624,32 +606,34 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *= vdev, Error **errp) } } =20 - gms_size =3D igd_stolen_memory_size(gen, gmch); + if (gen > 0) { + gms_size =3D igd_stolen_memory_size(gen, gmch); + + /* BDSM is read-write, emulated. BIOS needs to be able to write it= */ + if (gen < 11) { + pci_set_long(vdev->pdev.config + IGD_BDSM, 0); + pci_set_long(vdev->pdev.wmask + IGD_BDSM, ~0); + pci_set_long(vdev->emulated_config_bits + IGD_BDSM, ~0); + } else { + pci_set_quad(vdev->pdev.config + IGD_BDSM_GEN11, 0); + pci_set_quad(vdev->pdev.wmask + IGD_BDSM_GEN11, ~0); + pci_set_quad(vdev->emulated_config_bits + IGD_BDSM_GEN11, ~0); + } + } =20 /* * Request reserved memory for stolen memory via fw_cfg. VM firmware * must allocate a 1MB aligned reserved memory region below 4GB with - * the requested size (in bytes) for use by the Intel PCI class VGA - * device at VM address 00:02.0. The base address of this reserved - * memory region must be written to the device BDSM register at PCI - * config offset 0x5C. + * the requested size (in bytes) for use by the IGD device. The base + * address of this reserved memory region must be written to the + * device BDSM register. + * For newer device without BDSM register, this fw_cfg item is 0. */ bdsm_size =3D g_malloc(sizeof(*bdsm_size)); *bdsm_size =3D cpu_to_le64(gms_size); fw_cfg_add_file(fw_cfg_find(), "etc/igd-bdsm-size", bdsm_size, sizeof(*bdsm_size)); =20 - /* BDSM is read-write, emulated. The BIOS needs to be able to write i= t */ - if (gen < 11) { - pci_set_long(vdev->pdev.config + IGD_BDSM, 0); - pci_set_long(vdev->pdev.wmask + IGD_BDSM, ~0); - pci_set_long(vdev->emulated_config_bits + IGD_BDSM, ~0); - } else { - pci_set_quad(vdev->pdev.config + IGD_BDSM_GEN11, 0); - pci_set_quad(vdev->pdev.wmask + IGD_BDSM_GEN11, ~0); - pci_set_quad(vdev->emulated_config_bits + IGD_BDSM_GEN11, ~0); - } - trace_vfio_pci_igd_bdsm_enabled(vdev->vbasedev.name, (gms_size / MiB)); =20 return true; --=20 2.47.2 From nobody Sat Nov 15 23:38:10 2025 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1745253361; cv=none; d=zohomail.com; s=zohoarc; b=mg8dmCLuFo6o9twR5In1XFqPv8XlTprd5icdbDxU5ZiijWZ6jpaLmHdS9+m72JH7d9soukNsp0HcvEELbCW7xCxDIU8eD9KQRzK/Ds7kbDJ5YGgjuqNrVjp88BNHwaCQQX44Cg9FuczJD09muLrIFjVsaRdGGjomb7fFl77LmRc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745253361; 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=dawidxz5JOBtoT8mh7yE8JxkLIKJJsZ8Tuvx/W3HyYY=; b=NN7og7y5XzdLdECTLZwJtykllIG+RN6dF6nfaZw/U9nS828lvDhfEKvhDoQ8URdMGO/xPPw76CPp2GIwUq8S7FhAthJtpxBPb4/z4Q7r3purj+d1FeL4CEraAQCcBBuiUws5oIBk8GQ6cghhSDg8ox0a0M19vGHvFwu1pSZJX5M= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745253361383757.3301886647134; Mon, 21 Apr 2025 09:36:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6u61-0001EA-98; Mon, 21 Apr 2025 12:34:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6u4W-0008EO-8p for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:42 -0400 Received: from mail-pj1-x1042.google.com ([2607:f8b0:4864:20::1042]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6u4U-0003L8-Ht for qemu-devel@nongnu.org; Mon, 21 Apr 2025 12:32:39 -0400 Received: by mail-pj1-x1042.google.com with SMTP id 98e67ed59e1d1-2ff784dc055so3842477a91.1 for ; Mon, 21 Apr 2025 09:32:38 -0700 (PDT) Received: from localhost.localdomain ([139.227.17.39]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed1997sm67778725ad.201.2025.04.21.09.32.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 09:32:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745253157; x=1745857957; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dawidxz5JOBtoT8mh7yE8JxkLIKJJsZ8Tuvx/W3HyYY=; b=Ex2JAm9LZK+j/CK5EAa6xzR39dSfFD8y/jPVeVV0U5GA6IjpFoEySnmkfheoakIq+0 rt+E/VycggWmGbBGGWbBlptLJQBn1sjrowRg0TgyeE6/0PBVvmRrn48A5FCXgAJtdbgf cK0QJ7CjUpSmWCM5k0oHVNsejaPTPCagekNExRF4g3PT826GETufvPlNuLEw31ElA9fI esHr7yxKjhqy4XIY7z4fwwLKe3nE0tnLkeJZYvZ7TX22RUvhRxGVpMd/8DdIarJeJOIU xwUWKE/aETssYD+lq8HHMJqmEWqlQlNFJrmSVYX/dEvCrnBLaS+wtopZDEY295SlQo7K ws3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745253157; x=1745857957; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dawidxz5JOBtoT8mh7yE8JxkLIKJJsZ8Tuvx/W3HyYY=; b=Inw0KaZfqf8zj42qwA64H2BA1/CAHbc1K2bfc6Duf6ZS6+nR10IAIF87nJQMoVwFPe sYqbtUUZ2C8NJmmQoIE3vSjA4M/YSWPfUTH2sld2bdnjoCmjhbd/ehhkcTQQ1w2cUkq/ wqOwJqf50H4uYV+AvlFOz90L6jrVcScwR2H3xlK8rlp69XBsejcy7S2OK7lwk3uDjYWA p+hVIePfk85rqfdg9h5IVy+0EJKQpvRxJ9xN01DC98ha6TVKmslhKihzxzgM0eM7LjdF P16Z7HzSaLRsL8xSfpmWBMlYKitZC5JxmqJC0KhmTb1nTePTK+qds1cBmto6SUrfodYA JwBg== X-Gm-Message-State: AOJu0Yy/fawGM6wUVs8w/nSmAirA4JTBKhpDVcc4MJCo3aTLOeav/IzN P+HYfJLNtdGtnQXDnMQDC76oYFlFh4iKLgf58uW/a/VbnkqQa5We5JSC4alSpQ== X-Gm-Gg: ASbGncv12KQdrSEWHAf7YGWxBYpCHqWE+DowZ16hMS4DWlqF4rdcPEVpdYOnREF6ohL KsHcYn87jKvK/w2eU5YFVI/99K3i6NiTqe9RI7q7cvlwAOgNp+ipI9Y+exMpp5D0o4n8s7j/73V fRQGkvM5rTEP73JMhDyy37JR+IIhbGawQDhAen4bBjxvlG/+Af4+L3grOQEuM3Er9xLY1TamTAS /FY3/xroWOj+d9YCsSDI34GOaJ6oQTUnctA8cYPVSDx8aP7DbCAQsfP/eqNuDgBQVH4WXEIJJr3 b7Mqq0qcYj8NjzWhXrR+XB4ULx/u+aeIhKG1JO1vBTpLsyUz+Xg8hfMPK2IRQ8gB X-Google-Smtp-Source: AGHT+IHw9g2Y7sjwEzZUw4WOY1k7Uu/+E3UELtlX+ZkqOwVQ6vdhZVbtzl6Jhi7BuHGW5vk/nGph5A== X-Received: by 2002:a17:90b:520f:b0:2ff:4a8d:74f8 with SMTP id 98e67ed59e1d1-3087bb3e870mr15918226a91.6.1745253156980; Mon, 21 Apr 2025 09:32:36 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org, =?UTF-8?q?Corvin=20K=C3=B6hne?= Subject: [PATCH 11/11] vfio/igd: Update IGD passthrough documentation Date: Tue, 22 Apr 2025 00:31:11 +0800 Message-ID: <20250421163112.21316-12-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250421163112.21316-1-tomitamoeko@gmail.com> References: <20250421163112.21316-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1042; envelope-from=tomitamoeko@gmail.com; helo=mail-pj1-x1042.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: 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 @gmail.com) X-ZM-MESSAGEID: 1745253361865019000 In previous commits, several changes were made to IGD passthrough: * Legacy mode now requires the IGD to be Gen6=E2=80=93Gen9. * OpRegion quirk is enabled by default. * "etc/igd-bdsm-size" is set to 0 when guest firmware does not need to allocate Data Stolen Memory and write BDSM register. Update the documentation to reflect these changes. Signed-off-by: Tomita Moeko --- docs/igd-assign.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/igd-assign.txt b/docs/igd-assign.txt index 3aed7956d5..eac31ea3dd 100644 --- a/docs/igd-assign.txt +++ b/docs/igd-assign.txt @@ -47,6 +47,7 @@ Intel document [1] shows how to dump VBIOS to file. For U= EFI Option ROM, see =20 QEMU also provides a "Legacy" mode that implicitly enables full functional= ity on IGD, it is automatically enabled when +* IGD generation is 6 to 9 (Sandy Bridge to Comet Lake)=20 * Machine type is i440fx * IGD is assigned to guest BDF 00:02.0 * ROM BAR or romfile is present @@ -101,7 +102,7 @@ digital formats work well. =20 Options =3D=3D=3D=3D=3D=3D=3D -* x-igd-opregion=3D[on|*off*] +* x-igd-opregion=3D[*on*|off] Copy host IGD OpRegion and expose it to guest with fw_cfg =20 * x-igd-lpc=3D[on|*off*] @@ -123,7 +124,7 @@ Examples =20 * Adding IGD with OpRegion and LPC ID hack, but without VGA ranges (For UEFI guests) - -device vfio-pci,host=3D00:02.0,id=3Dhostdev0,addr=3D2.0,x-igd-legacy-mo= de=3Doff,x-igd-opregion=3Don,x-igd-lpc=3Don,romfile=3Defi_oprom.rom + -device vfio-pci,host=3D00:02.0,id=3Dhostdev0,addr=3D2.0,x-igd-legacy-mo= de=3Doff,x-igd-lpc=3Don,romfile=3Defi_oprom.rom =20 =20 Guest firmware @@ -156,6 +157,12 @@ fw_cfg requirements on the VM firmware: it's expected that this fw_cfg file is only relevant to a single PCI class VGA device with Intel vendor ID, appearing at PCI bus address 00:= 02.0. =20 + Starting from Meteor Lake, IGD devices access stolen memory via its MMIO + BAR2 (LMEMBAR) and removed the BDSM register in config space. There is + no need for guest firmware to allocate data stolen memory in guest addr= ess + space and write it to BDSM register. Value of this fw_cfg file is 0 in + such case. + Upstream Seabios has OpRegion and BDSM (pre-Gen11 device only) support. However, the support is not accepted by upstream EDK2/OVMF. A recommended solution is to create a virtual OpRom with following DXE drivers: --=20 2.47.2