diff options
| author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
|---|---|---|
| committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
| commit | fcc9d2e5a6c89d22b8b773a64fb4ad21ac318446 (patch) | |
| tree | a57612d1888735a2ec7972891b68c1ac5ec8faea /Documentation/serial | |
| parent | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (diff) | |
Diffstat (limited to 'Documentation/serial')
| -rw-r--r-- | Documentation/serial/computone.txt | 522 |
1 files changed, 522 insertions, 0 deletions
diff --git a/Documentation/serial/computone.txt b/Documentation/serial/computone.txt new file mode 100644 index 00000000000..60a6f657c37 --- /dev/null +++ b/Documentation/serial/computone.txt | |||
| @@ -0,0 +1,522 @@ | |||
| 1 | NOTE: This is an unmaintained driver. It is not guaranteed to work due to | ||
| 2 | changes made in the tty layer in 2.6. If you wish to take over maintenance of | ||
| 3 | this driver, contact Michael Warfield <mhw@wittsend.com>. | ||
| 4 | |||
| 5 | Changelog: | ||
| 6 | ---------- | ||
| 7 | 11-01-2001: Original Document | ||
| 8 | |||
| 9 | 10-29-2004: Minor misspelling & format fix, update status of driver. | ||
| 10 | James Nelson <james4765@gmail.com> | ||
| 11 | |||
| 12 | Computone Intelliport II/Plus Multiport Serial Driver | ||
| 13 | ----------------------------------------------------- | ||
| 14 | |||
| 15 | Release Notes For Linux Kernel 2.2 and higher. | ||
| 16 | These notes are for the drivers which have already been integrated into the | ||
| 17 | kernel and have been tested on Linux kernels 2.0, 2.2, 2.3, and 2.4. | ||
| 18 | |||
| 19 | Version: 1.2.14 | ||
| 20 | Date: 11/01/2001 | ||
| 21 | Historical Author: Andrew Manison <amanison@america.net> | ||
| 22 | Primary Author: Doug McNash | ||
| 23 | Support: support@computone.com | ||
| 24 | Fixes and Updates: Mike Warfield <mhw@wittsend.com> | ||
| 25 | |||
| 26 | This file assumes that you are using the Computone drivers which are | ||
| 27 | integrated into the kernel sources. For updating the drivers or installing | ||
| 28 | drivers into kernels which do not already have Computone drivers, please | ||
| 29 | refer to the instructions in the README.computone file in the driver patch. | ||
| 30 | |||
| 31 | |||
| 32 | 1. INTRODUCTION | ||
| 33 | |||
| 34 | This driver supports the entire family of Intelliport II/Plus controllers | ||
| 35 | with the exception of the MicroChannel controllers. It does not support | ||
| 36 | products previous to the Intelliport II. | ||
| 37 | |||
| 38 | This driver was developed on the v2.0.x Linux tree and has been tested up | ||
| 39 | to v2.4.14; it will probably not work with earlier v1.X kernels,. | ||
| 40 | |||
| 41 | |||
| 42 | 2. QUICK INSTALLATION | ||
| 43 | |||
| 44 | Hardware - If you have an ISA card, find a free interrupt and io port. | ||
| 45 | List those in use with `cat /proc/interrupts` and | ||
| 46 | `cat /proc/ioports`. Set the card dip switches to a free | ||
| 47 | address. You may need to configure your BIOS to reserve an | ||
| 48 | irq for an ISA card. PCI and EISA parameters are set | ||
| 49 | automagically. Insert card into computer with the power off | ||
| 50 | before or after drivers installation. | ||
| 51 | |||
| 52 | Note the hardware address from the Computone ISA cards installed into | ||
| 53 | the system. These are required for editing ip2.c or editing | ||
| 54 | /etc/modprobe.conf, or for specification on the modprobe | ||
| 55 | command line. | ||
| 56 | |||
| 57 | Note that the /etc/modules.conf should be used for older (pre-2.6) | ||
| 58 | kernels. | ||
| 59 | |||
| 60 | Software - | ||
| 61 | |||
| 62 | Module installation: | ||
| 63 | |||
| 64 | a) Determine free irq/address to use if any (configure BIOS if need be) | ||
| 65 | b) Run "make config" or "make menuconfig" or "make xconfig" | ||
| 66 | Select (m) module for CONFIG_COMPUTONE under character | ||
| 67 | devices. CONFIG_PCI and CONFIG_MODULES also may need to be set. | ||
| 68 | c) Set address on ISA cards then: | ||
| 69 | edit /usr/src/linux/drivers/char/ip2.c if needed | ||
| 70 | or | ||
| 71 | edit /etc/modprobe.conf if needed (module). | ||
| 72 | or both to match this setting. | ||
| 73 | d) Run "make modules" | ||
| 74 | e) Run "make modules_install" | ||
| 75 | f) Run "/sbin/depmod -a" | ||
| 76 | g) install driver using `modprobe ip2 <options>` (options listed below) | ||
| 77 | h) run ip2mkdev (either the script below or the binary version) | ||
| 78 | |||
| 79 | |||
| 80 | Kernel installation: | ||
| 81 | |||
| 82 | a) Determine free irq/address to use if any (configure BIOS if need be) | ||
| 83 | b) Run "make config" or "make menuconfig" or "make xconfig" | ||
| 84 | Select (y) kernel for CONFIG_COMPUTONE under character | ||
| 85 | devices. CONFIG_PCI may need to be set if you have PCI bus. | ||
| 86 | c) Set address on ISA cards then: | ||
| 87 | edit /usr/src/linux/drivers/char/ip2.c | ||
| 88 | (Optional - may be specified on kernel command line now) | ||
| 89 | d) Run "make zImage" or whatever target you prefer. | ||
| 90 | e) mv /usr/src/linux/arch/x86/boot/zImage to /boot. | ||
| 91 | f) Add new config for this kernel into /etc/lilo.conf, run "lilo" | ||
| 92 | or copy to a floppy disk and boot from that floppy disk. | ||
| 93 | g) Reboot using this kernel | ||
| 94 | h) run ip2mkdev (either the script below or the binary version) | ||
| 95 | |||
| 96 | Kernel command line options: | ||
| 97 | |||
| 98 | When compiling the driver into the kernel, io and irq may be | ||
| 99 | compiled into the driver by editing ip2.c and setting the values for | ||
| 100 | io and irq in the appropriate array. An alternative is to specify | ||
| 101 | a command line parameter to the kernel at boot up. | ||
| 102 | |||
| 103 | ip2=io0,irq0,io1,irq1,io2,irq2,io3,irq3 | ||
| 104 | |||
| 105 | Note that this order is very different from the specifications for the | ||
| 106 | modload parameters which have separate IRQ and IO specifiers. | ||
| 107 | |||
| 108 | The io port also selects PCI (1) and EISA (2) boards. | ||
| 109 | |||
| 110 | io=0 No board | ||
| 111 | io=1 PCI board | ||
| 112 | io=2 EISA board | ||
| 113 | else ISA board io address | ||
| 114 | |||
| 115 | You only need to specify the boards which are present. | ||
| 116 | |||
| 117 | Examples: | ||
| 118 | |||
| 119 | 2 PCI boards: | ||
| 120 | |||
| 121 | ip2=1,0,1,0 | ||
| 122 | |||
| 123 | 1 ISA board at 0x310 irq 5: | ||
| 124 | |||
| 125 | ip2=0x310,5 | ||
| 126 | |||
| 127 | This can be added to and "append" option in lilo.conf similar to this: | ||
| 128 | |||
| 129 | append="ip2=1,0,1,0" | ||
| 130 | |||
| 131 | |||
| 132 | 3. INSTALLATION | ||
| 133 | |||
| 134 | Previously, the driver sources were packaged with a set of patch files | ||
| 135 | to update the character drivers' makefile and configuration file, and other | ||
| 136 | kernel source files. A build script (ip2build) was included which applies | ||
| 137 | the patches if needed, and build any utilities needed. | ||
| 138 | What you receive may be a single patch file in conventional kernel | ||
| 139 | patch format build script. That form can also be applied by | ||
| 140 | running patch -p1 < ThePatchFile. Otherwise run ip2build. | ||
| 141 | |||
| 142 | The driver can be installed as a module (recommended) or built into the | ||
| 143 | kernel. This is selected as for other drivers through the `make config` | ||
| 144 | command from the root of the Linux source tree. If the driver is built | ||
| 145 | into the kernel you will need to edit the file ip2.c to match the boards | ||
| 146 | you are installing. See that file for instructions. If the driver is | ||
| 147 | installed as a module the configuration can also be specified on the | ||
| 148 | modprobe command line as follows: | ||
| 149 | |||
| 150 | modprobe ip2 irq=irq1,irq2,irq3,irq4 io=addr1,addr2,addr3,addr4 | ||
| 151 | |||
| 152 | where irqnum is one of the valid Intelliport II interrupts (3,4,5,7,10,11, | ||
| 153 | 12,15) and addr1-4 are the base addresses for up to four controllers. If | ||
| 154 | the irqs are not specified the driver uses the default in ip2.c (which | ||
| 155 | selects polled mode). If no base addresses are specified the defaults in | ||
| 156 | ip2.c are used. If you are autoloading the driver module with kerneld or | ||
| 157 | kmod the base addresses and interrupt number must also be set in ip2.c | ||
| 158 | and recompile or just insert and options line in /etc/modprobe.conf or both. | ||
| 159 | The options line is equivalent to the command line and takes precedence over | ||
| 160 | what is in ip2.c. | ||
| 161 | |||
| 162 | /etc/modprobe.conf sample: | ||
| 163 | options ip2 io=1,0x328 irq=1,10 | ||
| 164 | alias char-major-71 ip2 | ||
| 165 | alias char-major-72 ip2 | ||
| 166 | alias char-major-73 ip2 | ||
| 167 | |||
| 168 | The equivalent in ip2.c: | ||
| 169 | |||
| 170 | static int io[IP2_MAX_BOARDS]= { 1, 0x328, 0, 0 }; | ||
| 171 | static int irq[IP2_MAX_BOARDS] = { 1, 10, -1, -1 }; | ||
| 172 | |||
| 173 | The equivalent for the kernel command line (in lilo.conf): | ||
| 174 | |||
| 175 | append="ip2=1,1,0x328,10" | ||
| 176 | |||
| 177 | |||
| 178 | Note: Both io and irq should be updated to reflect YOUR system. An "io" | ||
| 179 | address of 1 or 2 indicates a PCI or EISA card in the board table. | ||
| 180 | The PCI or EISA irq will be assigned automatically. | ||
| 181 | |||
| 182 | Specifying an invalid or in-use irq will default the driver into | ||
| 183 | running in polled mode for that card. If all irq entries are 0 then | ||
| 184 | all cards will operate in polled mode. | ||
| 185 | |||
| 186 | If you select the driver as part of the kernel run : | ||
| 187 | |||
| 188 | make zlilo (or whatever you do to create a bootable kernel) | ||
| 189 | |||
| 190 | If you selected a module run : | ||
| 191 | |||
| 192 | make modules && make modules_install | ||
| 193 | |||
| 194 | The utility ip2mkdev (see 5 and 7 below) creates all the device nodes | ||
| 195 | required by the driver. For a device to be created it must be configured | ||
| 196 | in the driver and the board must be installed. Only devices corresponding | ||
| 197 | to real IntelliPort II ports are created. With multiple boards and expansion | ||
| 198 | boxes this will leave gaps in the sequence of device names. ip2mkdev uses | ||
| 199 | Linux tty naming conventions: ttyF0 - ttyF255 for normal devices, and | ||
| 200 | cuf0 - cuf255 for callout devices. | ||
| 201 | |||
| 202 | |||
| 203 | 4. USING THE DRIVERS | ||
| 204 | |||
| 205 | As noted above, the driver implements the ports in accordance with Linux | ||
