OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [Documentation/] [stallion.txt] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
 
2
Stallion Multiport Serial Driver Readme
3
---------------------------------------
4
 
5
Copyright (C) 1994-1999,  Stallion Technologies (support@stallion.com).
6
 
7
Version:   5.5.1
8
Date:      28MAR99
9
 
10
 
11
 
12
1. INTRODUCTION
13
 
14
There are two drivers that work with the different families of Stallion
15
multiport serial boards. One is for the Stallion smart boards - that is
16
EasyIO, EasyConnection 8/32 and EasyConnection 8/64-PCI, the other for
17
the true Stallion intelligent multiport boards - EasyConnection 8/64
18
(ISA, EISA, MCA), EasyConnection/RA-PCI, ONboard and Brumby.
19
 
20
If you are using any of the Stallion intelligent multiport boards (Brumby,
21
ONboard, EasyConnection 8/64 (ISA, EISA, MCA), EasyConnection/RA-PCI) with
22
Linux you will need to get the driver utility package. This package is
23
available at most of the Linux archive sites (and on CD-ROMs that contain
24
these archives). The file will be called stallion-X.X.X.tar.gz where X.X.X
25
will be the version number. In particular this package contains the board
26
embedded executable images that are required for these boards. It also
27
contains the downloader program. These boards cannot be used without this.
28
 
29
The Stallion Technologies ftp site, ftp.stallion.com, will always have
30
the latest version of the driver utility package. Other sites that usually
31
have the latest version are tsx-11.mit.edu, sunsite.unc.edu and their
32
mirrors.
33
 
34
ftp.stallion.com:/drivers/ata5/Linux/v550.tar.gz
35
tsx-11.mit.edu:/pub/linux/packages/stallion/stallion-5.5.0.tar.gz
36
sunsite.unc.edu:/pub/Linux/kernel/patches/serial/stallion-5.5.0.tar.gz
37
 
38
As of the printing of this document the latest version of the driver
39
utility package is 5.5.0. If a later version is now available then you
40
should use the latest version.
41
 
42
If you are using the EasyIO, EasyConnection 8/32 or EasyConnection 8/64-PCI
43
boards then you don't need this package. Although it does have a handy
44
script to create the /dev device nodes for these boards, and a serial stats
45
display program.
46
 
47
If you require DIP switch settings, EISA or MCA configuration files, or any
48
other information related to Stallion boards then have a look at Stallion's
49
web pages at http://www.stallion.com.
50
 
51
 
52
 
53
2. INSTALLATION
54
 
55
The drivers can be used as loadable modules or compiled into the kernel.
56
You can choose which when doing a "config" on the kernel.
57
 
58
All ISA, EISA and MCA boards that you want to use need to be configured into
59
the driver(s). All PCI boards will be automatically detected when you load
60
the driver - so they do not need to be entered into the driver(s)
61
configuration structure. Note that kernel PCI support is required to use PCI
62
boards.
63
 
64
There are two methods of configuring ISA, EISA and MCA boards into the drivers.
65
If using the driver as a loadable module then the simplest method is to pass
66
the driver configuration as module arguments. The other method is to modify
67
the driver source to add configuration lines for each board in use.
68
 
69
If you have pre-built Stallion driver modules then the module argument
70
configuration method should be used. A lot of Linux distributions come with
71
pre-built driver modules in /lib/modules/X.Y.Z/misc for the kernel in use.
72
That makes things pretty simple to get going.
73
 
74
 
75
2.1 MODULE DRIVER CONFIGURATION:
76
 
77
The simplest configuration for modules is to use the module load arguments
78
to configure any ISA, EISA or MCA boards. PCI boards are automatically
79
detected, so do not need any additional configuration at all.
80
 
81
If using EasyIO, EasyConnection 8/32 ISA or MCA, or EasyConnection 8/63-PCI
82
boards then use the "stallion" driver module, Otherwise if you are using
83
an EasyConnection 8/64 ISA, EISA or MCA, EasyConnection/RA-PCI, ONboard,
84
Brumby or original Stallion board then use the "istallion" driver module.
85
 
86
Typically to load up the smart board driver use:
87
 
88
    insmod stallion.o
89
 
90
This will load the EasyIO and EasyConnection 8/32 driver. It will output a
91
message to say that it loaded and print the driver version number. It will
92
also print out whether it found the configured boards or not. These messages
93
may not appear on the console, but typically are always logged to
94
/var/adm/messages or /var/log/syslog files - depending on how the klogd and
95
syslogd daemons are setup on your system.
96
 
97
To load the intelligent board driver use:
98
 
99
    insmod istallion.o
100
 
101
It will output similar messages to the smart board driver.
102
 
