Page 1 of 1

EHCI - Transaction Errors on Real Hardware

Posted: Mon Jul 19, 2010 3:48 pm
by pcmattman
Cross-posted from Stack Overflow for coverage.

Our hardware is a variety of Intel-based x86 machines and a beagleboard, all of which throw similar behaviour.

Re: EHCI - Transaction Errors on Real Hardware

Posted: Tue Jul 20, 2010 5:26 pm
by ehenkes
As discussed in the irc, here you find our EHCI/USB transactions in PrettyOS: http://forum.osdev.org/viewtopic.php?f=1&t=22246

Hope you can help us to overcome our stop 'n' go system, but it works well at real hardware.

Crucial points AFAIR:
1) getting the EHCI back from BIOS
2) bus mastering (bit 2 PCI), emulators are here not sensitive
3) extended buffers at qTD (also for 32 bit)
4) one QH for each endpoint (thus one QH for default ep0 is enough)
5) correct toggling per endpoint

Re: EHCI - Transaction Errors on Real Hardware

Posted: Tue Jul 20, 2010 5:38 pm
by pcmattman
3) extended buffers at qTD (also for 32 bit)
4) one QH for each endpoint (thus one QH for default ep0 is enough)
These two have ended up being the key - I've at least gotten one completed (hacked together) transaction - SET ADDRESS appeared to work. Once I remove the hack and make it work properly I'll know if our problem is in fact solved or if there's still something that needs to be done.