0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 ============================
0004 SCSI subsystem documentation
0005 ============================
0006
0007 The Linux Documentation Project (LDP) maintains a document describing
0008 the SCSI subsystem in the Linux kernel (lk) 2.4 series. See:
0009 http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO . The LDP has single
0010 and multiple page HTML renderings as well as postscript and pdf.
0011 It can also be found at:
0012 http://web.archive.org/web/%2E/http://www.torque.net/scsi/SCSI-2.4-HOWTO
0013
0014 Notes on using modules in the SCSI subsystem
0015 ============================================
0016 The scsi support in the linux kernel can be modularized in a number of
0017 different ways depending upon the needs of the end user. To understand
0018 your options, we should first define a few terms.
0019
0020 The scsi-core (also known as the "mid level") contains the core of scsi
0021 support. Without it you can do nothing with any of the other scsi drivers.
0022 The scsi core support can be a module (scsi_mod.o), or it can be built into
0023 the kernel. If the core is a module, it must be the first scsi module
0024 loaded, and if you unload the modules, it will have to be the last one
0025 unloaded. In practice the modprobe and rmmod commands (and "autoclean")
0026 will enforce the correct ordering of loading and unloading modules in
0027 the SCSI subsystem.
0028
0029 The individual upper and lower level drivers can be loaded in any order
0030 once the scsi core is present in the kernel (either compiled in or loaded
0031 as a module). The disk driver (sd_mod.o), cdrom driver (sr_mod.o),
0032 tape driver [1]_ (st.o) and scsi generics driver (sg.o) represent the upper
0033 level drivers to support the various assorted devices which can be
0034 controlled. You can for example load the tape driver to use the tape drive,
0035 and then unload it once you have no further need for the driver (and release
0036 the associated memory).
0037
0038 The lower level drivers are the ones that support the individual cards that
0039 are supported for the hardware platform that you are running under. Those
0040 individual cards are often called Host Bus Adapters (HBAs). For example the
0041 aic7xxx.o driver is used to control all recent SCSI controller cards from
0042 Adaptec. Almost all lower level drivers can be built either as modules or
0043 built into the kernel.
0044
0045 .. [1] There is a variant of the st driver for controlling OnStream tape
0046 devices. Its module name is osst.o .
0047