| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Comtrol(tm) RocketPort(R)/RocketModem(TM) Series | 
|  | 2 | Device Driver for the Linux Operating System | 
|  | 3 |  | 
|  | 4 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | 
|  | 5 |  | 
|  | 6 | PRODUCT OVERVIEW | 
|  | 7 | ---------------- | 
|  | 8 |  | 
|  | 9 | This driver provides a loadable kernel driver for the Comtrol RocketPort | 
|  | 10 | and RocketModem PCI boards. These boards provide, 2, 4, 8, 16, or 32 | 
|  | 11 | high-speed serial ports or modems.  This driver supports up to a combination | 
|  | 12 | of four RocketPort or RocketModems boards in one machine simultaneously. | 
|  | 13 | This file assumes that you are using the RocketPort driver which is | 
|  | 14 | integrated into the kernel sources. | 
|  | 15 |  | 
|  | 16 | The driver can also be installed as an external module using the usual | 
|  | 17 | "make;make install" routine.  This external module driver, obtainable | 
|  | 18 | from the Comtrol website listed below, is useful for updating the driver | 
|  | 19 | or installing it into kernels which do not have the driver configured | 
|  | 20 | into them.  Installations instructions for the external module | 
|  | 21 | are in the included README and HW_INSTALL files. | 
|  | 22 |  | 
|  | 23 | RocketPort ISA and RocketModem II PCI boards currently are only supported by | 
|  | 24 | this driver in module form. | 
|  | 25 |  | 
|  | 26 | The RocketPort ISA board requires I/O ports to be configured by the DIP | 
|  | 27 | switches on the board.  See the section "ISA Rocketport Boards" below for | 
|  | 28 | information on how to set the DIP switches. | 
|  | 29 |  | 
|  | 30 | You pass the I/O port to the driver using the following module parameters: | 
|  | 31 |  | 
|  | 32 | board1 :	I/O port for the first ISA board | 
|  | 33 | board2 :	I/O port for the second ISA board | 
|  | 34 | board3 :	I/O port for the third ISA board | 
|  | 35 | board4 :	I/O port for the fourth ISA board | 
|  | 36 |  | 
|  | 37 | There is a set of utilities and scripts provided with the external driver | 
|  | 38 | ( downloadable from http://www.comtrol.com ) that ease the configuration and | 
|  | 39 | setup of the ISA cards. | 
|  | 40 |  | 
|  | 41 | The RocketModem II PCI boards require firmware to be loaded into the card | 
|  | 42 | before it will function.  The driver has only been tested as a module for this | 
|  | 43 | board. | 
|  | 44 |  | 
|  | 45 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | 
|  | 46 |  | 
|  | 47 | INSTALLATION PROCEDURES | 
|  | 48 | ----------------------- | 
|  | 49 |  | 
|  | 50 | RocketPort/RocketModem PCI cards require no driver configuration, they are | 
|  | 51 | automatically detected and configured. | 
|  | 52 |  | 
|  | 53 | The RocketPort driver can be installed as a module (recommended) or built | 
|  | 54 | into the kernel. This is selected, as for other drivers, through the `make config` | 
|  | 55 | command from the root of the Linux source tree during the kernel build process. | 
|  | 56 |  | 
|  | 57 | The RocketPort/RocketModem serial ports installed by this driver are assigned | 
|  | 58 | device major number 46, and will be named /dev/ttyRx, where x is the port number | 
|  | 59 | starting at zero (ex. /dev/ttyR0, /devttyR1, ...).  If you have multiple cards | 
|  | 60 | installed in the system, the mapping of port names to serial ports is displayed | 
|  | 61 | in the system log at /var/log/messages. | 
|  | 62 |  | 
|  | 63 | If installed as a module, the module must be loaded.  This can be done | 
|  | 64 | manually by entering "modprobe rocket".  To have the module loaded automatically | 
|  | 65 | upon system boot, edit the /etc/modprobe.conf file and add the line | 
|  | 66 | "alias char-major-46 rocket". | 
|  | 67 |  | 
|  | 68 | In order to use the ports, their device names (nodes) must be created with mknod. | 
|  | 69 | This is only required once, the system will retain the names once created.  To | 
|  | 70 | create the RocketPort/RocketModem device names, use the command | 
|  | 71 | "mknod /dev/ttyRx c 46 x" where x is the port number starting at zero.  For example: | 
|  | 72 |  | 
|  | 73 | >mknod /dev/ttyR0 c 46 0 | 
|  | 74 | >mknod /dev/ttyR1 c 46 1 | 
|  | 75 | >mknod /dev/ttyR2 c 46 2 | 
|  | 76 |  | 
|  | 77 | The Linux script MAKEDEV will create the first 16 ttyRx device names (nodes) | 
|  | 78 | for you: | 
|  | 79 |  | 
|  | 80 | >/dev/MAKEDEV ttyR | 
|  | 81 |  | 
|  | 82 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | 
|  | 83 |  | 
|  | 84 | ISA Rocketport Boards | 
|  | 85 | --------------------- | 
|  | 86 |  | 
|  | 87 | You must assign and configure the I/O addresses used by the ISA Rocketport | 
|  | 88 | card before installing and using it.  This is done by setting a set of DIP | 
|  | 89 | switches on the Rocketport board. | 
|  | 90 |  | 
|  | 91 |  | 
|  | 92 | SETTING THE I/O ADDRESS | 
|  | 93 | ----------------------- | 
|  | 94 |  | 
|  | 95 | Before installing RocketPort(R) or RocketPort RA boards, you must find | 
|  | 96 | a range of I/O addresses for it to use. The first RocketPort card | 
|  | 97 | requires a 68-byte contiguous block of I/O addresses, starting at one | 
|  | 98 | of the following: 0x100h, 0x140h, 0x180h, 0x200h, 0x240h, 0x280h, | 
|  | 99 | 0x300h, 0x340h, 0x380h.  This I/O address must be reflected in the DIP | 
|  | 100 | switiches of *all* of the Rocketport cards. | 
|  | 101 |  | 
|  | 102 | The second, third, and fourth RocketPort cards require a 64-byte | 
|  | 103 | contiguous block of I/O addresses, starting at one of the following | 
|  | 104 | I/O addresses: 0x100h, 0x140h, 0x180h, 0x1C0h, 0x200h, 0x240h, 0x280h, | 
|  | 105 | 0x2C0h, 0x300h, 0x340h, 0x380h, 0x3C0h.  The I/O address used by the | 
|  | 106 | second, third, and fourth Rocketport cards (if present) are set via | 
|  | 107 | software control.  The DIP switch settings for the I/O address must be | 
|  | 108 | set to the value of the first Rocketport cards. | 
|  | 109 |  | 
|  | 110 | In order to destinguish each of the card from the others, each card | 
|  | 111 | must have a unique board ID set on the dip switches.  The first | 
|  | 112 | Rocketport board must be set with the DIP switches corresponding to | 
|  | 113 | the first board, the second board must be set with the DIP switches | 
|  | 114 | corresponding to the second board, etc.  IMPORTANT: The board ID is | 
|  | 115 | the only place where the DIP switch settings should differ between the | 
|  | 116 | various Rocketport boards in a system. | 
|  | 117 |  | 
|  | 118 | The I/O address range used by any of the RocketPort cards must not | 
|  | 119 | conflict with any other cards in the system, including other | 
|  | 120 | RocketPort cards.  Below, you will find a list of commonly used I/O | 
|  | 121 | address ranges which may be in use by other devices in your system. | 
|  | 122 | On a Linux system, "cat /proc/ioports" will also be helpful in | 
|  | 123 | identifying what I/O addresses are being used by devics on your | 
|  | 124 | system. | 
|  | 125 |  | 
|  | 126 | Remember, the FIRST RocketPort uses 68 I/O addresses.  So, if you set it | 
|  | 127 | for 0x100, it will occupy 0x100 to 0x143.  This would mean that you | 
|  | 128 | CAN NOT set the second, third or fourth board for address 0x140 since | 
|  | 129 | the first 4 bytes of that range are used by the first board.  You would | 
|  | 130 | need to set the second, third, or fourth board to one of the next available | 
|  | 131 | blocks such as 0x180. | 
|  | 132 |  | 
|  | 133 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | 
|  | 134 |  | 
|  | 135 | RocketPort and RocketPort RA SW1 Settings: | 
|  | 136 |  | 
|  | 137 | +-------------------------------+ | 
|  | 138 | | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | | 
|  | 139 | +-------+-------+---------------+ | 
|  | 140 | | Unused| Card  | I/O Port Block| | 
|  | 141 | +-------------------------------+ | 
|  | 142 |  | 
|  | 143 | DIP Switches                             DIP Switches | 
|  | 144 | 7    8                                   6    5 | 
|  | 145 | ===================                      =================== | 
|  | 146 | On   On   UNUSED, MUST BE ON.            On   On   First Card    <==== Default | 
|  | 147 | On   Off  Second Card | 
|  | 148 | Off  On   Third Card | 
|  | 149 | Off  Off  Fourth Card | 
|  | 150 |  | 
|  | 151 | DIP Switches         I/O Address Range | 
|  | 152 | 4    3    2    1     Used by the First Card | 
|  | 153 | ===================================== | 
|  | 154 | On   Off  On   Off   100-143 | 
|  | 155 | On   Off  Off  On    140-183 | 
|  | 156 | On   Off  Off  Off   180-1C3       <==== Default | 
|  | 157 | Off  On   On   Off   200-243 | 
|  | 158 | Off  On   Off  On    240-283 | 
|  | 159 | Off  On   Off  Off   280-2C3 | 
|  | 160 | Off  Off  On   Off   300-343 | 
|  | 161 | Off  Off  Off  On    340-383 | 
|  | 162 | Off  Off  Off  Off   380-3C3 | 
|  | 163 |  | 
|  | 164 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | 
|  | 165 |  | 
|  | 166 | REPORTING BUGS | 
|  | 167 | -------------- | 
|  | 168 |  | 
|  | 169 | For technical support, please provide the following | 
|  | 170 | information: Driver version, kernel release, distribution of | 
|  | 171 | kernel, and type of board you are using. Error messages and log | 
|  | 172 | printouts port configuration details are especially helpful. | 
|  | 173 |  | 
|  | 174 | USA | 
|  | 175 | Phone: (612) 494-4100 | 
|  | 176 | FAX: (612) 494-4199 | 
|  | 177 | email: support@comtrol.com | 
|  | 178 |  | 
|  | 179 | Comtrol Europe | 
|  | 180 | Phone: +44 (0) 1 869 323-220 | 
|  | 181 | FAX: +44 (0) 1 869 323-211 | 
|  | 182 | email: support@comtrol.co.uk | 
|  | 183 |  | 
|  | 184 | Web:	http://www.comtrol.com | 
|  | 185 | FTP:	ftp.comtrol.com | 
|  | 186 |  | 
|  | 187 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | 
|  | 188 |  | 
|  | 189 |  |