From nobody Thu Jul 23 21:53:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=aol.com ARC-Seal: i=1; a=rsa-sha256; t=1783613974; cv=none; d=zohomail.com; s=zohoarc; b=JGqA5Phui5U4BGT9GPYM45WJ018NTbC6hH1KtvJoZwmm+9hyuRcWrwQ0zQiytR46hPfnJgHNfWmvJPWZ9ifmV1rMn8YT8XMR/tBFWxNMH3OCewvv8G+DQDAJk4NleL1hXIQkmibOK84wAHoMbf3fKLvQKI088am85eXRO4kO/JM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783613974; 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=aTZYJ19teLtgjMj7F9U4FXEuCw6WFBhpiWLDA9olIKg=; b=bc926/9sfFKtxc1rG39CpB72LJ9y/JxS2+EZXYjIQ2KNmC9KoIp6S9bmpzcF8dQOoeBaEvVh0xaQ4rXtMqvf6yiqNUDFt58RkwDhlyLSeTpGuq7W7iG30GEWjCfROjUU2+QeftryGF5I2t9gOlCLKVbts3ty14o0knqdxInLlqg= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783613974721473.1621995584974; Thu, 9 Jul 2026 09:19:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whrSc-0005b6-4j; Thu, 09 Jul 2026 12:18:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1whrSY-0005a4-B9 for qemu-devel@nongnu.org; Thu, 09 Jul 2026 12:18:46 -0400 Received: from sonic310-21.consmr.mail.gq1.yahoo.com ([98.137.69.147]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whrSU-0008Hf-QH for qemu-devel@nongnu.org; Thu, 09 Jul 2026 12:18:45 -0400 Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 16:18:39 +0000 Received: by hermes--production-ne1-7568ccb994-pgg8z (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID e91c25460b5bcef5e32390743f7fb9e1; Thu, 09 Jul 2026 16:18:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1783613919; bh=aTZYJ19teLtgjMj7F9U4FXEuCw6WFBhpiWLDA9olIKg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=dpvvhuMNQ0AlydLXUGrTyc2kdBT2MgLipEG7hlsxeTCQrfBxEONVQQRVDX2VvTQzRGADOIKcHB48WRk3SCM4U71ERCO+++HInf8Ivq2ZRJN5QdU1ujrko88ILkSOz9DHe7jmdvQSn6srwV1rouCMACYqh9CvCKP28UZqIzPGZUyTVTE6WXam0bjPdotxcyw6UAdnIhxX+00rDjWqUxPwuw7CAG3OqFniJcg69Y9+wxM7JsTdbfn970xNz3dNkCBlqpqdFejoeOMlT8h3+G94JCsTKCUqTNanHiXYdj5JUceG61bKWwBgeLF4txGKazG6+7i49aSO6di5NOb3dpxr4A== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783613919; bh=zRfeOITMp9hA8Z04Z05ZbIWmM8TioYp3jXpEcHdDQYz=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=P8xxAmzHQVXTlHAJgVAyuY2JyLT/R7cONBOW4YxodFV8Zwg5Sv1hcTT/H8MJsnveR4fpQ/+pgAmdofWr9+gv/a8K8fT6HfrmFeTw68tmC4OIouq6Pgue5h394Xam4O+wpe0vhnR7N2l1gOZYbCaHYrXrbd5w1gOnFAzcSv1nJZiP+vnajbW6abdt4V3wnkbrAQMjvKY0sErlN5z9z7r80IxdTLmMU6seiNnBbqekngFZf5xu3Q4uxK8X7LwU01tGR4SH2ulhpjp8cfNmm0vz2qwZQ9zqHaRJu6pKjbteAVQjYenixL6yoKMmvsN/QQ725GkeBWHKt6lzHDtGJnnmOg== X-YMail-OSG: tFM3Bf8VM1nasx3ROykWIoYVxsOKzyryTcOtm8ghBROhjE.QPKInFWdJs5vns6D Tr4t.fS.xLHiiiqi.DgyfZLE.Pm7DYGsOJmrLcC_9fE.aFfOTlAVElVgyKlz0VYBC_5MR_FbhvKS XfG82h2955J6XrtcypskYeya7_pU39Jkg3hHa3VgLvROesvj6j6_IkHBq0vMfP9jCmHmTjt.soHM _UBVbnpYAvT5iGZa9rpfhYeIOm2R8SqOOGnYlc606o7hUCnISS4NniqiWTgSxVvhR0_Imliqr0Kg 8LWIZ1KnSzwanAMoc9VpAcDiXAy4Q3bsTh0AXDkyZuvDroiqabiiMB1.pkbLwZvZzfkfHDL2VPqj kNDlKHcy6U0lkd1Gqm28zJsFhLUEmf3nXK92GMdKcf.OyVmdFOfN1vBDtSVcZr7eJo5N4VHQrDpX HgnNgGsKN2p0dDzUaGTpXjXukt8QLGxw0Y8BoQ2jmrazbsN7uSpWiyNwlxhnAIT926Vu1nb5Urjy XuAEZdUNpuVVvjvSIbb1jdsLOgO18rFJWwqYUN5gZ307CC_tgHxQcaP8VOUCC67nGzm_rXFqC5yc rY6C8hlGytMLoa2LKegIHd2KH4CUPt1q_dtetsvPbh9KGUoD3x.leI0HDKRy42uIdRbQhZU_e_gR lJ99q2P482fHlR_iH8iMl1NmK8Bax59F02OwrZI7rV8L1z0XKX3Zabkd79kH1ZbRzNr2Lg8pNKYG MswP3nqzC644n_IAKpjM8bUigrhNtIDIMbm8r5ROqZ2Z_SxEwSQE2BNExGiki61mHYmD8Y8gBZb8 q8SIPDAYHM.lkpgHjQKFG769whhGEgt.LnIHsITLf68oAHq0tA1s4Fw_THvLPq2oOG4CwTNF6kLx .sij7_ixG3AZggrsC_HHbzWon.Up1atglqdfPh5OezJAMW0oEDQgYvXx3sa8H3ODx6jbNE_Z0RV4 w_y32b3NAhCsItdO9SiinhkaXIEsHsZR5ao6PJqbz1gonHEY_.VXQiv22yuqK4IKbblxTFseamIG 7AB6txNq2dbIJJCZetvjcV__X5HTDSkkxmB_uA6S21O0HF.9vkWBYKkWLRDwEb7FULFxLRAV5jUA 3yimnxS5mVk3LRKn8W03wr_id0M1.CgKyapVZPI2Z00Ar8UVmwDExsxMnwExT0WUYN6bBFYUb_qM GnFZ1eSWG32icvFnOSHmBe9.Go2jQHMKKDgS5WyL7dim6Pl68c2SMoWvpNbNgVpQOtIvfkhgzwRZ PQJtefZvV2BBSk54Xgwbhe4I5gJQZ.BDu7p.1ew52myx1rZii_uZslsH_BT_UuloLIyc4okPFKxR xmhkOfHNpD4lhvp_mVR799XbaXVpWlk1MnATxxEOs6w3TSd8HPm7Gn6h15.N7RZm_7mcn3jTlwTM WMof3hLarjhm_2XGDlRTxD5ynfGywEDoKd_06CyNFJMFEpOjv7nJemFetOg1GJ3dNJi3AfKGQI_U qxKO4bW9EFlEMpHXxL.8P5H5WvFuTFaCoBAsc51PcdRWDuSi_gVVysbkA2Tr99k7_P.iu1MN3e2r gYs2ADwHZZ5.h3IXVJZqjFdqcj9lt12IvZYmCQbxoy_q6GRfCI7RwoZvqmT_tLjzPLsbfiag6aYB Y91rdzmKtjfMCngxslGzkuTNVdkEFN5qorxqVXqPR0Hx52ZYrtYzf2vAykCtcexbOCEFWmWE5tnI ZWJGAAp1hW5rcwnyswXlUP8b1ve1kwzvt5o5qV_EO5c5sfd_KRU_QvOUxB.VgIre1InKqeflxAAT 8BdKNQ5iz1nKTNP0WFsNUgiZzXP4_bwsDkCjqSRMgd5mQ8wqyWihX1O8p6ye4FWA2g5Hx4MHHM8L F.xtys_8NlFUedcPYXwxzwos4cZsOAVJ3PhDKBldV6P0n.vNLd2uURXENGR4yVU413w1PCmUiyhP MSBplNWDCUulbYLWn534zoYpGvZYijgc2dzFQRuiVsUi6q4EMZyqs63cwMpMnb92xIgj2snv.Faw uQ_gbZIK522GYa2ydEcv3k2xXu4KH7OB_pSYlk_T0.M_IlF165kuC_ec0l33jfN69vCKHmg2Rvud ozqA1aAarGDlnwLcvtFHMD1R3BDzKEdPh9Fq3E7KRKWIJLtpJ0VOCec6ISgUGW4Qze62bVXuozt9 GI.ehTVVvqKqW11yMzseQ8FMzm1kdy69x8SqAFPwFznMcst1ICMMzJoWxy3VtBZLIpYM5Qk9zxTY RwVWzkGjpRJOkJDEslwY0lmEFOVRv3EiNpEM- X-Sonic-MF: X-Sonic-ID: a226e517-b485-4777-b889-ed6bf335aba4 From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: stable@nongnu.org, xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH v2 1/3] xen/igd: get PCH info from host sysfs Date: Thu, 9 Jul 2026 12:18:29 -0400 Message-ID: <20260709161831.17753-2-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709161831.17753-1-brchuckz@aol.com> References: <20260709161831.17753-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 5806 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=98.137.69.147; envelope-from=brchuckz@aol.com; helo=sonic310-21.consmr.mail.gq1.yahoo.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, RCVD_IN_MSPIKE_H2=0.001, 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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @aol.com) X-ZM-MESSAGEID: 1783613976056158500 Content-Type: text/plain; charset="utf-8" The igd_combo_id_infos[] data is more than 10 years out of date with many Intel IGD devices missing from igd_combo_id_infos[]. This means that many devices that could be supported will not work with the current implementation. For newer devices not listed in igd_combo_id_infos[], get infos from the host sysfs to enable support for the newer devices not listed in igd_combo_id_infos[]. Introduce the helper function xen_pt_get_host_pch_info to facilitate getting the necessary information from sysfs. Also, use errp in xen_igd_passthrough_isa_bridge_create to set errors from xen_pt_get_host_pch_info. Signed-off-by: Chuck Zmudzinski --- Changes in v2: - call error_setg* after closing files instead of before closing files - in last line of commit message change "to propagate errors" to "to set errors" - add stable to Cc list hw/xen/xen_pt.c | 2 +- hw/xen/xen_pt_graphics.c | 82 ++++++++++++++++++++++++++++++++++++++-- include/hw/xen/xen_igd.h | 3 +- 3 files changed, 82 insertions(+), 5 deletions(-) diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c index 0fe9c0a..474606e 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -867,7 +867,7 @@ static void xen_pt_realize(PCIDevice *d, Error **errp) } =20 /* Register ISA bridge for passthrough GFX. */ - xen_igd_passthrough_isa_bridge_create(s, &s->real_device); + xen_igd_passthrough_isa_bridge_create(s, &s->real_device, errp); } =20 /* Handle real device's MMIO/PIO BARs */ diff --git a/hw/xen/xen_pt_graphics.c b/hw/xen/xen_pt_graphics.c index 7df9344..2ef941e 100644 --- a/hw/xen/xen_pt_graphics.c +++ b/hw/xen/xen_pt_graphics.c @@ -376,8 +376,75 @@ static void pt_graphics_register_types(void) } type_init(pt_graphics_register_types) =20 +static void xen_pt_get_host_pch_info(PCIDevice *dev, uint16_t *pch_dev_id, + uint8_t *pch_rev_id, Error **errp) +{ + FILE *fp1, *fp2; + char *endptr; + char device_id[7], rev[5]; + size_t len; + const char *device =3D "/sys/bus/pci/devices/0000:00:1f.0/device"; + const char *revision =3D "/sys/bus/pci/devices/0000:00:1f.0/revision"; + unsigned long val; + + fp1 =3D fopen(device, "r"); + if (fp1 =3D=3D NULL) { + error_setg_errno(errp, errno, "Cannot open %s", device); + return; + } + fp2 =3D fopen(revision, "r"); + if (fp2 =3D=3D NULL) { + fclose(fp1); + error_setg_errno(errp, errno, "Cannot open %s", revision); + return; + } + + len =3D fread(device_id, 1, 7, fp1); + if (!len) { + fclose(fp1); + fclose(fp2); + error_setg(errp, "Cannot read %s", device); + return; + } + len =3D fread(rev, 1, 5, fp2); + if (!len) { + fclose(fp1); + fclose(fp2); + error_setg(errp, "Cannot read %s", revision); + return; + } + fclose(fp1); + fclose(fp2); + + val =3D strtoul(device_id, &endptr, 16); + if (val > 0xffff) { + error_setg(errp, "PCH device id is out of range: 0x%lx", val); + return; + } + if ((endptr > device_id) && (errno !=3D ERANGE) && + (errno !=3D EINVAL)) { + *pch_dev_id =3D (uint16_t)val; + } else { + error_setg_errno(errp, errno, "device id strtoul " + "conversion failed"); + return; + } + val =3D strtoul(rev, &endptr, 16); + if (val > 0xff) { + error_setg(errp, "PCH revision is out of range: 0x%lx", val); + return; + } + if ((endptr > rev) && (errno !=3D ERANGE) && (errno !=3D EINVAL)) { + *pch_rev_id =3D (uint8_t)val; + } else { + error_setg_errno(errp, errno, "revision strtoul " + "conversion failed"); + } +} + void xen_igd_passthrough_isa_bridge_create(XenPCIPassthroughState *s, - XenHostPCIDevice *dev) + XenHostPCIDevice *dev, + Error **errp) { PCIBus *bus =3D pci_get_bus(&s->dev); struct PCIDevice *bridge_dev; @@ -394,7 +461,16 @@ void xen_igd_passthrough_isa_bridge_create(XenPCIPasst= hroughState *s, } } =20 - if (pch_dev_id =3D=3D 0xffff) { + /* Newer devices get PCH infos from host sysfs */ + if ((pch_dev_id =3D=3D 0xffff) || !pch_rev_id) { + xen_pt_get_host_pch_info(&s->dev, &pch_dev_id, &pch_rev_id, errp); + } + + XEN_PT_LOG(&s->dev, "PCH device id: 0x%x\n", pch_dev_id); + XEN_PT_LOG(&s->dev, "PCH revision: 0x%x\n", pch_rev_id); + + if ((pch_dev_id =3D=3D 0xffff) || !pch_rev_id) { + error_setg(errp, "failed to get PCH device id or revision"); return; } =20 @@ -406,7 +482,7 @@ void xen_igd_passthrough_isa_bridge_create(XenPCIPassth= roughState *s, * Note that vendor id is always PCI_VENDOR_ID_INTEL. */ if (!bridge_dev) { - fprintf(stderr, "set igd-passthrough-isa-bridge failed!\n"); + error_setg(errp, "set igd-passthrough-isa-bridge failed!"); return; } pci_config_set_device_id(bridge_dev->config, pch_dev_id); diff --git a/include/hw/xen/xen_igd.h b/include/hw/xen/xen_igd.h index 7ffca06..da51f09 100644 --- a/include/hw/xen/xen_igd.h +++ b/include/hw/xen/xen_igd.h @@ -22,7 +22,8 @@ uint32_t igd_read_opregion(XenPCIPassthroughState *s); void xen_igd_reserve_slot(PCIBus *pci_bus); void igd_write_opregion(XenPCIPassthroughState *s, uint32_t val); void xen_igd_passthrough_isa_bridge_create(XenPCIPassthroughState *s, - XenHostPCIDevice *dev); + XenHostPCIDevice *dev, + Error **errp); =20 static inline bool is_igd_vga_passthrough(XenHostPCIDevice *dev) { --=20 2.52.0 From nobody Thu Jul 23 21:53:25 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=aol.com ARC-Seal: i=1; a=rsa-sha256; t=1783613952; cv=none; d=zohomail.com; s=zohoarc; b=WLXFVvO6EVtv1pHbnqZEMrDRIP28tGkwl19FoORyXRBHTj//yxhCP5+gsOO3Lk441O6/DB7ySl7bUNyy82pe/D3COLp8Ov4aoj91UBeICQHyAQmlquI2QpcjV7Ce+EizKdNCV1DqwfEG8trrj0xyVJTTbucQyPilRXX2lj5xRI0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783613952; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=6TRFJxdSJpCb8eK0SYeXC8suh+qMlPVnpIC7E7OSPbk=; b=MjCRU8E2nfcV5Bmn3SVQN6FIu7vUPYG38ivne3GNsxzALJzkaSLMk6CNhhPPdLJzKSvFYwbAamrqiiKp4lYvT0ncqfqHSMLXesBDcrORMc/WgyCzxWmpfvpGdSIsKA6z/stEYyr6yyyveE+ITfhyCZuDlZtD2Qm4lpd4+SWX5L0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1783613952277966.6781822905613; Thu, 9 Jul 2026 09:19:12 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1358343.1612526 (Exim 4.92) (envelope-from ) id 1whrSZ-0002CP-4i; Thu, 09 Jul 2026 16:18:47 +0000 Received: by outflank-mailman (output) from mailman id 1358343.1612526; Thu, 09 Jul 2026 16:18:47 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whrSZ-0002CI-1r; Thu, 09 Jul 2026 16:18:47 +0000 Received: by outflank-mailman (input) for mailman id 1358343; Thu, 09 Jul 2026 16:18:45 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whrSX-00029Y-Pp for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 16:18:45 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1whrSX-00EFLu-6g for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 18:18:45 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a4fc9d4-e002-0a2a0a5209dd-0a2a4509d688-30 for ; Thu, 09 Jul 2026 18:18:44 +0200 Received: from [98.137.66.146] (helo=sonic317-20.consmr.mail.gq1.yahoo.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2) (envelope-from ) id 6a4fc9e3-b440-0a2a45090019-62894292ac87-3 for ; Thu, 09 Jul 2026 18:18:44 +0200 Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 16:18:43 +0000 Received: by hermes--production-ne1-7568ccb994-pgg8z (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID e91c25460b5bcef5e32390743f7fb9e1; Thu, 09 Jul 2026 16:18:37 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=a2048 header.d=aol.com header.i="@aol.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1783613923; bh=6TRFJxdSJpCb8eK0SYeXC8suh+qMlPVnpIC7E7OSPbk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=Nxo4i02hiG/SFTXenFtczYu1QXSOPQlHK4NzODxoaLX8JDMXXcaRN2Aj/6XriWpghNwGUYZE30//ARuxY2ZidxfQByZF/grGIbLTVV/rro/xgFZpg9X4eumsjsMhl464XcRMF3vmoWRHgLUcu5kmiwWWnaN0Q/wuMQ+ViCXN4GoXHJ1IQMBVGPXwjhwYCHIPGDEAufejc+14RGEf1RTF2ZyKMmmqW6XIRF1E2RNTCwyCdENo89fIiY9aOvbRiAfg+vjCNnJL21oIxRl/2mWcDzff7pJfrrWIiUNuA9jyiirJ2zMhKJ+Crmex2C3OTuoK2yY2GZJeDC378gJKYfK5Vg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783613923; bh=hMCCyBEbqP+T+xxDKbF1RjdxccH3SVHwoVrdLhSo9U2=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=VdnItzd5C1mHvLbaDJXcKCtCxpdE1dRyTe7tAmQD1cUq1siCJHtaB6a7rkWIn0a6nIsg5BFsWQf5kQiTb7uaBxMfyyikU2Tm/+ggrNiOy5/NveL5686IdPBbDJMMXhxwMvs7ed5ZFHci4hRZiEsBSMqwqW0jxtrGxWPLSaWISlpyCZTuKkamavfUXpAb4qKant8OFtzsXyDKb3Kzh/TUDdaX11I4trkYfCDjlLqy5uoqSNg9TgMh4mNazXTgTLwAEhVNUSY6g6/0PA9z27OfmKX/vmX2iYxC6Wz3P6zs7xGmB25qtjNt1g5uYjFV+Sq3YZX40SleWQlfygJf9bhCcg== X-YMail-OSG: ayEQUawVM1ndHij9dm4UoZG4ICQktaDTj3yE.VyQyBlyBNE1OHkNCsSIFr4wLNO YfdZRDFZPogd_pMxi7TYMm7hORCJCBwBtRDVDfYERi_kFA8Sa3PZHHmfDr8eEW_wvxqrkaYFv5Xf xg1F9VP1eQgnnfX86aat6jYx2qgkrzhfwGiYdR9We3ifMIMdcgCzFmLkqU5MdUu4XPzBumAPNT_1 z2zJollycpoVj5ZwkOpe1cnYWapS.KAuJKpJ1WNMA_kdHQyZZ3od.xTuqSSwuCgw3Bl4g_d9Ft9X mbzQ5mBOrouGH2xSlnkTbS3JMcx63IDtCD6JTDfuD8gLAbc4UIxRqQB4HZKZggCJembLtcV.0H6D baBqtdMJTPUXtsFEwoQOEmpJoW2S5F058izlDTqXUN63AoX0P53HrBhCNep14Y9tWi6c_TUa.Szc mmRE4w_YC3g1_AJdnEsSTZJHnA0DUKGfKXFqMuM.0LXyniUNRkJcAIcsv8GKymA4ydUUhLIkncxe QHUrzqgfpKU9dvHQHsoowcst1pgA_pGgwnQw5GqQhVbVJ4A.4ajBiQP168tyxoNEmTJQefZmrmNw kBHE.WQQ2NGjr49cNphvntbBrgNuflQEQ2kt_Ito4hK7RKmdzDzhY3fLGyLPtfGCpvwL2_XiXj7r tQjneKN6YXHMWm2Be4CWBXAbFC7mBgV1mEhBvhy6CmbbSedMU1.1ylbRgmY9sENKKTsezrHanpyk icJ58Qb3HR1.9y9V1Sg0tHUxpESw_K6OQCgpPULYyPm02dRQ2M1YSh8yL9WvxVdFanAB7cHgH.TO MejoD2I1gVoeZ3kD7FQ1fH8yYDh.6cJ84zk2nJYMRTNBMGrb__N28wtYjTcg9JHSLhNk4qiYD3Je 0sAXWNYTWERSX8uyIIT.iBDjaxB4Jbg3ggh33cRQDC2GhoDjliVoTcTRXRF0Z.DilFi0gFFISWx0 yjwqt0PPqZ41q13DTOM98gRIPf7OiX2iyk.VlmPgJDxysD1KYG6fd2icUMhRx5SAoOzFItyg2WY_ 7kmpJd8adPKXUdZSXsKMhkFi2rf2gCwN93rjvG6USbQCS7whjxw2hmrKxlGLLW3tgrf2xR7LQRnD .Phg5ahqi507Gs4_Zk4kXHVOK50_.mpW9WQ.xtaRpE8Q4YZt.S8plDnmK7cSTj4gIjEL.xYx.pK1 wfH7QIhKxSyfs5jCZYhJA97bhrDlKqFkcN2hyAwLIUZdz.mlfT8pqxDZNA.l2K0pZ78iiFP4w0q_ 1XitSrZ0MRkZQRnCuzj7PSf1VHed9ZgENdXIVi7TJVpv.llut9Dv044go29ml8otaYNOPpND4D2h Jbf4Q1pxCMQeUH.yURyjqmDZAAm3qFywxGciXBXzGg5hiBq0UOd54oWzEO.1uTRCT2QCUPEsY8Ew ufSBU.NHtknkb5EJxx18Tncc6JyKuED4HLxB6VN86nZr19RedPsJQLZNDDfu85itBZpA_j09CwuA yTjG4d05vDWraYbALz_dQMKmbWhoPTeXa08Yn2.KfnFzOMXfHLYZCivR5op9_a45uQTFAm8Gcm_8 uVlj5SSw5qQ1mL45s3aaszxQvNU3xNH8JSpfOPg0pPhMDsWvqbmvO_7IjXKYzq9PK.yqa7Dpqbn7 mZRqrSgwVoiA2xL8TTgkroK8tphZvgmwqqVgzuVDUO4NzJhaEUKQPEuc5ULmMFSnI3uV7kA157eB 96.YZfMYPitRP4Tot1QL5H9KDLyZfQmDwpBXBPBCJkamshU2lm4Rrtmp4Up.eiITQHkplKpHF.nP PRne4lWrPoHGamB2qzwlEasZdobAAUrg9hefXukQaAoS4D9akaDtDL31BVGIZ1vxV_MPnzySZ7o. cAwiw5lvyZmSjasNVFkitth.GN_QAVUyNFNRnKgZusOq6rRguohC8EjJ7njPG86F4BIkE1xLnKge U_yOEIgN1vuMhhHz5C3WEnPCDVqtljwf7YxNq5Nr3qE5blfOT2Ck8iyeis4fj5ZDd9N.dI5VrvlT 0V03hH3LVb3e1GWcqM3uKCweZcGXBOZwWzHwWA9Oc2ocIfl1ZyWj9LLE5UozT5Zh9Jk.DXD1TItG AABQj0vh5LgpESep2ebRKI9sZCNa.WVo9WzDzCKK4_lAaF08e6nvDISqvaKyr5j5VXwtYZduw.Wp SsVbRKyXziTAVU7A7OBTN80o_PSOb0x1XL57hpzmFxafYl8eGm9JD1VCE2GTN63mT4XitEccCd92 FW5vwrSgs2WxpDJAUKiExJJVB4VoZAXFC4c_RUyWt X-Sonic-MF: X-Sonic-ID: 140ad6a4-b874-48a0-97f0-3f602f31e683 From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: stable@nongnu.org, xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH v2 2/3] xen/igd: don't register rom bar twice Date: Thu, 9 Jul 2026 12:18:30 -0400 Message-ID: <20260709161831.17753-3-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709161831.17753-1-brchuckz@aol.com> References: <20260709161831.17753-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 1388 X-purgate-ID: tlsNG-bad1c0/1783613924-5C57BA0B-0EEE5129/0/0 X-purgate-type: clean X-purgate-size: 1430 X-ZohoMail-DKIM: pass (identity @aol.com) X-ZM-MESSAGEID: 1783613953879158500 Content-Type: text/plain; charset="utf-8" This also fixes a failed assertion in pci [1] for Qemu version 10 and higher when passing through an Intel IGD with an option ROM to the guest. [1] f6fc01c ("hw/pci: Assert a bar is not registered multiple times") Fixes: 881213f ("xen, gfx passthrough: retrieve VGA BIOS to work") Signed-off-by: Chuck Zmudzinski --- Changes in v2: - get 'pcibus_t romsize' instead of 'PCIIORegion region' - move definition of romsize to the top of the function and make it constant - add stable to Cc list hw/xen/xen_pt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c index 474606e..8b30b61 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -459,6 +459,7 @@ static int xen_pt_register_regions(XenPCIPassthroughSta= te *s, uint16_t *cmd) { int i =3D 0; XenHostPCIDevice *d =3D &s->real_device; + const pcibus_t romsize =3D s->dev.io_regions[PCI_ROM_SLOT].size; =20 /* Register PIO/MMIO BARs */ for (i =3D 0; i < PCI_ROM_SLOT; i++) { @@ -495,7 +496,7 @@ static int xen_pt_register_regions(XenPCIPassthroughSta= te *s, uint16_t *cmd) } =20 /* Register expansion ROM address */ - if (d->rom.base_addr && d->rom.size) { + if (!romsize && d->rom.base_addr && d->rom.size) { uint32_t bar_data =3D 0; =20 /* Re-set BAR reported by OS, otherwise ROM can't be read. */ --=20 2.52.0 From nobody Thu Jul 23 21:53:25 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=aol.com ARC-Seal: i=1; a=rsa-sha256; t=1783613958; cv=none; d=zohomail.com; s=zohoarc; b=N8im7TUmtUAm5cB2Km871QmxnXpnMouRirI0W7hTADSHjMQePKR4ZKX4uPkGpJM/LWZGnK+KxlBDkJHO6uR6vuFV2E2VCPd2uvw4BQnCWUtJVixXYmi4GJZNNKUawf2vWTKjHzfXG3HUCQlI5c1K2/Ciav4jdDNOxJq7RvHoWMk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783613958; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NjzxgWYBhBDPccqwhPPakgGCHJbF/Oi59PNz/FTey5U=; b=YVdvwCGcO+mVtonJq/2K5Q1Tv3rBKcdwbPBAUx2ZyDCQ+AZW/D4keOPxuVce25jNgOfDhxsSJ2kYrRvickKM3DF+SElTlldGIlZ+3CqVNKbIC7vwORQ7KhWessZVTDVp/bcphWeHWhzwuB217DFNHF5aWTSquA4W9Vszk/SmyoU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1783613958354812.9902090376235; Thu, 9 Jul 2026 09:19:18 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1358344.1612531 (Exim 4.92) (envelope-from ) id 1whrSZ-0002FO-Dg; Thu, 09 Jul 2026 16:18:47 +0000 Received: by outflank-mailman (output) from mailman id 1358344.1612531; Thu, 09 Jul 2026 16:18:47 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whrSZ-0002ET-7e; Thu, 09 Jul 2026 16:18:47 +0000 Received: by outflank-mailman (input) for mailman id 1358344; Thu, 09 Jul 2026 16:18:46 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whrSY-0002Bw-JL for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 16:18:46 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1whrSX-00CbhJ-WC for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 18:18:46 +0200 Received: from [10.42.69.4] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a4fc9d9-5cb7-0a2a0a5109dd-0a2a4504812a-8 for ; Thu, 09 Jul 2026 18:18:45 +0200 Received: from [98.137.68.147] (helo=sonic302-21.consmr.mail.gq1.yahoo.com) by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2) (envelope-from ) id 6a4fc9e4-b1e5-0a2a45040019-6289449386fa-3 for ; Thu, 09 Jul 2026 18:18:45 +0200 Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 16:18:43 +0000 Received: by hermes--production-ne1-7568ccb994-pgg8z (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID e91c25460b5bcef5e32390743f7fb9e1; Thu, 09 Jul 2026 16:18:38 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=a2048 header.d=aol.com header.i="@aol.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1783613923; bh=NjzxgWYBhBDPccqwhPPakgGCHJbF/Oi59PNz/FTey5U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=PHuO18g/I5iYnOfQIVSRLWKyeo2iCMloTvx5+lXG2qV0bULcTAGOI4OmbCop+ztt1cRcMXUkCaw4F92WaYZ6skoYHBqkVBPhSTWQGuoYNGRqBnUA8Y3Jhrin8/38jaY+uctg2GGEfaCo4jGlghMwtD65+QBMIBSGVuQT7YakSj5WEaq408JZ12G+aNU7FNIs81OA//DO2Heockdg0U44MqTN6SzOjse6bo4LmxPUOczjhur8phInLkWOhTawJvGwCZLARMUK5ES57v7nSzxNlp8nZT2ISTdB85pt4MCTvH2mQCsrLcvo46trbPSIoCEIdjm1W7PFXz36wFu6U+Vykg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783613923; bh=Xl5UUP6heRHfJ8Onch0/iWYn1uKw2wGFHWxnlLcOHDy=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=bOMMEcUh9wmtbT18lfuP/P4Oenff5m9OfyHPwnCrye51v2jz/OsWRxc0Mwl5JrzBl3uVRUAHJT/FuexNMTg2I4dTgOMnd8nbgNs2gWoMJ3SOWoMQwZjK/+QH6inFgQ5QgHVE/UPEct0mfQDqyPfJoeYlobbhpi+MzcyGQEg85UOT6GAc/U4Gk+tUfJN4GR9BzLyOpZcZtwch9ZynVNQfuhiORb2N0il5gtlmtjt0ArU2Murn99xZJYHozoVcBtEmvIDict37Wgk7enOVeQNUu0+speWE1uRX3mBM63omRz5jy1pO4Kq9M6oh8zA+wrpWP5IiHZSZ3Lks7e+5crtKdw== X-YMail-OSG: 3tIgTM0VM1miw.Bg87GxNRNIZzn9cSlNuAeqHdxBMPeyQy5imEcADUoBcuuqZCX 5zBmO_GgpZLfDzpDLqzCoDU3vAFnYArJutpOkmFzxt1fcZxbU.3RXwT4hhOj_lHrIqrGXz4MaX81 E9Al13md4pyIq7ag0QGfSuWQUaEMi3RS0haQk8a.zMV36EW.4B.BlMRYtqQwItY3UJXunxAmkiQ. SSFFRQdBduyKdtgcJjx67V2Jut61s2Dh5_CgwEEyvTuaNo8D49VRRTfaiieMQiUxKJEFWZpDxHgG ao_qtb.T7Am3PXA.2LTxxAYEQBciBIUDvfCzmQIcu.Q12VtAOLGTYl1bVnSyRXYeJpuO9s09B8Gz sCng6NUWZMmoTf1D67AILE8lk6Ui5ifGOsp4wsw1CRrfKbdOe.edKucYDrVyutq_0TB3YMZM.c_d CqnyNGFHiNa_7vV5jo3xWjTWr2a0DQCWF4XpOETaxL2JfEP4Aw4IdzBsYVASO1VROxXe590C_j4k ZiTlsfOh8OrELz48vCKp5L1kgpM7_hStlvern3hPxYQ5VzX3OgQiPar.NmSC4u5bPSdQ5Dx5SldX z.dPCnjN2b3uSY6lcvCLMms2OhscfCAAuA7io_4fPCYrbIl0QDC6GEB4BassCX8Oz2zimKPGLuYF d_c_pqpWzSwitZ79zCG1nzsI4FvK7zuOs5PPV963jvoXe4ocO_1BBjl.2.V471KC.hw42GNNGM7j HlCvnwp2fcLd1EFSxfIVENbqTR5TQUaL6oVjjzAUabk0UdliHJrWdqIrxt1OafhtO3aN4l9FvHL0 iuxe3IwEh_wqK0B2TSd7aqfClxuynwfFuGGtZlL7v2OazH7Efb4OSFYbPEGH4KvmwslUQBUjtsUu vNuoFT42WbhzPAtClEmmcmMV6GOYrBX6G6pqA1rGiNhkikwg7j.7KBwhpOchU3_uM.VZR.hTivDz r7foOuX66QBECLloyT3_8HdnSVRlWFsF54FYcx0C.cF2jDHLsUoBkMQ2yyvzHP1Pk0r0nAOPWn__ jGkDFM4928kljPAknpV6kLCJjsv8wBBd24GzNIjg3SLGQGE0p66mwsvdOy4gTgQ8q7t.egSRdRkj 4JZxpKq0oB8XRHkpJ8l1yJr_BaiRTbmXiIYrtw9FYOWwrl2jT3hRLmUqgklRnbbdfFW21T9HWOgm 1ORAroEFkqTz3NTP86v_ksyZWm.2oIY2.U7GR3QkWeczfNRSDkIa8Oh1eRn0io0p4JT0QV04tHqt ZFmRGQkb7doizInW6kiOEeoJStab0_TrUT1X_8TWEatZphieOrJjHyYg3dqYSR7uLfJ1Q0bZxnZz CfLRgi8UTx8WUutJJaleCXO6VemvNpIV9xU2sRna5JVlKjtBoyqNs9vGDUKIu7il3ulAgy.y06Ov Lu2yE7KefvztYOibRVCG_mE8k9ouP02TOZv3Fk7OTbWom0o6HUCBwEFLJtPyqvpRYdB73K9SlwTa EoJdUUiIeBJLGnoszHA5AVzcRmyUyPZeJLA.uiuMyu5.KiPXglYfJkRiRbSBducJLJbIInE_5k7E juakvPbVXNpVvO.Z08eLK9kyMEbPqggLEYGHFyLXEgb6N.MMaAjf1p4vfa4b_BKen_ZJ0x1HJLRt 5nrP9XO_GPCpGM1LltX3gf.oSigI4oF5uLyAOvCaP7jpT6AZbDcR9KAYWmaEWcz7su3.JdUICMdr C9l12xw3hzYgDceYW7N5tW.lSsu_BAeCtk1qzXaWWjHg9HjLodMbg4R8mQWGfkgxPcgRimx44RAr AdcJp5VMnRkXEF0azSW8Up1DeSGyg5Lhy1mSCV17pUEUaKcFAX7K0t2FfS4gMGJZwDy8C2q198pQ FIDrb54I77XY262fywuIgRLOjqQEWig7sQn.pUsmuJNM6YNCoY7NDKtQABKcDKxEYhUiTVf8XrSf B55sBeennmKettCkvnCIglv2FM5nsUS3lmA8gNeG4VkNb6_yxwo_cIZNmXP5g9CcienYPljsedaU wp7CXsU.pR3kmHKQoFO_cgNQ4sB05fdI68ipOHGDkP4zI4bw.V7u8lpZzYviE8htqFP9FHZEsH9g qw2BAxn7NKgWtbyXFqgy_tnV7mYjpmHbo4gk6zBUCIzEMEu7GSCLyKWVJk8fhh9HZG5oWtsTtgs4 AUK8SeO_277aLrjCNOa1.c9UfanPyi4GFgsBGH4fRlhy7N8WQeZyj35wsq03qpBqJU3cLqj1PzLF EMKPt8xrOZmytqLq0Liie6UHLMF4XpTGcyTLnI7O3 X-Sonic-MF: X-Sonic-ID: f78416a5-1708-4bda-9a80-a47dc8b7966b From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: stable@nongnu.org, xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH v2 3/3] xen/igd: fixup device id before registering rom Date: Thu, 9 Jul 2026 12:18:31 -0400 Message-ID: <20260709161831.17753-4-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709161831.17753-1-brchuckz@aol.com> References: <20260709161831.17753-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 3169 X-purgate-ID: tlsNG-ebf023/1783613925-775A8FE7-A28A73AC/0/0 X-purgate-type: clean X-purgate-size: 3251 X-ZohoMail-DKIM: pass (identity @aol.com) X-ZM-MESSAGEID: 1783613960025158500 Content-Type: text/plain; charset="utf-8" With the current implementation, Seabios does not see the fixup of the device id done here and consequently Seabios does not load the VGA bios and the guest screen does not light up until the guest OS graphics driver is loaded. So there is no VGA output from the passed through Intel IGD from either Seabios or the guest bootloader with the current implementation in cases when the device id needs fixing. Fix this by waiting until after doing fixup of the device id before registering the option ROM. With this patch, Seabios sees the fixup done here and loads the VGA bios, and both Seabios and the guest bootloader light up the guest screen in cases when fixup of the device id is needed. Also, remove unused header hw/core/loader.h. Signed-off-by: Chuck Zmudzinski --- Changes in v2: - add a period to the end of the last sentence of the commit message - add stable to Cc list hw/xen/xen_pt_graphics.c | 3 +++ hw/xen/xen_pt_load_rom.c | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/hw/xen/xen_pt_graphics.c b/hw/xen/xen_pt_graphics.c index 2ef941e..aface0b 100644 --- a/hw/xen/xen_pt_graphics.c +++ b/hw/xen/xen_pt_graphics.c @@ -222,6 +222,9 @@ void xen_pt_setup_vga(XenPCIPassthroughState *s, XenHos= tPCIDevice *dev, } } =20 + pci_register_bar(&s->dev, PCI_ROM_SLOT, 0, &s->dev.rom); + s->dev.has_rom =3D true; + /* Currently we fixed this address as a primary for legacy BIOS. */ physical_memory_write(0xc0000, bios, bios_size); } diff --git a/hw/xen/xen_pt_load_rom.c b/hw/xen/xen_pt_load_rom.c index 319efca..407b630 100644 --- a/hw/xen/xen_pt_load_rom.c +++ b/hw/xen/xen_pt_load_rom.c @@ -4,14 +4,22 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu/error-report.h" -#include "hw/core/loader.h" #include "hw/pci/pci.h" #include "xen_pt.h" =20 /* - * Scan the assigned devices for the devices that have an option ROM, and = then - * load the corresponding ROM data to RAM. If an error occurs while loadin= g an - * option ROM, we just ignore that option ROM and continue with the next o= ne. + * Normally xen_pt_register_regions will handle loading the option ROM, + * but in some cases, such as for the Intel IGD, the option ROM might + * need to be modified. + * + * For such cases, use this function to get a pointer to the option ROM + * from sysfs. Caller has the responsibility to edit the option ROM as + * needed, call pci_register_bar to register the modified option ROM, + * and set has_rom to true for the PCI device. + * + * This function must be called before xen_pt_register_regions is called + * because if xen_pt_register_regions is called first, it will register + * the option ROM and any attempt to register it again will fail. */ void *pci_assign_dev_load_option_rom(PCIDevice *dev, int *size, unsigned int domain, @@ -76,8 +84,6 @@ void *pci_assign_dev_load_option_rom(PCIDevice *dev, goto close_rom; } =20 - pci_register_bar(dev, PCI_ROM_SLOT, 0, &dev->rom); - dev->has_rom =3D true; *size =3D st.st_size; close_rom: /* Write "0" to disable ROM */ --=20 2.52.0