From nobody Thu Jul 23 21:53:05 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=1783622162; cv=none; d=zohomail.com; s=zohoarc; b=GaiMOpffzal6xsRwgXAkuukvVD4nRvxYosBI1yknhMFeYmjNFNQKDBVd9un5RDWR5LAKejkGrqmt1IlAfQP+E0lu0vGKL81BoF1gojILCiqwMu8iAfcw72WQUKxqm7tb5UBeFdqseXlD8GsMxf7uYH4fW54Ij4MQW7cBUw38v2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783622162; 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=/ZDT7ysuptrZOTrmM1Jhx5Il0BS4A6/u6DfM5qxpPIE=; b=hLUNPQkfnrO0MnbsBMkjUWJlceYM3/CQk4sVmGPX3S1DjL/8P2ZJ8uLb+xZ/woK7KG/VTg19f3r0Ic87aJV81NP6qO9Jj+N74XyjZHZY9S8zf86ObD6Chr4RTtjRae0PS1wm4DqzGRlTNDk8WL+yPz33BG8Mm3W/gBPuwhSXf7A= 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 1783622162806685.1070530626871; Thu, 9 Jul 2026 11:36:02 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1358456.1612565 (Exim 4.92) (envelope-from ) id 1whtas-0003lE-6M; Thu, 09 Jul 2026 18:35:30 +0000 Received: by outflank-mailman (output) from mailman id 1358456.1612565; Thu, 09 Jul 2026 18:35:30 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whtas-0003jT-07; Thu, 09 Jul 2026 18:35:30 +0000 Received: by outflank-mailman (input) for mailman id 1358456; Thu, 09 Jul 2026 18:35:28 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whtaq-0003c9-32 for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 18:35:28 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1whtap-003m4z-B9 for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 20:35:27 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a4fe9e8-bab6-0a2a0a5309dd-0a2a4503c090-6 for ; Thu, 09 Jul 2026 20:35:27 +0200 Received: from [98.137.69.83] (helo=sonic314-20.consmr.mail.gq1.yahoo.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2) (envelope-from ) id 6a4fe9ed-f2d2-0a2a45030019-628945539861-3 for ; Thu, 09 Jul 2026 20:35:26 +0200 Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 18:35:24 +0000 Received: by hermes--production-ne1-7568ccb994-fjmzg (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 910e3b4d72a347495c18993f77062a0e; Thu, 09 Jul 2026 18:35:20 +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=1783622124; bh=/ZDT7ysuptrZOTrmM1Jhx5Il0BS4A6/u6DfM5qxpPIE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=SjE4FCKa1O/xDTknG9trKJupPqVawogNk+2Bl1sjj7XuVOkjI3J37D5tyS77nfjdwUhGqT3x9N+c4BSLszAy4E2U5D1olbogZSJHQB7nWvpxJZu76jy8JLzTgWZ5j+Tf0Zah/Ymozc63/9tP/WX8whvtnkvTk6+y2/qGAPUAOPDB7wUrsmqEOZeWv8/XcRKXiHZj1OLuRnIbrN88E9Ww9jIXnZjj8LiW0BwnDMypsFwTjQ7Kq8LYFdSaZYD2yFa5mEuN7yjyEEVUJT+2xlA6BM/7BPKoL92iqX2ZMQb+rA9cdbpQgXvJo+7Ox9/WQM4XDir2O/Gxv5GTy3Yba+Qv2w== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783622124; bh=BQd1aEnETDWDhVMq1/G+QSZWd6nNIAWzejkvBel8vsx=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=mXqwNYZF9w8gqo3DkhBFQnmd+nRI8w2eVnOYFGgFjykKUemBMR1wr6mO9aRM0/3XjapGDCyrTGWqkp/9U1sTvZJZrqOXaaT6+E1B/yODldL0Mqg0m12Eu7NjDOGl7zdenxYlqcpYHe88wPS/AzCsaSgi/awLSaZ1BKebxXCnHHhBTPje2njpjNxfGjhgtq32z0OMDn1E40xQ+kYOusUU3BJ7Ud0f01lhAVxRQMuLbhBY0VzgWfqbhhgWv7V15Cdsq0wSdusYJR/kP0RmlWpIdc24huCCnPA471euSY2nTzKAUtA6SzcaXsKhZz/Rs/M55mRg7tfxsw0/YPmIWvUnYg== X-YMail-OSG: 9HSo6PkVM1ls4sRtIaK5FEUYqKHGUe7XaRuPpUX8y1KwW1MyZHwMqJZuyklz2wX XVOWFtGV0N6mWcARxCf.8adcc4Jn3ORWarzkNO3Wk1AO2sKfVF7crPEQK25JMng3Y3gT1Nhf36df fecctlBFWswhHBp8W1taXL5qR0z9L6DWvf7TOXiYbx6JDq1ZCoGA5P53ALINeYFKoSB.tz4SkS7l 103S4hefhjeBIUxwbeAIy9ufDwUxYC8eGLfjYpvQ9rWtfhQgwOYOoG7DNM9auWwy7AFXqJtVmF.o KkFfWWNklFKP90.Y3WMyp0IfZjKxie2BDeOcp.t3s0zUw8GGa8AfysYijKVfKQC_fKQ7viyGxM9B T1lxSlbh3Xe4b4fh5KZnwDDIf4v0NAx.RlrHYXvT1eY7KjOPYcmzpqhKZjCfXTktQXW_qhQNdLRD Dh2dy_uFXkWfUiWiqR8EqCqwxLwF3VFO73unl5rJfsQxtL8n_Nch0NkfkqfGPLFKd0nhkoRxuTDb WaJc9nNpz53saGcliLosfR3Jz5xkD4XuH807IwX5d2yLpMLPrOzh88x8cSi2kLztB0t6uHA_vSiw Drq.t629.ski6Jt0KUq1MMYHCtgnBduz7W9b95wYeXd1WhBLeQv.gZ09Rpc0NZCvXUAQ8fmocpx1 BPv5pCrzGs185ol9LUVMpC12Yyy4hBDHgoD2mBY04krnBJJCsVxOI1cmd23WnIP5obNMMxhjTzoE N0ZsqJ3U9w.CTHwIEfA5ZJcq9Xd5PNJxbw5iuE48caFAq6spM8FTbvComP_p9f_e.YErUCYLpOKA l1_QN3K50sn9syRTzp_FvQqzZ_noFAZKOjvHs1O2vfIpqo0e1ugqnhrJgRXaQvVVj8TWm10TyJL0 PWYTr_ABc_5jKrY0XxSQtmM39x8Euu3K3fYSIITYwDmXa64MWm2WQceuuIJlS_4PqIa0Z97xoJJg 9xTrCyZttey593cyCEt2m8KuG.80WJQEe5c8DnkWDs9HUh59OGkY_FtOAQnBu7UXw_3cqFB4aqeK QNtDZGqZEq3PM_p49YGOd_Jd4sAgxkIYVd_.tVdytqVlDYsU0q_3tMhSLqC87_qpw_QH.odw11NF NIOFUOJZNOYEQGsAnvL9IyrJdr3cqYqY3_CoQA6FHji8MOU45.lhWY9qIhBeywhYgUTPnlrml169 vrGIyrszPmQPfJdT0QZEWPdgQIiMpBBw8n1q_kmrrtI6_hjN_oP5zbyUQWj0Yo6fNpJu2x.8dsnO UNgI_sLnsoZewXW0nsRJnLwI3akuPU3OYLuBcKE7lW5weECNoYWXh1k9NMgV5vZJ6L6GBdBgfO6w G_ZjEi8dxn3IdiNB78n4l5V1M0_tE9oNaYDgOQkHSQIZDSKq4WehZj7zoBC0GDACOTJSMvcvsuFG PAdj1qwjo0UOpjzvxAQz2poVbEXKaRerJVbl4.HCScXqCpUFtI11mX92uPzaXw9yGwsqSSMi.d1D aLIj71LqPl0Wi5g0L5xGuTSnUux.PjPXxSFiDKNFLUn_lOLdcV49PMgeq7S5Se.l6l6xaK6O0.I5 N.TUUpa1P.pw38OAFSJIruIpj3EzJDkOkRJw_Qh5TfveDjlY06OPWT.1wZp.GcsUCCGFzO9xt37H jKEv8o2MQJRyarF49JOv6xopCp96.WzRrwjtLwkJZNdkBZxTfKlsG2u0Il5cLqH0xhEUf3rD3zV. Nk7BTOcTnYv.MEamD3UG57lkovdcWvp92UUAV9rTXULHXLA5yafqmBpjsEzmps1DIXg224cO62ee vv_7Y_zJaGNgslC2goKVkzkUJ5FmsxlL2Vrl55TRDXm.hdWvkVd4BMP.iBDeFoD.RgrYuurLTG.t wPLndfwPOB.RlIV_Uv_dQsCjLuRt._YOIbCtNcEUXabxImLJBIefg5UhldFZlAofPlg1sKOvtgN6 qirFlJaE7TP1gGC_fpMOAygsEpFMcoImhpqLk9yn0wBOu6Su2_w7qe_NO0X3fmJ6El9Zw89ewiGG uwzZjHPWIUoLyqWVSm7O1GulS9Ih6L4xf6KWtrTSoMyh.ekxbwYjlEX7pq4uNnfxyHHASs2pXlT1 rRClJ1Q1Pt4E1omYplYbMIrO.tmIlvBis6_Nd7maBoUfH3CPc6yvT67ktR6Cd4T2GrFWaPMt5oKU RjJjK34SWU9GWuMTOlXziIDyA4i3ZwL2ARTJGLBxPK3o9hHhLWP1sFHCFCY_172HG2DIwmt9EHJh bP0OqiSZapZXW.SWrF6m43DWZgoVDVOm3EqS47A-- X-Sonic-MF: X-Sonic-ID: f0f93a08-abbd-4926-a83f-f5164795b146 From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH v3 1/3] xen/igd: get PCH info from host sysfs Date: Thu, 9 Jul 2026 14:35:14 -0400 Message-ID: <20260709183517.25866-2-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709183517.25866-1-brchuckz@aol.com> References: <20260709183517.25866-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 5913 X-purgate-ID: tlsNG-33051d/1783622126-F3955CF4-66E1B044/0/0 X-purgate-type: clean X-purgate-size: 6086 X-ZohoMail-DKIM: pass (identity @aol.com) X-ZM-MESSAGEID: 1783622164662158500 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 Changes in v3: - whitespace fix at line 380 of xen_pt_graphics.c - fix Cc address for qemu-stable 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:05 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=1783622161; cv=none; d=zohomail.com; s=zohoarc; b=exK0vTyrGuwndnJGvuK+uS92zHGa+bVEMX82C8ccafAWp4AEkWV5NVWnUKUkUH7udtumuv/t6kHrE+LnsZ1xp5v997PW6lfhkE8gmoWnPfOIdY+pAihp2e/mo7ebxLmT+QU0WCS9v103mCXLL75n29kA6Ja52KQeYulkrsXtddw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783622161; 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=fhRf3JXRumlxIz5yKMV8dJMfO0BC+czU20wlGumg1eI=; b=FlI/jkF1L/HUtkLZEufj+ndW7V9tHhMoVoMasfW4r31EgiEwvJcuRlSb6o8zQqkTmPy6oC2YtwukYtLSdc5yX5lZgE4BqkpTDFKy0P2y9hzKmHDFW5QbpLjlV2xP918Iy7iUZFoWklJJiJ89lrWTYU7irzvjkJbdlkvBCKYp6qM= 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 178362216100867.8563369988517; Thu, 9 Jul 2026 11:36:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1358454.1612552 (Exim 4.92) (envelope-from ) id 1whtar-0003cY-Kq; Thu, 09 Jul 2026 18:35:29 +0000 Received: by outflank-mailman (output) from mailman id 1358454.1612552; Thu, 09 Jul 2026 18:35:29 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whtar-0003cR-IF; Thu, 09 Jul 2026 18:35:29 +0000 Received: by outflank-mailman (input) for mailman id 1358454; Thu, 09 Jul 2026 18:35:28 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whtaq-0003c8-1s for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 18:35:28 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1whtap-003m4z-6m for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 20:35:27 +0200 Received: from [10.42.69.10] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a4fe9ca-bab6-0a2a0a5309dd-0a2a450a9ac2-24 for ; Thu, 09 Jul 2026 20:35:26 +0200 Received: from [98.137.69.83] (helo=sonic314-20.consmr.mail.gq1.yahoo.com) by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2) (envelope-from ) id 6a4fe9ed-ec7d-0a2a450a0019-62894553875c-3 for ; Thu, 09 Jul 2026 20:35:26 +0200 Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 18:35:24 +0000 Received: by hermes--production-ne1-7568ccb994-fjmzg (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 910e3b4d72a347495c18993f77062a0e; Thu, 09 Jul 2026 18:35:22 +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=1783622124; bh=fhRf3JXRumlxIz5yKMV8dJMfO0BC+czU20wlGumg1eI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=OgKTMquDMTrsCsgbyr/lZI9CMmP6cr5kFKT9rQjoMcklC6WPWeNuTV5aGyYigIiTy2C4nWvUcMLvFEgZ0et27x6Lhu3jm95uu28s3u24NUZwTEnS0HI9aw0OhfJLYKhgjlUjNFq6Rs/Jh6YswYcTUfX3ub0SWG9K36XryuLNlIbvRs712Md2CNTTXo7tes/tJYZqL5vsPSFGJijpo4WlcYurjLtdukA8hfkyG02VdFwJODewNv9XSa3Yn1gV91NenXafsZwvDILdGpqF7hd4VzD/NAza0jA/r+fjLonc4M3AiM4UgKWn+EhfoVzuMW9AfegPNAp3apYDhnH3sYnRdQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783622124; bh=Fxl9JSWtFg22iJgekLWhHRW+keyQqc/ymx0xSqxvrtY=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=ALfQMvQdY2ivsfq4jOPVmKRw9mj9jCEyUYG2XMLjL5A9RMQzWaIrgew3zzIJk5oAbDZMsFfK5X0P2AtFLv57s6/Cnwn+pOn+lV+BjyK4Ibdiu1NcAcuDgJxNfVKn9Kj5ZHh+41RVOItO7MEsuENEosMugpvDZzl24vKoZrJLCoG1AVvTHlpx0vBMJL0CbaU9KjuixxqxyLQdiiGqdZP/9/dbPAWMoiAfxd4V6HYtZBbd05XS+Kn5xqK9fWam9ieSdiISJrbzOLFKmIDnSst9evSpeRUXM2PjULqbavipFeYodSSm/favCMNiW9AOU6uywRgju8lvYAstjP94TaTzKA== X-YMail-OSG: 4vtytHcVM1mTYVbczyB0ZzzbPW8QMAw3YIayICRq6WXMla4mpjNEdHsJcIM6C6j Fvl4oi6GGVU4EIgdm4bIQHEYnVNQ0I.vzaM3JA37eWfPyEzIgT0Z4GjlhioFVWhhcfTuDIoBEn9r EvkELIOWA_SGIVDhYZkoGBAME2fE87Y6J2CPC.009hQ3m3OXFQC9wsYAK7AUbi.xHbS9pnzRfiAj xwogK7WBwQtr.qKBnRWcGhQazm8PpMs.DFZvzUUk77qjEhwhL8TO2MK7cLSEnB7eUP.UQk08bPFH WVK01Z3zv5EpqBjabzEcpKa5P8d8Wgb.qkej89OYFkTiv31swSQ.1vvpfuAlIs9gl.6C25jVjwcH XHCJc9cV9xbUZArcsk8oRaoAgke2bJIlf6rtiDNvfB.EQBJ1HjPlIaoo5QG6hJGtWjoPixWjOk4Y V.VVo2y19LgaNjpQ7vJT_70wqTFwp453cEafE5HIKFqx5p.9fH5pU3K_GezfX6Jqce3JrFrUxBE3 nJQA7TL8ASkFNpyQydCzWG4bYSQUg63_dDGz9vtupWthmdDmnAaLPifZOObrarE3pxeHPkms2Ozd PAgztQ9xEocNvac6R8k5duarFABkiT6Z4pGkaGDG2_AGrVn0hQgexHfUceZaKp0FrXYXnEqzPVyZ tL15TcggNea_yLzwsKtJrC.Gm5UIml0jK.oQl4Mb11SI1Cp5GyOrdcwrXU4.twPVKPw5cWCOhOxe hwZ3AfnznynhB_voqw7op8kKUEP_d7ZuJfs.Yrz1j2DxYO8jnyLQ.ro.IvcIZcWU_tLlFogxTEkF mHJIGYOGFPHcUFOOVA3BCsm4U.nR6O.THiCE4LNfgzXZmImBr1AS8CuKIQfXljpsi7SggyTG_.g0 vD0UMyOIXc5N8KFr3QpS4Kfu00UZ.PRcOUY9CNQPeJm2lx_v.bFYtA3dwfwHbZBmQV4Mhcs0ZhWR t.0F5D_pXPX2wBuaKlQr7zk48HTRBf_624hcaTHUgNwPSyHWi5_Be8yD.NsWJFSl6yoyFV.qtiT5 RGUD1BQ16_9AMCVAiG7x2Vr0d8ESYQmmbFoKb8d3NzZfCGIt83I.l.wMeJZEb8rxG6HL7TD4EEms tne7Rs1MTqXuKVZ__RCYjm6PvYwuVUJE2PYSF_R3a_lri5uqZzREr_CkAgbM.J4k0ZnL8xIWzWFJ DWE1nXf4OoKiVq0GZviZbhRAKK7zntfQ9eKd7O4YVSzaGmgZuKpND5JRswHrcL8ODP2j4CS81NE0 g.tIjXq1PfVLsExnm7W_Qo2AZgDjx8MdXFwwl6Xl6pwkSZl_7SfZ4h8SA9QcTPMI9nx8lDlqq0MC g49Jt6vB.kSaT12FUZdgatV_AXup7gA8sz3rUV4QtFniyJ4_diatfhi_CAkrVqgtyS4tcplC_Qsw ZV2w0kdAdKWkdr9hAdDRHbQ4e5_GuyGbnFbBd0tGpy39xGQq26qMPl9kszaewEF9KmTNfNQRA68m _Zy1S_T6pt8jutSSqK_1t0sm.60fHkdSgyA5Hi6e1MbnFBRZyT0KMRgKnWuTY91TR2_WwCWVtvGA zdN2wJWvgltabwGqZSokj6TmxgQHGqPb8NVkdJeLXCgp2LmCoi1xG2a43pvcnitQ_b8vjFU3966o X87eap9Bv6GroTPlMzsxVCvfzr6tF0EXVUePtLvX6FS_WOgbsQKgwZD6GBQ5pwirphixd8Cm72.R ejFiQDXD9Vaisf.yIEiNsOiMJJ4E_v6Mj0MZqeWgNuh_zvuTv9gQ8i_mn3Y_kwg95IvUyNc3hIoq WvcCsqznKYwO.LpCdrePqVb_zIOM0zUwaqcF7gVubGyiK_wlGgXdbSlrUnPAUVFD_zhELWPQgdTk 4h7KvkUZoaCXMe5tQgsKhEpXnAGgL.t_bq47wkHGglcvI2bKyVzoiE6gQNDmYKL_XLr_bowz3lSf o8Y8FGKAtBdOur.jJkCPKPZAGspiJtLbKg1.T9eItPkiUrOK7p.MqRCIRykYU68pED.UMzuBxY1G zSBawtqcaBTsZXLpkkKKpEmzFDrdmM_mVeZtRDEoc_6kaFMVVPTXyQGvgqSYkLtOAb9xCnGTkIcq _08Zb8bcwFpdUf_9ozREQxpKFErCE_bZ4lCGeYmUu_DPTeqJk6FqUoqW8gyvoNY379mtSqZWCK0X qgkAW8M5n8Qpvs_ILk553K_6CeJSRwjmJzH2OJEH0IPXZZ_0X2G5ugPYkm0jm03fU8ppsqxUxCcm PDQnsHjwIsgdKt__6TzOmJFn_6PltgZM50WAqEHHJ X-Sonic-MF: X-Sonic-ID: ff122649-501c-4d3c-8192-01dd0a2a047a From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH v3 2/3] xen/igd: don't register rom bar twice Date: Thu, 9 Jul 2026 14:35:15 -0400 Message-ID: <20260709183517.25866-3-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709183517.25866-1-brchuckz@aol.com> References: <20260709183517.25866-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 1439 X-purgate-ID: tlsNG-4011c0/1783622126-3F168248-DA5E1F8D/0/0 X-purgate-type: clean X-purgate-size: 1484 X-ZohoMail-DKIM: pass (identity @aol.com) X-ZM-MESSAGEID: 1783622163077158500 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 Changes in v3: - fix Cc address for qemu-stable 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:05 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=1783622160; cv=none; d=zohomail.com; s=zohoarc; b=MMQK25iHk8EA0yaSzpO90ZgWKp6SOXVQeFjaRu7PyGCp7+zzf9SQiPipm83MOBHt9X45PZM07ZlF3z6K528ulKNa5ZdhnIDmNhQkgeJT2PLWRiLBig4Kxwcv6N0lZ67HIyCKTHb7/pJD/2B6imMrFzpZFE51X4k797sVi0jKXPc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783622160; 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=RWUWN1Khjj7dJNM0rQ3yGglWM1wDL1ijwxyNMLI6jYE=; b=jZkvvtgmLPnIGT5fhsvsttTc4bZGm36IRMvC6uCkRASEZr+b95J6pKNSXT362UG62eesHKbCjOenuSy1DIl0PMduaN7YRtt0sA24F7b0Scb0gw5M/LAdZfXizNP8+Gb6XJFSgVzV97UO1taQZnaX8/VDuth9rp71mdApelO8aHY= 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 178362216090939.51281101210952; Thu, 9 Jul 2026 11:36:00 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1358457.1612580 (Exim 4.92) (envelope-from ) id 1whtat-0004Ea-Ff; Thu, 09 Jul 2026 18:35:31 +0000 Received: by outflank-mailman (output) from mailman id 1358457.1612580; Thu, 09 Jul 2026 18:35:31 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whtat-0004ET-C1; Thu, 09 Jul 2026 18:35:31 +0000 Received: by outflank-mailman (input) for mailman id 1358457; Thu, 09 Jul 2026 18:35:30 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1whtas-0003o1-DT for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 18:35:30 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1whtar-004bSK-Py for xen-devel@lists.xenproject.org; Thu, 09 Jul 2026 20:35:29 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a4fe9ee-5cb7-0a2a0a5109dd-0a2a450b9898-2 for ; Thu, 09 Jul 2026 20:35:26 +0200 Received: from [98.137.68.31] (helo=sonic308-55.consmr.mail.gq1.yahoo.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.2) (envelope-from ) id 6a4fe9ed-b7da-0a2a450b0019-6289441fa20e-3 for ; Thu, 09 Jul 2026 20:35:26 +0200 Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jul 2026 18:35:24 +0000 Received: by hermes--production-ne1-7568ccb994-fjmzg (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 910e3b4d72a347495c18993f77062a0e; Thu, 09 Jul 2026 18:35:23 +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=1783622124; bh=RWUWN1Khjj7dJNM0rQ3yGglWM1wDL1ijwxyNMLI6jYE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=DqdgcDySsWQn3/hfhqx93w0tMHWTVlJYPc2ZhAOCQPfAMMIoP/uPvJ9TcMh1o2KSDl7zg5KTfN55CvOhskA0l1W7IEcOAJz5DV8P/EGSHkq2w1qAw5OJe5Lw3ZUgvhx1UbJh8oqXFLgz4NYWQvLpgeC6RKS6by8Ub6whBxQkXmc0SBrGsPJ9ep6IhsexQAtYmAhPCKuoWfc2CzvnBZNTCPBgRvyLRz/Kb+hFGsLLRg8F5Ex8oFeEnUTEllKyNFPdQthsMajmBPO4Tb/WF3IUx3X3qdBen7YVYEkZWMOHGWX779Uu5F8EdZ/X2SBmjFVQNO4Y5EEhOg1lyyB1MxZtgA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1783622124; bh=5qCBF6nm0C28qlJPoFBbn0E8KwxNV8yc5GrA4lxP5jX=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=oj6CFCXljEo5MSL5LpWL2CeqmwpowIrywm5/t97F5m1kSoATKqPVTPnz5n5X6DRxAqQ0yF49KB5OCDpZ/OHAONOqu1ZziIGhqsgB0RW9pWzs2dXbigBEDpZn1xvkyHkeV5WHpD6QpuNIDRKs20GxTqfSKGKggMDgS1Z92bH/7l1mj5dLu6/Wk5ADTzmKF5X/Qf49ZxsbqPEbVRlupr1v56fQiOO4RrP15pHynnZoFmt5I1UBm014shAbM1oJsTx1Fm3wW6L/qhNRJle2aaGRrXUc0TIkdp83FzghIiHcOEJSZYtNLi1I0zT4IwOLG5TORC54qUjLFffzJ3A4vQUrtQ== X-YMail-OSG: L4MJRXUVM1kVp8VEtv0TmQ7TiWZogcFrMIf7kJDDTJoc.aD3bGM_FLa_204FUAs B6Gv4cVOakoVX_sRf03Z04sQ6w2kvCp5NXTEbU_oHO4W6euyUAvHjLKobrhDr1Q_QibA7.fpvJAj gEpLw5RdHx5JWh2sOYrF4fUXje9aF47i8D0sYFqgyh3hZTZCDuQebcRk3xB3e8RyCeaHHdnH.qOU 5hzAGfD2M5.GXwf_hwklG7fi61plwdAMQcSMlmucxVWztU7CQ_cowAULQLSZmzITO3_G6a7MrszK fM4jjM1BVxvYLYb31eK992FJ3FLV1ctpaIFyA8oyZJnVir04xkEfcjjhHlzf32XW7XMG4ImtM.Gr mXnbiglz8tFkRFAn1tKPhOz1fdhloIrYSaNOipn18zjuTqZQxNvc9bYIwCuSGV0FcYDcQnqmYoxA BnUeWQYkdpEqHpMATznCq5OZwpuIZhFBvHAiiVhUbRwzKt4Azr0Qhi.pLaI3J_VRXtoaSwvv6lV0 oSUmJvpGQUFFIvcuz2vVD3lhXYjXcf7P0oIcvyqwOk105ClfQb1k0eG.FWh.0qbZEnh9ODW2hdzk 3e01D1u0UA1pfMqJDWsYBMoInDV0n_BKKrv0H5Fpycryp.eEeE8_V0qg83Hwmz5WreHRH0ccPZXJ ViHMtu_EaE0H4EI1ORsQFcPyKCDeBmioqPJ.S7cR.9I_6QQY1B8Z.e0BxDE.KNVCN2gVC.DXtGdA h61qeUpjTbb2OUPDpjJUR4FrIwDV1lzT_u7qDuPkVct1Rdx3D8wIK1SNbuh4HF0u.AXy3Ii1xYVN Q71qn9gduPxtY4CQuGWZXyb.oDXA0H8FhdsRMiZqSilyl.WvbyRXNkJtU.qg6.HUJ6LHXje7aMHG jju8ZkaU97x5s56YSB0_JEX4lkA6mOJgr2Dbpq_WiiqaItO.UwFkP8SSVmeWimfIbqis8vOjYRji ZngT_5M49Lrlg5ZzC9lf2yv_aqwGwV6IjjpgFIYwqSmc5o5J9myfOPGKp1dg3wdhkcOXvzBg0i31 ZX1ifnVptpN.HQ6qKt.OK69Ib3gqty4sBM69atbKU_jZ0S9mFtK_CznWwgr.O13ovieijJqCmRc. CtRct.vennLz2h2udlPffW6S63ljA9FGOKJ69syHmGp6ZwGWcsiziGDSBSh43rJntCKnj5wGJ5.s 8zzcpoT1pJMly_oearQMKEAftwYpQaBs4zCG_Sdksw5sjYgUFOAaOZGq0iFvs6XdJVO5hfOZ1Sel vccYSIxaZ42nVQBBGyQwaWl4Se2RRHQaXAgr21zNQqZfGcxLB6.Lugw9a2w6SSejA2RAvYAvUOPS YolWfFrFE4p3vjRhYrlGQJAilh_5mENmjeSmBw1i0M3qOgjJiB5YhVCGv2d2HceliK_OZyGgrewn H5jUxvtunbN97Lt1xyxr1hUAAcLXDtqaCBwaM1ZJwuTJQZjFs3RChHwZpcQ_4MVSsRzX9dJ0oKx9 8ExgHNAiaArvOWDBBxlRI5w421XWY.my2G2NaJcZzc1HyaWme3SdNFvQ8mmQpgGR9Asj3F6R42ig zDcjyXN.Lpadm92Gf0IW9UKDyetiZMwdQVSS_lUZb9JG4fIeCx_9BN.YUJJUD3qwOAhKipB5xlaa LsHeYsmTP7Bz7JMTt537YOjPtYohyxpRfrVxGivTy.wFRLEWBxzjRc1jaOQqWf6yaJuJSeTSEBxw GB9nEMlmYkqKWWFQhJQYEi.hksmUoaHcpMIPCHmQXQikx3A4g85vWWnm9vPx0ZCHVwsrMsrWbPxH QNFX9mH8jDSHo3R9r_8h.sojbcDL3Ie65MuLmu8hjYJSiiEazCesmFIfiTJUd7pdyUDPximjDfiF _f9ngMsZteF5jSMLbQty6vLEslG6DUdfVWKEaVyCupJlvmfm5UukyA80KQY.WGLlD8kgzLuLegfE 168HR46NsLD9x1.77_lOsXCAfKVJ3mdsv1SczGmXCNY2ifGbdmWfbAi_T7hHlzNHr77MbDYHjfHZ L1grRi8jhzl2zXyR4IeqPZyKijn4CjFOROUrCpef7ViO_3JmL9lx6FMUAUR8QEwd7D9e3B5m2a7o .pW26Q7WsiOkkWapCYMG5T0BsmP7OUX9ANCe_ZIL2BHPds2vUIE_MoAcWyU6nnE1FEpEf1OYDU5a o9b.ExeN.sS.grra_SWofdrAOZ0RDwZhan8NnNxgjnzDj0O54EFviAybg13DWxekJiYZQO9KLEsM VD7x1wllEcTAM1t7euqv6mh7p.cRSc1m8MkKZz.mY X-Sonic-MF: X-Sonic-ID: 5789bcb1-0729-48f7-807f-e36832099043 From: Chuck Zmudzinski To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, xen-devel@lists.xenproject.org, Stefano Stabellini , Anthony PERARD , "Edgar E . Iglesias" Subject: [PATCH v3 3/3] xen/igd: fixup device id before registering rom Date: Thu, 9 Jul 2026 14:35:16 -0400 Message-ID: <20260709183517.25866-4-brchuckz@aol.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709183517.25866-1-brchuckz@aol.com> References: <20260709183517.25866-1-brchuckz@aol.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Length: 3220 X-purgate-ID: tlsNG-42698a/1783622126-4B36C9ED-BD7F74DB/0/0 X-purgate-type: clean X-purgate-size: 3305 X-ZohoMail-DKIM: pass (identity @aol.com) X-ZM-MESSAGEID: 1783622163110158500 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 Changes in v3: - fix Cc address for qemu-stable 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