Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.\" $NetBSD: slhci.4,v 1.12 2017/10/16 12:48:24 wiz Exp $
.\"
.\" Not (c) 2007 Matthew Orgass
.\" This file is public domain, meaning anyone can make any use of part or all
.\" of this file including copying into other works without credit.  Any use,
.\" modified or not, is solely the responsibility of the user.  If this file is
.\" part of a collection then use in the collection is governed by the terms of
.\" the collection.
.\"
.Dd October 14, 2017
.Dt SLHCI 4
.Os
.Sh NAME
.Nm slhci
.Nd Cypress/ScanLogic SL811HS USB Host Controller driver
.Sh SYNOPSIS
.Ss amiga
.Cd "slhci*   at zbus?"
.Ss PCMCIA (CF) controllers
.Cd "slhci*   at pcmcia? function ?"
.Cd "usb*     at slhci?"
.Ss ISA controllers
.Cd "slhci*   at isa? port ? irq ?"
.Cd "usb*     at slhci?"
.Ss TURBOchannel controllers
.Cd "tcu*     at tc? slot ? offset ?"
.Cd "slhci*   at tcu?"
.Cd "usb*     at slhci?"
.Ss x68k
.Cd "slhci0   at intio0 addr 0xece380 intr 251"
.Cd "slhci1   at intio0 addr 0xeceb80 intr 250"
.Cd "usb*     at slhci?"
.Pp
.Cd options SLHCI_TRY_LSVH
.Sh DESCRIPTION
The
.Nm
driver provides support for Cypress/ScanLogic SL811HS USB Host Controller.
.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.
.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.
.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.
.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
.Cd options SLHCI_TRY_LSVH
in the kernel config file or by setting the
.Va slhci_try_lsvh
variable to non-zero using
.Xr ddb 4
or
.Xr gdb 1 .
.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.
.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.
.Sh HARDWARE
Hardware supported by the
.Nm
driver includes:
.Bl -item -offset indent
.It
Ratoc CFU1U
.It
Nereid Ethernet/USB/Memory board
.It
Thylacine USB Host Controller
.It
flxd TC-USB
.El
.Sh SEE ALSO
.Xr config 1 ,
.Xr isa 4 ,
.Xr pcmcia 4 ,
.Xr tc 4 ,
.Xr tcu 4 ,
.Xr usb 4
.Rs
.%T Cypress SL811HS datasheet, errata, and application note
.%U http://www.cypress.com
.Re
.Sh HISTORY
The
.Nm
driver appeared in
.Nx 2.0
and was rewritten in
.Nx 5.0 .
.Sh AUTHORS
.An Tetsuya Isaki
.Aq isaki@NetBSD.org
.An Matthew Orgass