* [PATCH v3 1/2] OvmfPkg/Bhyve: add USB support @ 2021-07-01 12:01 Corvin Köhne 2021-07-01 12:01 ` [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address Corvin Köhne 2021-07-01 23:45 ` [PATCH v3 1/2] OvmfPkg/Bhyve: add USB support Peter Grehan 0 siblings, 2 replies; 6+ messages in thread From: Corvin Köhne @ 2021-07-01 12:01 UTC (permalink / raw) To: devel Cc: p.bruenn, grehan, rebecca, lersek, ardb+tianocore, jordan.l.justen, Corvin Köhne An USB driver is required to use a keyboard or mouse while installing an OS or while in a bootloader menu like grub when using GPU + USB Passthrough. --- OvmfPkg/Bhyve/BhyveX64.dsc | 9 +++++++++ OvmfPkg/Bhyve/BhyveX64.fdf | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc index 39cd354932..a0a2071b86 100644 --- a/OvmfPkg/Bhyve/BhyveX64.dsc +++ b/OvmfPkg/Bhyve/BhyveX64.dsc @@ -163,6 +163,7 @@ FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf @@ -778,6 +779,14 @@ !endif OvmfPkg/VirtioNetDxe/VirtioNet.inf + # + # Usb Support + # + MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf + MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf + MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + !ifdef $(CSM_ENABLE) IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf { <LibraryClasses> diff --git a/OvmfPkg/Bhyve/BhyveX64.fdf b/OvmfPkg/Bhyve/BhyveX64.fdf index f4050c4934..f9e9a4cc3e 100644 --- a/OvmfPkg/Bhyve/BhyveX64.fdf +++ b/OvmfPkg/Bhyve/BhyveX64.fdf @@ -292,6 +292,14 @@ INF MdeModulePkg/Logo/LogoDxe.inf !include NetworkPkg/Network.fdf.inc INF OvmfPkg/VirtioNetDxe/VirtioNet.inf +# +# Usb Support +# +INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf +INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf +INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf +INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + !ifdef $(CSM_ENABLE) INF IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf !endif -- 2.11.0 Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff Registered office: Verl, Germany | Register court: Guetersloh HRA 7075 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address 2021-07-01 12:01 [PATCH v3 1/2] OvmfPkg/Bhyve: add USB support Corvin Köhne @ 2021-07-01 12:01 ` Corvin Köhne 2021-07-01 23:46 ` Peter Grehan ` (2 more replies) 2021-07-01 23:45 ` [PATCH v3 1/2] OvmfPkg/Bhyve: add USB support Peter Grehan 1 sibling, 3 replies; 6+ messages in thread From: Corvin Köhne @ 2021-07-01 12:01 UTC (permalink / raw) To: devel Cc: p.bruenn, grehan, rebecca, lersek, ardb+tianocore, jordan.l.justen, Corvin Köhne It's neccessary to allocate a Graphics Stolen Memory area to enable GPU-Passthrough for integrated Intel GPUs. Therefore, use a new memory layout with a static Pci32Baseaddress. Old layout: [... , lowmemlimit] RAM [lowmemlimit, 0xE000 0000] PCI Space New layout: [... , lowmemlimit] RAM [lowmemlimit, gsmbase ] Memory hole (may be absent) [gsmbase , 0xC000 0000] GSM (may be absent) [0xC000 0000, 0xE000 0000] PCI Space --- OvmfPkg/Bhyve/BhyveX64.dsc | 4 ++-- OvmfPkg/Bhyve/PlatformPei/Platform.c | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc index a0a2071b86..c435dadc0a 100644 --- a/OvmfPkg/Bhyve/BhyveX64.dsc +++ b/OvmfPkg/Bhyve/BhyveX64.dsc @@ -537,8 +537,8 @@ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0 gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0 gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize|0x0 - gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0 - gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0 + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0xC0000000 + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x20000000 gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0 gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 diff --git a/OvmfPkg/Bhyve/PlatformPei/Platform.c b/OvmfPkg/Bhyve/PlatformPei/Platform.c index 3a414ffcb7..f38e74ccfc 100644 --- a/OvmfPkg/Bhyve/PlatformPei/Platform.c +++ b/OvmfPkg/Bhyve/PlatformPei/Platform.c @@ -191,7 +191,9 @@ MemMapInitialization ( ASSERT (PciExBarBase <= MAX_UINT32 - SIZE_256MB); PciBase = (UINT32)(PciExBarBase + SIZE_256MB); } else { - PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam; + PciBase = PcdGet64(PcdPciMmio32Base); + if (PciBase == 0) + PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam; } // -- 2.11.0 Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff Registered office: Verl, Germany | Register court: Guetersloh HRA 7075 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address 2021-07-01 12:01 ` [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address Corvin Köhne @ 2021-07-01 23:46 ` Peter Grehan 2021-07-02 15:18 ` [edk2-devel] " Laszlo Ersek 2021-07-02 17:05 ` Rebecca Cran 2 siblings, 0 replies; 6+ messages in thread From: Peter Grehan @ 2021-07-01 23:46 UTC (permalink / raw) To: Corvin Köhne, devel Cc: p.bruenn, rebecca, lersek, ardb+tianocore, jordan.l.justen Reviewed-by: Peter Grehan <grehan@freebsd.org> > It's neccessary to allocate a Graphics Stolen Memory area to enable > GPU-Passthrough for integrated Intel GPUs. Therefore, use a new > memory layout with a static Pci32Baseaddress. > > Old layout: > [... , lowmemlimit] RAM > [lowmemlimit, 0xE000 0000] PCI Space > New layout: > [... , lowmemlimit] RAM > [lowmemlimit, gsmbase ] Memory hole (may be absent) > [gsmbase , 0xC000 0000] GSM (may be absent) > [0xC000 0000, 0xE000 0000] PCI Space > --- > OvmfPkg/Bhyve/BhyveX64.dsc | 4 ++-- > OvmfPkg/Bhyve/PlatformPei/Platform.c | 4 +++- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc > index a0a2071b86..c435dadc0a 100644 > --- a/OvmfPkg/Bhyve/BhyveX64.dsc > +++ b/OvmfPkg/Bhyve/BhyveX64.dsc > @@ -537,8 +537,8 @@ > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize|0x0 > - gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0 > - gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0 > + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0xC0000000 > + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x20000000 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 > > diff --git a/OvmfPkg/Bhyve/PlatformPei/Platform.c b/OvmfPkg/Bhyve/PlatformPei/Platform.c > index 3a414ffcb7..f38e74ccfc 100644 > --- a/OvmfPkg/Bhyve/PlatformPei/Platform.c > +++ b/OvmfPkg/Bhyve/PlatformPei/Platform.c > @@ -191,7 +191,9 @@ MemMapInitialization ( > ASSERT (PciExBarBase <= MAX_UINT32 - SIZE_256MB); > PciBase = (UINT32)(PciExBarBase + SIZE_256MB); > } else { > - PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam; > + PciBase = PcdGet64(PcdPciMmio32Base); > + if (PciBase == 0) > + PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam; > } > > // > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [edk2-devel] [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address 2021-07-01 12:01 ` [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address Corvin Köhne 2021-07-01 23:46 ` Peter Grehan @ 2021-07-02 15:18 ` Laszlo Ersek 2021-07-02 17:05 ` Rebecca Cran 2 siblings, 0 replies; 6+ messages in thread From: Laszlo Ersek @ 2021-07-02 15:18 UTC (permalink / raw) To: devel, c.koehne Cc: p.bruenn, grehan, rebecca, ardb+tianocore, jordan.l.justen On 07/01/21 14:01, Corvin Köhne wrote: > It's neccessary to allocate a Graphics Stolen Memory area to enable > GPU-Passthrough for integrated Intel GPUs. Therefore, use a new > memory layout with a static Pci32Baseaddress. > > Old layout: > [... , lowmemlimit] RAM > [lowmemlimit, 0xE000 0000] PCI Space > New layout: > [... , lowmemlimit] RAM > [lowmemlimit, gsmbase ] Memory hole (may be absent) > [gsmbase , 0xC000 0000] GSM (may be absent) > [0xC000 0000, 0xE000 0000] PCI Space > --- > OvmfPkg/Bhyve/BhyveX64.dsc | 4 ++-- > OvmfPkg/Bhyve/PlatformPei/Platform.c | 4 +++- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc > index a0a2071b86..c435dadc0a 100644 > --- a/OvmfPkg/Bhyve/BhyveX64.dsc > +++ b/OvmfPkg/Bhyve/BhyveX64.dsc > @@ -537,8 +537,8 @@ > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize|0x0 > - gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0 > - gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0 > + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0xC0000000 > + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x20000000 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 > > diff --git a/OvmfPkg/Bhyve/PlatformPei/Platform.c b/OvmfPkg/Bhyve/PlatformPei/Platform.c > index 3a414ffcb7..f38e74ccfc 100644 > --- a/OvmfPkg/Bhyve/PlatformPei/Platform.c > +++ b/OvmfPkg/Bhyve/PlatformPei/Platform.c > @@ -191,7 +191,9 @@ MemMapInitialization ( > ASSERT (PciExBarBase <= MAX_UINT32 - SIZE_256MB); > PciBase = (UINT32)(PciExBarBase + SIZE_256MB); > } else { > - PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam; > + PciBase = PcdGet64(PcdPciMmio32Base); > + if (PciBase == 0) > + PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam; > } > > // > Please post a new version (with Peter's R-b picked up), with the following updates: - The commit messages (on both patches) seem to have some UTF-8 garbage at the start. Please remove that. - In the above "PcdGet64(PcdPciMmio32Base)" call, a space character is missing right before the opening paren. (I could fix it up, but I'd like contributors to get used to that space character.) Rebecca, any comments? An ACK would be appreciated (for v4). Thanks, Laszlo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address 2021-07-01 12:01 ` [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address Corvin Köhne 2021-07-01 23:46 ` Peter Grehan 2021-07-02 15:18 ` [edk2-devel] " Laszlo Ersek @ 2021-07-02 17:05 ` Rebecca Cran 2 siblings, 0 replies; 6+ messages in thread From: Rebecca Cran @ 2021-07-02 17:05 UTC (permalink / raw) To: Corvin Köhne, devel Cc: p.bruenn, grehan, lersek, ardb+tianocore, jordan.l.justen Acked-by: Rebecca Cran <rebecca@bsdio.com> On 7/1/21 6:01 AM, Corvin Köhne wrote: > It's neccessary to allocate a Graphics Stolen Memory area to enable > GPU-Passthrough for integrated Intel GPUs. Therefore, use a new > memory layout with a static Pci32Baseaddress. > > Old layout: > [... , lowmemlimit] RAM > [lowmemlimit, 0xE000 0000] PCI Space > New layout: > [... , lowmemlimit] RAM > [lowmemlimit, gsmbase ] Memory hole (may be absent) > [gsmbase , 0xC000 0000] GSM (may be absent) > [0xC000 0000, 0xE000 0000] PCI Space > --- > OvmfPkg/Bhyve/BhyveX64.dsc | 4 ++-- > OvmfPkg/Bhyve/PlatformPei/Platform.c | 4 +++- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc > index a0a2071b86..c435dadc0a 100644 > --- a/OvmfPkg/Bhyve/BhyveX64.dsc > +++ b/OvmfPkg/Bhyve/BhyveX64.dsc > @@ -537,8 +537,8 @@ > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize|0x0 > - gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0 > - gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0 > + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0xC0000000 > + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x20000000 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 > > diff --git a/OvmfPkg/Bhyve/PlatformPei/Platform.c b/OvmfPkg/Bhyve/PlatformPei/Platform.c > index 3a414ffcb7..f38e74ccfc 100644 > --- a/OvmfPkg/Bhyve/PlatformPei/Platform.c > +++ b/OvmfPkg/Bhyve/PlatformPei/Platform.c > @@ -191,7 +191,9 @@ MemMapInitialization ( > ASSERT (PciExBarBase <= MAX_UINT32 - SIZE_256MB); > PciBase = (UINT32)(PciExBarBase + SIZE_256MB); > } else { > - PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam; > + PciBase = PcdGet64(PcdPciMmio32Base); > + if (PciBase == 0) > + PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam; > } > > // ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 1/2] OvmfPkg/Bhyve: add USB support 2021-07-01 12:01 [PATCH v3 1/2] OvmfPkg/Bhyve: add USB support Corvin Köhne 2021-07-01 12:01 ` [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address Corvin Köhne @ 2021-07-01 23:45 ` Peter Grehan 1 sibling, 0 replies; 6+ messages in thread From: Peter Grehan @ 2021-07-01 23:45 UTC (permalink / raw) To: Corvin Köhne, devel Cc: p.bruenn, rebecca, lersek, ardb+tianocore, jordan.l.justen Reviewed-by: Peter Grehan <grehan@freebsd.org> > An USB driver is required to use a keyboard or mouse while installing > an OS or while in a bootloader menu like grub when using GPU + USB > Passthrough. > --- > OvmfPkg/Bhyve/BhyveX64.dsc | 9 +++++++++ > OvmfPkg/Bhyve/BhyveX64.fdf | 8 ++++++++ > 2 files changed, 17 insertions(+) > > diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc > index 39cd354932..a0a2071b86 100644 > --- a/OvmfPkg/Bhyve/BhyveX64.dsc > +++ b/OvmfPkg/Bhyve/BhyveX64.dsc > @@ -163,6 +163,7 @@ > FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf > UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf > SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf > + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf > SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf > QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf > QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf > @@ -778,6 +779,14 @@ > !endif > OvmfPkg/VirtioNetDxe/VirtioNet.inf > > + # > + # Usb Support > + # > + MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > + MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > + MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > + > !ifdef $(CSM_ENABLE) > IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf { > <LibraryClasses> > diff --git a/OvmfPkg/Bhyve/BhyveX64.fdf b/OvmfPkg/Bhyve/BhyveX64.fdf > index f4050c4934..f9e9a4cc3e 100644 > --- a/OvmfPkg/Bhyve/BhyveX64.fdf > +++ b/OvmfPkg/Bhyve/BhyveX64.fdf > @@ -292,6 +292,14 @@ INF MdeModulePkg/Logo/LogoDxe.inf > !include NetworkPkg/Network.fdf.inc > INF OvmfPkg/VirtioNetDxe/VirtioNet.inf > > +# > +# Usb Support > +# > +INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > +INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > +INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > +INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > + > !ifdef $(CSM_ENABLE) > INF IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf > !endif > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-07-02 17:06 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-07-01 12:01 [PATCH v3 1/2] OvmfPkg/Bhyve: add USB support Corvin Köhne 2021-07-01 12:01 ` [PATCH v3 2/2] OvmfPkg/Bhyve: use static PCI32Base address Corvin Köhne 2021-07-01 23:46 ` Peter Grehan 2021-07-02 15:18 ` [edk2-devel] " Laszlo Ersek 2021-07-02 17:05 ` Rebecca Cran 2021-07-01 23:45 ` [PATCH v3 1/2] OvmfPkg/Bhyve: add USB support Peter Grehan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox