[SeaBIOS] [PATCH 0/7] Rework USB device detect timing
matt.devillier at gmail.com
Thu Sep 11 18:52:33 CEST 2014
no regressions using your testing branch on panther, with a variety of USB2/USB3 flash devices connected to an xHCI controller.
On 9/10/2014 1:45 PM, Kevin O'Connor wrote:
> This series reworks the timing of USB detection. Previously, the USB
> controllers would wait for the port power to stabilize and then
> immiediately check for device presence. Unfortunately, the USB
> specification (USB2 spec) allows for devices to wait up to 100ms from
> the time that power is stable to the time they assert their presence.
> This series changes the controllers to behave more like the existing
> usb-hub code - each port will repeatedly re-check for device presence
> for 100ms after power is stable.
> This may also help with USB3 device detection. In particular there
> were reports of devices that start off identifying as USB2 and then
> later change to a USB3 type device. The additional polling may catch
> these cases.
> This series could cause a slight increase in overall boot time (due to
> the additional 100ms polling). However, when SeaBIOS' threads are
> enabled, I think only a few unusual corner cases would cause higher
> boot times.
> The series is a fairly significant change to the initial USB timing
> behaviour. I ran tests on a bunch of USB devices and did not see any
> regressions. More testing would be appreciated.
> The series is also at:
> Kevin O'Connor (7):
> ehci: Move port power up from ehci_hub_detect() to check_ehci_ports().
> usb-hub: Enable power to all ports prior to calling usb_enumerate().
> xhci: Change xhci_hub_detect() to use connect status instead of link
> uhci: Repeatedly poll for device detect for 100ms.
> ohci: Repeatedly poll for device detect for 100ms.
> ehci: Stall uhci/ohci init only until default port routing is done.
> usb: Perform device detect polling on all usb controllers.
> src/hw/usb-ehci.c | 58 +++++++++++++++++++++++++------------------------------
> src/hw/usb-hub.c | 46 +++++++++++++++----------------------------
> src/hw/usb-ohci.c | 8 +-------
> src/hw/usb-uhci.c | 7 +++----
> src/hw/usb-xhci.c | 16 +++++----------
> src/hw/usb.c | 21 ++++++++++++++------
> src/hw/usb.h | 2 +-
> 7 files changed, 67 insertions(+), 91 deletions(-)
More information about the SeaBIOS