audk/ArmPlatformPkg
Laszlo Ersek eee326024e 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
2015-03-16 19:57:06 +00:00
..
ArmJunoPkg ArmPlatformPkg/ArmJunoPkg: Create two default boot entries on first boot on Juno R1 2015-02-26 11:04:52 +00:00
ArmRealViewEbPkg ArmPlatformPkg/ArmVExpressDxe: Load FDT into the EFI Configuration Table 2015-02-26 10:54:39 +00:00
ArmVExpressPkg ArmPlatformPkg/Bds: Remove any use of the "Fdt" UEFI variable 2015-02-26 11:02:39 +00:00
ArmVirtualizationPkg ArmVirtualizationPkg/ArmVirtualizationQemu: include XHCI driver 2015-03-16 19:57:06 +00:00
Bds ArmPlatformPkg/Bds: Remove any use of the "Fdt" UEFI variable 2015-02-26 11:02:39 +00:00
Documentation ArmPlatformPkg/Bds: Remove any use of the "Fdt" UEFI variable 2015-02-26 11:02:39 +00:00
Drivers ArmPlatformPkg: detect correct pl011 fifo depth 2015-01-23 16:10:00 +00:00
FileSystem/BootMonFs ArmPlatformPkg: Fixed builds after some ShellPkg libraries have moved 2015-01-13 18:58:00 +00:00
Include ArmPlatformPkg/ArmJunoPkg : Use FdtPlatformDxe driver to install the FDT 2015-02-26 10:56:20 +00:00
Library ArmPlatformPkg: allow patchable PCD for FD base address 2015-02-28 20:25:17 +00:00
MemoryInitPei ArmPlatformPkg: PEIM startup is not an error 2015-03-02 16:19:32 +00:00
PlatformPei ArmPlatformPkg: PEIM startup is not an error 2015-03-02 16:19:32 +00:00
PrePeiCore ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
PrePi ArmPkg,ArmPlatformPkg: Allow dynamic PCDs for memory base and size 2014-09-09 16:11:30 +00:00
Scripts ArmPlatformPkg/Scripts: Update the profiling script to work on AArch64 with the latest DS-5 2014-08-19 13:36:00 +00:00
Sec ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
ArmPlatformPkg-2ndstage.dsc ArmPlatformPkg/ArmVExpressDxe: Load FDT into the EFI Configuration Table 2015-02-26 10:54:39 +00:00
ArmPlatformPkg-2ndstage.fdf ARM Packages: Removed malicious trailing spaces 2014-08-20 11:38:45 +00:00
ArmPlatformPkg.dec ArmPlatformPkg/Bds: Remove any use of the "Fdt" UEFI variable 2015-02-26 11:02:39 +00:00
ArmPlatformPkg.dsc ArmPlatformPkg/ArmVExpressDxe: Load FDT into the EFI Configuration Table 2015-02-26 10:54:39 +00:00
ArmPlatformPkg.fdf ARM Packages: Removed malicious trailing spaces 2014-08-20 11:38:45 +00:00
Contributions.txt */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
License.txt EDK II Packages: Added License.txt files 2012-04-12 16:40:32 +00:00