EHCI - Transaction Errors on Real Hardware

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

EHCI - Transaction Errors on Real Hardware

Post 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.
User avatar
ehenkes
Member
Member
Posts: 124
Joined: Mon Mar 23, 2009 3:15 am
Location: Germany
Contact:

Re: EHCI - Transaction Errors on Real Hardware

Post 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
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Re: EHCI - Transaction Errors on Real Hardware

Post 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.
Post Reply