home | help
CY(4)			     Kernel Interfaces Manual			   CY(4)

NAME
     cy -- Cyclades Cyclom-Y serial driver

SYNOPSIS
     For one ISA card:
	   device cy

	   In /boot/device.hints:
	   hint.cy.0.at="isa"
	   hint.cy.0.irq="10"
	   hint.cy.0.maddr="0xd4000"
	   hint.cy.0.msize="0x2000"

     For two ISA cards:
	   device cy

	   In /boot/device.hints:
	   hint.cy.0.at="isa"
	   hint.cy.0.irq="10"
	   hint.cy.0.maddr="0xd4000"
	   hint.cy.0.msize="0x2000"
	   hint.cy.1.at="isa"
	   hint.cy.1.irq="11"
	   hint.cy.1.maddr="0xd6000"
	   hint.cy.1.msize="0x2000"

     For PCI cards:
	   device cy
	   options CY_PCI_FASTINTR

	   No lines are required in /boot/device.hints for PCI cards.

     Minor numbering:
	   0bMMMMMMMMMMMMMMMMxxxxxxxxOLIMMMMM
				     callOut
				      Lock
				       Initial
	     MMMMMMMMMMMMMMMM		MMMMMMinor

DESCRIPTION
     The  cy  driver  provides support for Cirrus Logic CD1400-based EIA RS-232C
     (CCITT V.24) communications interfaces (ports) on Cyclades Cyclom-Y boards.
     Each CD1400 provides 4 ports.  Cyclom-Y  boards  with  various  numbers  of
     CD1400's  are  available.	This driver supports up to 8 CD1400's (32 ports)
     per board.

     Input and output for each line  may  set  independently  to  the  following
     speeds:  50,  75,	110, 134.5, 150, 300, 600, 1200, 1800, 2400, 4800, 9600,
     19200, 38400, 57600, or 115200 bps.  Other speeds of up to 150000 are  sup-
     ported  by the termios interface but not by the sgttyb compatibility inter-
     face.  The CD1400 is not fast enough to handle speeds above 115200 bps  ef-
     fectively.   It  can transmit on a single line at slightly more than 115200
     bps, but when 4 lines are active in both  directions  its	limit  is  about
     90000 bps on each line.

     Serial  ports controlled by the cy driver can be used for both `callin' and
     `callout'.  For each port there is a callin device and  a	callout  device.
     The  minor number of the callout device is 128 higher than that of the cor-
     responding callin port.  The callin device is general  purpose.   Processes
     opening  it  normally wait for carrier and for the callout device to become
     inactive.	The callout device is used to  steal  the  port  from  processes
     waiting for carrier on the callin device.	Processes opening it do not wait
     for  carrier and put any processes waiting for carrier on the callin device
     into a deeper sleep so that they do not conflict with the callout	session.
     The  callout  device  is  abused for handling programs that are supposed to
     work on general ports and need to open the port without waiting but are too
     stupid to do so.

     The cy driver also supports an initial-state and a lock-state  control  de-
     vice for each of the callin and the callout "data" devices.  The minor num-
     ber of the initial-state device is 32 higher than that of the corresponding
     data  device.   The minor number of the lock-state device is 64 higher than
     that of the corresponding data device.  The termios settings of a data  de-
     vice  are	copied	from  those of the corresponding initial-state device on
     first opens and are not inherited from previous opens.  Use stty(1) in  the
     normal  way  on the initial-state devices to program initial termios states
     suitable for your setup.

     The lock termios state acts as flags to disable changing the termios state.
     E.g., to lock a flag variable such as CRTSCTS,  use  stty	crtscts  on  the
     lock-state  device.  Speeds and special characters may be locked by setting
     the corresponding value in the lock-state device to any nonzero value.

     Correct programs talking to correctly wired external devices work with  al-
     most  arbitrary  initial states and almost no locking, but other setups may
     benefit from changing some of the default initial	state  and  locking  the
     state.   In  particular,  the initial states for non (POSIX) standard flags
     should be set to suit the devices attached and may need  to  be  locked  to
     prevent  buggy programs from changing them.  E.g., CRTSCTS should be locked
     on for devices that support RTS/CTS handshaking at all times  and	off  for
     devices  that do not support it at all.  CLOCAL should be locked on for de-
     vices that do not support carrier.  HUPCL may be locked off if you  do  not
     want  to  hang  up  for some reason.  In general, very bad things happen if
     something is locked to the wrong state, and things should not be locked for
     devices that support more than one setting.   The	CLOCAL	flag  on  callin
     ports  should be locked off for logins to avoid certain security holes, but
     this needs to be done by getty if the callin  port  is  used  for	anything
     else.

   Kernel Configuration Options
     The  CY_PCI_FASTINTR  option  should  be used to avoid suboptimal interrupt
     handling for PCI Cyclades boards.	The PCI BIOS must be configured with the
     cy interrupt not shared with any other active device  for	this  option  to
     work.   This  option  is not the default because it is currently harmful in
     certain cases where it does not work.

FILES
     /dev/ttyc??   for callin ports
     /dev/ttyic??
     /dev/ttylc??  corresponding callin initial-state and lock-state devices

     /dev/cuac??   for callout ports
     /dev/cuaic??
     /dev/cualc??  corresponding callout initial-state and lock-state devices

     /etc/rc.serial  examples of setting the initial-state  and  lock-state  de-
		     vices

     The  first question mark in these device names is short for the card number
     (a decimal number between 0 and 65535 inclusive).	The second question mark
     is short for the port number (a letter in the range [0-9a-v]).

DIAGNOSTICS
     cy%d: silo overflow.  Problem in the interrupt handler.

     cy%d: interrupt-level buffer overflow.  Problem in the bottom half  of  the
     driver.

     cy%d:  tty-level  buffer  overflow.  Problem in the application.  Input has
     arrived faster than the given module could process it  and  some  has  been
     lost.

SEE ALSO
     stty(1), termios(4), tty(4), comcontrol(8), pstat(8)

HISTORY
     The  cy  driver is derived from the sio driver and the NetBSD cy driver and
     is currently under development.

BUGS
     Serial consoles are not implemented.

FreeBSD 8.0			  May 24, 2004				   CY(4)

home | help