Hi,
attached patches add support for OHCI (USB1.1 in the non-intel/via
flavor) and xHCI (USB3) to the libpayload USB stack.
The code is the result of my Google Summer of Code project of this year.
A big "Thank You!" to Google for sponsoring this effort, and the Summer
of Code coordinators at Google for managing it.
0.improve-bus-scan:
- Properly report the bus number to the user
- Look if a device exists before iterating all its functions
1.ohci-driver:
Interrupt transfers work fine with UHCI, but it seems not to be a good
match for any other of the USB standards, so I'm looking at how to
improve it.
For this reason, the OHCI driver doesn't support interrupt transfers.
This limitation affects keyboard operation. Mass storage (thumb drives,
etc) are tested.
2.xhci-driver:
xHCI is detected and does "basic" initialization (meaning: it does more
complex things than the entire UHCI driver)
Unfortunately my xHCI hardware, the xHCI specification and/or my
understanding of either can't quite agree, so the driver is still
missing a couple of things and thus is not working yet.
The only user-visible capability (beyond printing lots of weird stuff on
the debug channel) is reliable attach/detach detection.
The patches must be applied in order due to their overlapping changes to
common files.
I'll continue to work on both drivers, but decided to post the code in
the current form already, to prevent last-minute pressure before the
Google Summer of Code deadline.
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>