Commit Graph

36 Commits

Author SHA1 Message Date
skrll
0363056b47 Fix up USBMODE registers in sc_vendor_init functions and not in the ehci
driver.
2015-09-11 06:51:43 +00:00
skrll
0c54ecc9af Fix/tweak the multiple inclusion protection define names. 2015-09-05 06:13:54 +00:00
matt
d6411b2133 Fix ETTF PSPD definitions and enable the ETTF PORTSC detection.
Fix EHCI portion of PR/47156.
2012-11-04 12:01:55 +00:00
mbalmer
81e1e52258 Received, not recvieved. 2011-10-17 16:44:02 +00:00
matt
09db588a4e Add preliminary support for Embedded Transaction Translator Function (as
found on the MPC8536 and AR9334) which allows low/full devices to be
connected to an EHCI root hub.
2011-01-18 08:29:24 +00:00
jakllsch
41e9277a2a Improve EHCI isochronous code, fix scheduling.
- Create and use symbolic constants.

 - Convert some switch statements to functionally-similar caculations.

 - Correct scheduling interval of high-speed isochronous transactions.
   Previous calculation produced half the intended rate.
2010-06-02 18:53:39 +00:00
jakllsch
e8c35fc0ce Add register information for the EHCI 1.0 Appendix C Debug Port. 2010-05-15 20:47:23 +00:00
jmorse
3ce0341c47 Fixed high-speed isoc USB transfers, 64 bit capable host controllers have a different transfer descriptor to non-capable controllers.
Added dma-sync of data buffer before scheduling transfers
2008-11-28 17:18:21 +00:00
jmcneill
4e6a458107 High speed isochronous support, from Jeremy Morse as part of Google
Summer of Code 2008.
2008-08-02 22:23:18 +00:00
martin
ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
jmcneill
b6294fbf32 Add some USB EHCI Legacy Support Extended CSR bit definitions. 2008-01-27 20:06:48 +00:00
mlelstv
c6d3fb32fc It is sufficient to have the members volatile. 2006-10-09 11:38:54 +00:00
scw
4f8db3981d Add the 'volatile' qualifier to all descriptor fields to prevent the
compiler optimising away or reordering accesses to them.

Fixes ehci(4) on NetBSD/evbarm when using -Os optimisation. It's likely
ohci(4) and uhci(4) are similarly afflicted, so the same changes have
been made there.

Quite how other platforms got away without this for so long is a mystery...
2006-10-08 11:52:48 +00:00
augustss
8e55eef7c0 Add some definitions for the extended capability registers. 2005-11-20 18:36:20 +00:00
augustss
992297a008 Keep a flag for each port that keeps track of if the port has been reset
instead of having one flag for the controller.

Also, don't try to modify read-only power bits if the controller doesn't
support power cobntrol.
2005-11-20 14:27:25 +00:00
augustss
6aae573fe5 Fix the error check on completion of an xfer. Just because the qTD status
field has error bits set doesn't mean there has been an error, unless the
HALTED bit is set as well.  The old behaviour could result in a transfer
being considered failed by the software, but a success by the device.
This seems to have affected mostly mass storage devices.

Pointed out by Dan Ellis in kern/29731.
2005-05-01 19:24:39 +00:00
mycroft
2d562a01e2 Copyright maintenance. 2005-03-02 11:37:27 +00:00
augustss
dd753df337 Add EHCI_QTD_SET_STATUS. 2004-10-25 08:53:38 +00:00
augustss
2c051a4b85 Add interrupt transfers. From OpenBSD.
Having interrupt transfers enables some more device types to be used,
most notably USB2 hubs.  USB2 hubs still cannot handle anything but
USB2 devices, because there is node code to handle hub Transaction Translation
yet.
XXX This code doesn't do good bw scheduling, but it's certainly better than
nothing. :)
2004-10-22 10:38:17 +00:00
mycroft
b15cb82a2d Further cleanup of toggle handling. Now that we use EHCI_QH_DTC, we don't
need to fiddle with the TOGGLE bit in the overlay descriptor, so minimize
how much we fuss with it.
2004-06-23 06:45:56 +00:00
mycroft
46d9c14fee Set the data toggle correctly, and use EHCI_QTD_DTC. This fixes problems with
my ALi-based drive enclosure (it works now, rather than failing to attach).
Also seems to work with a GL811-based enclosure and an ASUS enclosure with a
CD-RW, on both Intel and NEC controllers.

Note: The ALi enclosure is currently very SLOW, due to some issue with taking
too long to notice that the QTD is complete.  This requires more investigation.
2004-06-22 05:25:10 +00:00
mycroft
738ef9dc5d Fix an unimportant typo. 2004-06-12 16:02:42 +00:00
enami
b3931d341e Rest of PR23128, so that ehci.c compiles again. 2003-10-13 00:05:10 +00:00
augustss
cdc819cd8a Improve xfer abort sequence.
Fix another bug in qTD chain allocation.
2001-11-23 01:16:27 +00:00
augustss
2d72c2726c Add some interrupt processing. 2001-11-21 12:28:23 +00:00
augustss
4f7b354305 Set up control xfers.
Handle xfer timeouts.
Better debug messages.
2001-11-21 02:44:30 +00:00
augustss
2db9b8d2c8 Start of pipe open routine. 2001-11-19 02:57:16 +00:00
augustss
0f70418027 Add more fields to hardware structs.
Add memory allocation for various data structures.
2001-11-18 00:39:46 +00:00
augustss
b2b2b2b448 Implement port reset sequence correctly. 2001-11-16 23:52:10 +00:00
augustss
f73c358f8c Add some more data structure defs. 2001-11-16 15:33:13 +00:00
augustss
07ea2e28cb Recognize port status changes.
Hand over low and full speed devices to companion controller.
2001-11-16 01:57:08 +00:00
augustss
122d2863d8 Add root hub emulation. 2001-11-15 23:25:09 +00:00
augustss
1b0216af5c Add some register defines.
Print companion controllers.
2001-11-10 17:06:11 +00:00
gehenna
0999a72932 The latest EHCI spec is 0.96 2001-08-20 07:16:35 +00:00
augustss
19c0d40186 Even stubs need improvements. 2000-12-24 06:42:34 +00:00
augustss
63fbac9a7d Add some placeholders for the EHCI (USB 2) driver.
Don't get your hopes up.  I've not even finished reading the
(100+) page spec, and I have no hardware.
2000-12-24 06:39:01 +00:00