2 * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE
3 * -------------------- ----- ----------------------
4 * CURRENT PATCH LEVEL: 1 00098
5 * -------------------- ----- ----------------------
7 * 16 Feb 93 Julian Elischer ADDED for SCSI system
8 This release consists of the following files
9 (relative to the base of the kernel tree)
29 scsi/sg.c /* port not complete */
54 ----------------------------------------------------------------
55 This scsi system is designed to allow the re-use of top end drivers
56 such as disk and tape drivers, with different scsi adapters.
58 As of writing this document, There are top end drivers working for:
59 ----------------------------------------------------------------
62 cd-rom (plays music under the xcplayer (?) program)
63 AEG Character recognition devices *
64 Calera Character recognition devices *
66 Exabyte tape changer device.
67 GENERIC SCSI DEVICES (user generated scsi commands) (port not complete)
68 ----------------------------------------------------------------
71 There are also working bottom end drivers for:
72 ----------------------------------------------------------------
73 adaptec 1542 (and 1742 in 1542 mode)
74 bustec 742a (apparently works for VESA version)
76 Ultrastore 14f (works for 34f (VESA version))
77 ----------------------------------------------------------------
80 Work is proceeding on the following bottom end drivers:
81 ----------------------------------------------------------------
82 Future Domain (1680)** hosler@tfs.com & me
83 Future Domain (8 bit)**** rpr@oce.nl
84 WD7000** terry@icarus.weber.edu
85 seagate st01/st02**** overby@aspen.cray.com ?
86 ----------------------------------------------------------------
87 * drivers not made public (proprietary.. proof that the concept works though)
88 ** driver not yet released but working.
89 *** just a dream so far.
90 **** some amount more than just a dream so far.
93 ################## Using the scsi system ##################
94 ------------minor numbers---------------
95 This scsi system does not allocate minor numbers to devices depending
96 on their SCSI IDs is any way. A devices minor number is dependant
97 on the order in which it was found.
98 e.g. the first tape found will become st0 (minor number 0)
99 the second found will become st1 (minor number 16)
100 the third will become st2 (minor 32)
103 These devices could be on the same scsi bus or different scsi busses.
104 That would not change their minor numbers.
106 THE EXCEPTION TO THIS IS IN THE GENERIC SCSI DRIVER. in which case
107 the following mapping applies:
109 BB LLL TTT B= scsi bus number, T = target number, L = LUN.
110 (yes I know it's strange but it's SGI compatible)
112 It is possible to run two different TYPES of scsi adapters at the
113 same time and have st0 on one and st1 on another. (for example)
115 There is a scheme supported in which scsi devices can be 'wired in' even
116 if they are not present or powered on at probe time. (see scsiconf.c)
118 --------------getting started------------
119 It should be possible to use the /dev entries for as0 as if they were
120 /dev entries for sd0 and the old as bootblocks should
121 continue to work if you are using an adaptec 1542b.
123 --------------making devices------------
124 A changed version of /dev/MAKEDEV is supplied that
125 can be used to make devices sd[01234] and st[01234]
129 sh MAKEDEV sd0 sd1 sd2 st0 st1 cd0
132 The tape devices are as follows:
133 rst0 basic raw device, will rewind on close
134 nrst0 will not rewind on close
135 erst0 will rewind and EJECTon close
136 nerst0 will not rewind and WILL eject (some devices may rewind anyhow)
138 ------------future enhancements--------------
139 Some people have indicated that they would like to have the SCSI ID
140 encoded into the minor number in some way, and
141 this may be supported at some timein the future, using
142 minor numbers greater than 128. (or maybe a different major number)
145 I will also be writing (probably) a generic scsi-error
146 handling routine that will be table driven, so that the routine can
147 be removed from each individual driver. With enough care,
148 two similar devices with different error codes (quite common) could run
149 the same driver but use different error tables.
151 --------------file layout-------------------
152 Originally I had all scsi definitions in one file: scsi.h
153 I have since moved definitions of commands so that all
154 definitions needed for a particular type of device are
155 found together in the include file of that name.
156 This approximatly follows the layout of their definition
160 scsi_all.h general commands for all devices --- CHAPTER 7
161 scsi-disk.h commands relevant to disk --- CHAPTER 8
162 scsi-tape.h commands for scsi tapes --- CHAPTER 9
163 scsi-cd.h commands for cd-roms (and audio) --- CHAPTER 13
164 scsi-changer.h commands medium changer devices --- CHAPTER 16
166 ---------ioctl definitions-------------
167 User accessable structures (e.g. ioctl definitions) have been
168 placed in sys/cdio, sys/sgio and sys/chio (based after sys/mtio for
169 the ioctls for mag tapes (including st).
171 -----------cd-rom-----------------
172 The cd rom driver ha been tested by a number of people and
173 grefen@wilbur.zdv.uni-mainz.de has completed the audio play
175 (xcdplayer was available from the 'from_ref' directory on agate)
177 At this time it is possible audio play is broken on cdroms and I will
178 be unable to fix it until I get one to test.
180 -------------media changer---------------
181 Once again courtesy of grefen@wilbur.zdv.uni-mainz.de.
182 I have not tested this but he assures me it's ready for testing.
183 If anyone has an exabyte tape changer or similar,
184 contact the author for information regarding the control interface
187 WARNING: This has not been tested for a LONG TIME!
189 -----------booting from an AHA-174x---------
190 For some reason I have not yet worked out,
191 the BIOS-based bootblocks I have posted will not boot
192 from the aha1742 in extended mode. (it can't be serious
193 because the MACH version works) This is in fact not a
194 problem because the aha1742 driver will force the board into extended
195 mode during probe, so it can be left in standard mode during the boot.
196 During the next reboot, the bios will place it back in standard mode
197 ready for the NEXT boot.
199 [Update: This has apparently been fixed in the newest NetBSD/FreeBSD
204 ---------recent changes-----------
205 Removed all bitfields from machine independent sections to make
206 it possible for them to be used on big-endian architectures.
208 Removed scsi specific timeouts in favour of system timeout handling.
210 Many structures (getting more all the time) now dynamically allocated.
212 Addition of code in the tape driver to recognise models of drive that
213 have particular problems so they can be handled specially.
215 many bug-fixes and cleanups.