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