- Kai Germaschewski: ymfpci cleanups and resource leak fixes
[davej-history.git] / drivers / char / README.computone
blobcd09692132cbb9302825b95e8137088dd0bc62c0
2 Computone Intelliport II/Plus Multiport Serial Driver
3 -----------------------------------------------------
5 Release Notes For Linux Kernel 2.2
6 These notes have been tested on Linux kernels 2.0 and 2.2.
8 Please refer to Documentation/computone.txt for information on the driver
9 that is included with the kernel sources.
12 Version: 1.2.9
13 Date: 04/12/2000
14 Fixes and Updates: Doug McNash 
15 Historical Author: Andrew Manison 
16 Kernel Integration: Mike Warfield <mhw@wittsend.com>
18 1. INTRODUCTION
20 This driver supports the entire family of Intelliport II/Plus controllers
21 with the exception of the MicroChannel controllers. 
23 This driver was developed on the v2.0.x Linux source tree and has been 
24 tested up to v2.2.14; it will probably not work with earlier v1.X kernels, 
25 and has not yet been tested on the v2.1.x tree. The most likely problems 
26 will be in patching the kernel sources to support the driver. For this
27 reason there are 2 different patch files for 2.0.XX and 2.2.XX kernels.
28 Make sure you use the right one!
29 Note that a version (1.2.5) is included in the 2.2.12+ kernels so this
30 will not be a new install but and upgrade.
33 2. QUICK INSTALLATION
35 Hardware - If you have an ISA card, find a free interrupt and io port. 
36                    List those in use with `cat /proc/interrupts` and 
37                    `cat /proc/ioports`.  Set the card dip switches to that free 
38                    address.  You may need to configure your BIOS to reserve the
39                    irq for the ISA card.  PCI and EISA parameters are set
40                    automagically and need only be set to nonzero values.
41                    Insert card into computer with the power off before or after
42                    driver installation.
44 Software - New Installation
46 Module installation:
48 a) Obtain driver-kernel patch file
49 b) Copy to the linux source tree root, Run ip2build (if not patch)
50 c) Determine free irq/address to use if any (configure BIOS if need be)
51 d) Run "make config" or "make menuconfig" or "make xconfig"
52    Select (m) module for CONFIG_COMPUTONE under character
53    devices.  CONFIG_PCI and CONFIG_MODULES also may need to be set.
54 e) Set address on ISA cards then:
55    edit /usr/src/linux/drivers/char/ip2/ip2.h if needed 
56         or
57    edit /etc/modules.conf if needed (module).
58         or both to match this setting.
59 f) Run "make dep"
60 g) Run "make modules"
61 h) Run "make modules_install"
62 i) Run "/sbin/depmod -a"
63 i) install driver using `modprobe ip2 <options>` (options listed below)
64 j) run mkip2dev
67 Kernel installation:
69 a) Obtain driver-kernel patch file
70 b) Copy to the linux source tree root, Run ip2build (if not patch)
71 c) Determine free irq/address to use if any (configure BIOS if need be)
72 d) Run "make config" or "make menuconfig" or "make xconfig"
73    Select (y) kernel for CONFIG_COMPUTONE under character
74    devices.  CONFIG_PCI may need to be set if you have PCI bus.
75 e) Set address on ISA cards then:
76            edit /usr/src/linux/drivers/char/ip2/ip2.h  
77 f) Run "make dep"
78 g) Run "make zImage" or whatever target you prefer.
79 h) mv /usr/src/linux/arch/i386/boot/zImage to /boot.
80 i) add new config for this kernel into /etc/lilo.conf, run "lilo"
81 j) reboot using this kernel
82 k) make and run ip2/mkip2dev
84 Software - Upgrades
86 a) Install new sources in proper location, usually /usr/src/linux/drivers/char
87 b) Follow steps above to create new kernel or modules
89 3. INSTALLATION
91 Previously, the driver sources were packaged with a set of patch files
92 to update the character drivers' makefile and configuration file, and other 
93 kernel source files. A build script (ip2build) was included which applies 
94 the patches if needed, and build any utilities needed.
95 What you recieve may be a single patch file in conventional kernel
96 patch format build script. That form can also be applied by
97 running patch -p1 < ThePatchFile.  Otherwise the drivers source may be
98 a tar file, then untar and run ip2build if a new installation.
100 The driver can be installed as a module (recommended) or built into the 
101 kernel. This is selected as for other drivers through the `make config`
102 command from the root of the Linux source tree. If the driver is built 
103 into the kernel you will need to edit the file ip2.h to match the boards 
104 you are installing. See that file for instructions. If the driver is 
105 installed as a module the configuration can also be specified on the
106 modprobe command line as follows:
108         modprobe ip2 irq=irq1,irq2,irq3,irq4 io=addr1,addr2,addr3,addr4
110 where irqnum is one of the valid Intelliport II interrupts (3,4,5,7,10,11,
111 12,15) and addr1-4 are the base addresses for up to four controllers. If 
112 the irqs are not specified the driver uses the default in ip2/ip2.h (which 
113 selects polled mode). The io addresses are set to io=1 for PCI cards,i
114 io=2 for EISA cards or io=[some valid ISA address] for ISA cards.  If no
115 base addresses are specified the defaults in ip2.h are used. If you are
116 autoloading the driver module with kerneld or kmod the base addresses and
117 interrupt number must also be set in ip2/ip2.h and recompile or just insert
118 an options line in /etc/modules.conf or both.  The command line takes
119 precidence over the options line which takes precidence over the defaults
120 in ip2.h. 
122 command line sample:
123         
124         modprobe ip2 io=1,0x328 irq=1,10
126 /etc/modules.conf sample:
128         options ip2 io=1,0x328 irq=1,10
129         alias char-major-71 ip2
130         alias char-major-72 ip2
131         alias char-major-73 ip2
133 the equivelant ip2.h:
135 static ip2config_t ip2config =
137         {1,10,0,0},
138         {
139                 0x0001,    // Board 0, ttyF0   - ttyF63         /* PCI card */
140                 0x0328,    // Board 1, ttyF64  - ttyF127        /* ISA card */
141                 0x0000,    // Board 2, ttyF128 - ttyF191        /* empty */
142                 0x0000     // Board 3, ttyF192 - ttyF255        /* empty */
143         }
146 Specifying an invalid or in-use ISA irq will default the driver into
147 running in polled mode for that card.  If all irq entries are 0 then
148 all cards will operate in polled mode.  Note that the PCI will be
149 assigned it's irq by the BIOS and may not match what you specify.
150 It must be non-zero otherwise it will be polled.
152 Tarball Install:
154 The whole tarfile should be untarred in the /usr/src/linux/drivers/char/
155 directory. Most files required for the driver are placed in the ip2
156 subdirectory. Then execute the script (for a new install only)
158         ip2build
160 which will patch the files.
162 Kernel Patch Install:
164         cd to the Linux source root, run patch -p1 < ThePatchFile. 
166 Now return to the root directory of the Linux
167 source tree and run make config or make menuconfig. You will be prompted
168 for the Computone drivers, either as a module or part of the kernel. 
169 If you have a PCI card you many need to select PCI bios support (CONFIG_PCI)
170 if not enabled already.  Ditto for CONFIG_MODULES if you use modules.
172 If you select the driver as part of the kernel run :
174         make depend
175         make bzImage(,zlilo or whatever you do to create a bootable kernel)
177 If you selected a module run :
179         make modules && make modules_install
181 The utility ip2mkdev creates all the device nodes required by the driver.
182 For a device to be created it must be configured in the driver and the 
183 board must be installed. Only devices corresponding to real IntelliPort II 
184 ports are created. With multiple boards and expansion boxes this will 
185 leave gaps in the sequence of device names. ip2mkdev uses Linux tty naming 
186 conventions: ttyF0 - ttyF255 for normal devices, and cuf0 - cuf255 for 
187 callout devices.  Note that the callout devices are going away in the
188 future and that is what the warning messages are trying to tell you.
190 4. USING THE DRIVERS
192 As noted above, the driver implements the ports in accordance with Linux
193 conventions, and the devices should be interchangeable with the standard
194 serial devices. (This is a key point for problem reporting: please make
195 sure that what you are trying do works on the ttySx/cuax ports first; then 
196 tell us what went wrong with the ip2 ports!)
198 Higher speeds can be obtained using the setserial utility which remaps 
199 38,400 bps (extb) to 57,600 bps, 115,200 bps, or a custom speed. 
200 Intelliport II installations using the PowerPort expansion module can
201 use the custom speed setting to select the highest speeds: 153,600 bps,
202 230,400 bps, 307,200 bps, 460,800bps and 921,600 bps. The base for
203 custom baud rate configuration is fixed at 921,600 for cards/expantion
204 modules with ST654's and 115200 for those with Cirrus CD1400's.  This
205 corresponds to the maximum bit rates those chips are capable.  
206 For example if the baud base is 921600 and the baud divisor is 18 then
207 the custom rate is 921600/18 = 51200 bps.  See the setserial man page for
208 complete details. Of course, if stty accepts the higher rates now you can
209 use that as well as the standard ioctls().
211 5. NOTES
213 This is a release version of the driver, but it is impossible to test it
214 in all configurations of Linux. If there is any anomalous behaviour that 
215 does not match the standard serial port's behaviour please let us know.
217 Some installations report that characters fail to echo immediatly at a
218 terminal if the kernel/modules are compiled with the CONFIG_M386 and
219 the card is run in polling mode on a pentium class machine.  Compiling
220 with a more appropriate processor flag or running on interrupt would be
221 the fix as well as the wise thing to do.
225 Author:  dougm@computone.com
226 Testing: larryg@computone.com
227 Support: support@computone.com