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 [] # DIGI_MAJOR=22 DIGICU_MAJOR=23 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 $DIGIMAJOR $name mknod /dev/ttyD$name c $DIGICUMAJOR $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 5, April 1996.