- NetBSD Manual Pages
SLHCI(4) NetBSD Kernel Interfaces Manual SLHCI(4)
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.
slhci -- Cypress/ScanLogic SL811HS USB Host Controller driver
slhci* at zbus?
PCMCIA (CF) controllers
slhci* at pcmcia? function ?
usb* at slhci?
slhci* at isa? port ? irq ?
usb* at slhci?
slhci0 at intio0 addr 0xece380 intr 251
slhci1 at intio0 addr 0xeceb80 intr 250
usb* at slhci?
The slhci driver provides support for Cypress/ScanLogic SL811HS USB Host
The driver supports control, bulk, and interrupt transfers but not
isochronous (audio), which cannot be supported by this chip without per-
fectly 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.
The chip is unreliable in some conditions, possibly due in part to diffi-
culty meeting timing restrictions (this is likely to be worse on multi-
processor systems). Unexpected device behavior may trigger some prob-
lems; power cycling externally powered devices may help resolve persis-
tent problems. Detection of invalid chip state will usually cause the
driver to halt, however is recommended that all data transfers be veri-
fied. Data corruption due to controller error will not be detected auto-
matically. Unmounting and remounting a device is necessary to prevent
use of cached data.
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.
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 options SLHCI_TRY_LSVH in the kernel
config file or by setting the slhci_try_lsvh variable to non-zero using
ddb(4) or gdb(1).
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.
Some hardware using this chip does not provide the USB minimum 100mA cur-
rent, 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 avail-
ability before connecting any device.
Hardware supported by the slhci driver includes:
Nereid Ethernet/USB/Memory board
Thylacine USB Host Controller
config(1), isa(4), pcmcia(4), usb(4)
Cypress SL811HS datasheet, errata, and application note,
The slhci driver appeared in NetBSD 2.0 and was rewritten in NetBSD 5.0.
Tetsuya Isaki <isaki@NetBSD.org>
NetBSD 7.1.2 April 28, 2013 NetBSD 7.1.2