From: drew@hamlet.cs.colorado.edu (Drew Eckhardt)
Subject: Linux SCSI support
Organization: University of Colorado at Boulder
Date: Fri, 10 Apr 1992 16:48:33 GMT

The new version (.95c+ plus SCSI) is available.  It supports 
Adaptec, Seagate, and Ultrastor host adapters.

You can obtain it in the files 

headrest.woz.colorado.edu : 
/pub/linux/scsi.95c+.tar. 
/pub/linux/vmunix.Z (binary)

The Quick FAQ : 

Q : What SCSI hosts are supported?

A : The Adaptec 1542 (The EISA bus master 17xx may work),
	Seagate ST01/ST02, (These are 
	repackaged  Future Domain 88x series boards. 
	If you have an 8 bit future domain controller,
	you may be able to modify the seagate driver
	to detect your card to.  If any one does this,
	please send diffs.), and Ultrastor 14F are supported.


Q : What about SCSI tapes ? 

A : The stubs are sort of there.  Basically, the SCSI tape 
	driver needs to be changed from a block to character 
	device, a read/write function made that makes 
	appropriate calls to the lowlevel 
	scsi_do_cmd function, and enough 
	ioctl's calling the same function to
	implement a normal mt.

	My guess is these will be about as complex as the sd.c
	driver, or ~500 lines.

Q : what about extended partitions?

A : not yet.  

Q : I get a message saying READ CAPACITY FAILED.
	What does this mean?

A : In some cases, very old, brain dead drives (esp Seagate)
	don't support read capacity.  This is a warning - 
	the only real implication is that if you try to 
	read past the end of the drive, on the 
	raw device, it will have to timeout, instead of
	simply checking bounds and failing outright.

	In other cases, something just gets flakey.  
	I haven't had a chance to track this down,
	as until I patched .95c+, I didn't 
	have this problem.

Q : What are the major / minor numbers for SCSI drives?

A : Right now, it is theoretically possible to have 
	21 SCSI devices in the system.  With SCSI- 
	MFM / ESDI / SMD  adapters this can be even
	more drives, as each id may have several drives on it
	each set up as a LUN of that id.   Needless to say,
	if we have allowed for 16 partitions per SCSI drive,
	we're pushing the limits on minor numbers.  Therefore,
	a yucky dynamic numbering scheme is used.

	Block device major 8 is used for SCSI drives. I 
	personally like /dev/sd[n][p], where n is the drive
	number, and p partition letter.  
	
	Minors are assigned in increments of 16 to SCSI disks
	as they are found, scaning from host 0, ID 0 to host
	n, ID `7, excluding the host ID.  

	A minor where minor mod 16 = 0 is the whole drive,
	where minor mod 16 is between 1 and 4, that partition,
	and extended partitions are not yet implemented.

	Example : I have four SCSI disks, set up as follows 
	Seagate ST02, ID=0
	Seagate ST02, ID = 5
	Ultrastor 14, ID = 0
	Adaptec 1542, ID = 0

	The first disk on the seagate at ID 0 will become 
	minors 0-15 inclusive, the second at ID5 16-31
	inclusive, the disk on the Ultrastor 32-47, on the
	Adaptec 48-63.  

	 
Q : The distribution kernel panics, saying that it can't mount
	root.

A : This is because my system mounts root from /dev/hd1 (old 
	numbering) or /dev/hda1 (new numbering), dev b 03 01.
	If you have no minix filesystem there, it will die.

	If you are booting from floppy, change the word at 
	offset 508 in the bootsector to  0000, or the
	appropriate value 

Q : How do I reduce kernel bloat and eliminate the drivers I
	don't want?

A : Simply #undef CONFIG_DISTRIBUTION in
	include/linux/config.h, and define the 
	macros for the SCSI hosts you want 
	enabled.

Q : What about distributions, information, etc

A : Subscribe to the SCSI mailing list, 

	linux-scsi-request@headrest.woz.colorado.edu

   and the latest release is maintained on
   headrest.woz.colorado.edu under /pub/scsi

Q : What about bugs?

A : It works on MY hardware.  It works on Tommy Thorn's 
	Adaptec system, Dave Gentzel's Ultrastor, and 
	quite a few other systems.  

	Bugs that are there will mostly be very hardware
	specific, and nasty to track down.  SCSI should 
	be basically error free - consequently, the 
	error code has not been heavily tested, and 
	I'm sure there are bugs left in there.  

	If you have found a bug, please mail it 
	to the mailing list with specifics of 
	your hardware.   Other people may have 
	the same problem, a solution, etc.  

	Chances are I will provide you with a debugging
	version of the kernel, which will dump out important 
	SCSI information and let me see what exactly is 
	going on.

Happy hacking...

Newsgroups: comp.os.linux