Release notes for the SPECIALIX SIO LINUX device driver
------------------------------------------------------- 

This file last modified 26.4.95. - Driver version 0.5.9 ALPHA

****************************************************************************
** IMPORTANT - Please read the copyright notice in the file si_download.c **
****************************************************************************

Latest News.
------------

If all goes well with this release, I'll be moving the driver to Beta with an
accompanying announcement on the Linux newsgroup.  I need some feedback from
you Alpha testers here.

Version 0.5.8 never really made it.  This version (0.5.9) includes all the
changes necessary to allow the driver to run with the newer 1.2.x kernels.
Seems that most people are using these kernels now so there's no need for
me to support older versions.

The good news is that I've just bought 9 more TAs and another card so one of
the things I hope to be doing is implementing and testing a much larger
configuration.  I've already benchmarked the driver with 32 ports and it
seems OK.

Lots of minor bugs have been fixed for this release along with one or two
major ones - see the comments at the top of si_serial.c for details.
There isn't much change to the basic functionallity of the driver. However,
most things should now work.

Another thing I'll be doing is repairing two of the TAs! It turns out that the
lead connecting the card to the TAs is *NOT* a straight through lead. It
crosses all the pins!  So if you use another lead of the same sort *between
one TA and another TA* the TAs after the lead tend not to work afterwards.

Specifically, it appears that plus and minus 12volts are crossed over, so this
little trick takes out the 1488 line drivers. Also in the case of one of the
TAs it passed so much current that the through hole plating on one of the
power rails went open circuit - so something to watch for if you've done the
same trick (I know of at least one other person that has done this ;-).


Introduction.
-------------
This driver includes a file containing patches to the standard n_tty.c. This
is a temporary measure to enable character cooking to be done by the hardware.
This will probably be incorporated into the standard n_tty.c in future.

YOU SHOULD MAKE A BACKUP OF YOUR SYSTEM BEFORE STARTING.  THIS IS ALPHA
SOFTWARE.  IF YOU DON'T LIKE LIVING DANGEROUSLY THEN DON'T CONTINUE.
I HAVEN'T LOST ANY DATA DUE TO THE DRIVER (YET!) BUT THERE'S ALWAYS A FIRST
TIME FOR EVERYTHING.

All directory names are relative to where you have the kernel source code.
This procedure will be automated in the future.  I (still!) haven't had time
to create a stable set of patch files yet.

I suggest you get system V style init/getty/login. It is more flexible (it
is probably standard with most distributions these days).




Procedure for installing, configuring & building the driver.
-------------------------------------------------------------
Get a copy of at least the 1.2.0 kernel source code. Older versions probably
will NOT work any longer without some modification to this driver.

1. Copy the following files to the directory linux/drivers/char
   (wherever you're Kernel source code is located).
	si_serial.c
	si_serial.h
	si_download.c
	n_tty_diffs

2. To apply the n_tty_diffs patch file do the following :
	patch < n_tty_diffs


3. Add the following line in tty_io.c between rs_init() and pty_init()
   (it's right at the end of the file)

	kmem_start = si_init(kmem_start);

4. Add the si_serial.c to the makefile - (edit the file drivers/char/Makefile)
   so that it looks something like the following :

	OBJS  = tty_io.o n_tty.o console.o keyboard.o serial.o \
		tty_ioctl.o pty.o vt.o mem.o si_serial.o \
		defkeymap.o

	SRCS  = tty_io.c console.c keyboard.c serial.c \
		tty_ioctl.c pty.c vt.c mem.c si_serial.c \
		defkeymap.c

5. *** IMPORTANT *** Edit the file si_serial.h and modify the user selectable section
   to reflect your setup and preferences.

6. Now rebuild the kernel in the normal way.

7. Make device special files (again manually for now :-() in /dev
	mknod /dev/sitty0 c 30 0
	mknod /dev/sitty1 c 30 1
	mknod /dev/sitty2 c 30 2
		.
		. for as many ports you have/wish to test.
		.
	mknod /dev/sitty31 c 30 31

   The callout devices should be created similarly :
	mknod /dev/sicua0 c 31 0
	mknod /dev/sicua1 c 31 1
	mknod /dev/sicua2 c 31 2
		.
		. for as many ports you have/wish to test.
		.
	mknod /dev/sicua31 c 31 31

   These device names are a bit bogus but we'll standardise them later.

8. Install the new kernel in the normal way and reboot...;-)

9. Quick-test the driver by doing the following :

	ls > /dev/sitty0

   If the light illuminates on the first terminal adapter then there is a good
   chance that the driver is OK.  You'll now be able to connect your favorite
   modems and terminals to the SIO...;-)


Testing the driver & reporting bugs.
-----------------------------------
Hardware, other I/F cards etc in your PC.

High memory ? Does the driver work for port addresses above 1Mb ?

How well does the driver co-exist with other serial drivers ?

I'm most interested in performance benchmarks at the moment. Would someone
like to benchmark the driver against a SCO/Other driver ?

SLIP should work.  I've had it going but it'll probably need some work.
PPP should work too but I've not tried it.  There is a known SLIP/PPP bug in my
driver but it shouldn't stop SLIP/PPP working. Anyway let me know.

Availability
------------
Future versions of the driver will appear first on sunsite.unc.edu but you
should be able to fetch it from any mirror site shortly after. When the driver
finally goes Beta, I'll post a notice on netnews in comp.os.linux.announce.

Comments, criticism, flames and offers of liquid refreshment should go to
my usuall E-Mail address (it's in the top of si_serial.c)  Thanks for all
your help.

Cheers & Beers, Simon.

