Linux scsi driver overview

iscsi initiator

config ISCSI_TCP
	tristate "iSCSI Initiator over TCP/IP"
	depends on SCSI && INET
	select CRYPTO
	select CRYPTO_MD5
	select CRYPTO_CRC32C
	select SCSI_ISCSI_ATTRS
	help
	 The iSCSI Driver provides a host with the ability to access storage
	 through an IP network. The driver uses the iSCSI protocol to transport
	 SCSI requests and responses over a TCP/IP network between the host
	 (the "initiator") and "targets".  Architecturally, the iSCSI driver
	 combines with the host's TCP/IP stack, network drivers, and Network
	 Interface Card (NIC) to provide the same functions as a SCSI or a
	 Fibre Channel (FC) adapter driver with a Host Bus Adapter (HBA).

	 To compile this driver as a module, choose M here: the
	 module will be called iscsi_tcp.

	 The userspace component needed to initialize the driver, documentation,
	 and sample configuration files can be found here:	
obj-$(CONFIG_ISCSI_TCP) 	+= libiscsi.o	libiscsi_tcp.o iscsi_tcp.o
config SCSI_ISCSI_ATTRS
	tristate "iSCSI Transport Attributes"
	depends on SCSI && NET
	select BLK_DEV_BSGLIB
	help
	  If you wish to export transport-specific information about
	  each attached iSCSI device to sysfs, say Y.
	  Otherwise, say N.
obj-$(CONFIG_SCSI_ISCSI_ATTRS)	+= scsi_transport_iscsi.o




FC initiator

source "drivers/scsi/qla2xxx/Kconfig"

obj-$(CONFIG_SCSI_QLA_FC)+= qla2xxx/


config SCSI_DEBUG
	tristate "SCSI debugging host simulator"
	depends on SCSI
	select CRC_T10DIF
	help
	  This is a host adapter simulator that can simulate multiple hosts
	  each with multiple dummy SCSI devices (disks). It defaults to one
	  host adapter with one dummy SCSI disk. Each dummy disk uses kernel
	  RAM as storage (i.e. it is a ramdisk). To save space when multiple
	  dummy disks are simulated, they share the same kernel RAM for 
	  their storage. See <http://sg.danny.cz/sg/sdebug26.html> for more
	  information. This driver is primarily of use to those testing the
	  SCSI and block subsystems. If unsure, say N.

obj-$(CONFIG_SCSI_DEBUG)	+= scsi_debug.o

source "drivers/scsi/device_handler/Kconfig"

config SCSI
	tristate "SCSI device support"
	depends on BLOCK
	select SCSI_DMA if HAS_DMA
	---help---
	  If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
	  any other SCSI device under Linux, say Y and make sure that you know
	  the name of your SCSI host adapter (the card inside your computer
	  that "speaks" the SCSI protocol, also called SCSI controller),
	  because you will be asked for it.

	  You also need to say Y here if you have a device which speaks
	  the SCSI protocol.  Examples of this include the parallel port
	  version of the IOMEGA ZIP drive, USB storage devices, Fibre
	  Channel, and FireWire storage.

	  To compile this driver as a module, choose M here and read
	  <file:Documentation/scsi/scsi.txt>.
	  The module will be called scsi_mod.

	  However, do not compile this as a module if your root file system
	  (the one containing the directory /) is located on a SCSI device.
	  
obj-$(CONFIG_SCSI)		+= scsi_mod.o
scsi_mod-y			+= scsi.o hosts.o scsi_ioctl.o constants.o \
				   scsicam.o scsi_error.o scsi_lib.o
scsi_mod-$(CONFIG_SCSI_DMA)	+= scsi_lib_dma.o
scsi_mod-y			+= scsi_scan.o scsi_sysfs.o scsi_devinfo.o
scsi_mod-$(CONFIG_SCSI_NETLINK)	+= scsi_netlink.o
scsi_mod-$(CONFIG_SYSCTL)	+= scsi_sysctl.o
scsi_mod-$(CONFIG_SCSI_PROC_FS)	+= scsi_proc.o
scsi_mod-y			+= scsi_trace.o
scsi_mod-$(CONFIG_PM)		+= scsi_pm.o
config SCSI_FC_ATTRS
	tristate "FiberChannel Transport Attributes"
	depends on SCSI
	select SCSI_NETLINK
	help
	  If you wish to export transport-specific information about
	  each attached FiberChannel device to sysfs, say Y.
	  Otherwise, say N.
obj-$(CONFIG_SCSI_FC_ATTRS) 	+= scsi_transport_fc.o
config BLK_DEV_SD
	tristate "SCSI disk support"
	depends on SCSI
	select CRC_T10DIF if BLK_DEV_INTEGRITY
	---help---
	  If you want to use SCSI hard disks, Fibre Channel disks,
	  Serial ATA (SATA) or Parallel ATA (PATA) hard disks,
	  USB storage or the SCSI or parallel port version of
	  the IOMEGA ZIP drive, say Y and read the SCSI-HOWTO,
	  the Disk-HOWTO and the Multi-Disk-HOWTO, available from
	  <http://www.tldp.org/docs.html#howto>. This is NOT for SCSI
	  CD-ROMs.

	  To compile this driver as a module, choose M here and read
	  <file:Documentation/scsi/scsi.txt>.
	  The module will be called sd_mod.

	  Do not compile this driver as a module if your root file system
	  (the one containing the directory /) is located on a SCSI disk.
	  In this case, do not compile the driver for your SCSI host adapter