103
If not using an auto-detectable board type (that is a PCI board) then you
104
will also need to supply command line arguments to the "insmod" command
105
when loading the driver. The general form of the configuration argument is
106
 
107
    board?=[,[,][,]]
108
 
109
where:
110
 
111
    board?  -- specifies the arbitrary board number of this board,
112
               can be in the range 0 to 3.
113
 
114
    name    -- textual name of this board. The board name is the comman
115
               board name, or any "shortened" version of that. The board
116
               type number may also be used here.
117
 
118
    ioaddr  -- specifies the I/O address of this board. This argument is
119
               optional, but should generally be specified.
120
 
121
    addr    -- optional second address argument. Some board types require
122
               a second I/O address, some require a memory address. The
123
               exact meaning of this argument depends on the board type.
124
 
125
    irq     -- optional IRQ line used by this board.
126
 
127
Up to 4 board configuration arguments can be specified on the load line.
128
Here is some examples:
129
 
130
    insmod stallion.o board0=easyio,0x2a0,5
131
 
132
This configures an EasyIO board as board 0 at I/O address 0x2a0 and IRQ 5.
133
 
134
    insmod istallion.o board3=ec8/64,0x2c0,0xcc000
135
 
136
This configures an EasyConnection 8/64 ISA as board 3 at I/O address 0x2c0 at
137
memory address 0xcc000.
138
 
139
    insmod stallion.o board1=ec8/32-at,0x2a0,0x280,10
140
 
141
This configures an EasyConnection 8/32 ISA board at primary I/O address 0x2a0,
142
secondary address 0x280 and IRQ 10.
143
 
144
You will probably want to enter this module load and configuration information
145
into your system startup scripts so that the drivers are loaded and configured
146
on each system boot. Typically the start up script would be something line
147
/etc/rc.d/rc.modules.
148
 
149
 
150
2.2 STATIC DRIVER CONFIGURATION:
151
 
152
For static driver configuration you need to modify the driver source code.
153
Entering ISA, EISA and MCA boards into the driver(s) configuration structure
154
involves editing the driver(s) source file. It's pretty easy if you follow
155
the instructions below. Both drivers can support up to 4 boards. The smart
156
card driver (the stallion.c driver) supports any combination of EasyIO and
157
EasyConnection 8/32 boards (up to a total of 4). The intelligent driver
158
supports any combination of ONboards, Brumbys, Stallions and EasyConnection
159
8/64 (ISA and EISA) boards (up to a total of 4).
160
 
161
To set up the driver(s) for the boards that you want to use you need to
162
edit the appropriate driver file and add configuration entries.
163
 
164
If using EasyIO or EasyConnection 8/32 ISA or MCA boards, do:
165
   vi /usr/src/linux/drivers/char/stallion.c
166
      - find the definition of the stl_brdconf array (of structures)
167
        near the top of the file
168
      - modify this to match the boards you are going to install
169
        (the comments before this structure should help)
170
      - save and exit
171
 
172
If using ONboard, Brumby, Stallion or EasyConnection 8/64 (ISA or EISA)
173
boards then do:
174
   vi /usr/src/linux/drivers/char/istallion.c
175
      - find the definition of the stli_brdconf array (of structures)
176
        near the top of the file
177
      - modify this to match the boards you are going to install
178
        (the comments before this structure should help)
179
      - save and exit
180
 
181
Once you have set up the board configurations then you are ready to build
182
the kernel or modules.
183
 
184
When the new kernel is booted, or the loadable module loaded then the
185
driver will emit some kernel trace messages about whether the configured
186
boards were detected or not. Depending on how your system logger is set
187
up these may come out on the console, or just be logged to
188
/var/adm/messages or /var/log/syslog. You should check the messages to
189
confirm that all is well.
190
 
191
 
192
2.3 SHARING INTERRUPTS
193
 
194
It is possible to share interrupts between multiple EasyIO and
195
EasyConnection 8/32 boards in an EISA system. To do this you must be using
196
static driver configuration, modifying the driver source code to add driver
197
configuration. Then a couple of extra things are required:
198
 
199
1. When entering the board resources into the stallion.c file you need to
200
   mark the boards as using level triggered interrupts. Do this by replacing
201
   the "0" entry at field position 6 (the last field) in the board
202
   configuration structure with a "1". (This is the structure that defines
203
   the board type, I/O locations, etc. for each board). All boards that are
204
   sharing an interrupt must be set this way, and each board should have the
205
   same interrupt number specified here as well. Now build the module or
206
   kernel as you would normally.
207
 
208
2. When physically installing the boards into the system you must enter
209
   the system EISA configuration utility. You will need to install the EISA
210
   configuration files for *all* the EasyIO and EasyConnection 8/32 boards
