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

Subversion Repositories or1k

[/] [or1k/] [tags/] [LINUX_2_4_26_OR32/] [linux/] [linux-2.4/] [Documentation/] [networking/] [comx.txt] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
 
2
                COMX drivers for the 2.2 kernel
3
 
4
Originally written by: Tivadar Szemethy, 
5
Currently maintained by: Gergely Madarasz 
6
 
7
Last change: 21/06/1999.
8
 
9
INTRODUCTION
10
 
11
This document describes the software drivers and their use for the
12
COMX line of synchronous serial adapters for Linux version 2.2.0 and
13
above.
14
The cards are produced and sold by ITC-Pro Ltd. Budapest, Hungary
15
For further info contact 
16
or http://www.itc.hu (mostly in Hungarian).
17
The firmware files and software are available from ftp://ftp.itc.hu
18
 
19
Currently, the drivers support the following cards and protocols:
20
 
21
COMX (2x64 kbps intelligent board)
22
CMX (1x256 + 1x128 kbps intelligent board)
23
HiCOMX (2x2Mbps intelligent board)
24
LoCOMX (1x512 kbps passive board)
25
MixCOM (1x512 or 2x512kbps passive board with a hardware watchdog an
26
        optional BRI interface and optional flashROM (1-32M))
27
SliceCOM        (1x2Mbps channelized E1 board)
28
PciCOM  (X21)
29
 
30
At the moment of writing this document, the (Cisco)-HDLC, LAPB, SyncPPP and
31
Frame Relay (DTE, rfc1294 IP encapsulation with partially implemented Q933a
32
LMI) protocols are available as link-level protocol.
33
X.25 support is being worked on.
34
 
35
USAGE
36
 
37
Load the comx.o module and the hardware-specific and protocol-specific
38
modules you'll need into the running kernel using the insmod utility.
39
This creates the /proc/comx directory.
40
See the example scripts in the 'etc' directory.
41
 
42
/proc INTERFACE INTRO
43
 
44
The COMX driver set has a new type of user interface based on the /proc
45
filesystem which eliminates the need for external user-land software doing
46
IOCTL calls.
47
Each network interface or device (i.e. those ones you configure with 'ifconfig'
48
and 'route' etc.) has a corresponding directory under /proc/comx. You can
49
dynamically create a new interface by saying 'mkdir /proc/comx/comx0' (or you
50
can name it whatever you want up to 8 characters long, comx[n] is just a
51
convention).
52
Generally the files contained in these directories are text files, which can
53
be viewed by 'cat filename' and you can write a string to such a file by
54
saying 'echo _string_ >filename'. This is very similar to the sysctl interface.
55
Don't use a text editor to edit these files, always use 'echo' (or 'cat'
56
where appropriate).
57
When you've created the comx[n] directory, two files are created automagically
58
in it: 'boardtype' and 'protocol'. You have to fill in these files correctly
59
for your board and protocol you intend to use (see the board and protocol
60
descriptions in this file below or the example scripts in the 'etc' directory).
61
After filling in these files, other files will appear in the directory for
62
setting the various hardware- and protocol-related informations (for example
63
irq and io addresses, keepalive values etc.) These files are set to default
64
values upon creation, so you don't necessarily have to change all of them.
65
 
66
When you're ready with filling in the files in the comx[n] directory, you can
67
configure the corresponding network interface with the standard network
68
configuration utilities. If you're unable to bring the interfaces up, look up
69
the various kernel log files on your system, and consult the messages for
70
a probable reason.
71
 
72
EXAMPLE
73
 
74
To create the interface 'comx0' which is the first channel of a COMX card:
75
 
76
insmod comx
77
# insmod comx-hw-comx ; insmod comx-proto-ppp  (these are usually
78
autoloaded if you use the kernel module loader)
79
 
80
mkdir /proc/comx/comx0
81
echo comx >/proc/comx/comx0/boardtype
82
echo 0x360 >/proc/comx/comx0/io         <- jumper-selectable I/O port
83
echo 0x0a >/proc/comx/comx0/irq         <- jumper-selectable IRQ line
84
echo 0xd000 >/proc/comx/comx0/memaddr   <- software-configurable memory
85
                                           address. COMX uses 64 KB, and this
86
                                           can be: 0xa000, 0xb000, 0xc000,
87
                                           0xd000, 0xe000. Avoid conflicts
88
                                           with other hardware.
89
cat /proc/comx/comx0/firmware <- the firmware for the card
90
echo HDLC >/proc/comx/comx0/protocol    <- the data-link protocol
91
echo 10 >/proc/comx/comx0/keepalive     <- the keepalive for the protocol
92
ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 <-
93
                                           finally configure it with ifconfig
94
Check its status:
95
cat /proc/comx/comx0/status
96
 
97
If you want to use the second channel of this board:
98
 
99
mkdir /proc/comx/comx1
100
echo comx >/proc/comx/comx1/boardtype
101
echo 0x360 >/proc/comx/comx1/io
102
echo 10 >/proc/comx/comx1/irq
103
echo 0xd000 >/proc/comx/comx1/memaddr
104
echo 1 >/proc/comx/comx1/channel        <- channels are numbered
105
                                           as 0 (default) and 1
106
 
107
Now, check if the driver recognized that you're going to use the other
108
channel of the same adapter:
109
 
110
cat /proc/comx/comx0/twin
111
comx1
112
cat /proc/comx/comx1/twin
113
comx0
114
 
115
You don't have to load the firmware twice, if you use both channels of
116
an adapter, just write it into the channel 0's /proc firmware file.
117
 
118
Default values: io 0x360 for COMX, 0x320 (HICOMX), irq 10, memaddr 0xd0000
119
 
120
THE LOCOMX HARDWARE DRIVER
121
 