obj-$(CONFIG_BLK_DEV_SD)	+= sd_mod.o

sd_mod-objs	:= sd.o
sd_mod-$(CONFIG_BLK_DEV_INTEGRITY) += sd_dif.o

config CHR_DEV_SG
	tristate "SCSI generic support"
	depends on SCSI
	---help---
	  If you want to use SCSI scanners, synthesizers or CD-writers or just
	  about anything having "SCSI" in its name other than hard disks,
	  CD-ROMs or tapes, say Y here. These won't be supported by the kernel
	  directly, so you need some additional software which knows how to
	  talk to these devices using the SCSI protocol:

	  For scanners, look at SANE (<http://www.sane-project.org/>). For CD
	  writer software look at Cdrtools
	  (<http://cdrecord.berlios.de/private/cdrecord.html>)
	  and for burning a "disk at once": CDRDAO
	  (<http://cdrdao.sourceforge.net/>). Cdparanoia is a high
	  quality digital reader of audio CDs (<http://www.xiph.org/paranoia/>).
	  For other devices, it's possible that you'll have to write the
	  driver software yourself. Please read the file
	  <file:Documentation/scsi/scsi-generic.txt> for more information.

	  To compile this driver as a module, choose M here and read
	  <file:Documentation/scsi/scsi.txt>. The module will be called sg.

	  If unsure, say N.
obj-$(CONFIG_CHR_DEV_SG)	+= sg.o

config SCSI_ENCLOSURE
	tristate "SCSI Enclosure Support"
	depends on SCSI && ENCLOSURE_SERVICES
	help
	  Enclosures are devices sitting on or in SCSI backplanes that
	  manage devices.  If you have a disk cage, the chances are that
	  it has an enclosure device.  Selecting this option will just allow
	  certain enclosure conditions to be reported and is not required.
obj-$(CONFIG_SCSI_ENCLOSURE)	+= ses.o

===========================================================================================

SCSI Disk

sd.c sd_dif.c

obj-$(CONFIG_SCSI)		+= scsi_mod.o
scsi_mod-y			+= scsi.o hosts.o scsi_ioctl.o constants.o \
				   scsicam.o scsi_error.o scsi_lib.o
scsi_mod-$(CONFIG_SCSI_DMA)	+= scsi_lib_dma.o
scsi_mod-y			+= scsi_scan.o scsi_sysfs.o scsi_devinfo.o
scsi_mod-$(CONFIG_SCSI_NETLINK)	+= scsi_netlink.o
scsi_mod-$(CONFIG_SYSCTL)	+= scsi_sysctl.o
scsi_mod-$(CONFIG_SCSI_PROC_FS)	+= scsi_proc.o
scsi_mod-y			+= scsi_trace.o
scsi_mod-$(CONFIG_PM)		+= scsi_pm.o

sg.c

scsi_transport_fc.c

scsi_transport_iscsi.c

scsi_debug.c


FC Initiator Driver

obj-$(CONFIG_SCSI_QLA_FC)+= qla2xxx/

config SCSI_QLA_FC
	tristate "QLogic QLA2XXX Fibre Channel Support"
	depends on PCI && SCSI
	select SCSI_FC_ATTRS
	select FW_LOADER
	---help---
	This qla2xxx driver supports all QLogic Fibre Channel
	PCI and PCIe host adapters.

	By default, firmware for the ISP parts will be loaded
	via the Firmware Loader interface.

	ISP               Firmware Filename
	----------        -----------------
	21xx              ql2100_fw.bin
	22xx              ql2200_fw.bin
	2300, 2312, 6312  ql2300_fw.bin
	2322, 6322        ql2322_fw.bin
	24xx, 54xx        ql2400_fw.bin
	25xx              ql2500_fw.bin

	Upon request, the driver caches the firmware image until
	the driver is unloaded.

	Firmware images can be retrieved from:

		http://ldriver.qlogic.com/firmware/

	They are also included in the linux-firmware tree as well.
qla2xxx-y := qla_os.o qla_init.o qla_mbx.o qla_iocb.o qla_isr.o qla_gs.o \
qla_dbg.o qla_sup.o qla_attr.o qla_mid.o qla_dfs.o qla_bsg.o \
        qla_nx.o qla_mr.o qla_nx2.o qla_target.o
obj-$(CONFIG_SCSI_QLA_FC) += qla2xxx.o



ISCSI Initiator driver

obj-$(CONFIG_ISCSI_TCP) 	+= libiscsi.o	libiscsi_tcp.o iscsi_tcp.o


你可能感兴趣的:(linux,driver,SCSI)