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