[ehci] Support USB1 devices attached via transaction translators
authorMichael Brown <mcb30@ipxe.org>
Mon, 23 Mar 2015 13:34:16 +0000 (13:34 +0000)
committerMichael Brown <mcb30@ipxe.org>
Mon, 23 Mar 2015 16:23:08 +0000 (16:23 +0000)
commitb418af26d961dd465ce0667575ffc6d82a1a8987
tree2a1bb351244ede637bbc74e1a64f255ae09f76a6
parent5486c947e2ecc33490bc34c638fc01b879917408
[ehci] Support USB1 devices attached via transaction translators

Support low-speed and full-speed devices attached to a USB2 hub.  Such
devices use a transaction translator (TT) within the USB2 hub, which
asynchronously initiates transactions on the lower-speed bus and
returns the result via a split completion on the high-speed bus.

We make the simplifying assumption that there will never be more than
sixteen active interrupt endpoints behind a single transaction
translator; this assumption allows us to schedule all periodic start
splits in microframe 0 and all periodic split completions in
microframes 2 and 3.  (We do not handle isochronous endpoints.)

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/usb/ehci.c
src/drivers/usb/ehci.h