______________________________________________________

Cyclades-Z / Cyclom-Y Linux Driver Package
Release and Installation Notes - V_6.6.1 (2002/03/27)
Copyright (C) Cyclades Corporation, 1996-2002.
______________________________________________________

------------------------------
Section 1 - About this Package
------------------------------

This package contains the necessary files to run all Cyclades 
asynchronous multiport board models in Linux. 

Package version		6.6.1
Driver version:		2.3.2.11	(2002/03/27)
Z-Firmware version:	3.3.7		(2002/03/27)

Tested Kernels 
2.2.x 	-	2.2.19
2.4.x	-	2.4.0, 2.4.4, 2.4.18		
Note1: 	This package should run without problems in any kernel of 2.2.x and 2.4.x 
		series

Note2: 	Although this driver should run without problems in 
		other platforms, Intel x86 is the only platform officially 
		supported by Cyclades.

The requirements to install the product are:

- Linux kernel 2.2.x or 2.4.x (the latest tested kernels for 
  this release were versions 2.2.19 and 2.4.18).
- 486 or higher processor-based system.

---------------------------------------------------
Section 2 - Contents of this package
---------------------------------------------------

From the current (installation root) directory, you should be able to 
see the following files:

	install is the installation script.
   
	module_install is called by install. It install the driver as a module
	(check out Section 4).

	mkcyc is a script that automatically creates the Cyclades devices.

   	common/
		cyclades-z/
	     	cyzfirm.bin is the firmware to be downloaded to the Cyclades-Z.
	     	cyzload.c is the program that loads the firmware to the board.
	     	cyzutil.c is the information/configuration utility for the 
				Cyclades-Z boards (for information on how to use this 
				application, please contact Cyclades Technical Support).

		cyclom-y/
	     	cyyutil.c is the information/configuration utility for the 
				Cyclom-Y boards (for information on how to use this 
				application, please contact Cyclades Technical Support).

   v2.x/
		cy.patch and cy.patch.zintr are Linux kernel patches.
		cyclades.c and cyclades.h are the Linux driver files.
		cylines.c is the program that reads the /proc/cyclades file and 
			prints its information in human-readable format.

   module/   files to generate cyclades.o module (Check out Section 4)
		Makefile is instructions to make cyclades driver
		cyclades.c is the source of the cyclades driver


---------------------------------------------------
Section 3 - How to install the board and the driver
---------------------------------------------------

Before installing the board/driver, make sure to backup any critical
information in your system.

a) To install the board in your system, please refer to the Hardware 
   Installation and Reference section of your Cyclades board's User's 
   Manual. 

b) Make sure you have a current Linux environment with kernel 2.2.x
   or 2.4.x. These instructions assume that your kernel source tree is 
   under /usr/src/linux. If your kernel source tree is not located at this 
   path, please edit the "install" installation script in order to provide 
   the correct path information. If you do not have a kernel source tree 
   in your system, you will not be able to install this driver.

c) Run the installation script:

        sh install

   This script will ask you which board types you wish to support (the 
   options are Cyclom-Y, Cyclades-Z or both) and then it will detect the 
   relevant information from your system (kernel version, current 
   Cyclades driver version, etc.) and install the proper driver package 
   files.

   If the driver files cyclades.c and cyclades.h are copied to your 
   Linux kernel src tree, the previous files will be backed up as 
   cyclades.c.$(PREV_DRV_VER) and cyclades.h.$(PREV_DRV_VER), 
   respectively.

   After you inform the number of ports you have the script will ask you 
   if you want to install the driver as a module (Check out Section 4). If
   you choose one 1 (yes) go to item f).
  
d) Configure the kernel by executing "make config" or "make menuconfig":

        cd /usr/src/linux
        make config (make menuconfig)

   Make sure to answer "Yes" to CONFIG_PCI support (if applicable). If 
   using "make menuconfig", select with '*' the option "PCI support" under
   "General setup".

   If using kernels 2.2.x / 2.4.x, make sure to answer "Y" also to 
   CONFIG_SERIAL_NONSTANDARD and then "Y" or "M" to CONFIG_CYCLADES. If 
   using "make menuconfig", select with '*' or 'm' the option "Cyclades 
   async mux support" under "Character devices", "Non-standard serial port 
   support".

   (Z only) In case you intend to use the Cyclades-Z in interrupt mode, 
   please check the additional information available at the following URL:

   http://www.cyclades.com/support/supportdb/detail.php?lg=0&STATUS=2&line_table=52&codigo_produto=4

