216 lines
7.1 KiB
Plaintext
216 lines
7.1 KiB
Plaintext
*
|
|
* PATCHES MAGIC LEVEL PATCH THAT GOT US HERE
|
|
* -------------------- ----- ----------------------
|
|
* CURRENT PATCH LEVEL: 1 00098
|
|
* -------------------- ----- ----------------------
|
|
*
|
|
* 16 Feb 93 Julian Elischer ADDED for SCSI system
|
|
This release consists of the following files
|
|
(relative to the base of the kernel tree)
|
|
|
|
|
|
MAKEDEV
|
|
|
|
scsi
|
|
scsi/README
|
|
scsi/scsiconf.h
|
|
scsi/scsiconf.c
|
|
scsi/scsi_all.h
|
|
|
|
scsi/scsi_disk.h
|
|
scsi/sd.c
|
|
|
|
sys/mtio.h (modified)
|
|
scsi/scsi_tape.h
|
|
scsi/st.c
|
|
|
|
sys/sgio.h
|
|
scsi/scsi_generic.h
|
|
scsi/sg.c /* port not complete */
|
|
|
|
sys/chio.h
|
|
scsi/scsi_changer.h
|
|
scsi/ch.c
|
|
|
|
sys/cdio.h
|
|
scsi/scsi_cd.h
|
|
scsi/cd.c
|
|
|
|
i386/conf/SCSITEST
|
|
i386/isa/aha1542.c
|
|
|
|
README.AHA1742
|
|
i386/conf/AHBTEST
|
|
i386/isa/aha1742.c
|
|
|
|
i386/conf/UHATEST
|
|
i386/isa/ultra14f.c
|
|
|
|
i386/conf/BTTEST
|
|
i386/isa/bt742a.c
|
|
|
|
|
|
|
|
----------------------------------------------------------------
|
|
This scsi system is designed to allow the re-use of top end drivers
|
|
such as disk and tape drivers, with different scsi adapters.
|
|
|
|
As of writing this document, There are top end drivers working for:
|
|
----------------------------------------------------------------
|
|
generic scsi disk
|
|
generic scsi tape
|
|
cd-rom (plays music under the xcplayer (?) program)
|
|
AEG Character recognition devices *
|
|
Calera Character recognition devices *
|
|
Kodak IL900 scanner *
|
|
Exabyte tape changer device.
|
|
GENERIC SCSI DEVICES (user generated scsi commands) (port not complete)
|
|
----------------------------------------------------------------
|
|
|
|
|
|
There are also working bottom end drivers for:
|
|
----------------------------------------------------------------
|
|
adaptec 1542 (and 1742 in 1542 mode)
|
|
bustec 742a (apparently works for VESA version)
|
|
adaptec 174x
|
|
Ultrastore 14f (works for 34f (VESA version))
|
|
----------------------------------------------------------------
|
|
|
|
|
|
Work is proceeding on the following bottom end drivers:
|
|
----------------------------------------------------------------
|
|
Future Domain (1680)** hosler@tfs.com & me
|
|
Future Domain (8 bit)**** rpr@oce.nl
|
|
WD7000** terry@icarus.weber.edu
|
|
seagate st01/st02**** overby@aspen.cray.com ?
|
|
----------------------------------------------------------------
|
|
* drivers not made public (proprietary.. proof that the concept works though)
|
|
** driver not yet released but working.
|
|
*** just a dream so far.
|
|
**** some amount more than just a dream so far.
|
|
|
|
|
|
################## Using the scsi system ##################
|
|
------------minor numbers---------------
|
|
This scsi system does not allocate minor numbers to devices depending
|
|
on their SCSI IDs is any way. A devices minor number is dependant
|
|
on the order in which it was found.
|
|
e.g. the first tape found will become st0 (minor number 0)
|
|
the second found will become st1 (minor number 16)
|
|
the third will become st2 (minor 32)
|
|
etc.
|
|
|
|
These devices could be on the same scsi bus or different scsi busses.
|
|
That would not change their minor numbers.
|
|
|
|
THE EXCEPTION TO THIS IS IN THE GENERIC SCSI DRIVER. in which case
|
|
the following mapping applies:
|
|
|
|
BB LLL TTT B= scsi bus number, T = target number, L = LUN.
|
|
(yes I know it's strange but it's SGI compatible)
|
|
|
|
It is possible to run two different TYPES of scsi adapters at the
|
|
same time and have st0 on one and st1 on another. (for example)
|
|
|
|
There is a scheme supported in which scsi devices can be 'wired in' even
|
|
if they are not present or powered on at probe time. (see scsiconf.c)
|
|
|
|
--------------getting started------------
|
|
It should be possible to use the /dev entries for as0 as if they were
|
|
/dev entries for sd0 and the old as bootblocks should
|
|
continue to work if you are using an adaptec 1542b.
|
|
|
|
--------------making devices------------
|
|
A changed version of /dev/MAKEDEV is supplied that
|
|
can be used to make devices sd[01234] and st[01234]
|
|
|
|
e.g.
|
|
cd /dev
|
|
sh MAKEDEV sd0 sd1 sd2 st0 st1 cd0
|
|
|
|
|
|
The tape devices are as follows:
|
|
rst0 basic raw device, will rewind on close
|
|
nrst0 will not rewind on close
|
|
erst0 will rewind and EJECTon close
|
|
nerst0 will not rewind and WILL eject (some devices may rewind anyhow)
|
|
|
|
------------future enhancements--------------
|
|
Some people have indicated that they would like to have the SCSI ID
|
|
encoded into the minor number in some way, and
|
|
this may be supported at some timein the future, using
|
|
minor numbers greater than 128. (or maybe a different major number)
|
|
|
|
|
|
I will also be writing (probably) a generic scsi-error
|
|
handling routine that will be table driven, so that the routine can
|
|
be removed from each individual driver. With enough care,
|
|
two similar devices with different error codes (quite common) could run
|
|
the same driver but use different error tables.
|
|
|
|
--------------file layout-------------------
|
|
Originally I had all scsi definitions in one file: scsi.h
|
|
I have since moved definitions of commands so that all
|
|
definitions needed for a particular type of device are
|
|
found together in the include file of that name.
|
|
This approximatly follows the layout of their definition
|
|
in the SCSI-2 spec.
|
|
As such they are:
|
|
|
|
scsi_all.h general commands for all devices --- CHAPTER 7
|
|
scsi-disk.h commands relevant to disk --- CHAPTER 8
|
|
scsi-tape.h commands for scsi tapes --- CHAPTER 9
|
|
scsi-cd.h commands for cd-roms (and audio) --- CHAPTER 13
|
|
scsi-changer.h commands medium changer devices --- CHAPTER 16
|
|
|
|
---------ioctl definitions-------------
|
|
User accessable structures (e.g. ioctl definitions) have been
|
|
placed in sys/cdio, sys/sgio and sys/chio (based after sys/mtio for
|
|
the ioctls for mag tapes (including st).
|
|
|
|
-----------cd-rom-----------------
|
|
The cd rom driver ha been tested by a number of people and
|
|
grefen@wilbur.zdv.uni-mainz.de has completed the audio play
|
|
functions.
|
|
(xcdplayer was available from the 'from_ref' directory on agate)
|
|
|
|
At this time it is possible audio play is broken on cdroms and I will
|
|
be unable to fix it until I get one to test.
|
|
|
|
-------------media changer---------------
|
|
Once again courtesy of grefen@wilbur.zdv.uni-mainz.de.
|
|
I have not tested this but he assures me it's ready for testing.
|
|
If anyone has an exabyte tape changer or similar,
|
|
contact the author for information regarding the control interface
|
|
and program.
|
|
|
|
WARNING: This has not been tested for a LONG TIME!
|
|
|
|
-----------booting from an AHA-174x---------
|
|
For some reason I have not yet worked out,
|
|
the BIOS-based bootblocks I have posted will not boot
|
|
from the aha1742 in extended mode. (it can't be serious
|
|
because the MACH version works) This is in fact not a
|
|
problem because the aha1742 driver will force the board into extended
|
|
mode during probe, so it can be left in standard mode during the boot.
|
|
During the next reboot, the bios will place it back in standard mode
|
|
ready for the NEXT boot.
|
|
|
|
[Update: This has apparently been fixed in the newest NetBSD/FreeBSD
|
|
releases ]
|
|
|
|
|
|
|
|
---------recent changes-----------
|
|
Removed all bitfields from machine independent sections to make
|
|
it possible for them to be used on big-endian architectures.
|
|
|
|
Removed scsi specific timeouts in favour of system timeout handling.
|
|
|
|
Many structures (getting more all the time) now dynamically allocated.
|
|
|
|
Addition of code in the tape driver to recognise models of drive that
|
|
have particular problems so they can be handled specially.
|
|
|
|
many bug-fixes and cleanups.
|