summaryrefslogtreecommitdiff
path: root/static/netbsd/man4/slhci.4 4.html
blob: 8e0c991c46fd12a778e9dd7a24f0705beb0e105b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<table class="head">
  <tr>
    <td class="head-ltitle">SLHCI(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">SLHCI(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">slhci</code> &#x2014;
    <span class="Nd">Cypress/ScanLogic SL811HS USB Host Controller
  driver</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<section class="Ss">
<h2 class="Ss" id="amiga"><a class="permalink" href="#amiga">amiga</a></h2>
<p class="Pp"><code class="Cd">slhci* at zbus?</code></p>
</section>
<section class="Ss">
<h2 class="Ss" id="PCMCIA_(CF)_controllers"><a class="permalink" href="#PCMCIA_(CF)_controllers">PCMCIA
  (CF) controllers</a></h2>
<p class="Pp"><code class="Cd">slhci* at pcmcia? function ?</code>
  <br/>
  <code class="Cd">usb* at slhci?</code></p>
</section>
<section class="Ss">
<h2 class="Ss" id="ISA_controllers"><a class="permalink" href="#ISA_controllers">ISA
  controllers</a></h2>
<p class="Pp"><code class="Cd">slhci* at isa? port ? irq ?</code>
  <br/>
  <code class="Cd">usb* at slhci?</code></p>
</section>
<section class="Ss">
<h2 class="Ss" id="TURBOchannel_controllers"><a class="permalink" href="#TURBOchannel_controllers">TURBOchannel
  controllers</a></h2>
<p class="Pp"><code class="Cd">tcu* at tc? slot ? offset ?</code>
  <br/>
  <code class="Cd">slhci* at tcu?</code>
  <br/>
  <code class="Cd">usb* at slhci?</code></p>
</section>
<section class="Ss">
<h2 class="Ss" id="x68k"><a class="permalink" href="#x68k">x68k</a></h2>
<p class="Pp"><code class="Cd">slhci0 at intio0 addr 0xece380 intr 251</code>
  <br/>
  <code class="Cd">slhci1 at intio0 addr 0xeceb80 intr 250</code>
  <br/>
  <code class="Cd">usb* at slhci?</code></p>
<p class="Pp">
  <br/>
  <code class="Cd">options SLHCI_TRY_LSVH</code></p>
</section>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">slhci</code> driver provides support for
    Cypress/ScanLogic SL811HS USB Host Controller.</p>
<p class="Pp">The driver supports control, bulk, and interrupt transfers but not
    isochronous (audio), which cannot be supported by this chip without
    perfectly reliable 1ms interrupts. USB is polled and this chip requires the
    driver to initiate all transfers. The driver interrupts at least once every
    ms when a device is attached even if no data is transferred. The driver
    polls the chip when the transfer is expected to be completed soon; with
    maximum use of the bus, the driver will not exit for most of each ms. Use of
    this driver can easily have a significant performance impact on any
  system.</p>
<p class="Pp">The chip is unreliable in some conditions, possibly due in part to
    difficulty meeting timing restrictions (this is likely to be worse on
    multiprocessor systems). Unexpected device behavior may trigger some
    problems; power cycling externally powered devices may help resolve
    persistent problems. Detection of invalid chip state will usually cause the
    driver to halt, however is recommended that all data transfers be verified.
    Data corruption due to controller error will not be detected automatically.
    Unmounting and remounting a device is necessary to prevent use of cached
    data.</p>
<p class="Pp">The driver currently will start the next incoming packet before
    copying in the previous packet but will not copy the next outgoing packet
    before the previous packet is transferred. Reading or writing the chip is
    about the same speed as the USB bus, so this means that one outgoing
    transfer is half the speed of one incoming transfer and two outgoing
    transfers are needed to use the full available bandwidth.</p>
<p class="Pp">All revisions of the SL811HS have trouble with low speed devices
    attached to some (likely most) hubs. Low speed traffic via hub is not
    allowed by default, but can be enabled with <code class="Cd">options
    SLHCI_TRY_LSVH</code> in the kernel config file or by setting the
    <var class="Va">slhci_try_lsvh</var> variable to non-zero using
    <a class="Xr">ddb(4)</a> or <a class="Xr">gdb(1)</a>.</p>
<p class="Pp">Many USB keyboards have built in hubs and may be low speed
    devices. All USB mice I have seen are low speed devices, however a serial
    mouse should be usable on a hub with a full speed Serial-USB converter. A
    PS2-USB keyboard and mouse converter is likely to be a single low speed
    device.</p>
<p class="Pp">Some hardware using this chip does not provide the USB minimum
    100mA current, which could potentially cause problems even with externally
    powered hubs. The system can allow excess power use in some other cases as
    well. Some signs of excess power draw may cause the driver to halt, however
    this may not stop the power draw. To be safe verify power use and
    availability before connecting any device.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="HARDWARE"><a class="permalink" href="#HARDWARE">HARDWARE</a></h1>
<p class="Pp">Hardware supported by the <code class="Nm">slhci</code> driver
    includes:</p>
<ul class="Bl-item Bd-indent">
  <li>Ratoc CFU1U</li>
  <li>Nereid Ethernet/USB/Memory board</li>
  <li>Thylacine USB Host Controller</li>
  <li>flxd TC-USB</li>
</ul>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">config(1)</a>, <a class="Xr">isa(4)</a>,
    <a class="Xr">pcmcia(4)</a>, <a class="Xr">tc(4)</a>,
    <a class="Xr">tcu(4)</a>, <a class="Xr">usb(4)</a></p>
<p class="Pp"><cite class="Rs"><span class="RsT">Cypress SL811HS datasheet,
    errata, and application note</span>,
    <a class="RsU" href="http://www.cypress.com">http://www.cypress.com</a>.</cite></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">slhci</code> driver appeared in
    <span class="Ux">NetBSD 2.0</span> and was rewritten in
    <span class="Ux">NetBSD 5.0</span>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp"><span class="An">Tetsuya Isaki</span>
    &#x27E8;isaki@NetBSD.org&#x27E9;
  <br/>
  <span class="An">Matthew Orgass</span></p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">October 14, 2017</td>
    <td class="foot-os">NetBSD 10.1</td>
  </tr>
</table>