Файловый менеджер - Редактировать - /var/www/html/scsi.zip
Ðазад
PK ! �� # # cxlflash/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only # # IBM CXL-attached Flash Accelerator SCSI Driver # config CXLFLASH tristate "Support for IBM CAPI Flash" depends on PCI && SCSI && (CXL || OCXL) && EEH select IRQ_POLL default m help Allows CAPI Accelerated IO to Flash If unsure, say N. PK ! u\-� � cxlflash/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_CXLFLASH) += cxlflash.o cxlflash-y += main.o superpipe.o lunmgt.o vlun.o cxlflash-$(CONFIG_CXL) += cxl_hw.o cxlflash-$(CONFIG_OCXL) += ocxl_hw.o PK ! ���G G qla4xxx/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_QLA_ISCSI tristate "QLogic ISP4XXX and ISP82XX host adapter family support" depends on PCI && SCSI && NET select SCSI_ISCSI_ATTRS select ISCSI_BOOT_SYSFS help This driver supports the QLogic 40xx (ISP4XXX), 8022 (ISP82XX) and 8032 (ISP83XX) iSCSI host adapter family. PK ! �W�� � qla4xxx/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only qla4xxx-y := ql4_os.o ql4_init.o ql4_mbx.o ql4_iocb.o ql4_isr.o \ ql4_nx.o ql4_nvram.o ql4_dbg.o ql4_attr.o ql4_bsg.o ql4_83xx.o obj-$(CONFIG_SCSI_QLA_ISCSI) += qla4xxx.o PK ! P)�� � elx/Kconfignu �[��� config SCSI_EFCT tristate "Emulex Fibre Channel Target" depends on PCI && SCSI depends on TARGET_CORE depends on SCSI_FC_ATTRS select CRC_T10DIF help The efct driver provides enhanced SCSI Target Mode support for specific SLI-4 adapters. PK ! Z{��a a elx/Makefilenu �[��� #// SPDX-License-Identifier: GPL-2.0 #/* # * Copyright (C) 2021 Broadcom. All Rights Reserved. The term # * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. # */ obj-$(CONFIG_SCSI_EFCT) := efct.o efct-objs := efct/efct_driver.o efct/efct_io.o efct/efct_scsi.o \ efct/efct_xport.o efct/efct_hw.o efct/efct_hw_queues.o \ efct/efct_lio.o efct/efct_unsol.o efct-objs += libefc/efc_cmds.o libefc/efc_domain.o libefc/efc_fabric.o \ libefc/efc_node.o libefc/efc_nport.o libefc/efc_device.o \ libefc/efclib.o libefc/efc_sm.o libefc/efc_els.o efct-objs += libefc_sli/sli4.o PK ! RB}�5 5 be2iscsi/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config BE2ISCSI tristate "Emulex 10Gbps iSCSI - BladeEngine 2" depends on PCI && SCSI && NET select SCSI_ISCSI_ATTRS select ISCSI_BOOT_SYSFS select IRQ_POLL help This driver implements the iSCSI functionality for Emulex 10Gbps Storage adapter - BladeEngine 2. PK ! 2�"� � be2iscsi/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only # # Makefile to build the iSCSI driver for Emulex OneConnect. # # obj-$(CONFIG_BE2ISCSI) += be2iscsi.o be2iscsi-y := be_iscsi.o be_main.o be_mgmt.o be_cmds.o PK ! ���7R R bfa/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_SCSI_BFA_FC) := bfa.o bfa-y := bfad.o bfad_im.o bfad_attr.o bfad_debugfs.o bfad_bsg.o bfa-y += bfa_ioc.o bfa_ioc_cb.o bfa_ioc_ct.o bfa_hw_cb.o bfa_hw_ct.o bfa-y += bfa_fcs.o bfa_fcs_lport.o bfa_fcs_rport.o bfa_fcs_fcpim.o bfa_fcbuild.o bfa-y += bfa_port.o bfa_fcpim.o bfa_core.o bfa_svc.o PK ! �R�D device_handler/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only # # SCSI Device Handler configuration # menuconfig SCSI_DH bool "SCSI Device Handlers" depends on SCSI default n help SCSI Device Handlers provide device specific support for devices utilized in multipath configurations. Say Y here to select support for specific hardware. config SCSI_DH_RDAC tristate "LSI RDAC Device Handler" depends on SCSI_DH && SCSI help If you have a LSI RDAC select y. Otherwise, say N. config SCSI_DH_HP_SW tristate "HP/COMPAQ MSA Device Handler" depends on SCSI_DH && SCSI help If you have a HP/COMPAQ MSA device that requires START_STOP to be sent to start it and cannot upgrade the firmware then select y. Otherwise, say N. config SCSI_DH_EMC tristate "EMC CLARiiON Device Handler" depends on SCSI_DH && SCSI help If you have a EMC CLARiiON select y. Otherwise, say N. config SCSI_DH_ALUA tristate "SPC-3 ALUA Device Handler" depends on SCSI_DH && SCSI help SCSI Device handler for generic SPC-3 Asymmetric Logical Unit Access (ALUA). PK ! {�D^� � device_handler/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only # # SCSI Device Handler # obj-$(CONFIG_SCSI_DH_RDAC) += scsi_dh_rdac.o obj-$(CONFIG_SCSI_DH_HP_SW) += scsi_dh_hp_sw.o obj-$(CONFIG_SCSI_DH_EMC) += scsi_dh_emc.o obj-$(CONFIG_SCSI_DH_ALUA) += scsi_dh_alua.o PK ! Jwܣ � fcoe/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_FCOE) += fcoe.o obj-$(CONFIG_LIBFCOE) += libfcoe.o libfcoe-objs := fcoe_ctlr.o fcoe_transport.o fcoe_sysfs.o PK ! Kj-� � lpfc/Makefilenu �[��� #/******************************************************************* # * This file is part of the Emulex Linux Device Driver for * # * Fibre Channel Host Bus Adapters. * # * Copyright (C) 2017-2018 Broadcom. All Rights Reserved. The term * # * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. * # * Copyright (C) 2004-2012 Emulex. All rights reserved. * # * EMULEX and SLI are trademarks of Emulex. * # * www.broadcom.com * # * * # * This program is free software; you can redistribute it and/or * # * modify it under the terms of version 2 of the GNU General * # * Public License as published by the Free Software Foundation. * # * This program is distributed in the hope that it will be useful. * # * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND * # * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, * # * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE * # * DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD * # * TO BE LEGALLY INVALID. See the GNU General Public License for * # * more details, a copy of which can be found in the file COPYING * # * included with this package. * # *******************************************************************/ ###################################################################### ccflags-$(GCOV) := -fprofile-arcs -ftest-coverage ccflags-$(GCOV) += -O0 ifdef WARNINGS_BECOME_ERRORS ccflags-y += -Werror endif obj-$(CONFIG_SCSI_LPFC) := lpfc.o lpfc-objs := lpfc_mem.o lpfc_sli.o lpfc_ct.o lpfc_els.o \ lpfc_hbadisc.o lpfc_init.o lpfc_mbox.o lpfc_nportdisc.o \ lpfc_scsi.o lpfc_attr.o lpfc_vport.o lpfc_debugfs.o lpfc_bsg.o \ lpfc_nvme.o lpfc_nvmet.o PK ! eN��� � sym53c8xx_2/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only # Makefile for the NCR/SYMBIOS/LSI 53C8XX PCI SCSI controllers driver. sym53c8xx-objs := sym_fw.o sym_glue.o sym_hipd.o sym_malloc.o sym_nvram.o obj-$(CONFIG_SCSI_SYM53C8XX_2) := sym53c8xx.o PK ! ϡ��� � aacraid/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only # Adaptec aacraid obj-$(CONFIG_SCSI_AACRAID) := aacraid.o aacraid-objs := linit.o aachba.o commctrl.o comminit.o commsup.o \ dpcsup.o rx.o sa.o rkt.o nark.o src.o PK ! � P� � ufs/Kconfignu �[��� # # Kernel configuration file for the UFS Host Controller # # This code is based on drivers/scsi/ufs/Kconfig # Copyright (C) 2011-2013 Samsung India Software Operations # # Authors: # Santosh Yaraganavi <santosh.sy@samsung.com> # Vinayak Holikatti <h.vinayak@samsung.com> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # See the COPYING file in the top-level directory or visit # <http://www.gnu.org/licenses/gpl-2.0.html> # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # This program is provided "AS IS" and "WITH ALL FAULTS" and # without warranty of any kind. You are solely responsible for # determining the appropriateness of using and distributing # the program and assume all risks associated with your exercise # of rights with respect to the program, including but not limited # to infringement of third party rights, the risks and costs of # program errors, damage to or loss of data, programs or equipment, # and unavailability or interruption of operations. Under no # circumstances will the contributor of this Program be liable for # any damages of any kind arising from your use or distribution of # this program. config SCSI_UFSHCD tristate "Universal Flash Storage Controller Driver Core" depends on SCSI && SCSI_DMA select PM_DEVFREQ select DEVFREQ_GOV_SIMPLE_ONDEMAND select NLS help This selects the support for UFS devices in Linux, say Y and make sure that you know the name of your UFS host adapter (the card inside your computer that "speaks" the UFS protocol, also called UFS Host Controller), because you will be asked for it. The module will be called ufshcd. To compile this driver as a module, choose M here and read <file:Documentation/scsi/ufs.rst>. However, do not compile this as a module if your root file system (the one containing the directory /) is located on a UFS device. config SCSI_UFSHCD_PCI tristate "PCI bus based UFS Controller support" depends on SCSI_UFSHCD && PCI help This selects the PCI UFS Host Controller Interface. Select this if you have UFS Host Controller with PCI Interface. If you have a controller with this interface, say Y or M here. If unsure, say N. config SCSI_UFS_DWC_TC_PCI tristate "DesignWare pci support using a G210 Test Chip" depends on SCSI_UFSHCD_PCI help Synopsys Test Chip is a PHY for prototyping purposes. If unsure, say N. config SCSI_UFSHCD_PLATFORM tristate "Platform bus based UFS Controller support" depends on SCSI_UFSHCD depends on HAS_IOMEM help This selects the UFS host controller support. Select this if you have an UFS controller on Platform bus. If you have a controller with this interface, say Y or M here. If unsure, say N. config SCSI_UFS_CDNS_PLATFORM tristate "Cadence UFS Controller platform driver" depends on SCSI_UFSHCD_PLATFORM help This selects the Cadence-specific additions to UFSHCD platform driver. If unsure, say N. config SCSI_UFS_DWC_TC_PLATFORM tristate "DesignWare platform support using a G210 Test Chip" depends on SCSI_UFSHCD_PLATFORM help Synopsys Test Chip is a PHY for prototyping purposes. If unsure, say N. config SCSI_UFS_QCOM tristate "QCOM specific hooks to UFS controller platform driver" depends on SCSI_UFSHCD_PLATFORM && ARCH_QCOM select QCOM_SCM if SCSI_UFS_CRYPTO select RESET_CONTROLLER help This selects the QCOM specific additions to UFSHCD platform driver. UFS host on QCOM needs some vendor specific configuration before accessing the hardware which includes PHY configuration and vendor specific registers. Select this if you have UFS controller on QCOM chipset. If unsure, say N. config SCSI_UFS_MEDIATEK tristate "Mediatek specific hooks to UFS controller platform driver" depends on SCSI_UFSHCD_PLATFORM && ARCH_MEDIATEK select PHY_MTK_UFS select RESET_TI_SYSCON help This selects the Mediatek specific additions to UFSHCD platform driver. UFS host on Mediatek needs some vendor specific configuration before accessing the hardware which includes PHY configuration and vendor specific registers. Select this if you have UFS controller on Mediatek chipset. If unsure, say N. config SCSI_UFS_HISI tristate "Hisilicon specific hooks to UFS controller platform driver" depends on (ARCH_HISI || COMPILE_TEST) && SCSI_UFSHCD_PLATFORM help This selects the Hisilicon specific additions to UFSHCD platform driver. Select this if you have UFS controller on Hisilicon chipset. If unsure, say N. config SCSI_UFS_TI_J721E tristate "TI glue layer for Cadence UFS Controller" depends on OF && HAS_IOMEM && (ARCH_K3 || COMPILE_TEST) help This selects driver for TI glue layer for Cadence UFS Host Controller IP. Selects this if you have TI platform with UFS controller. If unsure, say N. config SCSI_UFS_BSG bool "Universal Flash Storage BSG device node" depends on SCSI_UFSHCD select BLK_DEV_BSGLIB help Universal Flash Storage (UFS) is SCSI transport specification for accessing flash storage on digital cameras, mobile phones and consumer electronic devices. A UFS controller communicates with a UFS device by exchanging UFS Protocol Information Units (UPIUs). UPIUs can not only be used as a transport layer for the SCSI protocol but are also used by the UFS native command set. This transport driver supports exchanging UFS protocol information units with a UFS device. See also the ufshcd driver, which is a SCSI driver that supports UFS devices. Select this if you need a bsg device node for your UFS controller. If unsure, say N. config SCSI_UFS_EXYNOS tristate "EXYNOS specific hooks to UFS controller platform driver" depends on SCSI_UFSHCD_PLATFORM && (ARCH_EXYNOS || COMPILE_TEST) help This selects the EXYNOS specific additions to UFSHCD platform driver. UFS host on EXYNOS includes HCI and UNIPRO layer, and associates with UFS-PHY driver. Select this if you have UFS host controller on EXYNOS chipset. If unsure, say N. config SCSI_UFS_CRYPTO bool "UFS Crypto Engine Support" depends on SCSI_UFSHCD && BLK_INLINE_ENCRYPTION help Enable Crypto Engine Support in UFS. Enabling this makes it possible for the kernel to use the crypto capabilities of the UFS device (if present) to perform crypto operations on data being transferred to/from the device. config SCSI_UFS_HPB bool "Support UFS Host Performance Booster" depends on SCSI_UFSHCD help The UFS HPB feature improves random read performance. It caches L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB read command by piggybacking physical page number for bypassing FTL (flash translation layer)'s L2P address translation. config SCSI_UFS_FAULT_INJECTION bool "UFS Fault Injection Support" depends on SCSI_UFSHCD && FAULT_INJECTION help Enable fault injection support in the UFS driver. This makes it easier to test the UFS error handler and abort handler. PK ! �J�p p ufs/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 # UFSHCD makefile # The link order is important here. ufshcd-core must initialize # before vendor drivers. obj-$(CONFIG_SCSI_UFSHCD) += ufshcd-core.o ufshcd-core-y += ufshcd.o ufs-sysfs.o ufshcd-core-$(CONFIG_DEBUG_FS) += ufs-debugfs.o ufshcd-core-$(CONFIG_SCSI_UFS_BSG) += ufs_bsg.o ufshcd-core-$(CONFIG_SCSI_UFS_CRYPTO) += ufshcd-crypto.o ufshcd-core-$(CONFIG_SCSI_UFS_HPB) += ufshpb.o ufshcd-core-$(CONFIG_SCSI_UFS_FAULT_INJECTION) += ufs-fault-injection.o obj-$(CONFIG_SCSI_UFS_DWC_TC_PCI) += tc-dwc-g210-pci.o ufshcd-dwc.o tc-dwc-g210.o obj-$(CONFIG_SCSI_UFS_DWC_TC_PLATFORM) += tc-dwc-g210-pltfrm.o ufshcd-dwc.o tc-dwc-g210.o obj-$(CONFIG_SCSI_UFS_CDNS_PLATFORM) += cdns-pltfrm.o obj-$(CONFIG_SCSI_UFS_QCOM) += ufs_qcom.o ufs_qcom-y += ufs-qcom.o ufs_qcom-$(CONFIG_SCSI_UFS_CRYPTO) += ufs-qcom-ice.o obj-$(CONFIG_SCSI_UFS_EXYNOS) += ufs-exynos.o obj-$(CONFIG_SCSI_UFSHCD_PCI) += ufshcd-pci.o obj-$(CONFIG_SCSI_UFSHCD_PLATFORM) += ufshcd-pltfrm.o obj-$(CONFIG_SCSI_UFS_HISI) += ufs-hisi.o obj-$(CONFIG_SCSI_UFS_MEDIATEK) += ufs-mediatek.o obj-$(CONFIG_SCSI_UFS_TI_J721E) += ti-j721e-ufs.o PK ! 5���� � pcmcia/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only # # PCMCIA SCSI adapter configuration # menuconfig SCSI_LOWLEVEL_PCMCIA bool "PCMCIA SCSI adapter support" depends on SCSI!=n && PCMCIA!=n # drivers have problems when build in, so require modules if SCSI_LOWLEVEL_PCMCIA && SCSI && PCMCIA && m config PCMCIA_AHA152X tristate "Adaptec AHA152X PCMCIA support" select SCSI_SPI_ATTRS help Say Y here if you intend to attach this type of PCMCIA SCSI host adapter to your computer. To compile this driver as a module, choose M here: the module will be called aha152x_cs. config PCMCIA_FDOMAIN tristate "Future Domain PCMCIA support" select SCSI_FDOMAIN help Say Y here if you intend to attach this type of PCMCIA SCSI host adapter to your computer. To compile this driver as a module, choose M here: the module will be called fdomain_cs. config PCMCIA_NINJA_SCSI tristate "NinjaSCSI-3 / NinjaSCSI-32Bi (16bit) PCMCIA support" depends on !64BIT || COMPILE_TEST help If you intend to attach this type of PCMCIA SCSI host adapter to your computer, say Y here and read <file:Documentation/scsi/NinjaSCSI.rst>. Supported cards: NinjaSCSI-3: (version string: "WBT","NinjaSCSI-3","R1.0") IO-DATA PCSC-FP ALPHA DATA AD-PCS201 CyQ've SFC-201 LOGITECH LPM-SCSI2E Pioneer PCR-PR24's card I-O DATA CDPS-PX24's card (PCSC-F) Panasonic KXL-RW10AN CD-RW's card etc. NinjaSCSI-32Bit (in 16bit mode): [Workbit (version string: "WORKBIT","UltraNinja-16","1")] Jazz SCP050 [I-O DATA (OEM) (version string: "IO DATA","CBSC16 ","1")] I-O DATA CBSC-II [Kyusyu Matsushita Kotobuki (OEM) (version string: "KME ","SCSI-CARD-001","1")] KME KXL-820AN's card HP M820e CDRW's card etc. To compile this driver as a module, choose M here: the module will be called nsp_cs. config PCMCIA_QLOGIC tristate "Qlogic PCMCIA support" help Say Y here if you intend to attach this type of PCMCIA SCSI host adapter to your computer. To compile this driver as a module, choose M here: the module will be called qlogic_cs. config PCMCIA_SYM53C500 tristate "Symbios 53c500 PCMCIA support" help Say Y here if you have a New Media Bus Toaster or other PCMCIA SCSI adapter based on the Symbios 53c500 controller. To compile this driver as a module, choose M here: the module will be called sym53c500_cs. endif # SCSI_LOWLEVEL_PCMCIA PK ! �� � pcmcia/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 ccflags-y := -I $(srctree)/drivers/scsi # 16-bit client drivers obj-$(CONFIG_PCMCIA_QLOGIC) += qlogic_cs.o obj-$(CONFIG_PCMCIA_FDOMAIN) += fdomain_cs.o obj-$(CONFIG_PCMCIA_AHA152X) += aha152x_cs.o obj-$(CONFIG_PCMCIA_NINJA_SCSI) += nsp_cs.o obj-$(CONFIG_PCMCIA_SYM53C500) += sym53c500_cs.o aha152x_cs-objs := aha152x_stub.o aha152x_core.o qlogic_cs-objs := qlogic_stub.o PK ! r��� � qla2xxx/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_QLA_FC tristate "QLogic QLA2XXX Fibre Channel Support" depends on PCI && SCSI depends on SCSI_FC_ATTRS depends on NVME_FC || !NVME_FC select FW_LOADER select BTREE 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. config TCM_QLA2XXX tristate "TCM_QLA2XXX fabric module for QLogic 24xx+ series target mode HBAs" depends on SCSI_QLA_FC && TARGET_CORE depends on LIBFC select BTREE default n help Say Y here to enable the TCM_QLA2XXX fabric module for QLogic 24xx+ series target mode HBAs if TCM_QLA2XXX config TCM_QLA2XXX_DEBUG bool "TCM_QLA2XXX fabric module DEBUG mode for QLogic 24xx+ series target mode HBAs" default n help Say Y here to enable the TCM_QLA2XXX fabric module DEBUG for QLogic 24xx+ series target mode HBAs This will include code to enable the SCSI command jammer endif PK ! @�^�R R qla2xxx/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 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 qla_tmpl.o qla_nvme.o \ qla_edif.o obj-$(CONFIG_SCSI_QLA_FC) += qla2xxx.o obj-$(CONFIG_TCM_QLA2XXX) += tcm_qla2xxx.o PK ! IS�� � libfc/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 # $Id: Makefile obj-$(CONFIG_LIBFC) += libfc.o libfc-objs := \ fc_libfc.o \ fc_disc.o \ fc_exch.o \ fc_elsct.o \ fc_frame.o \ fc_lport.o \ fc_rport.o \ fc_fcp.o \ fc_npiv.o PK ! X"�ի � mvsas/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only # # Kernel configuration file for 88SE64XX/88SE94XX SAS/SATA driver. # # Copyright 2007 Red Hat, Inc. # Copyright 2008 Marvell. <kewei@marvell.com> # Copyright 2009-2011 Marvell. <yuxiangl@marvell.com> # config SCSI_MVSAS tristate "Marvell 88SE64XX/88SE94XX SAS/SATA support" depends on PCI select SCSI_SAS_LIBSAS select FW_LOADER help This driver supports Marvell's SAS/SATA 3Gb/s PCI-E 88SE64XX and 6Gb/s PCI-E 88SE94XX chip based host adapters. config SCSI_MVSAS_DEBUG bool "Compile in debug mode" default y depends on SCSI_MVSAS help Compiles the 88SE64XX/88SE94XX driver in debug mode. In debug mode, the driver prints some messages to the console. config SCSI_MVSAS_TASKLET bool "Support for interrupt tasklet" default n depends on SCSI_MVSAS help Compiles the 88SE64xx/88SE94xx driver in interrupt tasklet mode.In this mode, the interrupt will schedule a tasklet. PK ! ��k�� � mvsas/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only # # Makefile for Marvell 88SE64xx/88SE84xx SAS/SATA driver. # # Copyright 2007 Red Hat, Inc. # Copyright 2008 Marvell. <kewei@marvell.com> # Copyright 2009-2011 Marvell. <yuxiangl@marvell.com> # ccflags-$(CONFIG_SCSI_MVSAS_DEBUG) := -DMV_DEBUG obj-$(CONFIG_SCSI_MVSAS) += mvsas.o mvsas-y += mv_init.o \ mv_sas.o \ mv_64xx.o \ mv_94xx.o PK ! �� fnic/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_FCOE_FNIC) += fnic.o fnic-y := \ fnic_attrs.o \ fnic_isr.o \ fnic_main.o \ fnic_res.o \ fnic_fcs.o \ fnic_scsi.o \ fnic_trace.o \ fnic_debugfs.o \ vnic_cq.o \ vnic_dev.o \ vnic_intr.o \ vnic_rq.o \ vnic_wq_copy.o \ vnic_wq.o PK ! �{ { arm/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only # # SCSI driver configuration for Acorn # config SCSI_ACORNSCSI_3 tristate "Acorn SCSI card (aka30) support" depends on ARCH_ACORN && SCSI select SCSI_SPI_ATTRS help This enables support for the Acorn SCSI card (aka30). If you have an Acorn system with one of these, say Y. If unsure, say N. config SCSI_ACORNSCSI_SYNC bool "Support SCSI 2 Synchronous Transfers" depends on SCSI_ACORNSCSI_3 help Say Y here to enable synchronous transfer negotiation with all targets on the Acorn SCSI card. In general, this improves performance; however some SCSI devices don't implement it properly, so the safe answer is N. config SCSI_ARXESCSI tristate "ARXE SCSI support" depends on ARCH_ACORN && SCSI help Around 1991, Arxe Systems Limited released a high density floppy disc interface for the Acorn Archimedes range, to allow the use of HD discs from the then new A5000 on earlier models. This interface was either sold on its own or with an integral SCSI controller. Technical details on this NCR53c94-based device are available at <http://www.cryton.demon.co.uk/acornbits/scsi_arxe.html> Say Y here to compile in support for the SCSI controller. config SCSI_CUMANA_2 tristate "CumanaSCSI II support" depends on ARCH_ACORN && SCSI help This enables support for the Cumana SCSI II card. If you have an Acorn system with one of these, say Y. If unsure, say N. config SCSI_EESOXSCSI tristate "EESOX support" depends on ARCH_ACORN && SCSI help This enables support for the EESOX SCSI card. If you have an Acorn system with one of these, say Y, otherwise say N. config SCSI_POWERTECSCSI tristate "PowerTec support" depends on ARCH_ACORN && SCSI help This enables support for the Powertec SCSI card on Acorn systems. If you have one of these, say Y. If unsure, say N. comment "The following drivers are not fully supported" depends on ARCH_ACORN config SCSI_CUMANA_1 tristate "CumanaSCSI I support" depends on ARCH_ACORN && SCSI select SCSI_SPI_ATTRS help This enables support for the Cumana SCSI I card. If you have an Acorn system with one of these, say Y. If unsure, say N. config SCSI_OAK1 tristate "Oak SCSI support" depends on ARCH_ACORN && SCSI select SCSI_SPI_ATTRS help This enables support for the Oak SCSI card. If you have an Acorn system with one of these, say Y. If unsure, say N. PK ! wü8% % arm/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 # # Makefile for drivers/scsi/arm # acornscsi_mod-objs := acornscsi.o acornscsi-io.o obj-$(CONFIG_SCSI_ACORNSCSI_3) += acornscsi_mod.o queue.o msgqueue.o obj-$(CONFIG_SCSI_ARXESCSI) += arxescsi.o fas216.o queue.o msgqueue.o obj-$(CONFIG_SCSI_CUMANA_1) += cumana_1.o obj-$(CONFIG_SCSI_CUMANA_2) += cumana_2.o fas216.o queue.o msgqueue.o obj-$(CONFIG_SCSI_OAK1) += oak.o obj-$(CONFIG_SCSI_POWERTECSCSI) += powertec.o fas216.o queue.o msgqueue.o obj-$(CONFIG_SCSI_EESOXSCSI) += eesox.o fas216.o queue.o msgqueue.o PK ! C�D�� � mpt3sas/Kconfignu �[��� # # Kernel configuration file for the MPT3SAS # # This code is based on drivers/scsi/mpt3sas/Kconfig # Copyright (C) 2012-2014 LSI Corporation # (mailto:DL-MPTFusionLinux@lsi.com) # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # NO WARRANTY # THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT # LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is # solely responsible for determining the appropriateness of using and # distributing the Program and assumes all risks associated with its # exercise of rights under this Agreement, including but not limited to # the risks and costs of program errors, damage to or loss of data, # programs or equipment, and unavailability or interruption of operations. # DISCLAIMER OF LIABILITY # NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE # USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED # HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. config SCSI_MPT3SAS tristate "LSI MPT Fusion SAS 3.0 & SAS 2.0 Device Driver" depends on PCI && SCSI select SCSI_SAS_ATTRS select RAID_ATTRS select IRQ_POLL help This driver supports PCI-Express SAS 12Gb/s Host Adapters. config SCSI_MPT2SAS_MAX_SGE int "LSI MPT Fusion SAS 2.0 Max number of SG Entries (16 - 256)" depends on PCI && SCSI && SCSI_MPT3SAS default "128" range 16 256 help This option allows you to specify the maximum number of scatter- gather entries per I/O. The driver default is 128, which matches MAX_PHYS_SEGMENTS in most kernels. However in SuSE kernels this can be 256. However, it may decreased down to 16. Decreasing this parameter will reduce memory requirements on a per controller instance. config SCSI_MPT3SAS_MAX_SGE int "LSI MPT Fusion SAS 3.0 Max number of SG Entries (16 - 256)" depends on PCI && SCSI && SCSI_MPT3SAS default "128" range 16 256 help This option allows you to specify the maximum number of scatter- gather entries per I/O. The driver default is 128, which matches MAX_PHYS_SEGMENTS in most kernels. However in SuSE kernels this can be 256. However, it may decreased down to 16. Decreasing this parameter will reduce memory requirements on a per controller instance. config SCSI_MPT2SAS tristate "Legacy MPT2SAS config option" default n select SCSI_MPT3SAS depends on PCI && SCSI help Dummy config option for backwards compatibility: configure the MPT3SAS driver instead. PK ! ��4t& & mpt3sas/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 # mpt3sas makefile obj-$(CONFIG_SCSI_MPT3SAS) += mpt3sas.o mpt3sas-y += mpt3sas_base.o \ mpt3sas_config.o \ mpt3sas_scsih.o \ mpt3sas_transport.o \ mpt3sas_ctl.o \ mpt3sas_trigger_diag.o \ mpt3sas_warpdrive.o \ mpt3sas_debugfs.o \ PK ! sV�w� � mpi3mr/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-or-later config SCSI_MPI3MR tristate "Broadcom MPI3 Storage Controller Device Driver" depends on PCI && SCSI select BLK_DEV_BSGLIB help MPI3 based Storage & RAID Controllers Driver. PK ! =�b�x x mpi3mr/Makefilenu �[��� # mpi3mr makefile obj-$(CONFIG_SCSI_MPI3MR) += mpi3mr.o mpi3mr-y += mpi3mr_os.o \ mpi3mr_fw.o \ mpi3mr_app.o \ PK ! =��ڗ � csiostor/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_CHELSIO_FCOE tristate "Chelsio Communications FCoE support" depends on PCI && SCSI depends on SCSI_FC_ATTRS select FW_LOADER help This driver supports FCoE Offload functionality over Chelsio T4-based 10Gb Converged Network Adapters. For general information about Chelsio and our products, visit our website at <http://www.chelsio.com>. For customer support, please visit our customer support page at <http://www.chelsio.com/support.html>. Please send feedback to <linux-bugs@chelsio.com>. To compile this driver as a module choose M here; the module will be called csiostor. PK ! |O�< < csiostor/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 # ## Chelsio FCoE driver # ## ccflags-y += -I$(srctree)/drivers/net/ethernet/chelsio/cxgb4 obj-$(CONFIG_SCSI_CHELSIO_FCOE) += csiostor.o csiostor-objs := csio_attr.o csio_init.o csio_lnode.o csio_scsi.o \ csio_hw.o csio_hw_t5.o csio_isr.o \ csio_mb.o csio_rnode.o csio_wr.o PK ! g �4$ $ pm8001/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 # # Kernel configuration file for the PM8001 SAS/SATA 8x6G based HBA driver # # Copyright (C) 2008-2009 USI Co., Ltd. obj-$(CONFIG_SCSI_PM8001) += pm80xx.o pm80xx-y += pm8001_init.o \ pm8001_sas.o \ pm8001_ctl.o \ pm8001_hwi.o \ pm80xx_hwi.o PK ! Za?�! ! isci/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_SCSI_ISCI) += isci.o isci-objs := init.o phy.o request.o \ remote_device.o port.o \ host.o task.o probe_roms.o \ remote_node_context.o \ remote_node_table.o \ unsolicited_frame_control.o \ port_config.o \ PK ! ��@�� � libsas/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only # # Kernel configuration file for the SAS Class # # Copyright (C) 2005 Adaptec, Inc. All rights reserved. # Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com> # config SCSI_SAS_LIBSAS tristate "SAS Domain Transport Attributes" depends on SCSI select SCSI_SAS_ATTRS help This provides transport specific helpers for SAS drivers which use the domain device construct (like the aic94xxx). config SCSI_SAS_ATA bool "ATA support for libsas (requires libata)" depends on SCSI_SAS_LIBSAS depends on ATA = y || ATA = SCSI_SAS_LIBSAS select SATA_HOST help Builds in ATA support into libsas. Will necessitate the loading of libata along with libsas. config SCSI_SAS_HOST_SMP bool "Support for SMP interpretation for SAS hosts" default y depends on SCSI_SAS_LIBSAS help Allows sas hosts to receive SMP frames. Selecting this option builds an SMP interpreter into libsas. Say N here if you want to save the few kb this consumes. PK ! H���& & libsas/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only # # Kernel Makefile for the libsas helpers # # Copyright (C) 2005 Adaptec, Inc. All rights reserved. # Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com> # obj-$(CONFIG_SCSI_SAS_LIBSAS) += libsas.o libsas-y += sas_init.o \ sas_phy.o \ sas_port.o \ sas_event.o \ sas_discover.o \ sas_expander.o \ sas_scsi_host.o \ sas_task.o libsas-$(CONFIG_SCSI_SAS_ATA) += sas_ata.o libsas-$(CONFIG_SCSI_SAS_HOST_SMP) += sas_host_smp.o ccflags-y := -DDEBUG -I$(srctree)/drivers/scsi PK ! �xgu; ; snic/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_SCSI_SNIC) += snic.o snic-y := \ snic_attrs.o \ snic_main.o \ snic_res.o \ snic_isr.o \ snic_ctl.o \ snic_io.o \ snic_scsi.o \ snic_disc.o \ vnic_cq.o \ vnic_intr.o \ vnic_dev.o \ vnic_wq.o snic-$(CONFIG_SCSI_SNIC_DEBUG_FS) += snic_debugfs.o snic_trc.o PK ! ;���� � esas2r/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_ESAS2R tristate "ATTO Technology's ExpressSAS RAID adapter driver" depends on PCI && SCSI help This driver supports the ATTO ExpressSAS R6xx SAS/SATA RAID controllers. PK ! �5y�� � esas2r/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_SCSI_ESAS2R) += esas2r.o esas2r-objs := esas2r_log.o esas2r_disc.o esas2r_flash.o esas2r_init.o \ esas2r_int.o esas2r_io.o esas2r_ioctl.o esas2r_targdb.o \ esas2r_vda.o esas2r_main.o PK ! �'���� �� Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only menu "SCSI device support" config SCSI_MOD tristate default y if SCSI=n || SCSI=y default m if SCSI=m config RAID_ATTRS tristate "RAID Transport Class" default n depends on BLOCK depends on SCSI_MOD help Provides RAID config SCSI_COMMON tristate config SCSI tristate "SCSI device support" depends on BLOCK select SCSI_DMA if HAS_DMA select SG_POOL select SCSI_COMMON select BLK_DEV_BSG_COMMON if BLK_DEV_BSG 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.rst>. 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. config SCSI_DMA bool default n config SCSI_ESP_PIO bool config SCSI_NETLINK bool default n depends on NET config SCSI_PROC_FS bool "legacy /proc/scsi/ support" depends on SCSI && PROC_FS default y help This option enables support for the various files in /proc/scsi. In Linux 2.6 this has been superseded by files in sysfs but many legacy applications rely on this. If unsure say Y. comment "SCSI support type (disk, tape, CD-ROM)" depends on SCSI config BLK_DEV_SD tristate "SCSI disk support" depends on SCSI select BLK_DEV_INTEGRITY_T10 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.rst>. 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 (below) as a module either. config CHR_DEV_ST tristate "SCSI tape support" depends on SCSI help If you want to use a SCSI tape drive under Linux, say Y and read the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>, and <file:Documentation/scsi/st.rst> in the kernel source. This is NOT for SCSI CD-ROMs. To compile this driver as a module, choose M here and read <file:Documentation/scsi/scsi.rst>. The module will be called st. config BLK_DEV_SR tristate "SCSI CDROM support" depends on SCSI && BLK_DEV select CDROM help If you want to use a CD or DVD drive attached to your computer by SCSI, FireWire, USB or ATAPI, say Y and read the SCSI-HOWTO and the CDROM-HOWTO at <http://www.tldp.org/docs.html#howto>. Make sure to say Y or M to "ISO 9660 CD-ROM file system support". To compile this driver as a module, choose M here and read <file:Documentation/scsi/scsi.rst>. The module will be called sr_mod. 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://cdrtools.sourceforge.net/>) 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.rst> for more information. To compile this driver as a module, choose M here and read <file:Documentation/scsi/scsi.rst>. The module will be called sg. If unsure, say N. config BLK_DEV_BSG bool "/dev/bsg support (SG v4)" depends on SCSI default y help Saying Y here will enable generic SG (SCSI generic) v4 support for any SCSI device. This option is required by UDEV to access device serial numbers, etc. If unsure, say Y. config CHR_DEV_SCH tristate "SCSI media changer support" depends on SCSI help This is a driver for SCSI media changers. Most common devices are tape libraries and MOD/CDROM jukeboxes. *Real* jukeboxes, you don't need this for those tiny 6-slot cdrom changers. Media changers are listed as "Type: Medium Changer" in /proc/scsi/scsi. If you have such hardware and want to use it with linux, say Y here. Check <file:Documentation/scsi/scsi-changer.rst> for details. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read <file:Documentation/kbuild/modules.rst> and <file:Documentation/scsi/scsi.rst>. The module will be called ch.o. If unsure, say N. config SCSI_ENCLOSURE tristate "SCSI Enclosure Support" depends on SCSI && ENCLOSURE_SERVICES depends on m || SCSI_SAS_ATTRS != m 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. config SCSI_CONSTANTS bool "Verbose SCSI error reporting (kernel size += 36K)" depends on SCSI help The error messages regarding your SCSI hardware will be easier to understand if you say Y here; it will enlarge your kernel by about 36 KB. If in doubt, say Y. config SCSI_LOGGING bool "SCSI logging facility" depends on SCSI help This turns on a logging facility that can be used to debug a number of SCSI related problems. If you say Y here, no logging output will appear by default, but you can enable logging by saying Y to "/proc file system support" and "Sysctl support" below and executing the command echo <bitmask> > /proc/sys/dev/scsi/logging_level where <bitmask> is a four byte value representing the logging type and logging level for each type of logging selected. There are a number of logging types and you can find them in the source at <file:drivers/scsi/scsi_logging.h>. The logging levels are also described in that file and they determine the verbosity of the logging for each logging type. If you say N here, it may be harder to track down some types of SCSI problems. If you say Y here your kernel will be somewhat larger, but there should be no noticeable performance impact as long as you have logging turned off. config SCSI_SCAN_ASYNC bool "Asynchronous SCSI scanning" depends on SCSI help The SCSI subsystem can probe for devices while the rest of the system continues booting, and even probe devices on different busses in parallel, leading to a significant speed-up. You can override this choice by specifying "scsi_mod.scan=sync" or async on the kernel's command line. Note that this setting also affects whether resuming from system suspend will be performed asynchronously. menu "SCSI Transports" depends on SCSI config SCSI_SPI_ATTRS tristate "Parallel SCSI (SPI) Transport Attributes" depends on SCSI help If you wish to export transport-specific information about each attached SCSI device to sysfs, say Y. Otherwise, say N. config SCSI_FC_ATTRS tristate "FiberChannel Transport Attributes" depends on SCSI && NET select BLK_DEV_BSGLIB select SCSI_NETLINK help If you wish to export transport-specific information about each attached FiberChannel device to sysfs, say Y. Otherwise, say N. 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. config SCSI_SAS_ATTRS tristate "SAS Transport Attributes" depends on SCSI select BLK_DEV_BSGLIB help If you wish to export transport-specific information about each attached SAS device to sysfs, say Y. source "drivers/scsi/libsas/Kconfig" config SCSI_SRP_ATTRS tristate "SRP Transport Attributes" depends on SCSI help If you wish to export transport-specific information about each attached SRP device to sysfs, say Y. endmenu menuconfig SCSI_LOWLEVEL bool "SCSI low-level drivers" depends on SCSI!=n default y if SCSI_LOWLEVEL && SCSI 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: http://open-iscsi.org config ISCSI_BOOT_SYSFS tristate "iSCSI Boot Sysfs Interface" default n help This option enables support for exposing iSCSI boot information via sysfs to userspace. If you wish to export this information, say Y. Otherwise, say N. source "drivers/scsi/cxgbi/Kconfig" source "drivers/scsi/bnx2i/Kconfig" source "drivers/scsi/bnx2fc/Kconfig" source "drivers/scsi/be2iscsi/Kconfig" source "drivers/scsi/cxlflash/Kconfig" config SGIWD93_SCSI tristate "SGI WD93C93 SCSI Driver" depends on SGI_HAS_WD93 && SCSI help If you have a Western Digital WD93 SCSI controller on an SGI MIPS system, say Y. Otherwise, say N. config BLK_DEV_3W_XXXX_RAID tristate "3ware 5/6/7/8xxx ATA-RAID support" depends on PCI && SCSI help 3ware is the only hardware ATA-Raid product in Linux to date. This card is 2,4, or 8 channel master mode support only. SCSI support required!!! <http://www.3ware.com/> Please read the comments at the top of <file:drivers/scsi/3w-xxxx.c>. config SCSI_HPSA tristate "HP Smart Array SCSI driver" depends on PCI && SCSI select CHECK_SIGNATURE select SCSI_SAS_ATTRS help This driver supports HP Smart Array Controllers (circa 2009). It is a SCSI alternative to the cciss driver, which is a block driver. Anyone wishing to use HP Smart Array controllers who would prefer the devices be presented to linux as SCSI devices, rather than as generic block devices should say Y here. config SCSI_3W_9XXX tristate "3ware 9xxx SATA-RAID support" depends on PCI && SCSI help This driver supports the 9000 series 3ware SATA-RAID cards. <http://www.amcc.com> Please read the comments at the top of <file:drivers/scsi/3w-9xxx.c>. config SCSI_3W_SAS tristate "3ware 97xx SAS/SATA-RAID support" depends on PCI && SCSI help This driver supports the LSI 3ware 9750 6Gb/s SAS/SATA-RAID cards. <http://www.lsi.com> Please read the comments at the top of <file:drivers/scsi/3w-sas.c>. config SCSI_ACARD tristate "ACARD SCSI support" depends on PCI && SCSI help This driver supports the ACARD SCSI host adapter. Support Chip <ATP870 ATP876 ATP880 ATP885> To compile this driver as a module, choose M here: the module will be called atp870u. config SCSI_AHA152X tristate "Adaptec AHA152X/2825 support" depends on ISA && SCSI select SCSI_SPI_ATTRS select CHECK_SIGNATURE help This is a driver for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 SCSI host adapters. It also works for the AVA-1505, but the IRQ etc. must be manually specified in this case. It is explained in section 3.3 of the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>. You might also want to read the file <file:Documentation/scsi/aha152x.rst>. To compile this driver as a module, choose M here: the module will be called aha152x. config SCSI_AHA1542 tristate "Adaptec AHA1542 support" depends on ISA && SCSI && ISA_DMA_API help This is support for a SCSI host adapter. It is explained in section 3.4 of the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>. Note that Trantor was purchased by Adaptec, and some former Trantor products are being sold under the Adaptec name. If it doesn't work out of the box, you may have to change some settings in <file:drivers/scsi/aha1542.h>. To compile this driver as a module, choose M here: the module will be called aha1542. config SCSI_AHA1740 tristate "Adaptec AHA1740 support" depends on EISA && SCSI help This is support for a SCSI host adapter. It is explained in section 3.5 of the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>. If it doesn't work out of the box, you may have to change some settings in <file:drivers/scsi/aha1740.h>. To compile this driver as a module, choose M here: the module will be called aha1740. config SCSI_AACRAID tristate "Adaptec AACRAID support" depends on SCSI && PCI help This driver supports a variety of Dell, HP, Adaptec, IBM and ICP storage products. For a list of supported products, refer to <file:Documentation/scsi/aacraid.rst>. To compile this driver as a module, choose M here: the module will be called aacraid. source "drivers/scsi/aic7xxx/Kconfig.aic7xxx" source "drivers/scsi/aic7xxx/Kconfig.aic79xx" source "drivers/scsi/aic94xx/Kconfig" source "drivers/scsi/hisi_sas/Kconfig" source "drivers/scsi/mvsas/Kconfig" config SCSI_MVUMI tristate "Marvell UMI driver" depends on SCSI && PCI help Module for Marvell Universal Message Interface(UMI) driver To compile this driver as a module, choose M here: the module will be called mvumi. config SCSI_DPT_I2O tristate "Adaptec I2O RAID support " depends on SCSI && PCI help This driver supports all of Adaptec's I2O based RAID controllers as well as the DPT SmartRaid V cards. This is an Adaptec maintained driver by Deanna Bonds. See <file:Documentation/scsi/dpti.rst>. To compile this driver as a module, choose M here: the module will be called dpt_i2o. config SCSI_ADVANSYS tristate "AdvanSys SCSI support" depends on SCSI depends on ISA || EISA || PCI depends on ISA_DMA_API || !ISA help This is a driver for all SCSI host adapters manufactured by AdvanSys. It is documented in the kernel source in <file:drivers/scsi/advansys.c>. To compile this driver as a module, choose M here: the module will be called advansys. config SCSI_ARCMSR tristate "ARECA (ARC11xx/12xx/13xx/16xx) SATA/SAS RAID Host Adapter" depends on PCI && SCSI help This driver supports all of ARECA's SATA/SAS RAID controller cards. This is an ARECA-maintained driver by Erich Chen. If you have any problems, please mail to: <erich@areca.com.tw>. Areca supports Linux RAID config tools. Please link <http://www.areca.com.tw> To compile this driver as a module, choose M here: the module will be called arcmsr (modprobe arcmsr). source "drivers/scsi/esas2r/Kconfig" source "drivers/scsi/megaraid/Kconfig.megaraid" source "drivers/scsi/mpt3sas/Kconfig" source "drivers/scsi/mpi3mr/Kconfig" source "drivers/scsi/smartpqi/Kconfig" source "drivers/scsi/ufs/Kconfig" config SCSI_HPTIOP tristate "HighPoint RocketRAID 3xxx/4xxx Controller support" depends on SCSI && PCI help This option enables support for HighPoint RocketRAID 3xxx/4xxx controllers. To compile this driver as a module, choose M here; the module will be called hptiop. If unsure, say N. config SCSI_BUSLOGIC tristate "BusLogic SCSI support" depends on PCI && SCSI && VIRT_TO_BUS help This is support for BusLogic MultiMaster and FlashPoint SCSI Host Adapters. Consult the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>, and the files <file:Documentation/scsi/BusLogic.rst> and <file:Documentation/scsi/FlashPoint.rst> for more information. Note that support for FlashPoint is only available for 32-bit x86 configurations. To compile this driver as a module, choose M here: the module will be called BusLogic. config SCSI_FLASHPOINT bool "FlashPoint support" depends on SCSI_BUSLOGIC && PCI help This option allows you to add FlashPoint support to the BusLogic SCSI driver. The FlashPoint SCCB Manager code is substantial, so users of MultiMaster Host Adapters may not wish to include it. config SCSI_MYRB tristate "Mylex DAC960/DAC1100 PCI RAID Controller (Block Interface)" depends on PCI select RAID_ATTRS help This driver adds support for the Mylex DAC960, AcceleRAID, and eXtremeRAID PCI RAID controllers. This driver supports the older, block based interface. This driver is a reimplementation of the original DAC960 driver. If you have used the DAC960 driver you should enable this module. To compile this driver as a module, choose M here: the module will be called myrb. config SCSI_MYRS tristate "Mylex DAC960/DAC1100 PCI RAID Controller (SCSI Interface)" depends on PCI depends on !CPU_BIG_ENDIAN || COMPILE_TEST select RAID_ATTRS help This driver adds support for the Mylex DAC960, AcceleRAID, and eXtremeRAID PCI RAID controllers. This driver supports the newer, SCSI-based interface only. This driver is a reimplementation of the original DAC960 driver. If you have used the DAC960 driver you should enable this module. To compile this driver as a module, choose M here: the module will be called myrs. config VMWARE_PVSCSI tristate "VMware PVSCSI driver support" depends on PCI && SCSI && X86 help This driver supports VMware's para virtualized SCSI HBA. To compile this driver as a module, choose M here: the module will be called vmw_pvscsi. config XEN_SCSI_FRONTEND tristate "XEN SCSI frontend driver" depends on SCSI && XEN select XEN_XENBUS_FRONTEND help The XEN SCSI frontend driver allows the kernel to access SCSI Devices within another guest OS (usually Dom0). Only needed if the kernel is running in a XEN guest and generic SCSI access to a device is needed. config HYPERV_STORAGE tristate "Microsoft Hyper-V virtual storage driver" depends on SCSI && HYPERV depends on m || SCSI_FC_ATTRS != m default HYPERV help Select this option to enable the Hyper-V virtual storage driver. config LIBFC tristate "LibFC module" depends on SCSI_FC_ATTRS select CRC32 help Fibre Channel library module config LIBFCOE tristate "LibFCoE module" depends on LIBFC help Library for Fibre Channel over Ethernet module config FCOE tristate "FCoE module" depends on PCI depends on LIBFCOE help Fibre Channel over Ethernet module config FCOE_FNIC tristate "Cisco FNIC Driver" depends on PCI && X86 depends on LIBFCOE help This is support for the Cisco PCI-Express FCoE HBA. To compile this driver as a module, choose M here and read <file:Documentation/scsi/scsi.rst>. The module will be called fnic. config SCSI_SNIC tristate "Cisco SNIC Driver" depends on PCI && SCSI help This is support for the Cisco PCI-Express SCSI HBA. To compile this driver as a module, choose M here and read <file:Documentation/scsi/scsi.rst>. The module will be called snic. config SCSI_SNIC_DEBUG_FS bool "Cisco SNIC Driver Debugfs Support" depends on SCSI_SNIC && DEBUG_FS help This enables to list debugging information from SNIC Driver available via debugfs file system config SCSI_DMX3191D tristate "DMX3191D SCSI support" depends on PCI && SCSI select SCSI_SPI_ATTRS help This is support for Domex DMX3191D SCSI Host Adapters. To compile this driver as a module, choose M here: the module will be called dmx3191d. config SCSI_FDOMAIN tristate depends on SCSI config SCSI_FDOMAIN_PCI tristate "Future Domain TMC-3260/AHA-2920A PCI SCSI support" depends on PCI && SCSI select SCSI_FDOMAIN help This is support for Future Domain's PCI SCSI host adapters (TMC-3260) and other adapters with PCI bus based on the Future Domain chipsets (Adaptec AHA-2920A). NOTE: Newer Adaptec AHA-2920C boards use the Adaptec AIC-7850 chip and should use the aic7xxx driver ("Adaptec AIC7xxx chipset SCSI controller support"). This Future Domain driver works with the older Adaptec AHA-2920A boards with a Future Domain chip on them. To compile this driver as a module, choose M here: the module will be called fdomain_pci. config SCSI_FDOMAIN_ISA tristate "Future Domain 16xx ISA SCSI support" depends on ISA && SCSI select CHECK_SIGNATURE select SCSI_FDOMAIN help This is support for Future Domain's 16-bit SCSI host adapters (TMC-1660/1680, TMC-1650/1670, TMC-1610M/MER/MEX) and other adapters with ISA bus based on the Future Domain chipsets (Quantum ISA-200S, ISA-250MG; and at least one IBM board). To compile this driver as a module, choose M here: the module will be called fdomain_isa. config SCSI_ISCI tristate "Intel(R) C600 Series Chipset SAS Controller" depends on PCI && SCSI depends on X86 select SCSI_SAS_LIBSAS help This driver supports the 6Gb/s SAS capabilities of the storage control unit found in the Intel(R) C600 series chipset. config SCSI_GENERIC_NCR5380 tristate "Generic NCR5380/53c400 SCSI ISA card support" depends on ISA && SCSI && HAS_IOPORT_MAP select SCSI_SPI_ATTRS help This is a driver for old ISA card SCSI controllers based on a NCR 5380, 53C80, 53C400, 53C400A, or DTC 436 device. Most boards such as the Trantor T130 fit this category, as do various 8-bit and 16-bit ISA cards bundled with SCSI scanners. To compile this driver as a module, choose M here: the module will be called g_NCR5380. config SCSI_IPS tristate "IBM ServeRAID support" depends on PCI && SCSI help This is support for the IBM ServeRAID hardware RAID controllers. See <http://www.developer.ibm.com/welcome/netfinity/serveraid.html> and <http://www-947.ibm.com/support/entry/portal/docdisplay?brand=5000008&lndocid=SERV-RAID> for more information. If this driver does not work correctly without modification please contact the author by email at <ipslinux@adaptec.com>. To compile this driver as a module, choose M here: the module will be called ips. config SCSI_IBMVSCSI tristate "IBM Virtual SCSI support" depends on PPC_PSERIES select SCSI_SRP_ATTRS help This is the IBM POWER Virtual SCSI Client To compile this driver as a module, choose M here: the module will be called ibmvscsi. config SCSI_IBMVSCSIS tristate "IBM Virtual SCSI Server support" depends on PPC_PSERIES && TARGET_CORE && SCSI && PCI help This is the IBM POWER Virtual SCSI Target Server This driver uses the SRP protocol for communication between servers guest and/or the host that run on the same server. More information on VSCSI protocol can be found at www.power.org The userspace configuration needed to initialize the driver can be be found here: https://github.com/powervm/ibmvscsis/wiki/Configuration To compile this driver as a module, choose M here: the module will be called ibmvscsis. config SCSI_IBMVFC tristate "IBM Virtual FC support" depends on PPC_PSERIES && SCSI depends on SCSI_FC_ATTRS help This is the IBM POWER Virtual FC Client To compile this driver as a module, choose M here: the module will be called ibmvfc. config SCSI_IBMVFC_TRACE bool "enable driver internal trace" depends on SCSI_IBMVFC default y help If you say Y here, the driver will trace all commands issued to the adapter. Performance impact is minimal. Trace can be dumped using /sys/class/scsi_host/hostXX/trace. config SCSI_INITIO tristate "Initio 9100U(W) support" depends on PCI && SCSI help This is support for the Initio 91XXU(W) SCSI host adapter. Please read the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>. To compile this driver as a module, choose M here: the module will be called initio. config SCSI_INIA100 tristate "Initio INI-A100U2W support" depends on PCI && SCSI help This is support for the Initio INI-A100U2W SCSI host adapter. Please read the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>. To compile this driver as a module, choose M here: the module will be called a100u2w. config SCSI_PPA tristate "IOMEGA parallel port (ppa - older drives)" depends on SCSI && PARPORT_PC help This driver supports older versions of IOMEGA's parallel port ZIP drive (a 100 MB removable media device). Note that you can say N here if you have the SCSI version of the ZIP drive: it will be supported automatically if you said Y to the generic "SCSI disk support", above. If you have the ZIP Plus drive or a more recent parallel port ZIP drive (if the supplied cable with the drive is labeled "AutoDetect") then you should say N here and Y to "IOMEGA parallel port (imm - newer drives)", below. For more information about this driver and how to use it you should read the file <file:Documentation/scsi/ppa.rst>. You should also read the SCSI-HOWTO, which is available from <http://www.tldp.org/docs.html#howto>. If you use this driver, you will still be able to use the parallel port for other tasks, such as a printer; it is safe to compile both drivers into the kernel. To compile this driver as a module, choose M here: the module will be called ppa. config SCSI_IMM tristate "IOMEGA parallel port (imm - newer drives)" depends on SCSI && PARPORT_PC help This driver supports newer versions of IOMEGA's parallel port ZIP drive (a 100 MB removable media device). Note that you can say N here if you have the SCSI version of the ZIP drive: it will be supported automatically if you said Y to the generic "SCSI disk support", above. If you have the ZIP Plus drive or a more recent parallel port ZIP drive (if the supplied cable with the drive is labeled "AutoDetect") then you should say Y here; if you have an older ZIP drive, say N here and Y to "IOMEGA Parallel Port (ppa - older drives)", above. For more information about this driver and how to use it you should read the file <file:Documentation/scsi/ppa.rst>. You should also read the SCSI-HOWTO, which is available from <http://www.tldp.org/docs.html#howto>. If you use this driver, you will still be able to use the parallel port for other tasks, such as a printer; it is safe to compile both drivers into the kernel. To compile this driver as a module, choose M here: the module will be called imm. config SCSI_IZIP_EPP16 bool "ppa/imm option - Use slow (but safe) EPP-16" depends on SCSI_PPA || SCSI_IMM help EPP (Enhanced Parallel Port) is a standard for parallel ports which allows them to act as expansion buses that can handle up to 64 peripheral devices. Some parallel port chipsets are slower than their motherboard, and so we have to control the state of the chipset's FIFO queue every now and then to avoid data loss. This will be done if you say Y here. Generally, saying Y is the safe option and slows things down a bit. config SCSI_IZIP_SLOW_CTR bool "ppa/imm option - Assume slow parport control register" depends on SCSI_PPA || SCSI_IMM help Some parallel ports are known to have excessive delays between changing the parallel port control register and good data being available on the parallel port data/status register. This option forces a small delay (1.0 usec to be exact) after changing the control register to let things settle out. Enabling this option may result in a big drop in performance but some very old parallel ports (found in 386 vintage machines) will not work properly. Generally, saying N is fine. config SCSI_LASI700 tristate "HP Lasi SCSI support for 53c700/710" depends on GSC && SCSI select SCSI_SPI_ATTRS help This is a driver for the SCSI controller in the Lasi chip found in many PA-RISC workstations & servers. If you do not know whether you have a Lasi chip, it is safe to say "Y" here. config SCSI_SNI_53C710 tristate "SNI RM SCSI support for 53c710" depends on SNI_RM && SCSI select SCSI_SPI_ATTRS select 53C700_LE_ON_BE help This is a driver for the onboard SCSI controller found in older SNI RM workstations & servers. config 53C700_LE_ON_BE bool depends on SCSI_LASI700 || SCSI_SNI_53C710 default y config SCSI_STEX tristate "Promise SuperTrak EX Series support" depends on PCI && SCSI help This driver supports Promise SuperTrak EX series storage controllers. Promise provides Linux RAID configuration utility for these controllers. Please visit <http://www.promise.com> to download. To compile this driver as a module, choose M here: the module will be called stex. config 53C700_BE_BUS bool depends on SCSI_A4000T || SCSI_ZORRO7XX || MVME16x_SCSI || BVME6000_SCSI default y config SCSI_SYM53C8XX_2 tristate "SYM53C8XX Version 2 SCSI support" depends on PCI && SCSI select SCSI_SPI_ATTRS help This driver supports the whole NCR53C8XX/SYM53C8XX family of PCI-SCSI controllers. It also supports the subset of LSI53C10XX Ultra-160 controllers that are based on the SYM53C8XX SCRIPTS language. It does not support LSI53C10XX Ultra-320 PCI-X SCSI controllers; you need to use the Fusion MPT driver for that. Please read <file:Documentation/scsi/sym53c8xx_2.rst> for more information. config SCSI_SYM53C8XX_DMA_ADDRESSING_MODE int "DMA addressing mode" depends on SCSI_SYM53C8XX_2 default "1" help This option only applies to PCI-SCSI chips that are PCI DAC capable (875A, 895A, 896, 1010-33, 1010-66, 1000). When set to 0, the driver will program the chip to only perform 32-bit DMA. When set to 1, the chip will be able to perform DMA to addresses up to 1TB. When set to 2, the driver supports the full 64-bit DMA address range, but can only address 16 segments of 4 GB each. This limits the total addressable range to 64 GB. Most machines with less than 4GB of memory should use a setting of 0 for best performance. If your machine has 4GB of memory or more, you should set this option to 1 (the default). The still experimental value 2 (64 bit DMA addressing with 16 x 4GB segments limitation) can be used on systems that require PCI address bits past bit 39 to be set for the addressing of memory using PCI DAC cycles. config SCSI_SYM53C8XX_DEFAULT_TAGS int "Default tagged command queue depth" depends on SCSI_SYM53C8XX_2 default "16" help This is the default value of the command queue depth the driver will announce to the generic SCSI layer for devices that support tagged command queueing. This value can be changed from the boot command line. This is a soft limit that cannot exceed CONFIG_SCSI_SYM53C8XX_MAX_TAGS. config SCSI_SYM53C8XX_MAX_TAGS int "Maximum number of queued commands" depends on SCSI_SYM53C8XX_2 default "64" help This option allows you to specify the maximum number of commands that can be queued to any device, when tagged command queuing is possible. The driver supports up to 256 queued commands per device. This value is used as a compiled-in hard limit. config SCSI_SYM53C8XX_MMIO bool "Use memory mapped IO" depends on SCSI_SYM53C8XX_2 default y help Memory mapped IO is faster than Port IO. Most people should answer Y here, but some machines may have problems. If you have to answer N here, please report the problem to the maintainer. config SCSI_IPR tristate "IBM Power Linux RAID adapter support" depends on PCI && SCSI && ATA select SATA_HOST select FW_LOADER select IRQ_POLL select SGL_ALLOC help This driver supports the IBM Power Linux family RAID adapters. This includes IBM pSeries 5712, 5703, 5709, and 570A, as well as IBM iSeries 5702, 5703, 5709, and 570A. config SCSI_IPR_TRACE bool "enable driver internal trace" depends on SCSI_IPR default y help If you say Y here, the driver will trace all commands issued to the adapter. Performance impact is minimal. Trace can be dumped using /sys/bus/class/scsi_host/hostXX/trace. config SCSI_IPR_DUMP bool "enable adapter dump support" depends on SCSI_IPR default y help If you say Y here, the driver will support adapter crash dump. If you enable this support, the iprdump daemon can be used to capture adapter failure analysis information. config SCSI_ZALON tristate "Zalon SCSI support" depends on GSC && SCSI select SCSI_SPI_ATTRS help The Zalon is a GSC/HSC bus interface chip that sits between the PA-RISC processor and the NCR 53c720 SCSI controller on C100, C110, J200, J210 and some D, K & R-class machines. It's also used on the add-in Bluefish, Barracuda & Shrike SCSI cards. Say Y here if you have one of these machines or cards. config SCSI_NCR53C8XX_DEFAULT_TAGS int "default tagged command queue depth" depends on SCSI_ZALON default "8" help "Tagged command queuing" is a feature of SCSI-2 which improves performance: the host adapter can send several SCSI commands to a device's queue even if previous commands haven't finished yet. Because the device is intelligent, it can optimize its operations (like head positioning) based on its own request queue. Some SCSI devices don't implement this properly; if you want to disable this feature, enter 0 or 1 here (it doesn't matter which). The default value is 8 and should be supported by most hard disks. This value can be overridden from the boot command line using the 'tags' option as follows (example): 'ncr53c8xx=tags:4/t2t3q16/t0u2q10' will set default queue depth to 4, set queue depth to 16 for target 2 and target 3 on controller 0 and set queue depth to 10 for target 0 / lun 2 on controller 1. The normal answer therefore is to go with the default 8 and to use a boot command line option for devices that need to use a different command queue depth. There is no safe option other than using good SCSI devices. config SCSI_NCR53C8XX_MAX_TAGS int "maximum number of queued commands" depends on SCSI_ZALON default "32" help This option allows you to specify the maximum number of commands that can be queued to any device, when tagged command queuing is possible. The default value is 32. Minimum is 2, maximum is 64. Modern hard disks are able to support 64 tags and even more, but do not seem to be faster when more than 32 tags are being used. So, the normal answer here is to go with the default value 32 unless you are using very large hard disks with large cache (>= 1 MB) that are able to take advantage of more than 32 tagged commands. There is no safe option and the default answer is recommended. config SCSI_NCR53C8XX_SYNC int "synchronous transfers frequency in MHz" depends on SCSI_ZALON default "20" help The SCSI Parallel Interface-2 Standard defines 5 classes of transfer rates: FAST-5, FAST-10, FAST-20, FAST-40 and FAST-80. The numbers are respectively the maximum data transfer rates in mega-transfers per second for each class. For example, a FAST-20 Wide 16 device is able to transfer data at 20 million 16 bit packets per second for a total rate of 40 MB/s. You may specify 0 if you want to only use asynchronous data transfers. This is the safest and slowest option. Otherwise, specify a value between 5 and 80, depending on the capability of your SCSI controller. The higher the number, the faster the data transfer. Note that 80 should normally be ok since the driver decreases the value automatically according to the controller's capabilities. Your answer to this question is ignored for controllers with NVRAM, since the driver will get this information from the user set-up. It also can be overridden using a boot setup option, as follows (example): 'ncr53c8xx=sync:12' will allow the driver to negotiate for FAST-20 synchronous data transfer (20 mega-transfers per second). The normal answer therefore is not to go with the default but to select the maximum value 80 allowing the driver to use the maximum value supported by each controller. If this causes problems with your SCSI devices, you should come back and decrease the value. There is no safe option other than using good cabling, right terminations and SCSI conformant devices. config SCSI_NCR53C8XX_NO_DISCONNECT bool "not allow targets to disconnect" depends on SCSI_ZALON && SCSI_NCR53C8XX_DEFAULT_TAGS=0 help This option is only provided for safety if you suspect some SCSI device of yours to not support properly the target-disconnect feature. In that case, you would say Y here. In general however, to not allow targets to disconnect is not reasonable if there is more than 1 device on a SCSI bus. The normal answer therefore is N. config SCSI_QLOGIC_FAS tristate "Qlogic FAS SCSI support" depends on ISA && SCSI help This is a driver for the ISA, VLB, and PCMCIA versions of the Qlogic FastSCSI! cards as well as any other card based on the FASXX chip (including the Control Concepts SCSI/IDE/SIO/PIO/FDC cards). This driver does NOT support the PCI versions of these cards. The PCI versions are supported by the Qlogic ISP driver ("Qlogic ISP SCSI support"), below. Information about this driver is contained in <file:Documentation/scsi/qlogicfas.rst>. You should also read the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>. To compile this driver as a module, choose M here: the module will be called qlogicfas. config SCSI_QLOGIC_1280 tristate "Qlogic QLA 1240/1x80/1x160 SCSI support" depends on PCI && SCSI help Say Y if you have a QLogic ISP1240/1x80/1x160 SCSI host adapter. To compile this driver as a module, choose M here: the module will be called qla1280. config SCSI_QLOGICPTI tristate "PTI Qlogic, ISP Driver" depends on SBUS && SCSI help This driver supports SBUS SCSI controllers from PTI or QLogic. These controllers are known under Solaris as qpti and in the openprom as PTI,ptisp or QLGC,isp. Note that PCI QLogic SCSI controllers are driven by a different driver. To compile this driver as a module, choose M here: the module will be called qlogicpti. source "drivers/scsi/qla2xxx/Kconfig" source "drivers/scsi/qla4xxx/Kconfig" source "drivers/scsi/qedi/Kconfig" source "drivers/scsi/qedf/Kconfig" config SCSI_LPFC tristate "Emulex LightPulse Fibre Channel Support" depends on PCI && SCSI depends on CPU_FREQ depends on SCSI_FC_ATTRS depends on NVME_TARGET_FC || NVME_TARGET_FC=n depends on NVME_FC || NVME_FC=n select CRC_T10DIF select IRQ_POLL help This lpfc driver supports the Emulex LightPulse Family of Fibre Channel PCI host adapters. config SCSI_LPFC_DEBUG_FS bool "Emulex LightPulse Fibre Channel debugfs Support" depends on SCSI_LPFC && DEBUG_FS help This makes debugging information from the lpfc driver available via the debugfs filesystem. source "drivers/scsi/elx/Kconfig" config SCSI_SIM710 tristate "Simple 53c710 SCSI support (Compaq, NCR machines)" depends on EISA && SCSI select SCSI_SPI_ATTRS help This driver is for NCR53c710 based SCSI host adapters. It currently supports Compaq EISA cards. config SCSI_DC395x tristate "Tekram DC395(U/UW/F) and DC315(U) SCSI support" depends on PCI && SCSI select SCSI_SPI_ATTRS help This driver supports PCI SCSI host adapters based on the ASIC TRM-S1040 chip, e.g Tekram DC395(U/UW/F) and DC315(U) variants. This driver works, but is still in experimental status. So better have a bootable disk and a backup in case of emergency. Documentation can be found in <file:Documentation/scsi/dc395x.rst>. To compile this driver as a module, choose M here: the module will be called dc395x. config SCSI_AM53C974 tristate "Tekram DC390(T) and Am53/79C974 SCSI support (new driver)" depends on PCI && SCSI select SCSI_SPI_ATTRS help This driver supports PCI SCSI host adapters based on the Am53C974A chip, e.g. Tekram DC390(T), DawiControl 2974 and some onboard PCscsi/PCnet (Am53/79C974) solutions. This is a new implementation base on the generic esp_scsi driver. Note that this driver does NOT support Tekram DC390W/U/F, which are based on NCR/Symbios chips. Use "NCR53C8XX SCSI support" for those. To compile this driver as a module, choose M here: the module will be called am53c974. config SCSI_NSP32 tristate "Workbit NinjaSCSI-32Bi/UDE support" depends on PCI && SCSI && !64BIT help This is support for the Workbit NinjaSCSI-32Bi/UDE PCI/Cardbus SCSI host adapter. Please read the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>. To compile this driver as a module, choose M here: the module will be called nsp32. config SCSI_WD719X tristate "Western Digital WD7193/7197/7296 support" depends on PCI && SCSI select EEPROM_93CX6 help This is a driver for Western Digital WD7193, WD7197 and WD7296 PCI SCSI controllers (based on WD33C296A chip). config SCSI_DEBUG tristate "SCSI debugging host and device simulator" depends on SCSI select CRC_T10DIF help This pseudo driver simulates one or more hosts (SCSI initiators), each with one or more targets, each with one or more logical units. Defaults to one of each, creating a small RAM disk device. Many parameters found in the /sys/bus/pseudo/drivers/scsi_debug directory can be tweaked at run time. See <http://sg.danny.cz/sg/sdebug26.html> for more information. Mainly used for testing and best as a module. If unsure, say N. config SCSI_MESH tristate "MESH (Power Mac internal SCSI) support" depends on PPC32 && PPC_PMAC && SCSI help Many Power Macintoshes and clones have a MESH (Macintosh Enhanced SCSI Hardware) SCSI bus adaptor (the 7200 doesn't, but all of the other Power Macintoshes do). Say Y to include support for this SCSI adaptor. To compile this driver as a module, choose M here: the module will be called mesh. config SCSI_MESH_SYNC_RATE int "maximum synchronous transfer rate (MB/s) (0 = async)" depends on SCSI_MESH default "5" help On Power Macintoshes (and clones) where the MESH SCSI bus adaptor drives a bus which is entirely internal to the machine (such as the 7500, 7600, 8500, etc.), the MESH is capable of synchronous operation at up to 10 MB/s. On machines where the SCSI bus controlled by the MESH can have external devices connected, it is usually rated at 5 MB/s. 5 is a safe value here unless you know the MESH SCSI bus is internal only; in that case you can say 10. Say 0 to disable synchronous operation. config SCSI_MESH_RESET_DELAY_MS int "initial bus reset delay (ms) (0 = no reset)" depends on SCSI_MESH default "4000" config SCSI_MAC53C94 tristate "53C94 (Power Mac external SCSI) support" depends on PPC32 && PPC_PMAC && SCSI help On Power Macintoshes (and clones) with two SCSI buses, the external SCSI bus is usually controlled by a 53C94 SCSI bus adaptor. Older machines which only have one SCSI bus, such as the 7200, also use the 53C94. Say Y to include support for the 53C94. To compile this driver as a module, choose M here: the module will be called mac53c94. source "drivers/scsi/arm/Kconfig" config JAZZ_ESP bool "MIPS JAZZ FAS216 SCSI support" depends on MACH_JAZZ && SCSI=y select SCSI_SPI_ATTRS help This is the driver for the onboard SCSI host adapter of MIPS Magnum 4000, Acer PICA, Olivetti M700-10 and a few other identical OEM systems. config A3000_SCSI tristate "A3000 WD33C93A support" depends on AMIGA && SCSI help If you have an Amiga 3000 and have SCSI devices connected to the built-in SCSI controller, say Y. Otherwise, say N. To compile this driver as a module, choose M here: the module will be called a3000. config A2091_SCSI tristate "A2091/A590 WD33C93A support" depends on ZORRO && SCSI help If you have a Commodore A2091 SCSI controller, say Y. Otherwise, say N. To compile this driver as a module, choose M here: the module will be called a2091. config GVP11_SCSI tristate "GVP Series II WD33C93A support" depends on ZORRO && SCSI help If you have a Great Valley Products Series II SCSI controller, answer Y. Also say Y if you have a later model of GVP SCSI controller (such as the GVP A4008 or a Combo board). Otherwise, answer N. This driver does NOT work for the T-Rex series of accelerators from TekMagic and GVP-M. To compile this driver as a module, choose M here: the module will be called gvp11. config SCSI_A4000T tristate "A4000T NCR53c710 SCSI support" depends on AMIGA && SCSI select SCSI_SPI_ATTRS help If you have an Amiga 4000T and have SCSI devices connected to the built-in SCSI controller, say Y. Otherwise, say N. To compile this driver as a module, choose M here: the module will be called a4000t. config SCSI_ZORRO7XX tristate "Zorro NCR53c710 SCSI support" depends on ZORRO && SCSI select SCSI_SPI_ATTRS help Support for various NCR53c710-based SCSI controllers on Zorro expansion boards for the Amiga. This includes: - the Amiga 4091 Zorro III SCSI-2 controller, - the MacroSystem Development's WarpEngine Amiga SCSI-2 controller (info at <http://www.lysator.liu.se/amiga/ar/guide/ar310.guide?FEATURE5>), - the SCSI controller on the Phase5 Blizzard PowerUP 603e+ accelerator card for the Amiga 1200, - the SCSI controller on the GVP Turbo 040/060 accelerator. config SCSI_ZORRO_ESP tristate "Zorro ESP SCSI support" depends on ZORRO && SCSI select SCSI_SPI_ATTRS select SCSI_ESP_PIO help Support for various NCR53C9x (ESP) based SCSI controllers on Zorro expansion boards for the Amiga. This includes: - the Phase5 Blizzard 1230 II and IV SCSI controllers, - the Phase5 Blizzard 2060 SCSI controller, - the Phase5 Blizzard Cyberstorm and Cyberstorm II SCSI controllers, - the Fastlane Zorro III SCSI controller. config ATARI_SCSI tristate "Atari native SCSI support" depends on ATARI && SCSI select SCSI_SPI_ATTRS help If you have an Atari with built-in NCR5380 SCSI controller (TT, Falcon, ...) say Y to get it supported. Of course also, if you have a compatible SCSI controller (e.g. for Medusa). To compile this driver as a module, choose M here: the module will be called atari_scsi. If you also enable NVRAM support, the SCSI host's ID is taken from the setting in TT RTC NVRAM. This driver supports both styles of NCR integration into the system: the TT style (separate DMA), and the Falcon style (via ST-DMA, replacing ACSI). It does NOT support other schemes, like in the Hades (without DMA). config MAC_SCSI tristate "Macintosh NCR5380 SCSI" depends on MAC && SCSI select SCSI_SPI_ATTRS help This is the NCR 5380 SCSI controller included on most of the 68030 based Macintoshes. If you have one of these say Y and read the SCSI-HOWTO, available from <http://www.tldp.org/docs.html#howto>. config SCSI_MAC_ESP tristate "Macintosh NCR53c9[46] SCSI" depends on MAC && SCSI select SCSI_SPI_ATTRS select SCSI_ESP_PIO help This is the NCR 53c9x SCSI controller found on most of the 68040 based Macintoshes. To compile this driver as a module, choose M here: the module will be called mac_esp. config MVME147_SCSI bool "WD33C93 SCSI driver for MVME147" depends on MVME147 && SCSI=y select SCSI_SPI_ATTRS help Support for the on-board SCSI controller on the Motorola MVME147 single-board computer. config MVME16x_SCSI tristate "NCR53C710 SCSI driver for MVME16x" depends on MVME16x && SCSI select SCSI_SPI_ATTRS help The Motorola MVME162, 166, 167, 172 and 177 boards use the NCR53C710 SCSI controller chip. Almost everyone using one of these boards will want to say Y to this question. config BVME6000_SCSI tristate "NCR53C710 SCSI driver for BVME6000" depends on BVME6000 && SCSI select SCSI_SPI_ATTRS help The BVME4000 and BVME6000 boards from BVM Ltd use the NCR53C710 SCSI controller chip. Almost everyone using one of these boards will want to say Y to this question. config SUN3_SCSI tristate "Sun3 NCR5380 SCSI" depends on SUN3 && SCSI select SCSI_SPI_ATTRS help This option will enable support for the OBIO (onboard io) NCR5380 SCSI controller found in the Sun 3/50 and 3/60, as well as for "Sun3" type VME scsi controllers also based on the NCR5380. General Linux information on the Sun 3 series (now discontinued) is at <http://www.angelfire.com/ca2/tech68k/sun3.html>. config SUN3X_ESP bool "Sun3x ESP SCSI" depends on SUN3X && SCSI=y select SCSI_SPI_ATTRS help The ESP was an on-board SCSI controller used on Sun 3/80 machines. Say Y here to compile in support for it. config SCSI_SUNESP tristate "Sparc ESP Scsi Driver" depends on SBUS && SCSI select SCSI_SPI_ATTRS help This is the driver for the Sun ESP SCSI host adapter. The ESP chipset is present in most SPARC SBUS-based computers and supports the Emulex family of ESP SCSI chips (esp100, esp100A, esp236, fas101, fas236) as well as the Qlogic fas366 SCSI chip. To compile this driver as a module, choose M here: the module will be called sun_esp. config ZFCP tristate "FCP host bus adapter driver for IBM mainframes" depends on S390 && QDIO && SCSI depends on SCSI_FC_ATTRS help If you want to access SCSI devices attached to your IBM mainframe by means of Fibre Channel Protocol host bus adapters say Y. Supported HBAs include different models of the FICON Express and FCP Express I/O cards. For a more complete list, and for more details about setup and operation refer to the IBM publication "Device Drivers, Features, and Commands", SC33-8411. This driver is also available as a module. This module will be called zfcp. If you want to compile it as a module, say M here and read <file:Documentation/kbuild/modules.rst>. config SCSI_PMCRAID tristate "PMC SIERRA Linux MaxRAID adapter support" depends on PCI && SCSI && NET select SGL_ALLOC help This driver supports the PMC SIERRA MaxRAID adapters. config SCSI_PM8001 tristate "PMC-Sierra SPC 8001 SAS/SATA Based Host Adapter driver" depends on PCI && SCSI select SCSI_SAS_LIBSAS help This driver supports PMC-Sierra PCIE SAS/SATA 8x6G SPC 8001 chip based host adapters. config SCSI_BFA_FC tristate "Brocade BFA Fibre Channel Support" depends on PCI && SCSI depends on SCSI_FC_ATTRS help This bfa driver supports all Brocade PCIe FC/FCOE host adapters. To compile this driver as a module, choose M here. The module will be called bfa. config SCSI_VIRTIO tristate "virtio-scsi support" depends on VIRTIO help This is the virtual HBA driver for virtio. If the kernel will be used in a virtual machine, say Y or M. source "drivers/scsi/csiostor/Kconfig" source "drivers/scsi/pcmcia/Kconfig" endif # SCSI_LOWLEVEL source "drivers/scsi/device_handler/Kconfig" endmenu PK ! ��S3� � Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 # # Makefile for linux/drivers/scsi # # 30 May 2000, Christoph Hellwig <hch@infradead.org> # Rewritten to use lists instead of if-statements. # # 20 Sep 2000, Torben Mathiasen <tmm@image.dk> # Changed link order to reflect new scsi initialization. # # *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*! # The link order must be, SCSI Core, SCSI HBA drivers, and # lastly SCSI peripheral drivers (disk/tape/cdrom/etc.) to # satisfy certain initialization assumptions in the SCSI layer. # *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*! CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF obj-$(CONFIG_PCMCIA) += pcmcia/ obj-$(CONFIG_SCSI) += scsi_mod.o obj-$(CONFIG_SCSI_COMMON) += scsi_common.o obj-$(CONFIG_RAID_ATTRS) += raid_class.o # --- NOTE ORDERING HERE --- # For kernel non-modular link, transport attributes need to # be initialised before drivers # -------------------------- obj-$(CONFIG_SCSI_SPI_ATTRS) += scsi_transport_spi.o obj-$(CONFIG_SCSI_FC_ATTRS) += scsi_transport_fc.o obj-$(CONFIG_SCSI_ISCSI_ATTRS) += scsi_transport_iscsi.o obj-$(CONFIG_SCSI_SAS_ATTRS) += scsi_transport_sas.o obj-$(CONFIG_SCSI_SAS_LIBSAS) += libsas/ obj-$(CONFIG_SCSI_SRP_ATTRS) += scsi_transport_srp.o obj-$(CONFIG_SCSI_DH) += device_handler/ obj-$(CONFIG_LIBFC) += libfc/ obj-$(CONFIG_LIBFCOE) += fcoe/ obj-$(CONFIG_FCOE) += fcoe/ obj-$(CONFIG_FCOE_FNIC) += fnic/ obj-$(CONFIG_SCSI_SNIC) += snic/ obj-$(CONFIG_SCSI_BNX2X_FCOE) += libfc/ fcoe/ bnx2fc/ obj-$(CONFIG_QEDF) += qedf/ obj-$(CONFIG_ISCSI_TCP) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o obj-$(CONFIG_ISCSI_BOOT_SYSFS) += iscsi_boot_sysfs.o obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o obj-$(CONFIG_SCSI_ZORRO7XX) += 53c700.o zorro7xx.o obj-$(CONFIG_SCSI_ZORRO_ESP) += esp_scsi.o zorro_esp.o obj-$(CONFIG_A3000_SCSI) += a3000.o wd33c93.o obj-$(CONFIG_A2091_SCSI) += a2091.o wd33c93.o obj-$(CONFIG_GVP11_SCSI) += gvp11.o wd33c93.o obj-$(CONFIG_MVME147_SCSI) += mvme147.o wd33c93.o obj-$(CONFIG_SGIWD93_SCSI) += sgiwd93.o wd33c93.o obj-$(CONFIG_ATARI_SCSI) += atari_scsi.o obj-$(CONFIG_MAC_SCSI) += mac_scsi.o obj-$(CONFIG_SCSI_MAC_ESP) += esp_scsi.o mac_esp.o obj-$(CONFIG_SUN3_SCSI) += sun3_scsi.o sun3_scsi_vme.o obj-$(CONFIG_MVME16x_SCSI) += 53c700.o mvme16x_scsi.o obj-$(CONFIG_BVME6000_SCSI) += 53c700.o bvme6000_scsi.o obj-$(CONFIG_SCSI_SIM710) += 53c700.o sim710.o obj-$(CONFIG_SCSI_ADVANSYS) += advansys.o obj-$(CONFIG_SCSI_BUSLOGIC) += BusLogic.o obj-$(CONFIG_SCSI_DPT_I2O) += dpt_i2o.o obj-$(CONFIG_SCSI_ARCMSR) += arcmsr/ obj-$(CONFIG_SCSI_AHA152X) += aha152x.o obj-$(CONFIG_SCSI_AHA1542) += aha1542.o obj-$(CONFIG_SCSI_AHA1740) += aha1740.o obj-$(CONFIG_SCSI_AIC7XXX) += aic7xxx/ obj-$(CONFIG_SCSI_AIC79XX) += aic7xxx/ obj-$(CONFIG_SCSI_AACRAID) += aacraid/ obj-$(CONFIG_SCSI_AIC94XX) += aic94xx/ obj-$(CONFIG_SCSI_PM8001) += pm8001/ obj-$(CONFIG_SCSI_ISCI) += isci/ obj-$(CONFIG_SCSI_IPS) += ips.o obj-$(CONFIG_SCSI_FDOMAIN) += fdomain.o obj-$(CONFIG_SCSI_FDOMAIN_PCI) += fdomain_pci.o obj-$(CONFIG_SCSI_FDOMAIN_ISA) += fdomain_isa.o obj-$(CONFIG_SCSI_GENERIC_NCR5380) += g_NCR5380.o obj-$(CONFIG_SCSI_QLOGIC_FAS) += qlogicfas408.o qlogicfas.o obj-$(CONFIG_PCMCIA_QLOGIC) += qlogicfas408.o obj-$(CONFIG_SCSI_QLOGIC_1280) += qla1280.o obj-$(CONFIG_SCSI_QLA_FC) += qla2xxx/ obj-$(CONFIG_SCSI_QLA_ISCSI) += libiscsi.o qla4xxx/ obj-$(CONFIG_SCSI_LPFC) += lpfc/ obj-$(CONFIG_SCSI_EFCT) += elx/ obj-$(CONFIG_SCSI_BFA_FC) += bfa/ obj-$(CONFIG_SCSI_CHELSIO_FCOE) += csiostor/ obj-$(CONFIG_SCSI_DMX3191D) += dmx3191d.o obj-$(CONFIG_SCSI_HPSA) += hpsa.o obj-$(CONFIG_SCSI_SMARTPQI) += smartpqi/ obj-$(CONFIG_SCSI_SYM53C8XX_2) += sym53c8xx_2/ obj-$(CONFIG_SCSI_ZALON) += zalon7xx.o obj-$(CONFIG_SCSI_DC395x) += dc395x.o obj-$(CONFIG_SCSI_AM53C974) += esp_scsi.o am53c974.o obj-$(CONFIG_CXLFLASH) += cxlflash/ obj-$(CONFIG_MEGARAID_LEGACY) += megaraid.o obj-$(CONFIG_MEGARAID_NEWGEN) += megaraid/ obj-$(CONFIG_MEGARAID_SAS) += megaraid/ obj-$(CONFIG_SCSI_MPT3SAS) += mpt3sas/ obj-$(CONFIG_SCSI_MPI3MR) += mpi3mr/ obj-$(CONFIG_SCSI_UFSHCD) += ufs/ obj-$(CONFIG_SCSI_ACARD) += atp870u.o obj-$(CONFIG_SCSI_SUNESP) += esp_scsi.o sun_esp.o obj-$(CONFIG_SCSI_INITIO) += initio.o obj-$(CONFIG_SCSI_INIA100) += a100u2w.o obj-$(CONFIG_SCSI_QLOGICPTI) += qlogicpti.o obj-$(CONFIG_SCSI_MESH) += mesh.o obj-$(CONFIG_SCSI_MAC53C94) += mac53c94.o obj-$(CONFIG_SCSI_MYRB) += myrb.o obj-$(CONFIG_SCSI_MYRS) += myrs.o obj-$(CONFIG_BLK_DEV_3W_XXXX_RAID) += 3w-xxxx.o obj-$(CONFIG_SCSI_3W_9XXX) += 3w-9xxx.o obj-$(CONFIG_SCSI_3W_SAS) += 3w-sas.o obj-$(CONFIG_SCSI_PPA) += ppa.o obj-$(CONFIG_SCSI_IMM) += imm.o obj-$(CONFIG_JAZZ_ESP) += esp_scsi.o jazz_esp.o obj-$(CONFIG_SUN3X_ESP) += esp_scsi.o sun3x_esp.o obj-$(CONFIG_SCSI_LASI700) += 53c700.o lasi700.o obj-$(CONFIG_SCSI_SNI_53C710) += 53c700.o sni_53c710.o obj-$(CONFIG_SCSI_NSP32) += nsp32.o obj-$(CONFIG_SCSI_IPR) += ipr.o obj-$(CONFIG_SCSI_IBMVSCSI) += ibmvscsi/ obj-$(CONFIG_SCSI_IBMVSCSIS) += ibmvscsi_tgt/ obj-$(CONFIG_SCSI_IBMVFC) += ibmvscsi/ obj-$(CONFIG_SCSI_HPTIOP) += hptiop.o obj-$(CONFIG_SCSI_STEX) += stex.o obj-$(CONFIG_SCSI_MVSAS) += mvsas/ obj-$(CONFIG_SCSI_MVUMI) += mvumi.o obj-$(CONFIG_PS3_ROM) += ps3rom.o obj-$(CONFIG_SCSI_CXGB3_ISCSI) += libiscsi.o libiscsi_tcp.o cxgbi/ obj-$(CONFIG_SCSI_CXGB4_ISCSI) += libiscsi.o libiscsi_tcp.o cxgbi/ obj-$(CONFIG_SCSI_BNX2_ISCSI) += libiscsi.o bnx2i/ obj-$(CONFIG_QEDI) += libiscsi.o qedi/ obj-$(CONFIG_BE2ISCSI) += libiscsi.o be2iscsi/ obj-$(CONFIG_SCSI_ESAS2R) += esas2r/ obj-$(CONFIG_SCSI_PMCRAID) += pmcraid.o obj-$(CONFIG_SCSI_VIRTIO) += virtio_scsi.o obj-$(CONFIG_VMWARE_PVSCSI) += vmw_pvscsi.o obj-$(CONFIG_XEN_SCSI_FRONTEND) += xen-scsifront.o obj-$(CONFIG_HYPERV_STORAGE) += hv_storvsc.o obj-$(CONFIG_SCSI_WD719X) += wd719x.o obj-$(CONFIG_ARM) += arm/ obj-$(CONFIG_CHR_DEV_ST) += st.o obj-$(CONFIG_BLK_DEV_SD) += sd_mod.o obj-$(CONFIG_BLK_DEV_SR) += sr_mod.o obj-$(CONFIG_CHR_DEV_SG) += sg.o obj-$(CONFIG_CHR_DEV_SCH) += ch.o obj-$(CONFIG_SCSI_ENCLOSURE) += ses.o obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas/ # This goes last, so that "real" scsi devices probe earlier obj-$(CONFIG_SCSI_DEBUG) += scsi_debug.o scsi_mod-y += scsi.o hosts.o scsi_ioctl.o \ scsicam.o scsi_error.o scsi_lib.o scsi_mod-$(CONFIG_SCSI_CONSTANTS) += constants.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-$(CONFIG_BLK_DEBUG_FS) += scsi_debugfs.o scsi_mod-y += scsi_trace.o scsi_logging.o scsi_mod-$(CONFIG_PM) += scsi_pm.o scsi_mod-$(CONFIG_SCSI_DH) += scsi_dh.o scsi_mod-$(CONFIG_BLK_DEV_BSG) += scsi_bsg.o hv_storvsc-y := storvsc_drv.o sd_mod-objs := sd.o sd_mod-$(CONFIG_BLK_DEV_INTEGRITY) += sd_dif.o sd_mod-$(CONFIG_BLK_DEV_ZONED) += sd_zbc.o sr_mod-objs := sr.o sr_ioctl.o sr_vendor.o ncr53c8xx-flags-$(CONFIG_SCSI_ZALON) \ := -DCONFIG_NCR53C8XX_PREFETCH -DSCSI_NCR_BIG_ENDIAN \ -DCONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS CFLAGS_ncr53c8xx.o := $(ncr53c8xx-flags-y) $(ncr53c8xx-flags-m) zalon7xx-objs := zalon.o ncr53c8xx.o # Files generated that shall be removed upon make clean clean-files := 53c700_d.h 53c700_u.h $(obj)/53c700.o: $(obj)/53c700_d.h $(obj)/scsi_sysfs.o: $(obj)/scsi_devinfo_tbl.c quiet_cmd_bflags = GEN $@ cmd_bflags = sed -n 's/.*define *BLIST_\([A-Z0-9_]*\) *.*/BLIST_FLAG_NAME(\1),/p' $< > $@ $(obj)/scsi_devinfo_tbl.c: include/scsi/scsi_devinfo.h FORCE $(call if_changed,bflags) targets += scsi_devinfo_tbl.c # If you want to play with the firmware, uncomment # GENERATE_FIRMWARE := 1 ifdef GENERATE_FIRMWARE $(obj)/53c700_d.h: $(src)/53c700.scr $(src)/script_asm.pl $(PERL) -s $(src)/script_asm.pl -ncr7x0_family $@ $(@:_d.h=_u.h) < $< endif PK ! ��X X bnx2fc/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_BNX2X_FCOE tristate "QLogic FCoE offload support" depends on PCI depends on (IPV6 || IPV6=n) depends on LIBFC depends on LIBFCOE depends on MMU select NETDEVICES select ETHERNET select NET_VENDOR_BROADCOM select CNIC help This driver supports FCoE offload for the QLogic devices. PK ! �r��� � bnx2fc/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_SCSI_BNX2X_FCOE) += bnx2fc.o bnx2fc-y := bnx2fc_els.o bnx2fc_fcoe.o bnx2fc_hwi.o bnx2fc_io.o bnx2fc_tgt.o \ bnx2fc_debug.o PK ! M���� � arcmsr/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only # File: drivers/arcmsr/Makefile # Makefile for the ARECA PCI-X PCI-EXPRESS SATA RAID controllers SCSI driver. arcmsr-objs := arcmsr_attr.o arcmsr_hba.o obj-$(CONFIG_SCSI_ARCMSR) := arcmsr.o PK ! �LE�� � smartpqi/Kconfignu �[��� # # Kernel configuration file for the SMARTPQI # # Copyright (c) 2019-2022 Microchip Technology Inc. and its subsidiaries # Copyright (c) 2017-2018 Microsemi Corporation # Copyright (c) 2016 Microsemi Corporation # Copyright (c) 2016 PMC-Sierra, Inc. # (mailto:storagedev@microchip.com) # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; version 2 # of the License. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # NO WARRANTY # THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT # LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is # solely responsible for determining the appropriateness of using and # distributing the Program and assumes all risks associated with its # exercise of rights under this Agreement, including but not limited to # the risks and costs of program errors, damage to or loss of data, # programs or equipment, and unavailability or interruption of operations. # DISCLAIMER OF LIABILITY # NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE # USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED # HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES config SCSI_SMARTPQI tristate "Microchip PQI Driver" depends on PCI && SCSI && !S390 select SCSI_SAS_ATTRS select RAID_ATTRS help This driver supports Microchip PQI controllers. <http://www.microchip.com> To compile this driver as a module, choose M here: the module will be called smartpqi. Note: the aacraid driver will not manage a smartpqi controller. You need to enable smartpqi for smartpqi controllers. For more information, please see Documentation/scsi/smartpqi.rst PK ! ��D)� � smartpqi/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_SCSI_SMARTPQI) += smartpqi.o smartpqi-objs := smartpqi_init.o smartpqi_sis.o smartpqi_sas_transport.o PK ! ��:� � aic94xx/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only # # Kernel configuration file for aic94xx SAS/SATA driver. # # Copyright (c) 2005 Adaptec, Inc. All rights reserved. # Copyright (c) 2005 Luben Tuikov <luben_tuikov@adaptec.com> # config SCSI_AIC94XX tristate "Adaptec AIC94xx SAS/SATA support" depends on PCI select SCSI_SAS_LIBSAS select FW_LOADER help This driver supports Adaptec's SAS/SATA 3Gb/s 64 bit PCI-X AIC94xx chip based host adapters. config AIC94XX_DEBUG bool "Compile in debug mode" default y depends on SCSI_AIC94XX help Compiles the aic94xx driver in debug mode. In debug mode, the driver prints some messages to the console. PK ! �JL) ) aic94xx/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only # # Makefile for Adaptec aic94xx SAS/SATA driver. # # Copyright (C) 2005 Adaptec, Inc. All rights reserved. # Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com> # ccflags-$(CONFIG_AIC94XX_DEBUG) := -DASD_DEBUG -DASD_ENTER_EXIT obj-$(CONFIG_SCSI_AIC94XX) += aic94xx.o aic94xx-y += aic94xx_init.o \ aic94xx_hwi.o \ aic94xx_reg.o \ aic94xx_sds.o \ aic94xx_seq.o \ aic94xx_dump.o \ aic94xx_scb.o \ aic94xx_dev.o \ aic94xx_tmf.o \ aic94xx_task.o PK ! ��[o [o script_asm.plnu �[��� #!/usr/bin/perl -s # SPDX-License-Identifier: GPL-2.0-or-later # NCR 53c810 script assembler # Sponsored by # iX Multiuser Multitasking Magazine # # Copyright 1993, Drew Eckhardt # Visionary Computing # (Unix and Linux consulting and custom programming) # drew@Colorado.EDU # +1 (303) 786-7975 # # Support for 53c710 (via -ncr7x0_family switch) added by Richard # Hirst <richard@sleepie.demon.co.uk> - 15th March 1997 # # TolerANT and SCSI SCRIPTS are registered trademarks of NCR Corporation. # # # Basically, I follow the NCR syntax documented in the NCR53c710 # Programmer's guide, with the new instructions, registers, etc. # from the NCR53c810. # # Differences between this assembler and NCR's are that # 1. PASS, REL (data, JUMPs work fine), and the option to start a new # script, are unimplemented, since I didn't use them in my scripts. # # 2. I also emit a script_u.h file, which will undefine all of # the A_*, E_*, etc. symbols defined in the script. This # makes including multiple scripts in one program easier # # 3. This is a single pass assembler, which only emits # .h files. # # XXX - set these with command line options $debug = 0; # Print general debugging messages $debug_external = 0; # Print external/forward reference messages $list_in_array = 1; # Emit original SCRIPTS assembler in comments in # script.h #$prefix; # (set by perl -s) # define all arrays having this prefix so we # don't have name space collisions after # assembling this file in different ways for # different host adapters # Constants # Table of the SCSI phase encodings %scsi_phases = ( 'DATA_OUT', 0x00_00_00_00, 'DATA_IN', 0x01_00_00_00, 'CMD', 0x02_00_00_00, 'STATUS', 0x03_00_00_00, 'MSG_OUT', 0x06_00_00_00, 'MSG_IN', 0x07_00_00_00 ); # XXX - replace references to the *_810 constants with general constants # assigned at compile time based on chip type. # Table of operator encodings # XXX - NCR53c710 only implements # move (nop) = 0x00_00_00_00 # or = 0x02_00_00_00 # and = 0x04_00_00_00 # add = 0x06_00_00_00 if ($ncr7x0_family) { %operators = ( '|', 0x02_00_00_00, 'OR', 0x02_00_00_00, '&', 0x04_00_00_00, 'AND', 0x04_00_00_00, '+', 0x06_00_00_00 ); } else { %operators = ( 'SHL', 0x01_00_00_00, '|', 0x02_00_00_00, 'OR', 0x02_00_00_00, 'XOR', 0x03_00_00_00, '&', 0x04_00_00_00, 'AND', 0x04_00_00_00, 'SHR', 0x05_00_00_00, # Note : low bit of the operator bit should be set for add with # carry. '+', 0x06_00_00_00 ); } # Table of register addresses if ($ncr7x0_family) { %registers = ( 'SCNTL0', 0, 'SCNTL1', 1, 'SDID', 2, 'SIEN', 3, 'SCID', 4, 'SXFER', 5, 'SODL', 6, 'SOCL', 7, 'SFBR', 8, 'SIDL', 9, 'SBDL', 10, 'SBCL', 11, 'DSTAT', 12, 'SSTAT0', 13, 'SSTAT1', 14, 'SSTAT2', 15, 'DSA0', 16, 'DSA1', 17, 'DSA2', 18, 'DSA3', 19, 'CTEST0', 20, 'CTEST1', 21, 'CTEST2', 22, 'CTEST3', 23, 'CTEST4', 24, 'CTEST5', 25, 'CTEST6', 26, 'CTEST7', 27, 'TEMP0', 28, 'TEMP1', 29, 'TEMP2', 30, 'TEMP3', 31, 'DFIFO', 32, 'ISTAT', 33, 'CTEST8', 34, 'LCRC', 35, 'DBC0', 36, 'DBC1', 37, 'DBC2', 38, 'DCMD', 39, 'DNAD0', 40, 'DNAD1', 41, 'DNAD2', 42, 'DNAD3', 43, 'DSP0', 44, 'DSP1', 45, 'DSP2', 46, 'DSP3', 47, 'DSPS0', 48, 'DSPS1', 49, 'DSPS2', 50, 'DSPS3', 51, 'SCRATCH0', 52, 'SCRATCH1', 53, 'SCRATCH2', 54, 'SCRATCH3', 55, 'DMODE', 56, 'DIEN', 57, 'DWT', 58, 'DCNTL', 59, 'ADDER0', 60, 'ADDER1', 61, 'ADDER2', 62, 'ADDER3', 63, ); } else { %registers = ( 'SCNTL0', 0, 'SCNTL1', 1, 'SCNTL2', 2, 'SCNTL3', 3, 'SCID', 4, 'SXFER', 5, 'SDID', 6, 'GPREG', 7, 'SFBR', 8, 'SOCL', 9, 'SSID', 10, 'SBCL', 11, 'DSTAT', 12, 'SSTAT0', 13, 'SSTAT1', 14, 'SSTAT2', 15, 'DSA0', 16, 'DSA1', 17, 'DSA2', 18, 'DSA3', 19, 'ISTAT', 20, 'CTEST0', 24, 'CTEST1', 25, 'CTEST2', 26, 'CTEST3', 27, 'TEMP0', 28, 'TEMP1', 29, 'TEMP2', 30, 'TEMP3', 31, 'DFIFO', 32, 'CTEST4', 33, 'CTEST5', 34, 'CTEST6', 35, 'DBC0', 36, 'DBC1', 37, 'DBC2', 38, 'DCMD', 39, 'DNAD0', 40, 'DNAD1', 41, 'DNAD2', 42, 'DNAD3', 43, 'DSP0', 44, 'DSP1', 45, 'DSP2', 46, 'DSP3', 47, 'DSPS0', 48, 'DSPS1', 49, 'DSPS2', 50, 'DSPS3', 51, 'SCRATCH0', 52, 'SCRATCH1', 53, 'SCRATCH2', 54, 'SCRATCH3', 55, 'SCRATCHA0', 52, 'SCRATCHA1', 53, 'SCRATCHA2', 54, 'SCRATCHA3', 55, 'DMODE', 56, 'DIEN', 57, 'DWT', 58, 'DCNTL', 59, 'ADDER0', 60, 'ADDER1', 61, 'ADDER2', 62, 'ADDER3', 63, 'SIEN0', 64, 'SIEN1', 65, 'SIST0', 66, 'SIST1', 67, 'SLPAR', 68, 'MACNTL', 70, 'GPCNTL', 71, 'STIME0', 72, 'STIME1', 73, 'RESPID', 74, 'STEST0', 76, 'STEST1', 77, 'STEST2', 78, 'STEST3', 79, 'SIDL', 80, 'SODL', 84, 'SBDL', 88, 'SCRATCHB0', 92, 'SCRATCHB1', 93, 'SCRATCHB2', 94, 'SCRATCHB3', 95 ); } # Parsing regular expressions $identifier = '[A-Za-z_][A-Za-z_0-9]*'; $decnum = '-?\\d+'; $hexnum = '0[xX][0-9A-Fa-f]+'; $constant = "$hexnum|$decnum"; # yucky - since we can't control grouping of # $constant, we need to # expand out each alternative for $value. $value = "$identifier|$identifier\\s*[+\-]\\s*$decnum|". "$identifier\\s*[+-]\s*$hexnum|$constant"; print STDERR "value regex = $value\n" if ($debug); $phase = join ('|', keys %scsi_phases); print STDERR "phase regex = $phase\n" if ($debug); $register = join ('|', keys %registers); # yucky - since %operators includes meta-characters which must # be escaped, I can't use the join() trick I used for the register # regex if ($ncr7x0_family) { $operator = '\||OR|AND|\&|\+'; } else { $operator = '\||OR|AND|XOR|\&|\+'; } # Global variables %symbol_values = (%registers) ; # Traditional symbol table %symbol_references = () ; # Table of symbol references, where # the index is the symbol name, # and the contents a white space # delimited list of address,size # tuples where size is in bytes. @code = (); # Array of 32 bit words for SIOP @entry = (); # Array of entry point names @label = (); # Array of label names @absolute = (); # Array of absolute names @relative = (); # Array of relative names @external = (); # Array of external names $address = 0; # Address of current instruction $lineno = 0; # Line number we are parsing $output = 'script.h'; # Output file $outputu = 'scriptu.h'; # &patch ($address, $offset, $length, $value) patches $code[$address] # so that the $length bytes at $offset have $value added to # them. @inverted_masks = (0x00_00_00_00, 0x00_00_00_ff, 0x00_00_ff_ff, 0x00_ff_ff_ff, 0xff_ff_ff_ff); sub patch { local ($address, $offset, $length, $value) = @_; if ($debug) { print STDERR "Patching $address at offset $offset, length $length to $value\n"; printf STDERR "Old code : %08x\n", $code[$address]; } $mask = ($inverted_masks[$length] << ($offset * 8)); $code[$address] = ($code[$address] & ~$mask) | (($code[$address] & $mask) + ($value << ($offset * 8)) & $mask); printf STDERR "New code : %08x\n", $code[$address] if ($debug); } # &parse_value($value, $word, $offset, $length) where $value is # an identifier or constant, $word is the word offset relative to # $address, $offset is the starting byte within that word, and # $length is the length of the field in bytes. # # Side effects are that the bytes are combined into the @code array # relative to $address, and that the %symbol_references table is # updated as appropriate. sub parse_value { local ($value, $word, $offset, $length) = @_; local ($tmp); $symbol = ''; if ($value =~ /^REL\s*\(\s*($identifier)\s*\)\s*(.*)/i) { $relative = 'REL'; $symbol = $1; $value = $2; print STDERR "Relative reference $symbol\n" if ($debug); } elsif ($value =~ /^($identifier)\s*(.*)/) { $relative = 'ABS'; $symbol = $1; $value = $2; print STDERR "Absolute reference $symbol\n" if ($debug); } if ($symbol ne '') { print STDERR "Referencing symbol $1, length = $length in $_\n" if ($debug); $tmp = ($address + $word) * 4 + $offset; if ($symbol_references{$symbol} ne undef) { $symbol_references{$symbol} = "$symbol_references{$symbol} $relative,$tmp,$length"; } else { if (!defined($symbol_values{$symbol})) { print STDERR "forward $1\n" if ($debug_external); $forward{$symbol} = "line $lineno : $_"; } $symbol_references{$symbol} = "$relative,$tmp,$length"; } } $value = eval $value; &patch ($address + $word, $offset, $length, $value); } # &parse_conditional ($conditional) where $conditional is the conditional # clause from a transfer control instruction (RETURN, CALL, JUMP, INT). sub parse_conditional { local ($conditional) = @_; if ($conditional =~ /^\s*(IF|WHEN)\s*(.*)/i) { $if = $1; $conditional = $2; if ($if =~ /WHEN/i) { $allow_atn = 0; $code[$address] |= 0x00_01_00_00; $allow_atn = 0; print STDERR "$0 : parsed WHEN\n" if ($debug); } else { $allow_atn = 1; print STDERR "$0 : parsed IF\n" if ($debug); } } else { die "$0 : syntax error in line $lineno : $_ expected IF or WHEN "; } if ($conditional =~ /^NOT\s+(.*)$/i) { $not = 'NOT '; $other = 'OR'; $conditional = $1; print STDERR "$0 : parsed NOT\n" if ($debug); } else { $code[$address] |= 0x00_08_00_00; $not = ''; $other = 'AND' } $need_data = 0; if ($conditional =~ /^ATN\s*(.*)/i) {# die "$0 : syntax error in line $lineno : $_ WHEN conditional is incompatible with ATN " if (!$allow_atn); $code[$address] |= 0x00_02_00_00; $conditional = $1; print STDERR "$0 : parsed ATN\n" if ($debug); } elsif ($conditional =~ /^($phase)\s*(.*)/i) { $phase_index = "\U$1\E"; $p = $scsi_phases{$phase_index}; $code[$address] |= $p | 0x00_02_00_00; $conditional = $2; print STDERR "$0 : parsed phase $phase_index\n" if ($debug); } else { $other = ''; $need_data = 1; } print STDERR "Parsing conjunction, expecting $other\n" if ($debug); if ($conditional =~ /^(AND|OR)\s*(.*)/i) { $conjunction = $1; $conditional = $2; $need_data = 1; die "$0 : syntax error in line $lineno : $_ Illegal use of $1. Valid uses are ".$not."<phase> $1 data ".$not."ATN $1 data " if ($other eq ''); die "$0 : syntax error in line $lineno : $_ Illegal use of $conjunction. Valid syntaxes are NOT <phase>|ATN OR data <phase>|ATN AND data " if ($conjunction !~ /\s*$other\s*/i); print STDERR "$0 : parsed $1\n" if ($debug); } if ($need_data) { print STDERR "looking for data in $conditional\n" if ($debug); if ($conditional=~ /^($value)\s*(.*)/i) { $code[$address] |= 0x00_04_00_00; $conditional = $2; &parse_value($1, 0, 0, 1); print STDERR "$0 : parsed data\n" if ($debug); } else { die "$0 : syntax error in line $lineno : $_ expected <data>. "; } } if ($conditional =~ /^\s*,\s*(.*)/) { $conditional = $1; if ($conditional =~ /^AND\s\s*MASK\s\s*($value)\s*(.*)/i) { &parse_value ($1, 0, 1, 1); print STDERR "$0 parsed AND MASK $1\n" if ($debug); die "$0 : syntax error in line $lineno : $_ expected end of line, not \"$2\" " if ($2 ne ''); } else { die "$0 : syntax error in line $lineno : $_ expected \",AND MASK <data>\", not \"$2\" "; } } elsif ($conditional !~ /^\s*$/) { die "$0 : syntax error in line $lineno : $_ expected end of line" . (($need_data) ? " or \"AND MASK <data>\"" : "") . " not \"$conditional\" "; } } # Parse command line $output = shift; $outputu = shift; # Main loop while (<STDIN>) { $lineno = $lineno + 1; $list[$address] = $list[$address].$_; s/;.*$//; # Strip comments chop; # Leave new line out of error messages # Handle symbol definitions of the form label: if (/^\s*($identifier)\s*:(.*)/) { if (!defined($symbol_values{$1})) { $symbol_values{$1} = $address * 4; # Address is an index into delete $forward{$1}; # an array of longs push (@label, $1); $_ = $2; } else { die "$0 : redefinition of symbol $1 in line $lineno : $_\n"; } } # Handle symbol definitions of the form ABSOLUTE or RELATIVE identifier = # value if (/^\s*(ABSOLUTE|RELATIVE)\s+(.*)/i) { $is_absolute = $1; $rest = $2; foreach $rest (split (/\s*,\s*/, $rest)) { if ($rest =~ /^($identifier)\s*=\s*($constant)\s*$/) { local ($id, $cnst) = ($1, $2); if ($symbol_values{$id} eq undef) { $symbol_values{$id} = eval $cnst; delete $forward{$id}; if ($is_absolute =~ /ABSOLUTE/i) { push (@absolute , $id); } else { push (@relative, $id); } } else { die "$0 : redefinition of symbol $id in line $lineno : $_\n"; } } else { die "$0 : syntax error in line $lineno : $_ expected <identifier> = <value> "; } } } elsif (/^\s*EXTERNAL\s+(.*)/i) { $externals = $1; foreach $external (split (/,/,$externals)) { if ($external =~ /\s*($identifier)\s*$/) { $external = $1; push (@external, $external); delete $forward{$external}; if (defined($symbol_values{$external})) { die "$0 : redefinition of symbol $1 in line $lineno : $_\n"; } $symbol_values{$external} = $external; print STDERR "defined external $1 to $external\n" if ($debug_external); } else { die "$0 : syntax error in line $lineno : $_ expected <identifier>, got $external "; } } # Process ENTRY identifier declarations } elsif (/^\s*ENTRY\s+(.*)/i) { if ($1 =~ /^($identifier)\s*$/) { push (@entry, $1); } else { die "$0 : syntax error in line $lineno : $_ expected ENTRY <identifier> "; } # Process MOVE length, address, WITH|WHEN phase instruction } elsif (/^\s*MOVE\s+(.*)/i) { $rest = $1; if ($rest =~ /^FROM\s+($value)\s*,\s*(WITH|WHEN)\s+($phase)\s*$/i) { $transfer_addr = $1; $with_when = $2; $scsi_phase = $3; print STDERR "Parsing MOVE FROM $transfer_addr, $with_when $3\n" if ($debug); $code[$address] = 0x18_00_00_00 | (($with_when =~ /WITH/i) ? 0x00_00_00_00 : 0x08_00_00_00) | $scsi_phases{$scsi_phase}; &parse_value ($transfer_addr, 1, 0, 4); $address += 2; } elsif ($rest =~ /^($value)\s*,\s*(PTR\s+|)($value)\s*,\s*(WITH|WHEN)\s+($phase)\s*$/i) { $transfer_len = $1; $ptr = $2; $transfer_addr = $3; $with_when = $4; $scsi_phase = $5; $code[$address] = (($with_when =~ /WITH/i) ? 0x00_00_00_00 : 0x08_00_00_00) | (($ptr =~ /PTR/i) ? (1 << 29) : 0) | $scsi_phases{$scsi_phase}; &parse_value ($transfer_len, 0, 0, 3); &parse_value ($transfer_addr, 1, 0, 4); $address += 2; } elsif ($rest =~ /^MEMORY\s+(.*)/i) { $rest = $1; $code[$address] = 0xc0_00_00_00; if ($rest =~ /^($value)\s*,\s*($value)\s*,\s*($value)\s*$/) { $count = $1; $source = $2; $dest = $3; print STDERR "Parsing MOVE MEMORY $count, $source, $dest\n" if ($debug); &parse_value ($count, 0, 0, 3); &parse_value ($source, 1, 0, 4); &parse_value ($dest, 2, 0, 4); printf STDERR "Move memory instruction = %08x,%08x,%08x\n", $code[$address], $code[$address+1], $code[$address +2] if ($debug); $address += 3; } else { die "$0 : syntax error in line $lineno : $_ expected <count>, <source>, <destination> " } } elsif ($1 =~ /^(.*)\s+(TO|SHL|SHR)\s+(.*)/i) { print STDERR "Parsing register to register move\n" if ($debug); $src = $1; $op = "\U$2\E"; $rest = $3; $code[$address] = 0x40_00_00_00; $force = ($op !~ /TO/i); print STDERR "Forcing register source \n" if ($force && $debug); if (!$force && $src =~ /^($register)\s+(-|$operator)\s+($value)\s*$/i) { print STDERR "register operand data8 source\n" if ($debug); $src_reg = "\U$1\E"; $op = "\U$2\E"; if ($op ne '-') { $data8 = $3; } else { die "- is not implemented yet.\n" } } elsif ($src =~ /^($register)\s*$/i) { print STDERR "register source\n" if ($debug); $src_reg = "\U$1\E"; # Encode register to register move as a register | 0 # move to register. if (!$force) { $op = '|'; } $data8 = 0; } elsif (!$force && $src =~ /^($value)\s*$/i) { print STDERR "data8 source\n" if ($debug); $src_reg = undef; $op = 'NONE'; $data8 = $1; } else { if (!$force) { die "$0 : syntax error in line $lineno : $_ expected <register> <data8> <register> <operand> <data8> "; } else { die "$0 : syntax error in line $lineno : $_ expected <register> "; } } if ($rest =~ /^($register)\s*(.*)$/i) { $dst_reg = "\U$1\E"; $rest = $2; } else { die "$0 : syntax error in $lineno : $_ expected <register>, got $rest "; } if ($rest =~ /^WITH\s+CARRY\s*(.*)/i) { $rest = $1; if ($op eq '+') { $code[$address] |= 0x01_00_00_00; } else { die "$0 : syntax error in $lineno : $_ WITH CARRY option is incompatible with the $op operator. "; } } if ($rest !~ /^\s*$/) { die "$0 : syntax error in $lineno : $_ Expected end of line, got $rest "; } print STDERR "source = $src_reg, data = $data8 , destination = $dst_reg\n" if ($debug); # Note that Move data8 to reg is encoded as a read-modify-write # instruction. if (($src_reg eq undef) || ($src_reg eq $dst_reg)) { $code[$address] |= 0x38_00_00_00 | ($registers{$dst_reg} << 16); } elsif ($dst_reg =~ /SFBR/i) { $code[$address] |= 0x30_00_00_00 | ($registers{$src_reg} << 16); } elsif ($src_reg =~ /SFBR/i) { $code[$address] |= 0x28_00_00_00 | ($registers{$dst_reg} << 16); } else { die "$0 : Illegal combination of registers in line $lineno : $_ Either source and destination registers must be the same, or either source or destination register must be SFBR. "; } $code[$address] |= $operators{$op}; &parse_value ($data8, 0, 1, 1); $code[$address] |= $operators{$op}; $code[$address + 1] = 0x00_00_00_00;# Reserved $address += 2; } else { die "$0 : syntax error in line $lineno : $_ expected (initiator) <length>, <address>, WHEN <phase> (target) <length>, <address>, WITH <phase> MEMORY <length>, <source>, <destination> <expression> TO <register> "; } # Process SELECT {ATN|} id, fail_address } elsif (/^\s*(SELECT|RESELECT)\s+(.*)/i) { $rest = $2; if ($rest =~ /^(ATN|)\s*($value)\s*,\s*($identifier)\s*$/i) { $atn = $1; $id = $2; $alt_addr = $3; $code[$address] = 0x40_00_00_00 | (($atn =~ /ATN/i) ? 0x01_00_00_00 : 0); $code[$address + 1] = 0x00_00_00_00; &parse_value($id, 0, 2, 1); &parse_value($alt_addr, 1, 0, 4); $address += 2; } elsif ($rest =~ /^(ATN|)\s*FROM\s+($value)\s*,\s*($identifier)\s*$/i) { $atn = $1; $addr = $2; $alt_addr = $3; $code[$address] = 0x42_00_00_00 | (($atn =~ /ATN/i) ? 0x01_00_00_00 : 0); $code[$address + 1] = 0x00_00_00_00; &parse_value($addr, 0, 0, 3); &parse_value($alt_addr, 1, 0, 4); $address += 2; } else { die "$0 : syntax error in line $lineno : $_ expected SELECT id, alternate_address or SELECT FROM address, alternate_address or RESELECT id, alternate_address or RESELECT FROM address, alternate_address "; } } elsif (/^\s*WAIT\s+(.*)/i) { $rest = $1; print STDERR "Parsing WAIT $rest\n" if ($debug); if ($rest =~ /^DISCONNECT\s*$/i) { $code[$address] = 0x48_00_00_00; $code[$address + 1] = 0x00_00_00_00; $address += 2; } elsif ($rest =~ /^(RESELECT|SELECT)\s+($identifier)\s*$/i) { $alt_addr = $2; $code[$address] = 0x50_00_00_00; &parse_value ($alt_addr, 1, 0, 4); $address += 2; } else { die "$0 : syntax error in line $lineno : $_ expected (initiator) WAIT DISCONNECT or (initiator) WAIT RESELECT alternate_address or (target) WAIT SELECT alternate_address "; } # Handle SET and CLEAR instructions. Note that we should also do something # with this syntax to set target mode. } elsif (/^\s*(SET|CLEAR)\s+(.*)/i) { $set = $1; $list = $2; $code[$address] = ($set =~ /SET/i) ? 0x58_00_00_00 : 0x60_00_00_00; foreach $arg (split (/\s+AND\s+/i,$list)) { if ($arg =~ /ATN/i) { $code[$address] |= 0x00_00_00_08; } elsif ($arg =~ /ACK/i) { $code[$address] |= 0x00_00_00_40; } elsif ($arg =~ /TARGET/i) { $code[$address] |= 0x00_00_02_00; } elsif ($arg =~ /CARRY/i) { $code[$address] |= 0x00_00_04_00; } else { die "$0 : syntax error in line $lineno : $_ expected $set followed by a AND delimited list of one or more strings from the list ACK, ATN, CARRY, TARGET. "; } } $code[$address + 1] = 0x00_00_00_00; $address += 2; } elsif (/^\s*(JUMP|CALL|INT)\s+(.*)/i) { $instruction = $1; $rest = $2; if ($instruction =~ /JUMP/i) { $code[$address] = 0x80_00_00_00; } elsif ($instruction =~ /CALL/i) { $code[$address] = 0x88_00_00_00; } else { $code[$address] = 0x98_00_00_00; } print STDERR "parsing JUMP, rest = $rest\n" if ($debug); # Relative jump. if ($rest =~ /^(REL\s*\(\s*$identifier\s*\))\s*(.*)/i) { $addr = $1; $rest = $2; print STDERR "parsing JUMP REL, addr = $addr, rest = $rest\n" if ($debug); $code[$address] |= 0x00_80_00_00; &parse_value($addr, 1, 0, 4); # Absolute jump, requires no more gunk } elsif ($rest =~ /^($value)\s*(.*)/) { $addr = $1; $rest = $2; &parse_value($addr, 1, 0, 4); } else { die "$0 : syntax error in line $lineno : $_ expected <address> or REL (address) "; } if ($rest =~ /^,\s*(.*)/) { &parse_conditional($1); } elsif ($rest =~ /^\s*$/) { $code[$address] |= (1 << 19); } else { die "$0 : syntax error in line $lineno : $_ expected , <conditional> or end of line, got $1 "; } $address += 2; } elsif (/^\s*(RETURN|INTFLY)\s*(.*)/i) { $instruction = $1; $conditional = $2; print STDERR "Parsing $instruction\n" if ($debug); $code[$address] = ($instruction =~ /RETURN/i) ? 0x90_00_00_00 : 0x98_10_00_00; if ($conditional =~ /^,\s*(.*)/) { $conditional = $1; &parse_conditional ($conditional); } elsif ($conditional !~ /^\s*$/) { die "$0 : syntax error in line $lineno : $_ expected , <conditional> "; } else { $code[$address] |= 0x00_08_00_00; } $code[$address + 1] = 0x00_00_00_00; $address += 2; } elsif (/^\s*DISCONNECT\s*$/) { $code[$address] = 0x48_00_00_00; $code[$address + 1] = 0x00_00_00_00; $address += 2; # I'm not sure that I should be including this extension, but # what the hell? } elsif (/^\s*NOP\s*$/i) { $code[$address] = 0x80_88_00_00; $code[$address + 1] = 0x00_00_00_00; $address += 2; # Ignore lines consisting entirely of white space } elsif (/^\s*$/) { } else { die "$0 : syntax error in line $lineno: $_ expected label:, ABSOLUTE, CLEAR, DISCONNECT, EXTERNAL, MOVE, RESELECT, SELECT SET, or WAIT "; } } # Fill in label references @undefined = keys %forward; if ($#undefined >= 0) { print STDERR "Undefined symbols : \n"; foreach $undef (@undefined) { print STDERR "$undef in $forward{$undef}\n"; } exit 1; } @label_patches = (); @external_patches = (); @absolute = sort @absolute; foreach $i (@absolute) { foreach $j (split (/\s+/,$symbol_references{$i})) { $j =~ /(REL|ABS),(.*),(.*)/; $type = $1; $address = $2; $length = $3; die "$0 : $symbol $i has invalid relative reference at address $address, size $length\n" if ($type eq 'REL'); &patch ($address / 4, $address % 4, $length, $symbol_values{$i}); } } foreach $external (@external) { print STDERR "checking external $external \n" if ($debug_external); if ($symbol_references{$external} ne undef) { for $reference (split(/\s+/,$symbol_references{$external})) { $reference =~ /(REL|ABS),(.*),(.*)/; $type = $1; $address = $2; $length = $3; die "$0 : symbol $label is external, has invalid relative reference at $address, size $length\n" if ($type eq 'REL'); die "$0 : symbol $label has invalid reference at $address, size $length\n" if ((($address % 4) !=0) || ($length != 4)); $symbol = $symbol_values{$external}; $add = $code[$address / 4]; if ($add eq 0) { $code[$address / 4] = $symbol; } else { $add = sprintf ("0x%08x", $add); $code[$address / 4] = "$symbol + $add"; } print STDERR "referenced external $external at $1\n" if ($debug_external); } } } foreach $label (@label) { if ($symbol_references{$label} ne undef) { for $reference (split(/\s+/,$symbol_references{$label})) { $reference =~ /(REL|ABS),(.*),(.*)/; $type = $1; $address = $2; $length = $3; if ((($address % 4) !=0) || ($length != 4)) { die "$0 : symbol $label has invalid reference at $1, size $2\n"; } if ($type eq 'ABS') { $code[$address / 4] += $symbol_values{$label}; push (@label_patches, $address / 4); } else { # # - The address of the reference should be in the second and last word # of an instruction # - Relative jumps, etc. are relative to the DSP of the _next_ instruction # # So, we need to add four to the address of the reference, to get # the address of the next instruction, when computing the reference. $tmp = $symbol_values{$label} - ($address + 4); die # Relative addressing is limited to 24 bits. "$0 : symbol $label is too far ($tmp) from $address to reference as relative/\n" if (($tmp >= 0x80_00_00) || ($tmp < -0x80_00_00)); $code[$address / 4] = $tmp & 0x00_ff_ff_ff; } } } } # Output SCRIPT[] array, one instruction per line. Optionally # print the original code too. open (OUTPUT, ">$output") || die "$0 : can't open $output for writing\n"; open (OUTPUTU, ">$outputu") || die "$0 : can't open $outputu for writing\n"; ($_ = $0) =~ s:.*/::; print OUTPUT "/* DO NOT EDIT - Generated automatically by ".$_." */\n"; print OUTPUT "static u32 ".$prefix."SCRIPT[] = {\n"; $instructions = 0; for ($i = 0; $i < $#code; ) { if ($list_in_array) { printf OUTPUT "/*\n$list[$i]\nat 0x%08x : */", $i; } printf OUTPUT "\t0x%08x,", $code[$i]; printf STDERR "Address $i = %x\n", $code[$i] if ($debug); if ($code[$i + 1] =~ /\s*($identifier)(.*)$/) { push (@external_patches, $i+1, $1); printf OUTPUT "0%s,", $2 } else { printf OUTPUT "0x%08x,",$code[$i+1]; } if (($code[$i] & 0xff_00_00_00) == 0xc0_00_00_00) { if ($code[$i + 2] =~ /$identifier/) { push (@external_patches, $i+2, $code[$i+2]); printf OUTPUT "0,\n"; } else { printf OUTPUT "0x%08x,\n",$code[$i+2]; } $i += 3; } else { printf OUTPUT "\n"; $i += 2; } $instructions += 1; } print OUTPUT "};\n\n"; foreach $i (@absolute) { printf OUTPUT "#define A_$i\t0x%08x\n", $symbol_values{$i}; if (defined($prefix) && $prefix ne '') { printf OUTPUT "#define A_".$i."_used ".$prefix."A_".$i."_used\n"; printf OUTPUTU "#undef A_".$i."_used\n"; } printf OUTPUTU "#undef A_$i\n"; printf OUTPUT "static u32 A_".$i."_used\[\] __attribute((unused)) = {\n"; printf STDERR "$i is used $symbol_references{$i}\n" if ($debug); foreach $j (split (/\s+/,$symbol_references{$i})) { $j =~ /(ABS|REL),(.*),(.*)/; if ($1 eq 'ABS') { $address = $2; $length = $3; printf OUTPUT "\t0x%08x,\n", $address / 4; } } printf OUTPUT "};\n\n"; } foreach $i (sort @entry) { printf OUTPUT "#define Ent_$i\t0x%08x\n", $symbol_values{$i}; printf OUTPUTU "#undef Ent_$i\n", $symbol_values{$i}; } # # NCR assembler outputs label patches in the form of indices into # the code. # printf OUTPUT "static u32 ".$prefix."LABELPATCHES[] __attribute((unused)) = {\n"; for $patch (sort {$a <=> $b} @label_patches) { printf OUTPUT "\t0x%08x,\n", $patch; } printf OUTPUT "};\n\n"; $num_external_patches = 0; printf OUTPUT "static struct {\n\tu32\toffset;\n\tvoid\t\t*address;\n". "} ".$prefix."EXTERNAL_PATCHES[] __attribute((unused)) = {\n"; while ($ident = pop(@external_patches)) { $off = pop(@external_patches); printf OUTPUT "\t{0x%08x, &%s},\n", $off, $ident; ++$num_external_patches; } printf OUTPUT "};\n\n"; printf OUTPUT "static u32 ".$prefix."INSTRUCTIONS __attribute((unused))\t= %d;\n", $instructions; printf OUTPUT "static u32 ".$prefix."PATCHES __attribute((unused))\t= %d;\n", $#label_patches+1; printf OUTPUT "static u32 ".$prefix."EXTERNAL_PATCHES_LEN __attribute((unused))\t= %d;\n", $num_external_patches; close OUTPUT; close OUTPUTU; PK ! ]�<7| | ibmvscsi_tgt/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_SCSI_IBMVSCSIS) += ibmvscsis.o ibmvscsis-y := libsrp.o ibmvscsi_tgt.o PK ! �apX* * aic7xxx/Kconfig.aic7xxxnu �[��� # SPDX-License-Identifier: GPL-2.0-only # # AIC7XXX and AIC79XX 2.5.X Kernel configuration File. # $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#7 $ # config SCSI_AIC7XXX tristate "Adaptec AIC7xxx Fast -> U160 support" depends on (PCI || EISA) && SCSI select SCSI_SPI_ATTRS help This driver supports all of Adaptec's Fast through Ultra 160 PCI based SCSI controllers as well as the aic7770 based EISA and VLB SCSI controllers (the 274x and 284x series). For AAA and ARO based configurations, only SCSI functionality is provided. To compile this driver as a module, choose M here: the module will be called aic7xxx. config AIC7XXX_CMDS_PER_DEVICE int "Maximum number of TCQ commands per device" depends on SCSI_AIC7XXX default "32" help Specify the number of commands you would like to allocate per SCSI device when Tagged Command Queueing (TCQ) is enabled on that device. This is an upper bound value for the number of tagged transactions to be used for any device. The aic7xxx driver will automatically vary this number based on device behavior. For devices with a fixed maximum, the driver will eventually lock to this maximum and display a console message indicating this value. Due to resource allocation issues in the Linux SCSI mid-layer, using a high number of commands per device may result in memory allocation failures when many devices are attached to the system. For this reason, the default is set to 32. Higher values may result in higher performance on some devices. The upper bound is 253. 0 disables tagged queueing. Per device tag depth can be controlled via the kernel command line "tag_info" option. See Documentation/scsi/aic7xxx.rst for details. config AIC7XXX_RESET_DELAY_MS int "Initial bus reset delay in milli-seconds" depends on SCSI_AIC7XXX default "5000" help The number of milliseconds to delay after an initial bus reset. The bus settle delay following all error recovery actions is dictated by the SCSI layer and is not affected by this value. Default: 5000 (5 seconds) config AIC7XXX_BUILD_FIRMWARE bool "Build Adapter Firmware with Kernel Build" depends on SCSI_AIC7XXX && !PREVENT_FIRMWARE_BUILD help This option should only be enabled if you are modifying the firmware source to the aic7xxx driver and wish to have the generated firmware include files updated during a normal kernel build. The assembler for the firmware requires lex and yacc or their equivalents, as well as the db v1 library. You may have to install additional packages or modify the assembler Makefile or the files it includes if your build environment is different than that of the author. config AIC7XXX_DEBUG_ENABLE bool "Compile in Debugging Code" depends on SCSI_AIC7XXX default y help Compile in aic7xxx debugging code that can be useful in diagnosing driver errors. config AIC7XXX_DEBUG_MASK int "Debug code enable mask (2047 for all debugging)" depends on SCSI_AIC7XXX default "0" help Bit mask of debug options that is only valid if the CONFIG_AIC7XXX_DEBUG_ENABLE option is enabled. The bits in this mask are defined in the drivers/scsi/aic7xxx/aic7xxx.h - search for the variable ahc_debug in that file to find them. config AIC7XXX_REG_PRETTY_PRINT bool "Decode registers during diagnostics" depends on SCSI_AIC7XXX default y help Compile in register value tables for the output of expanded register contents in diagnostics. This make it much easier to understand debug output without having to refer to a data book and/or the aic7xxx.reg file. PK ! �_ _ aic7xxx/aicasm/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 PROG= aicasm OUTDIR ?= ./ .SUFFIXES= .l .y .c .h CSRCS= aicasm.c aicasm_symbol.c YSRCS= aicasm_gram.y aicasm_macro_gram.y LSRCS= aicasm_scan.l aicasm_macro_scan.l GENHDRS= $(addprefix ${OUTDIR}/,aicdb.h $(YSRCS:.y=.h)) GENSRCS= $(addprefix ${OUTDIR}/,$(YSRCS:.y=.c) $(LSRCS:.l=.c)) SRCS= ${CSRCS} ${GENSRCS} LIBS= -ldb clean-files:= ${GENSRCS} ${GENHDRS} $(YSRCS:.y=.output) $(PROG) # Override default kernel CFLAGS. This is a userland app. AICASM_CFLAGS:= -I/usr/include -I. -I$(OUTDIR) LEX= flex YACC= bison YFLAGS= -d NOMAN= noman ifneq ($(HOSTCC),) AICASM_CC= $(HOSTCC) else AICASM_CC= $(CC) endif ifdef DEBUG CFLAGS+= -DDEBUG -g YFLAGS+= -t -v LFLAGS= -d endif $(PROG): $(OUTDIR) ${GENHDRS} $(SRCS) $(AICASM_CC) $(AICASM_CFLAGS) $(SRCS) -o $(OUTDIR)/$(PROG) $(LIBS) $(OUTDIR): mkdir -p $(OUTDIR) $(OUTDIR)/aicdb.h: @if [ -e "/usr/include/db4/db_185.h" ]; then \ echo "#include <db4/db_185.h>" > $@; \ elif [ -e "/usr/include/db3/db_185.h" ]; then \ echo "#include <db3/db_185.h>" > $@; \ elif [ -e "/usr/include/db2/db_185.h" ]; then \ echo "#include <db2/db_185.h>" > $@; \ elif [ -e "/usr/include/db1/db_185.h" ]; then \ echo "#include <db1/db_185.h>" > $@; \ elif [ -e "/usr/include/db/db_185.h" ]; then \ echo "#include <db/db_185.h>" > $@; \ elif [ -e "/usr/include/db_185.h" ]; then \ echo "#include <db_185.h>" > $@; \ else \ echo "*** Install db development libraries"; \ fi clean: rm -f $(clean-files) # Create a dependency chain in generated files # to avoid concurrent invocations of the single # rule that builds them all. $(OUTDIR)/aicasm_gram.c: $(OUTDIR)/aicasm_gram.h $(OUTDIR)/aicasm_gram.c $(OUTDIR)/aicasm_gram.h: aicasm_gram.y $(YACC) $(YFLAGS) -b $(<:.y=) $< mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c) mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h) # Create a dependency chain in generated files # to avoid concurrent invocations of the single # rule that builds them all. $(OUTDIR)/aicasm_macro_gram.c: $(OUTDIR)/aicasm_macro_gram.h $(OUTDIR)/aicasm_macro_gram.c $(OUTDIR)/aicasm_macro_gram.h: aicasm_macro_gram.y $(YACC) $(YFLAGS) -b $(<:.y=) -p mm $< mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c) mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h) $(OUTDIR)/aicasm_scan.c: aicasm_scan.l $(LEX) $(LFLAGS) -o $@ $< $(OUTDIR)/aicasm_macro_scan.c: aicasm_macro_scan.l $(LEX) $(LFLAGS) -Pmm -o $@ $< PK ! (�bA� � aic7xxx/Kconfig.aic79xxnu �[��� # SPDX-License-Identifier: GPL-2.0-only # # AIC79XX 2.5.X Kernel configuration File. # $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic79xx#4 $ # config SCSI_AIC79XX tristate "Adaptec AIC79xx U320 support" depends on PCI && SCSI select SCSI_SPI_ATTRS help This driver supports all of Adaptec's Ultra 320 PCI-X based SCSI controllers. config AIC79XX_CMDS_PER_DEVICE int "Maximum number of TCQ commands per device" depends on SCSI_AIC79XX default "32" help Specify the number of commands you would like to allocate per SCSI device when Tagged Command Queueing (TCQ) is enabled on that device. This is an upper bound value for the number of tagged transactions to be used for any device. The aic7xxx driver will automatically vary this number based on device behavior. For devices with a fixed maximum, the driver will eventually lock to this maximum and display a console message indicating this value. Due to resource allocation issues in the Linux SCSI mid-layer, using a high number of commands per device may result in memory allocation failures when many devices are attached to the system. For this reason, the default is set to 32. Higher values may result in higher performance on some devices. The upper bound is 253. 0 disables tagged queueing. Per device tag depth can be controlled via the kernel command line "tag_info" option. See Documentation/scsi/aic79xx.rst for details. config AIC79XX_RESET_DELAY_MS int "Initial bus reset delay in milli-seconds" depends on SCSI_AIC79XX default "5000" help The number of milliseconds to delay after an initial bus reset. The bus settle delay following all error recovery actions is dictated by the SCSI layer and is not affected by this value. Default: 5000 (5 seconds) config AIC79XX_BUILD_FIRMWARE bool "Build Adapter Firmware with Kernel Build" depends on SCSI_AIC79XX && !PREVENT_FIRMWARE_BUILD help This option should only be enabled if you are modifying the firmware source to the aic79xx driver and wish to have the generated firmware include files updated during a normal kernel build. The assembler for the firmware requires lex and yacc or their equivalents, as well as the db v1 library. You may have to install additional packages or modify the assembler Makefile or the files it includes if your build environment is different than that of the author. config AIC79XX_DEBUG_ENABLE bool "Compile in Debugging Code" depends on SCSI_AIC79XX default y help Compile in aic79xx debugging code that can be useful in diagnosing driver errors. config AIC79XX_DEBUG_MASK int "Debug code enable mask (16383 for all debugging)" depends on SCSI_AIC79XX default "0" help Bit mask of debug options that is only valid if the CONFIG_AIC79XX_DEBUG_ENABLE option is enabled. The bits in this mask are defined in the drivers/scsi/aic7xxx/aic79xx.h - search for the variable ahd_debug in that file to find them. config AIC79XX_REG_PRETTY_PRINT bool "Decode registers during diagnostics" depends on SCSI_AIC79XX default y help Compile in register value tables for the output of expanded register contents in diagnostics. This make it much easier to understand debug output without having to refer to a data book and/or the aic7xxx.reg file. PK ! ��u�h h aic7xxx/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 # # Makefile for the Linux aic7xxx SCSI driver. # # $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Makefile#8 $ # # Let kbuild descend into aicasm when cleaning subdir- += aicasm obj-$(CONFIG_SCSI_AIC7XXX) += aic7xxx.o obj-$(CONFIG_SCSI_AIC79XX) += aic79xx.o # Core Fast -> U160 files aic7xxx-y += aic7xxx_core.o \ aic7xxx_93cx6.o aic7xxx-$(CONFIG_EISA) += aic7770.o aic7xxx-$(CONFIG_PCI) += aic7xxx_pci.o aic7xxx-$(CONFIG_AIC7XXX_REG_PRETTY_PRINT) += aic7xxx_reg_print.o # Platform Specific Fast -> U160 Files aic7xxx-y += aic7xxx_osm.o \ aic7xxx_proc.o aic7xxx-$(CONFIG_EISA) += aic7770_osm.o aic7xxx-$(CONFIG_PCI) += aic7xxx_osm_pci.o # Core U320 files aic79xx-y += aic79xx_core.o \ aic79xx_pci.o aic79xx-$(CONFIG_AIC79XX_REG_PRETTY_PRINT) += aic79xx_reg_print.o # Platform Specific U320 Files aic79xx-y += aic79xx_osm.o \ aic79xx_proc.o \ aic79xx_osm_pci.o ifdef WARNINGS_BECOME_ERRORS ccflags-y += -Werror endif # Files generated that shall be removed upon make clean clean-files := aic7xxx_seq.h aic7xxx_reg.h aic7xxx_reg_print.c clean-files += aic79xx_seq.h aic79xx_reg.h aic79xx_reg_print.c # Dependencies for generated files need to be listed explicitly $(addprefix $(obj)/,$(aic7xxx-y)): $(obj)/aic7xxx_seq.h $(obj)/aic7xxx_reg.h $(addprefix $(obj)/,$(aic79xx-y)): $(obj)/aic79xx_seq.h $(obj)/aic79xx_reg.h aic7xxx-gen-$(CONFIG_AIC7XXX_BUILD_FIRMWARE) := $(obj)/aic7xxx_reg.h aic7xxx-gen-$(CONFIG_AIC7XXX_REG_PRETTY_PRINT) += $(obj)/aic7xxx_reg_print.c aicasm-7xxx-opts-$(CONFIG_AIC7XXX_REG_PRETTY_PRINT) := \ -p $(obj)/aic7xxx_reg_print.c -i aic7xxx_osm.h ifeq ($(CONFIG_AIC7XXX_BUILD_FIRMWARE),y) $(obj)/aic7xxx_seq.h: $(src)/aic7xxx.seq $(src)/aic7xxx.reg $(obj)/aicasm/aicasm $(obj)/aicasm/aicasm -I$(srctree)/$(src) -r $(obj)/aic7xxx_reg.h \ $(aicasm-7xxx-opts-y) -o $(obj)/aic7xxx_seq.h \ $(srctree)/$(src)/aic7xxx.seq $(aic7xxx-gen-y): $(objtree)/$(obj)/aic7xxx_seq.h @true else $(obj)/aic7xxx_reg_print.c: $(src)/aic7xxx_reg_print.c_shipped endif aic79xx-gen-$(CONFIG_AIC79XX_BUILD_FIRMWARE) := $(obj)/aic79xx_reg.h aic79xx-gen-$(CONFIG_AIC79XX_REG_PRETTY_PRINT) += $(obj)/aic79xx_reg_print.c aicasm-79xx-opts-$(CONFIG_AIC79XX_REG_PRETTY_PRINT) := \ -p $(obj)/aic79xx_reg_print.c -i aic79xx_osm.h ifeq ($(CONFIG_AIC79XX_BUILD_FIRMWARE),y) $(obj)/aic79xx_seq.h: $(src)/aic79xx.seq $(src)/aic79xx.reg $(obj)/aicasm/aicasm $(obj)/aicasm/aicasm -I$(srctree)/$(src) -r $(obj)/aic79xx_reg.h \ $(aicasm-79xx-opts-y) -o $(obj)/aic79xx_seq.h \ $(srctree)/$(src)/aic79xx.seq $(aic79xx-gen-y): $(objtree)/$(obj)/aic79xx_seq.h @true else $(obj)/aic79xx_reg_print.c: $(src)/aic79xx_reg_print.c_shipped endif $(obj)/aicasm/aicasm: $(srctree)/$(src)/aicasm/*.[chyl] $(MAKE) -C $(srctree)/$(src)/aicasm OUTDIR=$(shell pwd)/$(obj)/aicasm/ PK ! ~Klñ � hisi_sas/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_HISI_SAS tristate "HiSilicon SAS" depends on HAS_IOMEM depends on ARM64 || COMPILE_TEST select SCSI_SAS_LIBSAS select BLK_DEV_INTEGRITY depends on ATA select SATA_HOST help This driver supports HiSilicon's SAS HBA, including support based on platform device config SCSI_HISI_SAS_PCI tristate "HiSilicon SAS on PCI bus" depends on SCSI_HISI_SAS depends on PCI depends on ACPI help This driver supports HiSilicon's SAS HBA based on PCI device config SCSI_HISI_SAS_DEBUGFS_DEFAULT_ENABLE bool "HiSilicon SAS debugging default enable" depends on SCSI_HISI_SAS help Set Y to default enable DEBUGFS for SCSI_HISI_SAS PK ! Y�� � hisi_sas/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas_main.o obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas_v1_hw.o hisi_sas_v2_hw.o obj-$(CONFIG_SCSI_HISI_SAS_PCI) += hisi_sas_v3_hw.o PK ! bA�x x ibmvscsi/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_SCSI_IBMVSCSI) += ibmvscsi.o obj-$(CONFIG_SCSI_IBMVFC) += ibmvfc.o PK ! �v��^ ^ qedf/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config QEDF tristate "QLogic QEDF 25/40/100Gb FCoE Initiator Driver Support" depends on PCI && SCSI depends on QED depends on LIBFC depends on LIBFCOE select QED_LL2 select QED_FCOE help This driver supports FCoE offload for the QLogic FastLinQ 41000 Series Converged Network Adapters. PK ! ����� � qedf/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_QEDF) := qedf.o qedf-y = qedf_dbg.o qedf_main.o qedf_io.o qedf_fip.o \ qedf_attr.o qedf_els.o drv_scsi_fw_funcs.o drv_fcoe_fw_funcs.o qedf-$(CONFIG_DEBUG_FS) += qedf_debugfs.o PK ! ��Kp p bnx2i/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_BNX2_ISCSI tristate "QLogic NetXtreme II iSCSI support" depends on NET depends on PCI depends on (IPV6 || IPV6=n) depends on MMU select SCSI_ISCSI_ATTRS select NETDEVICES select ETHERNET select NET_VENDOR_BROADCOM select CNIC help This driver supports iSCSI offload for the QLogic NetXtreme II devices. PK ! �Ҧ;� � bnx2i/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only bnx2i-y := bnx2i_init.o bnx2i_hwi.o bnx2i_iscsi.o bnx2i_sysfs.o obj-$(CONFIG_SCSI_BNX2_ISCSI) += bnx2i.o PK ! I���v v qedi/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config QEDI tristate "QLogic QEDI 25/40/100Gb iSCSI Initiator Driver Support" depends on PCI && SCSI && UIO depends on QED select SCSI_ISCSI_ATTRS select QED_LL2 select QED_OOO select QED_ISCSI select ISCSI_BOOT_SYSFS help This driver supports iSCSI offload for the QLogic FastLinQ 41000 Series Converged Network Adapters. PK ! �SB� � qedi/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_QEDI) := qedi.o qedi-y := qedi_main.o qedi_iscsi.o qedi_fw.o qedi_sysfs.o \ qedi_dbg.o qedi_fw_api.o qedi-$(CONFIG_DEBUG_FS) += qedi_debugfs.o PK ! ���� � cxgbi/cxgb3i/Kbuildnu �[��� # SPDX-License-Identifier: GPL-2.0 ccflags-y += -I$(srctree)/drivers/net/ethernet/chelsio/cxgb3 ccflags-y += -I$(srctree)/drivers/net/ethernet/chelsio/libcxgb obj-$(CONFIG_SCSI_CXGB3_ISCSI) += cxgb3i.o PK ! �GS�X X cxgbi/cxgb3i/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_CXGB3_ISCSI tristate "Chelsio T3 iSCSI support" depends on PCI && INET && (IPV6 || IPV6=n) select NETDEVICES select ETHERNET select NET_VENDOR_CHELSIO select CHELSIO_T3 select CHELSIO_LIB select SCSI_ISCSI_ATTRS help This driver supports iSCSI offload for the Chelsio T3 devices. PK ! rD?�~ ~ cxgbi/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only source "drivers/scsi/cxgbi/cxgb3i/Kconfig" source "drivers/scsi/cxgbi/cxgb4i/Kconfig" PK ! � j�� � cxgbi/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0-only ccflags-y += -I $(srctree)/drivers/net/ethernet/chelsio/libcxgb obj-$(CONFIG_SCSI_CXGB3_ISCSI) += libcxgbi.o cxgb3i/ obj-$(CONFIG_SCSI_CXGB4_ISCSI) += libcxgbi.o cxgb4i/ PK ! S���� � cxgbi/cxgb4i/Kbuildnu �[��� # SPDX-License-Identifier: GPL-2.0 ccflags-y += -I$(srctree)/drivers/net/ethernet/chelsio/cxgb4 ccflags-y += -I$(srctree)/drivers/net/ethernet/chelsio/libcxgb obj-$(CONFIG_SCSI_CXGB4_ISCSI) += cxgb4i.o PK ! ��� � cxgbi/cxgb4i/Kconfignu �[��� # SPDX-License-Identifier: GPL-2.0-only config SCSI_CXGB4_ISCSI tristate "Chelsio T4 iSCSI support" depends on PCI && INET && (IPV6 || IPV6=n) depends on PTP_1588_CLOCK_OPTIONAL depends on THERMAL || !THERMAL depends on ETHERNET depends on TLS || TLS=n select NET_VENDOR_CHELSIO select CHELSIO_T4 select CHELSIO_LIB select SCSI_ISCSI_ATTRS help This driver supports iSCSI offload for the Chelsio T4 devices. PK ! ��� megaraid/Kconfig.megaraidnu �[��� # SPDX-License-Identifier: GPL-2.0-only config MEGARAID_NEWGEN bool "LSI Logic New Generation RAID Device Drivers" depends on PCI && SCSI help LSI Logic RAID Device Drivers config MEGARAID_MM tristate "LSI Logic Management Module (New Driver)" depends on PCI && SCSI && MEGARAID_NEWGEN help Management Module provides ioctl, sysfs support for LSI Logic RAID controllers. To compile this driver as a module, choose M here: the module will be called megaraid_mm config MEGARAID_MAILBOX tristate "LSI Logic MegaRAID Driver (New Driver)" depends on PCI && SCSI && MEGARAID_MM help List of supported controllers OEM Product Name VID :DID :SVID:SSID --- ------------ ---- ---- ---- ---- Dell PERC3/QC 101E:1960:1028:0471 Dell PERC3/DC 101E:1960:1028:0493 Dell PERC3/SC 101E:1960:1028:0475 Dell PERC3/Di 1028:000E:1028:0123 Dell PERC4/SC 1000:1960:1028:0520 Dell PERC4/DC 1000:1960:1028:0518 Dell PERC4/QC 1000:0407:1028:0531 Dell PERC4/Di 1028:000F:1028:014A Dell PERC 4e/Si 1028:0013:1028:016c Dell PERC 4e/Di 1028:0013:1028:016d Dell PERC 4e/Di 1028:0013:1028:016e Dell PERC 4e/Di 1028:0013:1028:016f Dell PERC 4e/Di 1028:0013:1028:0170 Dell PERC 4e/DC 1000:0408:1028:0002 Dell PERC 4e/SC 1000:0408:1028:0001 LSI MegaRAID SCSI 320-0 1000:1960:1000:A520 LSI MegaRAID SCSI 320-1 1000:1960:1000:0520 LSI MegaRAID SCSI 320-2 1000:1960:1000:0518 LSI MegaRAID SCSI 320-0X 1000:0407:1000:0530 LSI MegaRAID SCSI 320-2X 1000:0407:1000:0532 LSI MegaRAID SCSI 320-4X 1000:0407:1000:0531 LSI MegaRAID SCSI 320-1E 1000:0408:1000:0001 LSI MegaRAID SCSI 320-2E 1000:0408:1000:0002 LSI MegaRAID SATA 150-4 1000:1960:1000:4523 LSI MegaRAID SATA 150-6 1000:1960:1000:0523 LSI MegaRAID SATA 300-4X 1000:0409:1000:3004 LSI MegaRAID SATA 300-8X 1000:0409:1000:3008 INTEL RAID Controller SRCU42X 1000:0407:8086:0532 INTEL RAID Controller SRCS16 1000:1960:8086:0523 INTEL RAID Controller SRCU42E 1000:0408:8086:0002 INTEL RAID Controller SRCZCRX 1000:0407:8086:0530 INTEL RAID Controller SRCS28X 1000:0409:8086:3008 INTEL RAID Controller SROMBU42E 1000:0408:8086:3431 INTEL RAID Controller SROMBU42E 1000:0408:8086:3499 INTEL RAID Controller SRCU51L 1000:1960:8086:0520 FSC MegaRAID PCI Express ROMB 1000:0408:1734:1065 ACER MegaRAID ROMB-2E 1000:0408:1025:004D NEC MegaRAID PCI Express ROMB 1000:0408:1033:8287 To compile this driver as a module, choose M here: the module will be called megaraid_mbox config MEGARAID_LEGACY tristate "LSI Logic Legacy MegaRAID Driver" depends on PCI && SCSI help This driver supports the LSI MegaRAID 418, 428, 438, 466, 762, 490 and 467 SCSI host adapters. This driver also support the all U320 RAID controllers To compile this driver as a module, choose M here: the module will be called megaraid config MEGARAID_SAS tristate "LSI Logic MegaRAID SAS RAID Module" depends on PCI && SCSI select IRQ_POLL help Module for LSI Logic's SAS based RAID controllers. To compile this driver as a module, choose 'm' here. Module will be called megaraid_sas PK ! E8� megaraid/Makefilenu �[��� # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_MEGARAID_MM) += megaraid_mm.o obj-$(CONFIG_MEGARAID_MAILBOX) += megaraid_mbox.o obj-$(CONFIG_MEGARAID_SAS) += megaraid_sas.o megaraid_sas-objs := megaraid_sas_base.o megaraid_sas_fusion.o \ megaraid_sas_fp.o megaraid_sas_debugfs.o PK ! 8Iט[ [ scsi_bsg_fc.hnu �[��� /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ /* * FC Transport BSG Interface * * Copyright (C) 2008 James Smart, Emulex Corporation */ #ifndef SCSI_BSG_FC_H #define SCSI_BSG_FC_H #include <linux/types.h> /* * This file intended to be included by both kernel and user space */ /* * FC Transport SGIO v4 BSG Message Support */ /* Default BSG request timeout (in seconds) */ #define FC_DEFAULT_BSG_TIMEOUT (10 * HZ) /* * Request Message Codes supported by the FC Transport */ /* define the class masks for the message codes */ #define FC_BSG_CLS_MASK 0xF0000000 /* find object class */ #define FC_BSG_HST_MASK 0x80000000 /* fc host class */ #define FC_BSG_RPT_MASK 0x40000000 /* fc rport class */ /* fc_host Message Codes */ #define FC_BSG_HST_ADD_RPORT (FC_BSG_HST_MASK | 0x00000001) #define FC_BSG_HST_DEL_RPORT (FC_BSG_HST_MASK | 0x00000002) #define FC_BSG_HST_ELS_NOLOGIN (FC_BSG_HST_MASK | 0x00000003) #define FC_BSG_HST_CT (FC_BSG_HST_MASK | 0x00000004) #define FC_BSG_HST_VENDOR (FC_BSG_HST_MASK | 0x000000FF) /* fc_rport Message Codes */ #define FC_BSG_RPT_ELS (FC_BSG_RPT_MASK | 0x00000001) #define FC_BSG_RPT_CT (FC_BSG_RPT_MASK | 0x00000002) /* * FC Address Identifiers in Message Structures : * * Whenever a command payload contains a FC Address Identifier * (aka port_id), the value is effectively in big-endian * order, thus the array elements are decoded as follows: * element [0] is bits 23:16 of the FC Address Identifier * element [1] is bits 15:8 of the FC Address Identifier * element [2] is bits 7:0 of the FC Address Identifier */ /* * FC Host Messages */ /* FC_BSG_HST_ADDR_PORT : */ /* Request: * This message requests the FC host to login to the remote port * at the specified N_Port_Id. The remote port is to be enumerated * with the transport upon completion of the login. */ struct fc_bsg_host_add_rport { __u8 reserved; /* FC Address Identier of the remote port to login to */ __u8 port_id[3]; }; /* Response: * There is no additional response data - fc_bsg_reply->result is sufficient */ /* FC_BSG_HST_DEL_RPORT : */ /* Request: * This message requests the FC host to remove an enumerated * remote port and to terminate the login to it. * * Note: The driver is free to reject this request if it desires to * remain logged in with the remote port. */ struct fc_bsg_host_del_rport { __u8 reserved; /* FC Address Identier of the remote port to logout of */ __u8 port_id[3]; }; /* Response: * There is no additional response data - fc_bsg_reply->result is sufficient */ /* FC_BSG_HST_ELS_NOLOGIN : */ /* Request: * This message requests the FC_Host to send an ELS to a specific * N_Port_ID. The host does not need to log into the remote port, * nor does it need to enumerate the rport for further traffic * (although, the FC host is free to do so if it desires). */ struct fc_bsg_host_els { /* * ELS Command Code being sent (must be the same as byte 0 * of the payload) */ __u8 command_code; /* FC Address Identier of the remote port to send the ELS to */ __u8 port_id[3]; }; /* Response: */ /* fc_bsg_ctels_reply->status values */ #define FC_CTELS_STATUS_OK 0x00000000 #define FC_CTELS_STATUS_REJECT 0x00000001 #define FC_CTELS_STATUS_P_RJT 0x00000002 #define FC_CTELS_STATUS_F_RJT 0x00000003 #define FC_CTELS_STATUS_P_BSY 0x00000004 #define FC_CTELS_STATUS_F_BSY 0x00000006 struct fc_bsg_ctels_reply { /* * Note: An ELS LS_RJT may be reported in 2 ways: * a) A status of FC_CTELS_STATUS_OK is returned. The caller * is to look into the ELS receive payload to determine * LS_ACC or LS_RJT (by contents of word 0). The reject * data will be in word 1. * b) A status of FC_CTELS_STATUS_REJECT is returned, The * rjt_data field will contain valid data. * * Note: ELS LS_ACC is determined by an FC_CTELS_STATUS_OK, and * the receive payload word 0 indicates LS_ACC * (e.g. value is 0x02xxxxxx). * * Note: Similarly, a CT Reject may be reported in 2 ways: * a) A status of FC_CTELS_STATUS_OK is returned. The caller * is to look into the CT receive payload to determine * Accept or Reject (by contents of word 2). The reject * data will be in word 3. * b) A status of FC_CTELS_STATUS_REJECT is returned, The * rjt_data field will contain valid data. * * Note: x_RJT/BSY status will indicae that the rjt_data field * is valid and contains the reason/explanation values. */ __u32 status; /* See FC_CTELS_STATUS_xxx */ /* valid if status is not FC_CTELS_STATUS_OK */ struct { __u8 action; /* fragment_id for CT REJECT */ __u8 reason_code; __u8 reason_explanation; __u8 vendor_unique; } rjt_data; }; /* FC_BSG_HST_CT : */ /* Request: * This message requests that a CT Request be performed with the * indicated N_Port_ID. The driver is responsible for logging in with * the fabric and/or N_Port_ID, etc as per FC rules. This request does * not mandate that the driver must enumerate the destination in the * transport. The driver is allowed to decide whether to enumerate it, * and whether to tear it down after the request. */ struct fc_bsg_host_ct { __u8 reserved; /* FC Address Identier of the remote port to send the ELS to */ __u8 port_id[3]; /* * We need words 0-2 of the generic preamble for the LLD's */ __u32 preamble_word0; /* revision & IN_ID */ __u32 preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */ __u32 preamble_word2; /* Cmd Code, Max Size */ }; /* Response: * * The reply structure is an fc_bsg_ctels_reply structure */ /* FC_BSG_HST_VENDOR : */ /* Request: * Note: When specifying vendor_id, be sure to read the Vendor Type and ID * formatting requirements specified in scsi_netlink.h */ struct fc_bsg_host_vendor { /* * Identifies the vendor that the message is formatted for. This * should be the recipient of the message. */ __u64 vendor_id; /* start of vendor command area */ __u32 vendor_cmd[0]; }; /* Response: */ struct fc_bsg_host_vendor_reply { /* start of vendor response area */ __u32 vendor_rsp[0]; }; /* * FC Remote Port Messages */ /* FC_BSG_RPT_ELS : */ /* Request: * This message requests that an ELS be performed with the rport. */ struct fc_bsg_rport_els { /* * ELS Command Code being sent (must be the same as * byte 0 of the payload) */ __u8 els_code; }; /* Response: * * The reply structure is an fc_bsg_ctels_reply structure */ /* FC_BSG_RPT_CT : */ /* Request: * This message requests that a CT Request be performed with the rport. */ struct fc_bsg_rport_ct { /* * We need words 0-2 of the generic preamble for the LLD's */ __u32 preamble_word0; /* revision & IN_ID */ __u32 preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */ __u32 preamble_word2; /* Cmd Code, Max Size */ }; /* Response: * * The reply structure is an fc_bsg_ctels_reply structure */ /* request (CDB) structure of the sg_io_v4 */ struct fc_bsg_request { __u32 msgcode; union { struct fc_bsg_host_add_rport h_addrport; struct fc_bsg_host_del_rport h_delrport; struct fc_bsg_host_els h_els; struct fc_bsg_host_ct h_ct; struct fc_bsg_host_vendor h_vendor; struct fc_bsg_rport_els r_els; struct fc_bsg_rport_ct r_ct; } rqst_data; } __attribute__((packed)); /* response (request sense data) structure of the sg_io_v4 */ struct fc_bsg_reply { /* * The completion result. Result exists in two forms: * if negative, it is an -Exxx system errno value. There will * be no further reply information supplied. * else, it's the 4-byte scsi error result, with driver, host, * msg and status fields. The per-msgcode reply structure * will contain valid data. */ __u32 result; /* If there was reply_payload, how much was recevied ? */ __u32 reply_payload_rcv_len; union { struct fc_bsg_host_vendor_reply vendor_reply; struct fc_bsg_ctels_reply ctels_reply; } reply_data; }; #endif /* SCSI_BSG_FC_H */ PK ! �нJ�<