The Linux Digiboard Driver
|
The Linux Digiboard Driver
|
--------------------------
|
--------------------------
|
|
|
The Digiboard Driver for Linux supports the following boards:
|
The Digiboard Driver for Linux supports the following boards:
|
|
|
DigiBoard PC/Xe, PC/Xi, PC/Xeve
|
DigiBoard PC/Xe, PC/Xi, PC/Xeve
|
|
|
Limitations:
|
Limitations:
|
------------
|
------------
|
Currently the Driver does not do autoprobing!
|
Currently the Driver does not do autoprobing!
|
|
|
The preconfigured I/O address is 0200h and the default memory address
|
The preconfigured I/O address is 0200h and the default memory address
|
0D0000h, ALT-PIN feature on and 16 ports available.
|
0D0000h, ALT-PIN feature on and 16 ports available.
|
|
|
Use them and you will not have to worry about configuring anything.
|
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
|
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.
|
message. The default settings vanish as soon as you give a digi= commandline.
|
You can give multiple digi= commandline parameters to define multiple
|
You can give multiple digi= commandline parameters to define multiple
|
boards.
|
boards.
|
|
|
Supporting Tools:
|
Supporting Tools:
|
-----------------
|
-----------------
|
Some tools and more detailed information can be found at
|
Some tools and more detailed information can be found at
|
ftp://ftp.fuller.edu/Linux/digi
|
ftp://ftp.fuller.edu/Linux/digi
|
|
|
WARNING: Most of the stuff available right now uses the WRONG Major Device
|
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.
|
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
|
Better not use any of the software in that directory if you run a recent
|
1.3.X Kernel or later!
|
1.3.X Kernel or later!
|
|
|
The "ditty" tool described in the Digiboard Manuals for other Unixes
|
The "ditty" tool described in the Digiboard Manuals for other Unixes
|
is also available.
|
is also available.
|
|
|
Currently the Linux MAKEDEV command does not support generating the Digiboard
|
Currently the Linux MAKEDEV command does not support generating the Digiboard
|
Devices. Use the following script to generate the devices:
|
Devices. Use the following script to generate the devices:
|
|
|
------------------ mkdigidev begin
|
------------------ mkdigidev begin
|
#!/bin/sh
|
#!/bin/sh
|
#
|
#
|
# Script to create Digiboard Devices
|
# Script to create Digiboard Devices
|
# Christoph Lameter, April 16, 1996
|
# Christoph Lameter, April 16, 1996
|
#
|
#
|
# Usage:
|
# Usage:
|
# mkdigidev []
|
# mkdigidev []
|
#
|
#
|
|
|
DIGI_MAJOR=23
|
DIGI_MAJOR=23
|
DIGICU_MAJOR=22
|
DIGICU_MAJOR=22
|
|
|
BOARDS=$1
|
BOARDS=$1
|
|
|
if [ "$BOARDS" = "" ]; then
|
if [ "$BOARDS" = "" ]; then
|
BOARDS=1
|
BOARDS=1
|
fi
|
fi
|
|
|
boardnum=0
|
boardnum=0
|
while [ $boardnum -lt $BOARDS ];
|
while [ $boardnum -lt $BOARDS ];
|
do
|
do
|
for c in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15;
|
for c in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15;
|
do
|
do
|
name=`expr $boardnum \* 16 + $c`
|
name=`expr $boardnum \* 16 + $c`
|
mknod /dev/cud$name c $DIGICU_MAJOR $name
|
mknod /dev/cud$name c $DIGICU_MAJOR $name
|
mknod /dev/ttyD$name c $DIGI_MAJOR $name
|
mknod /dev/ttyD$name c $DIGI_MAJOR $name
|
done
|
done
|
boardnum=`expr $boardnum + 1`
|
boardnum=`expr $boardnum + 1`
|
done
|
done
|
------------------ mkdigidev end
|
------------------ mkdigidev end
|
or apply the following patch to /dev/MAKEDEV and do a
|
or apply the following patch to /dev/MAKEDEV and do a
|
make digi
|
make digi
|
----- MAKEDEV Patch
|
----- MAKEDEV Patch
|
--- /dev/MAKEDEV Sun Aug 13 15:48:23 1995
|
--- /dev/MAKEDEV Sun Aug 13 15:48:23 1995
|
+++ MAKEDEV Tue Apr 16 17:53:27 1996
|
+++ MAKEDEV Tue Apr 16 17:53:27 1996
|
@@ -120,7 +120,7 @@
|
@@ -120,7 +120,7 @@
|
while [ $# -ne 0 ]
|
while [ $# -ne 0 ]
|
do
|
do
|
case "$1" in
|
case "$1" in
|
- mem|tty|ttyp|cua|cub) ;;
|
- mem|tty|ttyp|cua|cub) ;;
|
+ mem|tty|ttyp|cua|cub|cud) ;;
|
+ mem|tty|ttyp|cua|cub|cud) ;;
|
hd) echo hda hdb hdc hdd ;;
|
hd) echo hda hdb hdc hdd ;;
|
xd) echo xda xdb ;;
|
xd) echo xda xdb ;;
|
fd) echo fd0 fd1 ;;
|
fd) echo fd0 fd1 ;;
|
@@ -140,6 +140,7 @@
|
@@ -140,6 +140,7 @@
|
dcf) echo dcf ;;
|
dcf) echo dcf ;;
|
pcmcia) ;; # taken care of by its own driver
|
pcmcia) ;; # taken care of by its own driver
|
ttyC) echo cyclades ;;
|
ttyC) echo cyclades ;;
|
+ ttyD) echo digi ;;
|
+ ttyD) echo digi ;;
|
*) echo "$0: don't know what \"$1\" is" >&2 ;;
|
*) echo "$0: don't know what \"$1\" is" >&2 ;;
|
esac
|
esac
|
shift
|
shift
|
@@ -208,6 +209,15 @@
|
@@ -208,6 +209,15 @@
|
do
|
do
|
makedev ttyC$i c $major1 `expr 32 + $i` $tty
|
makedev ttyC$i c $major1 `expr 32 + $i` $tty
|
makedev cub$i c $major2 `expr 32 + $i` $dialout
|
makedev cub$i c $major2 `expr 32 + $i` $dialout
|
+ done
|
+ done
|
+ ;;
|
+ ;;
|
+ digi)
|
+ digi)
|
+ major1=`Major ttyD` || continue
|
+ major1=`Major ttyD` || continue
|
+ major2=`Major cud` || continue
|
+ major2=`Major cud` || continue
|
+ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
+ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
+ do
|
+ do
|
+ makedev ttyD$i c $major1 `expr 32 + $i` $tty
|
+ makedev ttyD$i c $major1 `expr 32 + $i` $tty
|
+ makedev cud$i c $major2 `expr 32 + $i` $dialout
|
+ makedev cud$i c $major2 `expr 32 + $i` $dialout
|
done
|
done
|
;;
|
;;
|
par[0-2])
|
par[0-2])
|
----- End Makedev patch
|
----- End Makedev patch
|
|
|
The /dev/cud?? devices behave like the /dev/cua?? devices
|
The /dev/cud?? devices behave like the /dev/cua?? devices
|
and the ttyD devices are like the /dev/ttyS?? devices.
|
and the ttyD devices are like the /dev/ttyS?? devices.
|
|
|
Sources of Information
|
Sources of Information
|
----------------------
|
----------------------
|
|
|
Webpage: http://private.fuller.edu/clameter/digi.html
|
Webpage: http://private.fuller.edu/clameter/digi.html
|
|
|
Mailing List: digiboard@list.fuller.edu
|
Mailing List: digiboard@list.fuller.edu
|
|
|
(Write e-mail to that address to subscribe. Common ListServ commands work.
|
(Write e-mail to that address to subscribe. Common ListServ commands work.
|
Archive of messages available)
|
Archive of messages available)
|
|
|
Christoph Lameter (clameter@fuller.edu) 16. April 1996.
|
Christoph Lameter (clameter@fuller.edu) 16. April 1996.
|
|
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
|
|
Changes v1.5.5:
|
Changes v1.5.5:
|
|
|
The ability to use the kernel's command line to pass in the configuration for
|
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
|
boards. Using LILO's APPEND command, a string of comma separated identifiers
|
or integers can be used. The 6 values in order are:
|
or integers can be used. The 6 values in order are:
|
|
|
Enable/Disable this card,
|
Enable/Disable this card,
|
Type of card: PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)
|
Type of card: PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)
|
Enable/Disable alternate pin arrangement,
|
Enable/Disable alternate pin arrangement,
|
Number of ports on this card,
|
Number of ports on this card,
|
I/O Port where card is configured (in HEX if using string identifiers),
|
I/O Port where card is configured (in HEX if using string identifiers),
|
Base of memory window (in HEX if using string identifiers),
|
Base of memory window (in HEX if using string identifiers),
|
|
|
Samples:
|
Samples:
|
append="digi=E,PC/Xi,D,16,200,D0000"
|
append="digi=E,PC/Xi,D,16,200,D0000"
|
append="digi=1,0,0,16,512,(whatever D0000 is in base 10 :)
|
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
|
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
|
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
|
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.
|
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.
|
This conserves some memory, and removes a few hard coded constants.
|
|
|
NOTE!! NOTE!! NOTE!!
|
NOTE!! NOTE!! NOTE!!
|
The definition of PC/Xem as a valid board type is the BEGINNING of support
|
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
|
for this device. The driver does not currently recognise the board, nor
|
does it want to initialize it. At least not the EISA version.
|
does it want to initialize it. At least not the EISA version.
|
|
|
Mike McLagan 5, April 1996.
|
Mike McLagan 5, April 1996.
|
|
|
|
|