e) Rebuild and install the new kernel.

	make dep ; make clean
	make bzlilo
	make modules modules_install (if using modules)

NOTE: there are several different ways to build and install the Linux 
      kernel (make bzImage, make bzdisk, etc.), and covering all of them
      is not in the scope of this README file. Please feel free to use 
      the method you are most comfortable with.

f) (Z only) Edit one of your rc files (e.g. /etc/rc.d/rc.local) and include 
   a call to the Cyclades-Z firmware loader (so that its firmware is loaded 
   every time the system boots):

   # Cyclades-Z Firmware Load
   if [ -x /usr/local/sbin/cyzload ]; then
	/usr/local/sbin/cyzload
   fi

IMPORTANT: it's _mandatory_ that the Cyclades driver is loaded _before_ the 
           firmware. Thus, if you compiled the driver as a loadable module, 
           make sure you load the driver module _before_ you call cyzload.
           If you use the rc files to load the module, for instance, a good 
           way to do this would be:

		# Cyclades-Z Driver Load
		if [ -x /sbin/modprobe ]; then
			/sbin/modprobe cyclades
		fi
		# Cyclades-Z Firmware Load
		if [ -x /usr/local/sbin/cyzload ]; then
			/usr/local/sbin/cyzload
		fi

g) Reboot the system and inspect the boot messages. The Cyclades driver
   should report the Cyclom-Y and Cyclades-Z boards found in the system.

     Cyclades driver <version> <date>
         built <date>
     Cyclom-Y/ISA #1: <Mem. address>, <n1> channels starting from port 0.
     Cyclom-Y/PCI #2: <Mem. address>, <n2> channels starting from port <n1>.
     Cyclades-8Zo/PCI #3: <Mem. address>, 8 channels starting from port <n3>.
     Cyclades-Ze/PCI #4: <Mem. address>, 64 channels starting from port <n4>.
     (...)

	, where:	n3 = n1 + n2
			n4 = n3 + 8 , and so on.

h) Enable/Configure the ports on the Cyclades board as you would do with any 
   standard serial port. Edit /etc/inittab to enable "getty" and configure
   your PPP/SLIP scripts.

Your installation is done. You can use the Cyclades ports.

---------------------------------------------
Section 4 - Installing the driver as a module
---------------------------------------------

If you are not a newbie probably you will not have problems to recompile
your kernel, however a lot of people don't like to do this. A way out is 
install the cyclades driver as a loadable module without touch in your kernel
source files.

You will not touch your kernel but you will still need of the source files
to compile the driver as a module. If you are running the kernel that comes
in your linux distribution the source files are in the CD and you have to 
install it. If you are running a kernel you has installed, you must know where 
the source is. Remember, your kernel source tree must be under /usr/src/linux.

If you choose to install the driver as a module the module_install script 
will compile the driver, install the generated object into the system 
(/lib/modules/2.x.y) and update the modules dependencies.

--------------------------
Section 5 - Special topics
--------------------------

The Cyclades Linux Driver Package includes cylines, an 
application that reads the /proc/cyclades file and prints its 
information in several formats. Its syntax is as follows:

	cylines [-r] [devices]

, where:
	(no option)	: displays line info in ps format
	-r		: displays line info in raw format
	
Some cylines command line examples follows:

	cylines ttyC16
		(displays ttyC16 stats in ps format) 
	cylines -r ttyC8 ttyC9 ttyC32
		(displays ttyC8, ttyC9 and ttyC32 stats in raw format) 

This package also includes an info/configuration utilities which
are not necessary for normal operation and should be used only by 
advanced users. If you need help using these utilities, please 
contact Cyclades Technical Support.

If even after reading this document you still have difficulty 
installing a Cyclades board under Linux, please contact 
<support@cyclades.com> or call (510) 770-9727.

If you find or suspect a driver problem, please report it to
the driver maintainer at <henrique@cyclades.com>.

