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