From nobody Thu Jul 23 21:53:04 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=1783573796; cv=none; d=zohomail.com; s=zohoarc; b=FDhCwh09Vx71x2h9I1KaOkwpFpGyhLCX4EBIkz5u2cOa84Khz1ES1JXv4k/AlwB3TblVO1HFZ6XSgAvKOkrcFKQDVOz77Ms/Bp+V513tdSPKWBeTfqQnMvkmFXwZuJkRXMpdVfQMv/020eWMXCdQyptHYfErOc91vKHa0ycmnXw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783573796; 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=kmy5paPyj91SKIk+LerOoztgxWQwrnHMoCIHazjSiVs=; b=IerhGhN97wmAPvGc/FnD7sVVWHW0RRIDEEZdSDShcfEgEOQ/F37AzLXkHYDhcbP4GnKk+6P6h8rEL4eTR7Viagj6vQJWctlESeulEBfyVWPkQ4EeFk9DsEu19wrvnYK+4IpuozYZXLVNo8C4NCm4klIRb6xVCMPKQp6ddJgVltU= 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 1783573796424185.21452036542678; Wed, 8 Jul 2026 22:09:56 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1357503.1611901 (Exim 4.92) (envelope-from ) id 1whh0n-0007pp-Ed; Thu, 09 Jul 2026 05:09:25 +0000 Received: by outflank-mailman (output) from mailman id 1357503.1611901; Thu, 09 Jul 2026 05:09:25 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whh0n-0007pM-8u; Thu, 09 Jul 2026 05:09:25 +0000 Received: by outflank-mailman (input) for mailman id 1357503; Thu, 09 Jul 2026 05:09:24 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whh0m-0007m9-3a for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 05:09:24 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1whh0k-00AI4q-Iu for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 07:09:22 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a4f2cff-bab6-0a2a0a5309dd-0a2a45079eaa-6 for ; Thu, 09 Jul 2026 07:09:22 +0200 Received: from [98.137.66.148] (helo=sonic317-22.consmr.mail.gq1.yahoo.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a4f2d00-9c8e-0a2a45070019-6289429486de-3 for ; Thu, 09 Jul 2026 07:09:22 +0200 Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 05:09:19 +0000 Received: by hermes--production-ne1-7568ccb994-mqdhs (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID da73cafa7d25cff72b3b6899257e7b9a; Thu, 09 Jul 2026 05:09:13 +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=1783573759; bh=kmy5paPyj91SKIk+LerOoztgxWQwrnHMoCIHazjSiVs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=MZH1mclGU4ruI0+LdCfz41JXG+oFEb2obJMU86XAXmUnDbkgnzcvPOU3vI2lTgYWJ9WwmbNO4Dc0JBKFcZ7907YarMhwSWFTL+w1C4eXnXdE2xwm/JB/JhiB02cpbPtxbHc3nJe57IHdLs/UhOnhxRVf+cGQfaE208xDb23LU3nSZ16Xr+3G7cpaRHsfk3Lva/OG7AAprYD+VP/PSIuaR7rsfoh+BxDAW4SPZkAKNLG8JPz8mQS2xxmhc909q/bU+7s+yBobMC7a7JVYpvrCTQHQDIGgitHgBu+99UpBQEiec1YqflxORLviNizSr26hwOeEbyAJWKE7vsb/4NZ8/g== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783573759; bh=JmeEKn342st9g/1wzewS85akdS4ip0dtXJIO74yrS2U=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=PXyiGPD4PNxyTImzKgviWGm8dtgbgBfh/liU531VG1GdGZ8lS4hw+DMTMYsKNQIuYCK6rkdnJmCQ4pkgnsXctTfMsDacLI+0S3GOWpc9aSWBaIUFboqNTKyiJ0pX2Lt+GDTZXVWJgmbRzRwjUhCJ8kyGD9jPerSuS2I+Zf7ZTJggwIfeM25y4/pftZA9rhaZTT+zpb7oqsg3n1H3qLRuU7i30/ddozOOp1MUqfxRmp3fLMc0et1obAFVKfLR/OaD3F/OCsxPAGNii4pH8Mrrn+vV/Zpp+1bDTn62JPiNxpQUOQa7ojsuFzXRUx0mLnW1+YP5mSk/9Q319Ut0FlMstQ== X-YMail-OSG: JP3ORNQVM1k7hVrC4QRxWlHnl6u6wxJSELA1u95XKrM1igfBPtXXr0OpuihtPfO 5cp8z1HRaH0cfXc807kU5utm9UtPJiUkkBxFq1h4yzJAfLTQvcp_sotOvnhJwnzJUGFL3kioZuwb AlbGRAZfAeuleMrpQDK8CkI3N29t1qrc.IAUDEx74O1mEkuXT.vSrsciOuPN1dAGN95KMawL0Cp2 lrz4wp7z46yNzrBjY4WyB2I72FxrhTp1.3BxNcmjPiBo24spuU.LREAKR56X2hlV0JrRIfbYIVcF mxCH7lajxMCHFxRuFkNx.gN4CxBuqD011.2YzhhNDOdrvI7ber9yX8RWc04vruV0GT_lBrSEZzuF JCu1UINFn2MQRIwig2bIyHozxtYTmjyBg7XQ4KNR9VCtmt.olfqLvtE_m0dOYyKlRj..4id4dxeN hm3aN2Ga1UZsUMi8vQ5_mjMf_E3SSFtRvI7SLQfyRwVhOTj170LnqS3D5DuFACh_iEkEsfwNL8Zk eQIpDYzakaaj9w0DH5fVzqMA5SYSKqaGqqMTKndelRgEhG_3NcCwKyFyaD_ILS.J14SPA9Tc593b ISAM8PpNmsRO3Ofp871yHXeXQCyn4Xbg3kWy.puw8z4LJ5SCsMG8_2Djweq.lGlsgJLnp286lhKn _pgDfKQSKjLvT6SuPoAzRXuzl0PeDc.4IqO1gSDMvNT5huDkj5y8aqKI4T2KUDhHWnQSw3kAa1an hVPioToq47KXV8PcArkP3SGVYssyJj6ZKCErIYcJi8MuVt5JXnwtqNeuhonJ0OsmJvBc.Na8QUYM M0nU3PvP8Ir4uL.q0IT6mO5FvDPpQ7lWQjZgzjESEZxN2OZ4K38GFG3f8CbJNDav7GpvwnrTuHch N9PqOId4ex8mCHaKtzyv5BHRMMEqXR6GWZs8vKi6dMNFt8tT1h08tkXk_ls.A5F.Ajz.wd_uLyBH HPT4vuLA77aJPjQMBSRK6QxaJJ.upZ_B1Ah51X2KRqU.3EU0KkF1qDccpUdF1RkktQX12c.Ctfjd V_J1MMP9.H19prN7169UOvCh6dk1Y2LZegpL4klhHHCsbNGcPIjG.CG1PUv1sayv2tIW0AjF3edw Rj3glSGWg0pCYQC4ZEn1RdKjgQI1NIjjLXexwfeHMJDYgpIEuTn15qdwC789ooB12fAtTGdj5Wh2 LGE8b3x1NuIAuk7CN8.AOhhZPqe9S7iW4Bu.915Q14qqBGX8IkXv5ojb.q.5zJKSNdm3Y84eVH0n Cklhf8Z9orhk0KDYWQHbyle_SrcASkl7yUNj0yq2R19PyquvPsxX90Qu8554n7klaqB8OsNDblgJ bSM51Gk.qT.MYjPXv4_O4LprTS5ep2dR6gpgS1xSbLQT9Z_ew65tkExbeLC5Osv6A5HSXhqS_lZW l4Tlh4cmiE4DaY.P0Q55MbH.yJV8XoN7NIm2QvC88oljwqKWmPmNFdNfPI5zrnn.gHpOwW_NOHgE KT6e_7LU1Dp6rpIeJ15UO2CkJ3Rco0YWoU5xGHoGDI9VbNomEQ2YYlTlVYT2DwGFOKFuEnGz1P4X pnMXiA9eLS0doyG2sBJo51axW3Bs2znsnGpCy65tIU.E6SQjUcqOqPuJXm8ECzDYpxgC63vUKWD7 EQohl6yHouMns4dOeipvkQtjfkrPwR1MuuRTrebTazV9OiWWuuXVB0R9jMS4X3pttJbkLtj9eT6D 1vjc1Lyrw0_MCZAuQtv4j8ugkZkqGp2P8i7UGgmJgpNoofu4EvKbRUV1WUzNaAtsYVVLVZm0EkfP NrVOLwoyCbd3KRA8KNQjRZfGc64dYJeeYOREW.1ejPX.6tCWpBz.B2TDr1gv540CPDnO28aEu.DP WIdyDK03Ih3p8UaY1BBHa4n_mTF7ww__ggN5vLbeyv.KQf1LZd4Ga.WfylmN3316pcaIFLcoW7qQ yKFSIrBVkwv0Ipqf40Vww8Z5rEetfG8J.4kzHQqEz0JnSrsk8LsIWvKB9p59nd5GeMNLphLCTp_A uy9EqcMqTQ3eaNxD5PBYgR5FoFum94rBpFPkkxnK1th1Orz44xeM50aJGlZ6VdjdXkjPiCf63502 4oAwrYL..C0QTaLhQ75Tr6Oy0eiT0JbKual2cg_oq2D7ls2b5kyjX9hbllARZPAxm7MTk6PAwtDL kfzK6qqM6BqK1IR8upEC9m0ZBT_4Kdw2C1_o_S4UBcWaBDLaOSk8DKUpHlDIXm5LTZVbug6kkv5a 8mjZrWvm_rkC9.SuWlEcKA5bzGdMFNar.aw-- X-Sonic-MF: X-Sonic-ID: ab70c891-c758-4cb7-abaf-8092e0093e86 From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH 1/3] xen/igd: get PCH info from host sysfs Date: Thu, 9 Jul 2026 01:09:08 -0400 Message-ID: <20260709050910.8217-2-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709050910.8217-1-brchuckz@aol.com> References: <20260709050910.8217-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 5606 X-purgate-ID: tlsNG-ef75cf/1783573762-7D72125E-61891D14/0/0 X-purgate-type: clean X-purgate-size: 5768 X-ZohoMail-DKIM: pass (identity @aol.com) X-ZM-MESSAGEID: 1783573798194158500 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 propagate errors from xen_pt_get_host_pch_info. Signed-off-by: Chuck Zmudzinski --- 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..54f0d54 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) { + error_setg_errno(errp, errno, "Cannot open %s", revision); + fclose(fp1); + return; + } + + len =3D fread(device_id, 1, 7, fp1); + if (!len) { + error_setg(errp, "Cannot read %s", device); + fclose(fp1); + fclose(fp2); + return; + } + len =3D fread(rev, 1, 5, fp2); + if (!len) { + error_setg(errp, "Cannot read %s", revision); + fclose(fp1); + fclose(fp2); + 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:04 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=1783573786; cv=none; d=zohomail.com; s=zohoarc; b=cXHwYpT2V5wXGt5WMfMv1RQCTP1nb2nrpV5L4ya6LBUyoc0Kg9CLlVFMadlPaV+t/jqxXKDHohGDGtR4w2dg01fIjKlanzzpNTDPMV9tDYiILW4LP/ApT0MSX/E+uJFlh9n2qQWMwR89RfdLyg6BqyM6rdru5mPQtgad0DDgKEI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783573786; 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=m2Glp8wi3kwkb5QhxQq01xhDsLdInXw/WE9Th4YGj7w=; b=HLHhl+Dxl3YbPVJR8kVFyCTgMAtlop/DFB5nL2whkYZpp6/SeL7xzLxUtdRcUD7Kkgh1hVJ5Wm/W8Ht80FrnrymQq49PISEpJHaPM5p7Mbh5HqKTqQD/yoen9gGJVU2L653evlW+gYDBZM2VV3bijrsgWmWCXXADz72Oe6F/IPQ= 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 1783573785883812.5920007806421; Wed, 8 Jul 2026 22:09:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whh0o-0006kn-JZ; Thu, 09 Jul 2026 01:09:26 -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 1whh0m-0006jy-By for qemu-devel@nongnu.org; Thu, 09 Jul 2026 01:09:24 -0400 Received: from sonic312-25.consmr.mail.gq1.yahoo.com ([98.137.69.206]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whh0k-0005m8-V6 for qemu-devel@nongnu.org; Thu, 09 Jul 2026 01:09:24 -0400 Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 05:09:20 +0000 Received: by hermes--production-ne1-7568ccb994-mqdhs (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID da73cafa7d25cff72b3b6899257e7b9a; Thu, 09 Jul 2026 05:09:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1783573760; bh=m2Glp8wi3kwkb5QhxQq01xhDsLdInXw/WE9Th4YGj7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=FbvF4Bxmi4Ci6Hv5xb+vV9U71ad2my3dCMUodg1CzrUK0YkET7hCIqlBDdPU3pkDG/Iv5g/VussMG/VmAbVqCIcGPZC+JMvayAiXf5WDNJb2h4zgoM/ntZkK5O/AWYppIJPchITFOucd54cmEi/Cj1G//islK+0s/X4Yx3tlWLc41VdrCA4KBPDRm861hn4PzNOjPHkVxMrmTctlVAc0BDGtrdtbn42TrfQjiB6lsdiPT1cphgWH2kNQkhR3FKNMJPddS7h4ZxF+QRVVwaQJbiVk6vNpjf279ikqwrI7c5rKjVi7exCMIdurlvauzbBKDgjbs+xYMeBj7xf4IOEAUw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783573760; bh=OHOrD+3w7dGTNtdsk72dzU4E9ANMJiTyFgbcK/ru5tX=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=OHuxLpznchqCXBF6RtQMf2NIwJ19nUIsa3CGjThqzYm7nPRJcYXYFpA2Z6KWU3kQpwuakhUlxS/ah/CzYWT4Tyg4SwFjQACG2RDnlk3Qw2DcqZbJtDSdE30RTGxP6Buymn/tP+LKDIb7g01Ky7moCG2WMtYeJWOljhtuykzlMqdg1navdJF1ewiHNGxRPfCc/ir7PKJJmKPUEYwVpg+MxR+wjcQZy+xgJCVv+QaRbZbdMliJfebMskt+c3ZYmi+wMkh1RHZuvWm/WH9e/4fNE5O+6hc99gbNErHv6okok+kl12ZVtr7C1+HmdzRvl1cRcb8dErMBmGrXesL19oXPSg== X-YMail-OSG: L5_GXkAVM1nr5wX1RW1uU2hcTkTL5jxrxlRzDHwzSHFq5_HwNoSPzHMb8STgzcV Yyd_gnqlenOiF1AY_3yYVjoQWQoZ_uNHJaR.nKgmQj.C19VGRrFcPDa5o1N3i3B_.KqzUYh2mHtX sAzhM03LHWV4aJ4vAnyR6ujvYXhSzrrFAFUuxt2cx_WFC05Okt49awJxOPfN_wazg.AdP94d8seO 8RSMVM7YJTLmfsr40dbLkpHx_D.tKNat5.SyWKckIuWn_umVtnfBrYERURZtzD.N0XdzH8sYwYzf sWhbMUIs7bWczklFk_UmC7.kpxhnlpabdrFkZHuHK5jMz8y5cgILVPzy9vtuK9lisoBCBlTjKGfn Gvi2WTQcVALyD_ptbvc3BMAOPgqmCqHadwN.Lbr7LMnkqja4jTAaWO5xNh9g7el.MjVBdWepBYo8 gZRrWcBo_vIPjqUNtiJZ_EbmSi0qQwCsw6m62TOwAETg12oJN9ZSXr9pqzg6TKmjR_Z6y92ihN6V Ss9C.8XDLdv3p44a4gJLlWi7TCgV1vsbhaK2RGIh9HR1UNIN1TF94zWyMtgmeCKHjiRA6AEWkS8n QGaVwWN9uMd.kI29ZRFjxK216DRYLX_Qw.zj0a3shDbTjF.gxsTnOQ8H0Xe8BJGdmuCad6N_t9pG DF6l7ypmnCE3emzN9AVnLbbX.zv9dtEsGxiIFwcSlV8TduaFKooso8MG.qvKhX4J2JEO2JKsnfwa jLJfobfyjHgs7fXmlvYV5RDSXZJojuhaOU7iGejpk7ClVExPE8dXuBMnjuDwq.ysmSlV7qEWsOeH ok7YRUeItqjtjoCEeIo5nK8W4Nw1TvNpYil8.dyGCF0v14BeRQRdZkwguTWtmdIZLZp7jAgHgF9f pQCfEqeCxKBzfduyoJi8cnwdKX_LXspB_FpGmqaHfTKWFqy1K9MwedNzzQXY5Gd0ZQa_5AZsUrCt e7TcXGUEXSZORJiDctmy5mu3iLb33mY0N2t5e7t3Yo2yiYkbcTtJPXY7pHkMBnCFwRUW3JYdHvfQ SGz_JMwYSqXv_I5RbYcTU6XPP4IPLwfjkPVcKrQSnmWmR47JlUhgdLKaTgyfBc_IgIIWRbgHAW6J 8qFSy.w.HS5n.7QGSxFaVtj9aoVxQUEkG42H36aeetCAnuXi1Nk8YaOxDze6PJvQJSL38pNgXxJu nkKdjrxwU5ylYAY5fw6HghbfBdEIESP1KcwuDarYYDasevuC_FJHJDZHHEDblaBc1m9BQN1wpLuT UjgJ61wLo9IjPodH7i2rREGENSSwTLDECAaV9HAdzSlk3pf1doOKxvuzvybj5_16zKGHc1wGg.03 2qezvglC5gqQvS7HYl0AVSfeHOUptynWmRiZNO0R5GmpQEMxEd3LhCWDNR1PCnu64yYbUcfrkXD8 1rorrNdnIAGCj19eXyv01Pn0AqvoIkC7nTGc5zHlTx08LLs.rdeaqmWjmkq7QyJ5Y2PMVPbioXcb uE8BP7d.j3CJTCy6OVl1_oVjUfxSTNw9ByU_lRyOw_e_xVczdvCo48fv6Z4sbDxO2MDPafp_bOxP PiPvA5vcBxwt4IkBzs6E_IS.8nE8ng5qnegOTvGcUMFxKCDelcZCMWsrVWe2qyYVCgfA8OShayj4 Lo_ms74hnzfofMLExuISnkcgTNpx7zArfeW8OumP16QT3325IXZ_UNXn0uU00ZVeJAfcei3LfTnP FaoV01zWVo_gdalXvsaJSVqoBVYGLAkuMmt6oNNlYzL31LGIM.o8Zliipn1_iWa8HD3zKS16EV6i Dk8ZMiJ.xSSdmVfY_j4YiURA3dO6u1enbkCdLlEAcwmK3bikBCdPTR97g0slJZfUevKLKTbUgY5e UWfaib2qa7p527R55cJ38hyjumN0KmViOGCek.s.8zNEIuZLvydXERedbQYYvA7u.abodpj.suYJ i22rgC0UQuO5W3sRaG__zjNtXkn1_vYvLI.9y5ENh12ySOqChsm1ApNRtokTUkGllqCJN0d3t0vw _XBF5Nz13Tfpby4u9UzO._q.Sp2ZH2HZCenixsqk0J_9N4sBhKSiZZdOUHMdWsrdmoRu28PpbUT. RxeXlXLOzTwn0hZGd7oCNO7bEVquusAPQ.CG_Yt5lhOA9Ms5w2.FNaccbpyTo5DP48J1rKSc_XSz pugRh8c2xQVdH6JSkAo6HpLvL2hnk2J9HXNT9bMcVD7HssN7KF4FxsIE_bLQeHV9D6HLoj8fwbxb icQFb6VHbn_uTiy74g3kcy5Hmb7L0QydR X-Sonic-MF: X-Sonic-ID: ed7a79c6-6a0d-46f1-b36a-b1ea89bd3ebf From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH 2/3] xen/igd: don't register rom bar twice Date: Thu, 9 Jul 2026 01:09:09 -0400 Message-ID: <20260709050910.8217-3-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709050910.8217-1-brchuckz@aol.com> References: <20260709050910.8217-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 961 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.206; envelope-from=brchuckz@aol.com; helo=sonic312-25.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: 1783573788176158500 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 --- 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..c3b6c1e 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -495,7 +495,8 @@ 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) { + PCIIORegion region =3D s->dev.io_regions[PCI_ROM_SLOT]; + if (!region.size && 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:04 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=1783573795; cv=none; d=zohomail.com; s=zohoarc; b=Az4fQ5bzD9eUcWaTuBOh2cq1Bj6g0MqkmMmKpkpxaA6JB3WMGa8ADCbUNrEqepm2dWzdnvxn+NekSPAV8dIhEVDyZojh3z937XKP/5csFoBf5NAnGD+e8iMvYv+nJJiTquG/WHYYtosbjFq2aY54y8H8UbgcF4BiY6IDLlnzIzg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783573795; 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=UmUmWH59zwDkMLLGuuGvz0xwapBoT1O8sVu7oXOskMA=; b=b6z+qEnDY1PPDYhwjiUUmg/W98PeV4GiYLr+r4P/pvQtaGm49LAP2B10QXaodR5IC2qD4wjrDZSNhk72B2PnSYwNyuq9QbS8cerXciJ60VZlWkpnfaDKqcjMT5EIiDt+r7V2O2mPqLZVz+U0GkWPumHoOFNbFCvxiSB6ECQEFWU= 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 1783573795157789.1979565152944; Wed, 8 Jul 2026 22:09:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1whh0p-0006l6-2W; Thu, 09 Jul 2026 01:09:27 -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 1whh0n-0006kJ-S0 for qemu-devel@nongnu.org; Thu, 09 Jul 2026 01:09:25 -0400 Received: from sonic314-21.consmr.mail.gq1.yahoo.com ([98.137.69.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1whh0l-0005mB-BZ for qemu-devel@nongnu.org; Thu, 09 Jul 2026 01:09:25 -0400 Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 05:09:20 +0000 Received: by hermes--production-ne1-7568ccb994-mqdhs (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID da73cafa7d25cff72b3b6899257e7b9a; Thu, 09 Jul 2026 05:09:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1783573760; bh=UmUmWH59zwDkMLLGuuGvz0xwapBoT1O8sVu7oXOskMA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=hGHrGkCZrQZCC7XLtuCMvJIdut61Pe/EmUDh0iLkCd/+jW65mcTW6JH0XjzA6jvabpZsVqk641YUUGNH39EU5YeFPCeapQB3t4JdY1Rct3CaNTqamO+JBrgBTNPbByTSaEnjnMgMObZZOa7xm2LDa3dN9QZikCwv8Kk7ACNiMQK9E4eO+DDeIh7+bH95LQ7C2splnR5CJp0YpkJNZ83ZoGhLS/cluKUChART3xYV63nJlVkoUkwGYWbX3q0duIpLgePeqZgdU57ZFJn19PHolewmNVHjTI+QdCnib38GOXoEEnS1MCf1lVpKyrNz+p2leiMb+TUPQF/HXHMdhJI1Qw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783573760; bh=9xClvDzp3a1vB5OzI9ZBLOxM/ZtVUMYTi9D1WxSqNGH=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=s2wHTm8b6Q9HGZDmxBeolGQ2/STF0XVsaH9gI2V5oPJJRKskqgwrFrjhFcyEDEpejw4+bNvJuzeQ4a6RRW3x195EwNLiDx8JwH/r/QWF7ZxXfeAo8jfK410urEhyjsBx2FAm5VOJOiX04Hb4D6qEy2P9ukoaNaDdTUuV/Je4XzLD/lLKX8Ze5uJJp/y2ImG/jpIccVU4j+cT42PrvzPerlVq6Z/bXXZJL9YukN4hpTY0SbqVWdiYelS6OxpkftqFHl9IuZOkyqCrqmiWxrbqFJtJNv1uIHXD/Gd2t48K4dgU2WE7LcweqOqRZuH8DpqH9FKj0YqX/GHowV6RX+MLiA== X-YMail-OSG: M2AD1sEVM1n8ckvxeNh8b1S.UEC2tMUHrV5UUtXVp3HMLDkQ_7RGScJZvo1jjHS EfcWrN1N7dnF3zCvb0zBX5GW7.LZj5aYUaEIZyHGnV0njwihcIXuu.jyzgD7NEXSrPHAwlSKauUe dG8cvXDlYcAeDoIgiLLSfY6NKoUVPq9V9JsWcUOy_lZIPSGLufQm8QeOFTPE9RmKMv5j._GyKphp af5KHl7DqDB9FCu3Dp9Da_729wBsZ7PqfF0w65WiQ6sh6X6K9IUNUR7_cgE52M1uzABiSf7xDQqo Pw5ijPjRIukt.GOFWQdx_YcvTsPN_5194MdLclO3HW.XGKWXyA3A28.rw_0QjKcUOKH8omNK5GiW pd2mpKldi.bsotvIlXHzJ2bUvoqk9MiKvF_QpIKJgYW7aOyPlBIQkF3OkDK.h4ajiU_8Cw9.RtgW VFpYK6KZzIH3TQG9LM453gdE6wWL88B6S7pX5Wnwk1zxWzmGSg0gKy6wzMS9U2.bES_CPUEIvDJe rdAsk9aH0MgUkvXgvYP4Quqm9LRqDW2o7lnuIMIYS2sfu42Xnglr7GSPzwuODhUDgUVYlP5x4yi8 Vc1e3wrbM9yDaZkrlx0qPgFbHSDwlk4p598CZaleRyybmMYfVQoYTvwb.fOk8PZMx0Ky0cUk8.YM 4cSBPETMZLbNzzbuoTGRHaZ6qddca1yTh1J19z66PH4fBHTf3w7lrd5Zo.TmoUS07AKJnOpegRLE 2zMfy3zxZn_0sRlXNl.b6V5Zdksk.D9dq9pCbw2EhHzEA4yx_yIXKvl3nrpjP8VNtJZHWOicVecG 37g6pdMuM32l.fcpkzMqSVYWfGEMja1rP0gBOglfbKFK5w4AygzahleZQEsJxfVtLQ40B8kJtnQw 6BqJLnkUnfKgUmNfz1W8kMxMDsJNYvI0LTZdTQQaWxhXYuyKHUaW4cFWlZiP5SDUxMnuU9NJ8es_ WSbVUAhZtVCpOaw1V3mFgCzH2gm7aS9mkFwBCHsW3r_q0DgRNJsZNE0lODZQS1z0AtAivHH48sJI uwvE44Il5mV9EJ4bQXyb.9bSVH2ayQjGrpovFLJFanaWodUsWfUGSknEdJNCuTqKFeTw9IDSXSyJ eO98oqiQRkt1TOk1q7RVVeGxO4Z22nUCAyZmH3ZsMS46hoIuUXpLy0JJeKW4w_lSZhyFUz.xjYp3 8k0mNsWx5Y.rQNmoFoSBhiRwkg94xNIFxXzF48agN9Ag9xMVtnlY3HnSSLqNKEPCpoEJiFPN5iFo AMojO0LOZit1N8FEVOsZ_HDUavMA6yWclKvBjp4pset97LUREWJXAvcsWNdD0y4BVybqWLDwuzs5 .JromwszZQRmswsj9DWt191vbBuwXIJwym9WLSUZcPAbqutg9R5m.i2XbJbvSQEWiUYsreM_zOvc OaOLbsw9u0gUM_I0LJDKtJnMxTh7pmzDR0_Yvfoa1NvyzhJzTD0tL5XITV0qNizdZD03L.K7Ale7 jL.oNyBvsWh40_U.eodZVPzLbwgXPKopfvXzAQhi_geuMWOFxMaJAJaNLhvyZaIAerKHsGHXCd1I rkSSuS3y7B1iKy06flwelHce0QrmujnOsN9zbLxSrboz9kbaxCCMrnhIwi7S3wqivwm.x.JPxOmV YWWUHxZ3k7V0T57nxVZyUDCCLRfDJmSZzN78tNvR4eRro.6H90GadGypP9jDL4w4n2_qZ9w17LJW Js8gKvxuZLC65uz8r.3q7fTjzc.8HaiH0FXy25ViX0v1EgS7Kcxe8vzJ63ceLS0dvBOgkaKechkl FzJcsIONxOpVg_PzLRMykYuCYCAsYVCTemyxGIxutTHZUrYEmTSI4c3y_iTgJuPal4B81oDqwgqa 0Dksj.wVwUiNCQ4_lJ0mzeiObB0sm6IHIVpeI5JiWuEgZRr244fsinTP79cfAZftm0lzy3MqscEv jaVuTHPjX.c3jGEy5KsbPZQkkWj74g0.YrHFBEXDrY.HzSRhniqMpHpiyd_xQRq0Z3A7vt1QQe.H klVQGSK91OCdctFkP.athI26.gnWQWufh6Qy5GyfRXp0709_J8EZxKspyE10UL.UW.U5Aa4v1Cpc flIU0FlQVEU0Yut56zAl4E_WtMWG0mcmFYesn5oj9HM7_G2e27nxGw3JU4LTF.cVbAqpczSIdmm4 1BWb7IfOOAUkQQorbZYYglwJS96nkZ._2ff3sWiB.hvxRftpxR2YpyZSDO0jzvh7hzDwX2byEShg 5hhJ6zOmRP4t_x1s2jlkXQ8Fs5lCVL0LcAw-- X-Sonic-MF: X-Sonic-ID: 95c2e078-b625-436e-bd84-c2e244a36491 From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH 3/3] xen/igd: fixup device id before registering rom Date: Thu, 9 Jul 2026 01:09:10 -0400 Message-ID: <20260709050910.8217-4-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709050910.8217-1-brchuckz@aol.com> References: <20260709050910.8217-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 3122 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.84; envelope-from=brchuckz@aol.com; helo=sonic314-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: 1783573796173158500 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 Fixes: 881213f ("xen, gfx passthrough: retrieve VGA BIOS to work") Signed-off-by: Chuck Zmudzinski --- 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 54f0d54..9e9ab55 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