Date: Tue, 06 Jun 2023 11:56:24 +0200 From: Corvin =?ISO-8859-1?Q?K=F6hne?= <corvink@FreeBSD.org> To: virtualization@FreeBSD.org Subject: Re: [PATCH 0/3] bhyve: enabling bus enumeration Message-ID: <a6f50f6194507337e5459ae51262368511c19cf1.camel@FreeBSD.org> In-Reply-To: <20230511130545.748706-1-corvink@FreeBSD.org> References: <20230511130545.748706-1-corvink@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-5OA25i2laQRyTYNTrq86 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2023-05-11 at 15:05 +0200, Corvin K=C3=B6hne wrote: > Hi, >=20 > this is the next patch series, it'd like to send to the EDKII > project. > It enables bus enumeration. The use case for this is PCI ROM support. >=20 > Enabling bus enumeration means that the firmware reassigns the > address > of the BAR of all PCI devices and executes PCI ROMs if it find some. > Our > previous approach was that bhyve assigns the address of all BARs. > This > is required in cases were no firmware is available like booting with > bhyveload or grub2-bhyve. While reassigning BARs in guest firmware > seems > unnecessary, it's required to fully support PCI ROMs. >=20 > Some use cases where bus enumeration is required: > 1. GPU passthrough > =C2=A0=C2=A0 Here bus enumeration solves two issues: > =C2=A0=C2=A0 1. The ROM can contain a GOP driver. This is required for > graphical > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 output before the OS driver is loaded. > =C2=A0=C2=A0 2. The linux drm driver has a dependency on the ROM. As GPU = ROMs > are > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 shadowed in system memory, it searches for= this shadowed > version. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 So, drm won't be able to find the ROM if b= us enumeration is > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 disabled and refuses to load. > 2. NIC passthrough > =C2=A0=C2=A0 The ROM can contain a PXE driver which is required to PXE bo= ot > from > =C2=A0=C2=A0 this device. >=20 > Any feedback is appreciated. >=20 >=20 > Thanks, > Corvin >=20 > Corvin K=C3=B6hne (3): > =C2=A0 Revert "OvmfPkg/Bhyve: consume PciHostBridgeLibScan" > =C2=A0 Revert "OvmfPkg/Bhyve: remove IncompatiblePciDeviceSupport DXE > driver" > =C2=A0 OvmfPkg/BhyveBhfPkg: enable bus enumeration >=20 > =C2=A0OvmfPkg/Bhyve/BhyveX64.dsc | 4 ++-- > =C2=A0OvmfPkg/Bhyve/BhyveX64.fdf | 1 + > =C2=A02 files changed, 3 insertions(+), 2 deletions(-) >=20 If I don't get any feedback within a week, I'm going to send this patch series to the EDKII project. --=20 Kind regards, Corvin --=-5OA25i2laQRyTYNTrq86 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgvRSla3m2t/H2U9G2FTaVjFeAmoFAmR/AsgACgkQ2FTaVjFe Amojpg//V8nemvC2kSI9WHTd5pphxpvfVh+IPTqtSnBPFyd9f5Ag5OYD+5PG4xgW tAUGmcE1BiYPapCExH+Hfx7GFPU+w5I2iPSLXIQYujJJs9vfox9KH+oLIv79SK23 aAa3dQyEOCC0ojj8Pq20aF+TBmwc04yt9HMSFOvepVQijHKpoqPoZiijutSm9Ozw RJOxFT2oisVYN50eDbyzUR59XOpjZCTJd3YJEKCSeOf4EfhG64dqgrZjVLCWctD+ PKpthODCSFmH3tuclnmbQuLxWP+39ju1txe+7k4//rACsffAjnmq+TcbNkPWaRYM jICUbxm21f7r1+Ti/eqpgb5DdJKRr5skeGxsqiJSASZsbxEFh20pxFrJW6odMlgV vS+Kxuq5m9KKdvfRZfmAS/1xrIzt2IWOg3HLfOGJZuafCGlbksoZC444YOub624f sGUDsENAOhkdojA2ISamPNHouzbOGcVJo8Bsp5HuS0c6iD7MGfQjMsG8flPN+urJ UdddoT6R6hUH4mm3zajMytPtL9LsJXmy9+P3z5zpiyW0ZNQkDJ1KgS80a/sq4bJr yi9+PBrwDoSefuX/zLWl8DqnaUoGoOzQ6IcoaHf7oLym3+xPWpJpwgAVybSNwIGt GxTpspWAMJGUk3WJXLjsY8OOpFATVjiz0FCgLAEqEbCg/dLsOLg= =lZfU -----END PGP SIGNATURE----- --=-5OA25i2laQRyTYNTrq86--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a6f50f6194507337e5459ae51262368511c19cf1.camel>