211
   that are sharing interrupts. The Stallion EasyIO and EasyConnection 8/32
212
   EISA configuration files required are supplied by Stallion Technologies
213
   on the EASY Utilities floppy diskette (usually supplied in the box with
214
   the board when purchased. If not, you can pick it up from Stallion's FTP
215
   site, ftp.stallion.com). You will need to edit the board resources to
216
   choose level triggered interrupts, and make sure to set each board's
217
   interrupt to the same IRQ number.
218
 
219
You must complete both the above steps for this to work. When you reboot
220
or load the driver your EasyIO and EasyConnection 8/32 boards will be
221
sharing interrupts.
222
 
223
 
224
2.4 USING HIGH SHARED MEMORY
225
 
226
The EasyConnection 8/64-EI, ONboard and Stallion boards are capable of
227
using shared memory addresses above the usual 640K - 1Mb range. The ONboard
228
ISA and the Stallion boards can be programmed to use memory addresses up to
229
16Mb (the ISA bus addressing limit), and the EasyConnection 8/64-EI and
230
ONboard/E can be programmed for memory addresses up to 4Gb (the EISA bus
231
addressing limit).
232
 
233
The higher than 1Mb memory addresses are fully supported by this driver.
234
Just enter the address as you normally would for a lower than 1Mb address
235
(in the driver's board configuration structure).
236
 
237
 
238
 
239
2.5 TROUBLE SHOOTING
240
 
241
If a board is not found by the driver but is actually in the system then the
242
most likely problem is that the I/O address is wrong. Change the module load
243
argument for the loadable module form. Or change it in the driver stallion.c
244
or istallion.c configuration structure and rebuild the kernel or modules, or
245
change it on the board.
246
 
247
On EasyIO and EasyConnection 8/32 boards the IRQ is software programmable, so
248
if there is a conflict you may need to change the IRQ used for a board. There
249
are no interrupts to worry about for ONboard, Brumby or EasyConnection 8/64
250
(ISA, EISA and MCA) boards. The memory region on EasyConnection 8/64 and
251
ONboard boards is software programmable, but not on the Brumby boards.
252
 
253
 
254
 
255
3. USING THE DRIVERS
256
 
257
3.1 INTELLIGENT DRIVER OPERATION
258
 
259
The intelligent boards also need to have their "firmware" code downloaded
260
to them. This is done via a user level application supplied in the driver
261
utility package called "stlload". Compile this program wherever you dropped
262
the package files, by typing "make". In its simplest form you can then type
263
 
264
    ./stlload -i cdk.sys
265
 
266
in this directory and that will download board 0 (assuming board 0 is an
267
EasyConnection 8/64 or EasyConnection/RA board). To download to an
268
ONboard, Brumby or Stallion do:
269
 
270
    ./stlload -i 2681.sys
271
 
272
Normally you would want all boards to be downloaded as part of the standard
273
system startup. To achieve this, add one of the lines above into the
274
/etc/rc.d/rc.S or /etc/rc.d/rc.serial file. To download each board just add
275
the "-b " option to the line. You will need to download code for
276
every board. You should probably move the stlload program into a system
277
directory, such as /usr/sbin. Also, the default location of the cdk.sys image
278
file in the stlload down-loader is /usr/lib/stallion. Create that directory
279
and put the cdk.sys and 2681.sys files in it. (It's a convenient place to put
280
them anyway). As an example your /etc/rc.d/rc.S file might have the
281
following lines added to it (if you had 3 boards):
282
 
283
    /usr/sbin/stlload -b 0 -i /usr/lib/stallion/cdk.sys
284
    /usr/sbin/stlload -b 1 -i /usr/lib/stallion/2681.sys
285
    /usr/sbin/stlload -b 2 -i /usr/lib/stallion/2681.sys
286
 
287
The image files cdk.sys and 2681.sys are specific to the board types. The
288
cdk.sys will only function correctly on an EasyConnection 8/64 board. Similarly
289
the 2681.sys image fill only operate on ONboard, Brumby and Stallion boards.
290
If you load the wrong image file into a board it will fail to start up, and
291
of course the ports will not be operational!
292
 
293
If you are using the modularized version of the driver you might want to put
294
the insmod calls in the startup script as well (before the download lines
295
obviously).
296
 
297
 
298
3.2 USING THE SERIAL PORTS
299
 
300
Once the driver is installed you will need to setup some device nodes to
301
access the serial ports. The simplest method is to use the stallion utility
302
"mkdevnods" script. It will automatically create device entries for Stallion
303
boards. This will create the normal serial port devices as /dev/ttyE# where
304
# is the port number starting from 0. A bank of 64 minor device numbers is
305
allocated to each board, so the first port on the second board is port 64,
306
etc. A set of callout type devices is also created. They are created as the
307
devices /dev/cue# where # is the same as for the ttyE devices.
308
 
309
For the most part the Stallion driver tries to emulate the standard PC system
310
COM ports and the standard Linux serial driver. The idea is that you should
311
be able to use Stallion board ports and COM ports interchangeably without
312
modifying anything but the device name. Anything that doesn't work like that
313
should be considered a bug in this driver!
314
 
315
If you look at the driver code you will notice that it is fairly closely
316
based on the Linux serial driver (linux/drivers/char/serial.c). This is
317
intentional, obviously this is the easiest way to emulate its behavior!
318
 
319
Since this driver tries to emulate the standard serial ports as much as
320
possible, most system utilities should work as they do for the standard
321
COM ports. Most importantly "stty" works as expected and "setserial" can
322
also be used (excepting the ability to auto-configure the I/O and IRQ
323
addresses of boards). Higher baud rates are supported in the usual fashion
324
through setserial or using the CBAUDEX extensions. Note that the EasyIO and
325
EasyConnection (all types) support at least 57600 and 115200 baud. The newer
326
EasyConnection XP modules and new EasyIO boards support 230400 and 460800
327
baud as well. The older boards including ONboard and Brumby support a
328
maximum baud rate of 38400.
329
 
330
If you are unfamiliar with how to use serial ports, then get the Serial-HOWTO
331
by Greg Hankins. It will explain everything you need to know!
332
 
333
 
334
 
335
4. NOTES
336
 
337
You can use both drivers at once if you have a mix of board types installed
338
in a system. However to do this you will need to change the major numbers
339
used by one of the drivers. Currently both drivers use major numbers 24, 25
340
and 28 for their devices. Change one driver to use some other major numbers,
341
and then modify the mkdevnods script to make device nodes based on those new
342
major numbers. For example, you could change the istallion.c driver to use
343
major numbers 60, 61 and 62. You will also need to create device nodes with
344
different names for the ports, for example ttyF# and cuf#.
345
 
346
The original Stallion board is no longer supported by Stallion Technologies.
347
Although it is known to work with the istallion driver.
348
 
349
Finding a free physical memory address range can be a problem. The older
350
boards like the Stallion and ONboard need large areas (64K or even 128K), so
351
they can be very difficult to get into a system. If you have 16 Mb of RAM
352
then you have no choice but to put them somewhere in the 640K -> 1Mb range.
353
ONboards require 64K, so typically 0xd0000 is good, or 0xe0000 on some
354
systems. If you have an original Stallion board, "V4.0" or Rev.O, then you
355
need a 64K memory address space, so again 0xd0000 and 0xe0000 are good.
356
Older Stallion boards are a much bigger problem. They need 128K of address
357
space and must be on a 128K boundary. If you don't have a VGA card then
358
0xc0000 might be usable - there is really no other place you can put them
359
below 1Mb.
360
 
361
Both the ONboard and old Stallion boards can use higher memory addresses as
362
well, but you must have less than 16Mb of RAM to be able to use them. Usual
363
high memory addresses used include 0xec0000 and 0xf00000.
364
 
365
The Brumby boards only require 16Kb of address space, so you can usually
366
squeeze them in somewhere. Common addresses are 0xc8000, 0xcc000, or in
367
the 0xd0000 range. EasyConnection 8/64 boards are even better, they only
368
require 4Kb of address space, again usually 0xc8000, 0xcc000 or 0xd0000
369
are good.
370
 
371
If you are using an EasyConnection 8/64-EI or ONboard/E then usually the
372
0xd0000 or 0xe0000 ranges are the best options below 1Mb. If neither of
373
them can be used then the high memory support to use the really high address
374
ranges is the best option. Typically the 2Gb range is convenient for them,
375
and gets them well out of the way.
376
 
377
The ports of the EasyIO-8M board do not have DCD or DTR signals. So these
378
ports cannot be used as real modem devices. Generally, when using these
379
ports you should only use the cueX devices.
380
 
381
The driver utility package contains a couple of very useful programs. One
382
is a serial port statistics collection and display program - very handy
383
for solving serial port problems. The other is an extended option setting
384
program that works with the intelligent boards.
385
 
386
 
387
 
388
5. DISCLAIMER
389
 
390
The information contained in this document is believed to be accurate and
391
reliable. However, no responsibility is assumed by Stallion Technologies
392
Pty. Ltd. for its use, nor any infringements of patents or other rights
393
of third parties resulting from its use. Stallion Technologies reserves
394
the right to modify the design of its products and will endeavour to change
395
the information in manuals and accompanying documentation accordingly.
396
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.