122
The LoCOMX driver doesn't require firmware, and it doesn't use memory either,
123
but it uses DMA channels 1 and 3. You can set the clock rate (if enabled by
124
jumpers on the board) by writing the kbps value into the file named 'clock'.
125
Set it to 'external' (it is the default) if you have external clock source.
126
 
127
(Note: currently the LoCOMX driver does not support the internal clock)
128
 
129
THE COMX, CMX AND HICOMX DRIVERS
130
 
131
On the HICOMX, COMX and CMX, you have to load the firmware (it is different for
132
the three cards!). All these adapters can share the same memory
133
address (we usually use 0xd0000). On the CMX you can set the internal
134
clock rate (if enabled by jumpers on the small adapter boards) by writing
135
the kbps value into the 'clock' file. You have to do this before initializing
136
the card. If you use both HICOMX and CMX/COMX cards, initialize the HICOMX
137
first. The I/O address of the HICOMX board is not configurable by any
138
method available to the user: it is hardwired to 0x320, and if you have to
139
change it, consult ITC-Pro Ltd.
140
 
141
THE MIXCOM DRIVER
142
 
143
The MixCOM board doesn't require firmware, the driver communicates with
144
it through I/O ports. You can have three of these cards in one machine.
145
 
146
THE SLICECOM DRIVER
147
 
148
The SliceCOM board doesn't require firmware. You can have 4 of these cards
149
in one machine. The driver doesn't (yet) support shared interrupts, so
150
you will need a separate IRQ line for every board.
151
Read linux/Documentation/networking/slicecom.txt for help on configuring
152
this adapter.
153
 
154
THE HDLC/PPP LINE PROTOCOL DRIVER
155
 
156
The HDLC/SyncPPP line protocol driver uses the kernel's built-in syncppp
157
driver (syncppp.o). You don't have to manually select syncppp.o when building
158
the kernel, the dependencies compile it in automatically.
159
 
160
 
161
 
162
 
163
EXAMPLE
164
(setting up hw parameters, see above)
165
 
166
# using HDLC:
167
echo hdlc >/proc/comx/comx0/protocol
168
echo 10 >/proc/comx/comx0/keepalive     <- not necessary, 10 is the default
169
ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255
170
 
171
(setting up hw parameters, see above)
172
 
173
# using PPP:
174
echo ppp >/proc/comx/comx0/protocol
175
ifconfig comx0 up
176
ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255
177
 
178
 
179
THE LAPB LINE PROTOCOL DRIVER
180
 
181
For this, you'll need to configure LAPB support (See 'LAPB Data Link Driver' in
182
'Network options' section) into your kernel (thanks to Jonathan Naylor for his
183
excellent implementation).
184
comx-proto-lapb.o provides the following files in the appropriate directory
185
(the default values in parens): t1 (5), t2 (1), n2 (20), mode (DTE, STD) and
186
window (7). Agree with the administrator of your peer router on these
187
settings (most people use defaults, but you have to know if you are DTE or
188
DCE).
189
 
190
EXAMPLE
191
 
192
(setting up hw parameters, see above)
193
echo lapb >/proc/comx/comx0/protocol
194
echo dce >/proc/comx/comx0/mode         <- DCE interface in this example
195
ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255
196
 
197
 
198
THE FRAME RELAY PROTOCOL DRIVER
199
 
200
You DON'T need any other frame relay related modules from the kernel to use
201
COMX-Frame Relay. This protocol is a bit more complicated than the others,
202
because it allows to use 'subinterfaces' or DLCIs within one physical device.
203
First you have to create the 'master' device (the actual physical interface)
204
as you would do for other protocols. Specify 'frad' as protocol type.
205
Now you can bring this interface up by saying 'ifconfig comx0 up' (or whatever
206
you've named the interface). Do not assign any IP address to this interface
207
and do not set any routes through it.
208
Then, set up your DLCIs the following way: create a comx interface for each
209
DLCI you intend to use (with mkdir), and write 'dlci' to the 'boardtype' file,
210
and 'ietf-ip' to the 'protocol' file. Currently, the only supported
211
encapsulation type is this (also called as RFC1294/1490 IP encapsulation).
212
Write the DLCI number to the 'dlci' file, and write the name of the physical
213
COMX device to the file called 'master'.
214
Now you can assign an IP address to this interface and set routes using it.
215
See the example file for further info and example config script.
216
Notes: this driver implements a DTE interface with partially implemented
217
Q933a LMI.
218
You can find an extensively commented example in the 'etc' directory.
219
 
220
FURTHER /proc FILES
221
 
222
boardtype:
223
Type of the hardware. Valid values are:
224
 'comx', 'hicomx', 'locomx', 'cmx', 'slicecom'.
225
 
226
protocol:
227
Data-link protocol on this channel. Can be: HDLC, LAPB, PPP, FRAD
228
 
229
status:
230
You can read the channel's actual status from the 'status' file, for example
231
'cat /proc/comx/comx3/status'.
232
 
233
lineup_delay:
234
Interpreted in seconds (default is 1). Used to avoid line jitter: the system
235
will consider the line status 'UP' only if it is up for at least this number
236
of seconds.
237
 
238
debug:
239
You can set various debug options through this file. Valid options are:
240
'comx_events', 'comx_tx', 'comx_rx', 'hw_events', 'hw_tx', 'hw_rx'.
241
You can enable a debug options by writing its name prepended by a '+' into
242
the debug file, for example 'echo +comx_rx >comx0/debug'.
243
Disabling an option happens similarly, use the '-' prefix
244
(e.g. 'echo -hw_rx >debug').
245
Debug results can be read from the debug file, for example:
246
tail -f /proc/comx/comx2/debug
247
 
248
 

powered by: WebSVN 2.1.0

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