mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-03 10:29:15 +00:00
a0520fbaac
1. Support for fixed device configuration 2. Hoisted common code to scsi_driver 3. SCSI busses dynamically allocated at boot 4. Reorg'd for LKMs
204 lines
6.8 KiB
Plaintext
204 lines
6.8 KiB
Plaintext
WARNING: This file was not fully updated by dufault@hda.com when
|
|
changing the configuration. See the end for new notes.
|
|
|
|
This release consists of the following files
|
|
(relative to the base of the source tree )
|
|
|
|
share/man/man4/scsi.4 <-useful general info
|
|
share/man/man4/uk.4
|
|
share/man/man4/su.4
|
|
share/man/man4/ch.4
|
|
share/man/man4/cd.4
|
|
share/man/man4/sd.4
|
|
share/man/man4/st.4 <--READ THIS IF YOU USE TAPES!
|
|
sbin/scsi/procargs.c
|
|
sbin/scsi/scsi.c
|
|
sbin/scsi/scsi.1
|
|
sbin/scsi/Makefile
|
|
sbin/st/Makefile
|
|
sbin/st/st.1
|
|
sbin/st/st.c
|
|
sys/sys/chio.h
|
|
sys/sys/cdio.h
|
|
sys/sys/mtio.h
|
|
sys/sys/scsiio.h
|
|
sys/i386/conf/EXAMPLE
|
|
sys/i386/isa/ultra14f.c <-runs 14f and 34f
|
|
sys/i386/isa/ultra_all.c.beta <-beta version, runs 14f,24f and 34f
|
|
sys/i386/isa/bt742a.c
|
|
sys/i386/isa/aha1742.c
|
|
sys/i386/isa/aha1542.c
|
|
sys/scsi/syspatches
|
|
sys/scsi/syspatches/conf.c
|
|
sys/scsi/syspatches/user_scsi.diffs
|
|
sys/scsi/syspatches/MAKEDEV.diff
|
|
sys/scsi/syspatches/isa.c.patch
|
|
sys/scsi/syspatches/README
|
|
sys/scsi/uk.c
|
|
sys/scsi/su.c
|
|
sys/scsi/st.c
|
|
sys/scsi/sd.c
|
|
sys/scsi/ch.c
|
|
sys/scsi/cd.c
|
|
sys/scsi/scsi_ioctl.c
|
|
sys/scsi/scsi_base.c
|
|
sys/scsi/scsiconf.c
|
|
sys/scsi/scsi_tape.h
|
|
sys/scsi/scsi_disk.h
|
|
sys/scsi/scsi_changer.h
|
|
sys/scsi/scsi_cd.h
|
|
sys/scsi/scsi_all.h
|
|
sys/scsi/scsi_debug.h
|
|
sys/scsi/scsiconf.h
|
|
sys/scsi/README <--this file
|
|
|
|
notice sys/scsi/sg.c and sys/sys/sgio.h have been removed
|
|
|
|
|
|
----------------------------------------------------------------
|
|
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 *
|
|
Generic scsi-II scanners *
|
|
Exabyte tape changer device.
|
|
GENERIC SCSI DEVICES (user generated scsi commands)
|
|
----------------------------------------------------------------
|
|
|
|
|
|
There are also working bottom end drivers for:
|
|
----------------------------------------------------------------
|
|
adaptec 1542 (and 1742 in 1542 mode)
|
|
bustec 742a (apparently works for VESA version (445S?))(and 747?)
|
|
adaptec 174x (note NOT 27xx)
|
|
Ultrastore 14f (works for 34f (VESA version))
|
|
Ultrastore 24f RSN (Beta version included here)
|
|
----------------------------------------------------------------
|
|
|
|
|
|
################## 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 TTT LLL B= scsi bus number, T = target number, L = LUN.
|
|
|
|
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)
|
|
In addition, the scsi(1) command allows the operator ask for a
|
|
reprobe at any time. Newly found devices will be configured in. Any
|
|
device that does not map to a known device type is attached to the
|
|
'unknown' (uk) driver.
|
|
|
|
|
|
--------------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
|
|
|
|
see st(1) and st(4) for info on tape devices.
|
|
|
|
--------------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).
|
|
General scsi ioctls are found in sys/scsiio.h.
|
|
|
|
-----------cd-rom-----------------
|
|
The cd rom driver ha been tested by a number of people and
|
|
grefen@convex.com 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.
|
|
***IMPORTANT***
|
|
Cdrom audio is only suported at all for cdroms that use SCSI2 audio
|
|
definitions.
|
|
|
|
-------------media changer---------------
|
|
Once again courtesy of grefen@convex.com (in germany)
|
|
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!
|
|
|
|
|
|
---------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.
|
|
|
|
---------even more recent changes:--------
|
|
|
|
rewrote almost the entire thing..
|
|
|
|
|
|
|
|
------Mon Oct 11 22:20:25 WST 1993------
|
|
|
|
Code is now all KNF (or close to it).
|
|
|
|
A new structure has been introduced..
|
|
Called scsi_link, one of these exists for every bus/target/lun
|
|
that has a driver attached to it.
|
|
It has links to the adapter and to the driver, as well as status
|
|
information of global interest. (e.g. if the device is in use).
|
|
The use of this new structure has allowed the compaction of a
|
|
lot of duplicated code into a single copy (now in scsi_base.c)
|
|
and makes more simple the USER level scsi implimentation.
|
|
|
|
------Tue Feb 28 07:43:17 EST 1995-----
|
|
dufault@hda.com: Redid configuration to support wired devices.
|
|
All driver entries now get bounced directly into the routines in
|
|
"scsi_driver" via a set of functions generated by the SCSI_ENTRIES macro
|
|
in scsi_conf.h. This lets us put the common code in a single place.
|