coreboot-kgpe-d16/payloads/libpayload/drivers/usb
Duncan Laurie 287cf6c7d1 lp/drivers/usb: Work around QEMU XHCI register issue
The QEMU XHCI controller does not support byte/word reads from the
capability register and it expects dword reads only.

In order to make this work move the access of the capability
register fields to use macros instead of a packed struct bitfield.

This issue was filed upstream:
https://bugs.launchpad.net/qemu/+bug/1693050

The original fix attempt in 2012 was not effective:
6ee021d410

With this change the controller is detected properly by the libpayload
USB drivers.

Change-Id: I048ed14921a4c9c0620c10b315b42476b6e5c512
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39838
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2020-04-14 09:47:22 +00:00
..
Kconfig libpayload: Reintroduce CONFIG_LP_CHROMEOS to set suitable defaults 2016-10-17 22:46:11 +02:00
TODO
dwc2.c payloads: Fix typos 2020-02-17 16:01:50 +00:00
dwc2.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
dwc2_private.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
dwc2_rh.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
ehci.c treewide: capitalize 'USB' 2020-02-26 17:06:40 +00:00
ehci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
ehci_private.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
ehci_rh.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
generic_hub.c libpayload/generic_hub: Detect port disconnect after reset 2018-07-17 20:38:46 +00:00
generic_hub.h libpayload: usb: Remove generic roothub reset port function 2014-10-02 17:28:47 +02:00
ohci.c payloads: Fix typos 2020-02-17 16:01:50 +00:00
ohci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
ohci_private.h libpayload/drivers/usb/ohci_private.h: Add parentheses around macro 2018-04-29 18:13:08 +00:00
ohci_rh.c libpayload: usb: Fix up usb_shutdown() code paths 2014-11-13 06:22:45 +01:00
quirks.c Remove empty lines at end of file 2015-06-08 00:55:07 +02:00
uhci.c libpayload/usb: Increase USB request timeout to 5 s 2019-07-02 17:42:18 +00:00
uhci.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
uhci_private.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
uhci_rh.c libpayload: Improve sanity checking in UHCI driver 2015-02-23 21:59:25 +01:00
usb.c treewide: capitalize 'USB' 2020-02-26 17:06:40 +00:00
usb_dev.c libpayload/drivers/usb: Fix leaks 2018-10-01 16:58:29 +00:00
usbhid.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
usbhub.c payloads: Fix typos 2020-02-17 16:01:50 +00:00
usbinit.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
usbmsc.c treewide: capitalize 'USB' 2020-02-26 17:06:40 +00:00
xhci.c lp/drivers/usb: Work around QEMU XHCI register issue 2020-04-14 09:47:22 +00:00
xhci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
xhci_commands.c libpayload: usb: Support MTK xHCI host controller 2015-06-03 11:11:59 +02:00
xhci_debug.c libpayload: usb: Add support for SuperSpeed hubs 2015-07-18 09:40:48 +02:00
xhci_devconf.c libpayload/xhci: Fix MPS handling in set_address 2020-02-05 09:56:26 +00:00
xhci_events.c libpayload/usb: Increase USB request timeout to 5 s 2019-07-02 17:42:18 +00:00
xhci_private.h lp/drivers/usb: Work around QEMU XHCI register issue 2020-04-14 09:47:22 +00:00
xhci_rh.c lp/drivers/usb: Work around QEMU XHCI register issue 2020-04-14 09:47:22 +00:00