From owner-cvs-sys Wed Aug 9 07:52:58 1995 Return-Path: cvs-sys-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id HAA16084 for cvs-sys-outgoing; Wed, 9 Aug 1995 07:52:58 -0700 Received: from haywire.DIALix.COM (haywire.DIALix.COM [192.203.228.65]) by freefall.FreeBSD.org (8.6.11/8.6.6) with ESMTP id HAA16064 ; Wed, 9 Aug 1995 07:52:41 -0700 Received: (from peter@localhost) by haywire.DIALix.COM (8.7.Beta.11/8.7.Beta.11/DIALix) id WAA27566; Wed, 9 Aug 1995 22:03:46 +0800 (WST) Date: Wed, 9 Aug 1995 22:03:45 +0800 (WST) From: Peter Wemm To: CVS-commiters@freefall.FreeBSD.org, cvs-sys@freefall.FreeBSD.org Subject: Re: cvs commit: src/sys/i386/isa si.c sireg.h In-Reply-To: <199508091313.GAA11729@freefall.FreeBSD.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: cvs-sys-owner@freebsd.org Precedence: bulk On Wed, 9 Aug 1995, Peter Wemm wrote: > peter 95/08/09 06:13:48 > > Modified: sys/i386/conf LINT > Log: > Add Specialix driver to LINT > > Modified: sys/i386/eisa eisadevs.c > Log: > Add hook for EISA probe for Specialix EISA card. > > Added: sys/i386/include si.h > sys/i386/isa si.c sireg.h > Log: > Bring in my long-overdue version of the Specialix driver. > > This was originally ported to BSDI by Andy Rutter . > At the end of the day, this code has very little in common with Andy's > version, or the Specialix SYSV version. Essentially it has been gradually > and almost completely rewritten, with LOTS of advice and inspiration from > Bruce Evans. There are a couple of missing bits still, but they are minor. > > The user-mode "sicontrol" program is in sad shape and will come in soon. > Transparent printing died a timely death.. Maybe later.. > > Jeremy Rolls @ Specialix (Development directory) has confirmed this is OK ^^^^^^^^^ URK! Try: "director" > to distribute, and Andy personally sent me his version that I started from. > > Although this driver stood up to a nasty stress-test in this form, I am not > confident that there are no nasty bugs lurking. > > People are welcome to try it, but dont go out and buy one just yet.. :-) > And *DONT* use it on a mission-critical machine... This is ALPHA QUALITY! This is what I used in MAKEDEV to create some nodes. Since you can get 96 ports per system with the driver as it currently stands, or 128 with a modification-to-be-written-yet, naming the devices is a problem.. :-( ttyA*, ttyB*, ttyC*, ttyD* could all be taken up with the current "ttyminor" implementation. (ttyD* would probably conflict withe the Digiboard driver...) The driver uses the same initial/lock devices as sio and cy. You probably want to set the initial crtscts on in /etc/rc.serial.. # Specialix ttyA?) unit=`expr $i : 'tty.*\(.\)$'` rm -f tty*A$unit m=`ttyminor $unit` mknod ttyA$unit c 68 `expr $m - 1` mknod ttyiA$unit c 68 `expr $m + 65536 - 1` mknod ttylA$unit c 68 `expr $m + 131072 - 1` chown root.wheel ttyA$unit ;; cuaA?) umask 7 unit=`expr $i : 'cua.*\(.\)$'` rm -f cuaA$unit m=`ttyminor $unit` mknod cuaA$unit c 68 `expr $m + 128 - 1` chown uucp.dialer cuaA$unit umask 77 ;; # the user mode process "gets" to the card via this.. si_control) rm -f si_control mknod si_control c 68 262144 chmod 600 si_control chown root.wheel si_control ;; I think it's time to bite the bullet and start work on extending the tty column widths in ps, w, finger, etc. It'd be nice to be consistant with the manuals that come with the hardware and use ttyA1 through ttyA128 without getting it truncated around the place.. BTW: I know.. there is no vendor branch, because the copy on freefall *is* the master.. :-) There was little to be gained by importing Andy's version as a vendor branch, because he apparently isn't working on it and hasn't for the last few years.. And besides, there was a near 100% conflict rate, defeating the purpose.. The missing user-mode sicontrol program isn't much use anymore, except for tuning the interupt characteristics, and for fine-grained debugging control. A lot of it's previous function was made obsolete by the use of the initial/lock devices. This program also used to actually boot the card and download the firmware.. but that was too unwieldy if you want a slip/ppp connection early in the boot sequence. Oh, note that "comcontrol" is applicable to this driver as well. It uses the same ioctl's to control the dtr hold-down and the drain waits. What's still to be done: - there's still some redundant code to come out - the user mode control program needs to be cleaned up and finished - a curses-monitor program like the slxview on the SVR4 version would be **very** nice.. - proper "polling" mode needs to be implemented.. where it runs on a 1-tick timeout and can handle 4 host cards (128 ports) instead of 3 (96 ports). - somebody with an eisa card needs to be brave enough to test it and fix it.. I can't.. :-( - I think the tty driver needs to have some finger on the pulse of what's going on with the rts/cts/xon/xoff flow control... - the output cooking should be enabled once the tty driver can do it cleanly.. this is only a very minor gain though... - finally, the code needs to be optimized.. bleah. it's a mess in there.. the circular 256 byte input and output buffers are messy. Comments welcome.. Bugfixes greatly appreciated! -Peter