]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmVirtualizationPkg/ArmVirtualizationQemu: include XHCI driver
authorLaszlo Ersek <lersek@redhat.com>
Mon, 16 Mar 2015 19:57:06 +0000 (19:57 +0000)
committerlersek <lersek@Edk2>
Mon, 16 Mar 2015 19:57:06 +0000 (19:57 +0000)
The "virt" machine type of qemu-system-(arm|aarch64) had no PCIe support
prior to qemu commit

  4ab29b82 arm: Add PCIe host bridge in virt machine

With that commit, the "virt" board acquired the capability to expose an
XHCI controller. Using a USB keyboard as example, the command line options
were

  -device nec-usb-xhci -device usb-kbd

However, due to a slight XHCI emulation bug in QEMU --  dating back to
several years earlier -- edk2's XHCI driver would encounter a failed
ASSERT().

This emulation problem has been fixed in QEMU commit

  aa685789 xhci: generate a Transfer Event for each Transfer TRB with the
           IOC bit set

and now edk2's XHCI driver works well on QEMU's "nec-usb-xhci" device.
Let's enable the driver in ArmVirtualizationQemu, as XHCI emulation is
reportedly more virtualization-friendly than EHCI, consuming less CPU.

(ArmVirtualizationXen is not modified because it includes no USB-related
drivers at all.)

This patch should not regress existing QEMU command lines (ie. expose the
failed ASSERT()) because QEMU's "-device nec-usb-xhci" has never before
resulted in USB devices that worked with edk2 firmware builds, hence users
have never had a reason to add that option.

Now that they learn about XHCI support in ArmVirtualizationQemu by reading
this commit message, they (or their packagers) will also know to update
qemu to aa685789 or later (in practice that means the upcoming 2.3
release), at least if they want to use '-device nec-usb-xhci' with edk2,
for the first time ever.

Cc: Leif Lindholm <Leif.Lindholm@arm.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Alexander Graf <agraf@suse.de>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17053 6f19259b-4bc3-4df7-8a09-765794883524

ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.fdf

index 0f064af1b5475a8f165cde32b31fe962fbcc5485..07ae63ada7c09c8fb9cf3bed72fb9e9c1ba0474e 100644 (file)
   #\r
   MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf\r
   MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf\r
+  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf\r
   MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf\r
   MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf\r
index 1f5d53073da3bd437e984c12b5c990d53622fdee..e0ec44bf3f4fbab560211be47cbe0cc4a238af69 100644 (file)
@@ -215,6 +215,7 @@ READ_LOCK_STATUS   = TRUE
   #\r
   INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf\r
   INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf\r
+  INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf\r
   INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf\r
   INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf\r
 \r