^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) SCSI subsystem documentation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) The Linux Documentation Project (LDP) maintains a document describing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) the SCSI subsystem in the Linux kernel (lk) 2.4 series. See:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO . The LDP has single
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) and multiple page HTML renderings as well as postscript and pdf.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) It can also be found at:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) http://web.archive.org/web/%2E/http://www.torque.net/scsi/SCSI-2.4-HOWTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) Notes on using modules in the SCSI subsystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) ============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) The scsi support in the linux kernel can be modularized in a number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) different ways depending upon the needs of the end user. To understand
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) your options, we should first define a few terms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) The scsi-core (also known as the "mid level") contains the core of scsi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) support. Without it you can do nothing with any of the other scsi drivers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) The scsi core support can be a module (scsi_mod.o), or it can be built into
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) the kernel. If the core is a module, it must be the first scsi module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) loaded, and if you unload the modules, it will have to be the last one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) unloaded. In practice the modprobe and rmmod commands (and "autoclean")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) will enforce the correct ordering of loading and unloading modules in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) the SCSI subsystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) The individual upper and lower level drivers can be loaded in any order
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) once the scsi core is present in the kernel (either compiled in or loaded
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) as a module). The disk driver (sd_mod.o), cdrom driver (sr_mod.o),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) tape driver [1]_ (st.o) and scsi generics driver (sg.o) represent the upper
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) level drivers to support the various assorted devices which can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) controlled. You can for example load the tape driver to use the tape drive,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) and then unload it once you have no further need for the driver (and release
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) the associated memory).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) The lower level drivers are the ones that support the individual cards that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) are supported for the hardware platform that you are running under. Those
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) individual cards are often called Host Bus Adapters (HBAs). For example the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) aic7xxx.o driver is used to control all recent SCSI controller cards from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) Adaptec. Almost all lower level drivers can be built either as modules or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) built into the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) .. [1] There is a variant of the st driver for controlling OnStream tape
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) devices. Its module name is osst.o .
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)