coreboot-kgpe-d16/payloads/libpayload/drivers/usb
Sourabh Banerjee e73335ce8e libpayload: usb: xhci: set ENT flag in last Normal TRB
If a TD is comprised of one or more Normal TRBs and terminated with an
Event Data TRB, then the transition to the Idle state (and associated
Stream state save) could occur after all the data for the TD has been
moved (e.g. after Transfer Event TRBs have been executed), but before the
Event Data TRB is executed. Under these conditions, the execution of the
Event Data TRB is necessary to complete the TD, otherwise it does not
occur until the next time the Stream is scheduled. This could lead to the
lock up.

The Evaluate Next TRB(ENT) flag provides a means of forcing the execution
of a terminating Event Data TRB. Setting ENT flag in last Normal TRB makes
the xHC to evaluate the Even Data TRB.

BUG=chrome-os-partner:29375
TEST=Verified kernel boot-up on storm from previously failing USB stick.
     USB stick model: Sandisk Ultra USB 3.0 Pen Drive 32 GB
		      Strontium Jet USB 3.0 Pen Drive 32 GB

Change-Id: I092e2109c55c2274239c493cb67b47d730304ed2
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 7eefb3b2858c841165ae839d349d2a0be50fbcc8
Original-Change-Id: I4e123577ec5a5996d87d2fc52cb6cf5c571c9fae
Original-Signed-off-by: Sourabh Banerjee <sbanerje@codeaurora.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/220123
Original-Reviewed-by: Julius Werner <jwerner@chromium.org>
Original-Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
Original-Tested-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: http://review.coreboot.org/8736
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
2015-03-23 18:41:18 +01:00
..
TODO
ehci.c libpayload: EHCI: Support root-hub TT feature 2015-03-23 17:57:40 +01:00
ehci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
ehci_private.h libpayload: EHCI: Support root-hub TT feature 2015-03-23 17:57:40 +01:00
ehci_rh.c libpayload: EHCI: Support root-hub TT feature 2015-03-23 17:57:40 +01:00
generic_hub.c libpayload: usb: Remove generic roothub reset port function 2014-10-02 17:28:47 +02:00
generic_hub.h libpayload: usb: Remove generic roothub reset port function 2014-10-02 17:28:47 +02:00
ohci.c libpayload: avoid use-after-free in OHCI driver 2015-02-23 20:33:54 +01:00
ohci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
ohci_private.h libpayload: usb: Make OHCI work with ARM systems 2014-10-22 23:53:54 +02:00
ohci_rh.c libpayload: usb: Fix up usb_shutdown() code paths 2014-11-13 06:22:45 +01:00
quirks.c libpayload: usb: Refactor USB enumeration to fix SuperSpeed devices 2014-09-04 01:59:15 +02:00
uhci.c libpayload: usb: Remove automatic clear_stall() calls from transfers 2014-11-13 06:22:58 +01:00
uhci.h
uhci_private.h
uhci_rh.c libpayload: Improve sanity checking in UHCI driver 2015-02-23 21:59:25 +01:00
usb.c libpayload/usb: wait a millisecond to work around device bugs 2015-03-19 23:24:44 +01:00
usb_dev.c
usbhid.c libpayload: usbhid: Fix typo on descriptor parsing 2014-09-10 19:36:50 +02:00
usbhub.c libpayload: usb: Refactor USB enumeration to fix SuperSpeed devices 2014-09-04 01:59:15 +02:00
usbinit.c libpayload: Clean up USB build warnings 2014-12-30 19:07:47 +01:00
usbmsc.c libpayload: avoid memory overflows 2015-01-03 23:58:23 +01:00
xhci.c libpayload: usb: xhci: set ENT flag in last Normal TRB 2015-03-23 18:41:18 +01:00
xhci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
xhci_commands.c libpayload: xhci: Make XHCI stack usable on ARM 2014-08-14 23:41:21 +02:00
xhci_debug.c libpayload: xhci: Make XHCI stack usable on ARM 2014-08-14 23:41:21 +02:00
xhci_devconf.c libpayload: Don't try to free individual xhci device slots 2015-03-04 20:46:07 +01:00
xhci_events.c libpayload: xhci: Make XHCI stack usable on ARM 2014-08-14 23:41:21 +02:00
xhci_private.h libpayload: usb: xhci: set ENT flag in last Normal TRB 2015-03-23 18:41:18 +01:00
xhci_rh.c libpayload: usb: xhci: Treat port reset as a port status change 2014-10-02 17:29:54 +02:00