FreeBSD/Linux Kernel Cross Reference
sys/scsi/README
1 WARNING: This file was not fully updated by dufault@hda.com when
2 changing the configuration. See the end for new notes.
3
4 This release consists of the following files
5 (relative to the base of the source tree )
6
7 share/man/man4/scsi.4 <-useful general info
8 share/man/man4/uk.4
9 share/man/man4/su.4
10 share/man/man4/ch.4
11 share/man/man4/cd.4
12 share/man/man4/sd.4
13 share/man/man4/st.4 <--READ THIS IF YOU USE TAPES!
14 sbin/scsi/procargs.c
15 sbin/scsi/scsi.c
16 sbin/scsi/scsi.1
17 sbin/scsi/Makefile
18 sbin/st/Makefile
19 sbin/st/st.1
20 sbin/st/st.c
21 sys/sys/chio.h
22 sys/sys/cdio.h
23 sys/sys/mtio.h
24 sys/sys/scsiio.h
25 sys/i386/conf/EXAMPLE
26 sys/i386/isa/ultra14f.c <-runs 14f and 34f
27 sys/i386/isa/ultra_all.c.beta <-beta version, runs 14f,24f and 34f
28 sys/i386/isa/bt742a.c
29 sys/i386/isa/aha1742.c
30 sys/i386/isa/aha1542.c
31 sys/scsi/syspatches
32 sys/scsi/syspatches/conf.c
33 sys/scsi/syspatches/user_scsi.diffs
34 sys/scsi/syspatches/MAKEDEV.diff
35 sys/scsi/syspatches/isa.c.patch
36 sys/scsi/syspatches/README
37 sys/scsi/uk.c
38 sys/scsi/su.c
39 sys/scsi/st.c
40 sys/scsi/sd.c
41 sys/scsi/ch.c
42 sys/scsi/cd.c
43 sys/scsi/scsi_ioctl.c
44 sys/scsi/scsi_base.c
45 sys/scsi/scsiconf.c
46 sys/scsi/scsi_tape.h
47 sys/scsi/scsi_disk.h
48 sys/scsi/scsi_changer.h
49 sys/scsi/scsi_cd.h
50 sys/scsi/scsi_all.h
51 sys/scsi/scsi_debug.h
52 sys/scsi/scsiconf.h
53 sys/scsi/README <--this file
54
55 notice sys/scsi/sg.c and sys/sys/sgio.h have been removed
56
57
58 ----------------------------------------------------------------
59 This scsi system is designed to allow the re-use of top end drivers
60 such as disk and tape drivers, with different scsi adapters.
61
62 As of writing this document, There are top end drivers working for:
63 ----------------------------------------------------------------
64 generic scsi disk
65 generic scsi tape
66 cd-rom (plays music under the xcplayer (?) program)
67 AEG Character recognition devices *
68 Calera Character recognition devices *
69 Generic scsi-II scanners *
70 Exabyte tape changer device.
71 GENERIC SCSI DEVICES (user generated scsi commands)
72 ----------------------------------------------------------------
73
74
75 There are also working bottom end drivers for:
76 ----------------------------------------------------------------
77 adaptec 1542 (and 1742 in 1542 mode)
78 bustec 742a (apparently works for VESA version (445S?))(and 747?)
79 adaptec 174x (note NOT 27xx)
80 Ultrastore 14f (works for 34f (VESA version))
81 Ultrastore 24f RSN (Beta version included here)
82 ----------------------------------------------------------------
83
84
85 ################## Using the scsi system ##################
86 ------------minor numbers---------------
87 This scsi system does not allocate minor numbers to devices depending
88 on their SCSI IDs is any way. A devices minor number is dependant
89 on the order in which it was found.
90 e.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
95 These devices could be on the same scsi bus or different scsi busses.
96 That would not change their minor numbers.
97
98 THE EXCEPTION TO THIS IS IN THE GENERIC SCSI DRIVER. in which case
99 the following mapping applies:
100
101 BB TTT LLL B= scsi bus number, T = target number, L = LUN.
102
103 It is possible to run two different TYPES of scsi adapters at the
104 same time and have st0 on one and st1 on another. (for example)
105
106 There is a scheme supported in which scsi devices can be 'wired in' even
107 if they are not present or powered on at probe time. (see scsiconf.c)
108 In addition, the scsi(1) command allows the operator ask for a
109 reprobe at any time. Newly found devices will be configured in. Any
110 device that does not map to a known device type is attached to the
111 'unknown' (uk) driver.
112
113
114 --------------making devices------------
115 A changed version of /dev/MAKEDEV is supplied that
116 can be used to make devices sd[01234] and st[01234]
117
118 e.g.
119 cd /dev
120 sh MAKEDEV sd0 sd1 sd2 st0 st1 cd0
121
122 see st(1) and st(4) for info on tape devices.
123
124 --------------file layout-------------------
125 Originally I had all scsi definitions in one file: scsi.h
126 I have since moved definitions of commands so that all
127 definitions needed for a particular type of device are
128 found together in the include file of that name.
129 This approximatly follows the layout of their definition
130 in the SCSI-2 spec.
131 As such they are:
132
133 scsi_all.h general commands for all devices --- CHAPTER 7
134 scsi-disk.h commands relevant to disk --- CHAPTER 8
135 scsi-tape.h commands for scsi tapes --- CHAPTER 9
136 scsi-cd.h commands for cd-roms (and audio) --- CHAPTER 13
137 scsi-changer.h commands medium changer devices --- CHAPTER 16
138
139 ---------ioctl definitions-------------
140 User accessable structures (e.g. ioctl definitions) have been
141 placed in sys/cdio, sys/sgio and sys/chio (based after sys/mtio for
142 the ioctls for mag tapes (including st).
143 General scsi ioctls are found in sys/scsiio.h.
144
145 -----------cd-rom-----------------
146 The cd rom driver ha been tested by a number of people and
147 grefen@convex.com has completed the audio play
148 functions.
149 (xcdplayer was available from the 'from_ref' directory on agate)
150
151 At this time it is possible audio play is broken on cdroms and I will
152 be unable to fix it until I get one to test.
153 ***IMPORTANT***
154 Cdrom audio is only suported at all for cdroms that use SCSI2 audio
155 definitions.
156
157 -------------media changer---------------
158 Once again courtesy of grefen@convex.com (in germany)
159 I have not tested this but he assures me it's ready for testing.
160 If anyone has an exabyte tape changer or similar,
161 contact the author for information regarding the control interface
162 and program.
163
164 WARNING: This has not been tested for a LONG TIME!
165
166
167 ---------recent changes-----------
168 Removed all bitfields from machine independent sections to make
169 it possible for them to be used on big-endian architectures.
170
171 Removed scsi specific timeouts in favour of system timeout handling.
172
173 Many structures (getting more all the time) now dynamically allocated.
174
175 Addition of code in the tape driver to recognise models of drive that
176 have particular problems so they can be handled specially.
177
178 many bug-fixes and cleanups.
179
180 ---------even more recent changes:--------
181
182 rewrote almost the entire thing..
183
184
185
186 ------Mon Oct 11 22:20:25 WST 1993------
187
188 Code is now all KNF (or close to it).
189
190 A new structure has been introduced..
191 Called scsi_link, one of these exists for every bus/target/lun
192 that has a driver attached to it.
193 It has links to the adapter and to the driver, as well as status
194 information of global interest. (e.g. if the device is in use).
195 The use of this new structure has allowed the compaction of a
196 lot of duplicated code into a single copy (now in scsi_base.c)
197 and makes more simple the USER level scsi implimentation.
198
199 ------Tue Feb 28 07:43:17 EST 1995-----
200 dufault@hda.com: Redid configuration to support wired devices.
201 All driver entries now get bounced directly into the routines in
202 "scsi_driver" via a set of functions generated by the SCSI_ENTRIES macro
203 in scsi_conf.h. This lets us put the common code in a single place.
Cache object: 9cb6de64ffdb67638a8c77d554520695
|