[coreboot] USB debug cables and emulation

Patrick Georgi patrick at georgi-clan.de
Fri Jul 4 03:44:18 CEST 2008


Joseph Smith schrieb:
>> We're pretty far with the UHCI stack in GRUB2. If you are looking for a 
>> USB project to jump on, we can certainly use help ;-)
>>
>> Initial keyboard support is there. MSC support is there, UHCI is there.
>>
>> Missing: Fixes, Testing, OHCI, EHCI, Fixes, Fixes, Testing...
>>
>> Maybe we can pack it into libpayload instead of GRUB2 too, so we can 
>> make it available to more payloads?
>>     
It's clean code with no imports (though I got some clues from other 
sources, esp. as far as workarounds for chipset bugs are concerned, but 
it should be safe), so it's not bound to a license, and apart from 
grub_strcpy here and grub_uint32_t there, which can be sanitized easily, 
and some trivial pci controller detection logic, it's not very grub2 
specific either. I merely develop it inside the grub2 tree because 
that's the most convenient for now.
> Stefan, I would love to help out. I offered my services to Patrick a while
> ago, with no response.
> What can I do?
>   
Oops, sorry!
You seem to be only starting into USB now, but so did I when I started 
writing this code (which probably shows at places). I quickly collected 
a TODO:

For UHCI:
 - testing and fixes, lots of it
 - make more clever (eg. bulk transfer with >1 packet/ms, which might be 
done next week already)
 - fix some abstractions (eg. bulk transfer is at the wrong place currently)
 - improve interrupt transfer handling

For OHCI:
 - create driver (most of UHCI doesn't apply here, because the chip is 
more clever. "fix some abstractions" definitely helps, though)

For EHCI:
 - figure out how to gain control over a device from the USB1 controller 
(that will somehow interact with the USB1 driver)
 - PING/DATA2 protocol, microframes support
 - extend HUB driver, so it handles USB1 devices on a USB2 hub

USB devices:
 - the keyboard driver is rather rudimentary
 - mouse doesn't exist
 - mass storage only likes few devices (high priority for me)
 - hub driver doesn't have proper device power management yet

Get the code to run, figure out the design (sorry, no documentation yet 
- but ask me. The code can only become better that way), play with it, 
fix it for your hardware, ask questions, send/commit patches, ...

On my personal TODO (after this %!$# northbridge works for me) is most 
of the UHCI stuff, and mass storage. Everything else is pretty much free 
for grabs (but it might be good to tell me so I don't step on your 
toes). OHCI and mouse are definitely not on my list for the short term, 
other usb device drivers also aren't. I also don't mind patches to any 
part of the code :-)


Regards,
Patrick Georgi




More information about the coreboot mailing list