summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2015-03-16 19:57:06 +0000
committerlersek <lersek@Edk2>2015-03-16 19:57:06 +0000
commiteee326024e0e19a2bf0fddb2ebbf5bbdae282459 (patch)
tree5aa3d1ee43422f0b8e6b5bdd7c1736771e1ec034
parentda1ce6f8867d1d9d16f3fe7c40e99669dc8fb3bf (diff)
downloadedk2-platforms-eee326024e0e19a2bf0fddb2ebbf5bbdae282459.tar.xz
ArmVirtualizationPkg/ArmVirtualizationQemu: include XHCI driver
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
-rw-r--r--ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc1
-rw-r--r--ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.fdf1
2 files changed, 2 insertions, 0 deletions
diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
index 0f064af1b5..07ae63ada7 100644
--- a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
+++ b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
@@ -338,5 +338,6 @@
#
MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
+ MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.fdf b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.fdf
index 1f5d53073d..e0ec44bf3f 100644
--- a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.fdf
+++ b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.fdf
@@ -215,6 +215,7 @@ READ_LOCK_STATUS = TRUE
#
INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
+ INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf