Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


SLHCI(4)                     Device Drivers Manual                    SLHCI(4)

NAME
     slhci - Cypress/ScanLogic SL811HS USB Host Controller driver

SYNOPSIS
   amiga
     slhci*   at zbus?

   PCMCIA (CF) controllers
     slhci*   at pcmcia? function ?
     usb*     at slhci?

   ISA controllers
     slhci*   at isa? port ? irq ?
     usb*     at slhci?

   TURBOchannel controllers
     tcu*     at tc? slot ? offset ?
     slhci*   at tcu?
     usb*     at slhci?

   x68k
     slhci0   at intio0 addr 0xece380 intr 251
     slhci1   at intio0 addr 0xeceb80 intr 250
     usb*     at slhci?

     options SLHCI_TRY_LSVH

DESCRIPTION
     The slhci driver provides support for Cypress/ScanLogic SL811HS USB Host
     Controller.

     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.

     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.

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

HARDWARE
     Hardware supported by the slhci driver includes:

           Ratoc CFU1U

           Nereid Ethernet/USB/Memory board

           Thylacine USB Host Controller

           flxd TC-USB

SEE ALSO
     config(1), isa(4), pcmcia(4), tc(4), tcu(4), usb(4)

     Cypress SL811HS datasheet, errata, and application note,
     http://www.cypress.com.

HISTORY
     The slhci driver appeared in NetBSD 2.0 and was rewritten in NetBSD 5.0.

AUTHORS
     Tetsuya Isaki <isaki@NetBSD.org>
     Matthew Orgass

NetBSD 10.99                   October 14, 2017                   NetBSD 10.99