1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
The Linux Digiboard Driver
--------------------------
The Digiboard Driver for Linux supports the following boards:
DigiBoard PC/Xe, PC/Xi, PC/Xeve
Limitations:
------------
Currently the Driver does not do autoprobing!
The preconfigured I/O address is 0200h and the default memory address
0D0000h, ALT-PIN feature on and 16 ports available.
Use them and you will not have to worry about configuring anything.
You can configure the driver via lilo. Have a look at the end of this
message. The default settings vanish as soon as you give a digi= commandline.
You can give multiple digi= commandline parameters to define multiple
boards.
Supporting Tools:
-----------------
Some tools and more detailed information can be found at
ftp://ftp.fuller.edu/Linux/digi
WARNING: Most of the stuff available right now uses the WRONG Major Device
numbers and the wrong call out devices. Be careful and check them first.
Better not use any of the software in that directory if you run a recent
1.3.X Kernel or later!
The "ditty" tool described in the Digiboard Manuals for other Unixes
is also available.
Currently the Linux MAKEDEV command does not support generating the Digiboard
Devices. Use the following script to generate the devices:
------------------ mkdigidev begin
#!/bin/sh
#
# Script to create Digiboard Devices
# Christoph Lameter, April 16, 1996
#
# Usage:
# mkdigidev [<number of devices>]
#
DIGI_MAJOR=23
DIGICU_MAJOR=22
BOARDS=$1
if [ "$BOARDS" = "" ]; then
BOARDS=1
fi
boardnum=0
while [ $boardnum -lt $BOARDS ];
do
for c in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15;
do
name=`expr $boardnum \* 16 + $c`
mknod /dev/cud$name c $DIGICU_MAJOR $name
mknod /dev/ttyD$name c $DIGI_MAJOR $name
done
boardnum=`expr $boardnum + 1`
done
------------------ mkdigidev end
or apply the following patch to /dev/MAKEDEV and do a
make digi
----- MAKEDEV Patch
--- /dev/MAKEDEV Sun Aug 13 15:48:23 1995
+++ MAKEDEV Tue Apr 16 17:53:27 1996
@@ -120,7 +120,7 @@
while [ $# -ne 0 ]
do
case "$1" in
- mem|tty|ttyp|cua|cub) ;;
+ mem|tty|ttyp|cua|cub|cud) ;;
hd) echo hda hdb hdc hdd ;;
xd) echo xda xdb ;;
fd) echo fd0 fd1 ;;
@@ -140,6 +140,7 @@
dcf) echo dcf ;;
pcmcia) ;; # taken care of by its own driver
ttyC) echo cyclades ;;
+ ttyD) echo digi ;;
*) echo "$0: don't know what \"$1\" is" >&2 ;;
esac
shift
@@ -208,6 +209,15 @@
do
makedev ttyC$i c $major1 `expr 32 + $i` $tty
makedev cub$i c $major2 `expr 32 + $i` $dialout
+ done
+ ;;
+ digi)
+ major1=`Major ttyD` || continue
+ major2=`Major cud` || continue
+ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ makedev ttyD$i c $major1 `expr 32 + $i` $tty
+ makedev cud$i c $major2 `expr 32 + $i` $dialout
done
;;
par[0-2])
----- End Makedev patch
The /dev/cud?? devices behave like the /dev/cua?? devices
and the ttyD devices are like the /dev/ttyS?? devices.
Sources of Information
----------------------
Webpage: http://private.fuller.edu/clameter/digi.html
Mailing List: digiboard@list.fuller.edu
(Write e-mail to that address to subscribe. Common ListServ commands work.
Archive of messages available)
Christoph Lameter (clameter@fuller.edu) 16. April 1996.
-----------------------------------------------------------------------------
Changes v1.5.5:
The ability to use the kernel's command line to pass in the configuration for
boards. Using LILO's APPEND command, a string of comma separated identifiers
or integers can be used. The 6 values in order are:
Enable/Disable this card,
Type of card: PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)
Enable/Disable alternate pin arrangement,
Number of ports on this card,
I/O Port where card is configured (in HEX if using string identifiers),
Base of memory window (in HEX if using string identifiers),
Samples:
append="digi=E,PC/Xi,D,16,200,D0000"
append="digi=1,0,0,16,512,(whatever D0000 is in base 10 :)
Driver's minor device numbers are conserved. This means that instead of
each board getting a block of 16 minors pre-assigned, it gets however
many it should, with the next card following directly behind it. A
system with 4 2-port PC/Xi boards will use minor numbers 0-7.
This conserves some memory, and removes a few hard coded constants.
NOTE!! NOTE!! NOTE!!
The definition of PC/Xem as a valid board type is the BEGINNING of support
for this device. The driver does not currently recognise the board, nor
does it want to initialize it. At least not the EISA version.
Mike McLagan <mike.mclagan@linux.org> 5, April 1996.
|