xref: /OK3568_Linux_fs/kernel/drivers/scsi/aic7xxx/Kconfig.aic7xxx (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# AIC7XXX and AIC79XX 2.5.X Kernel configuration File.
4*4882a593Smuzhiyun# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#7 $
5*4882a593Smuzhiyun#
6*4882a593Smuzhiyunconfig SCSI_AIC7XXX
7*4882a593Smuzhiyun	tristate "Adaptec AIC7xxx Fast -> U160 support"
8*4882a593Smuzhiyun	depends on (PCI || EISA) && SCSI
9*4882a593Smuzhiyun	select SCSI_SPI_ATTRS
10*4882a593Smuzhiyun	help
11*4882a593Smuzhiyun	This driver supports all of Adaptec's Fast through Ultra 160 PCI
12*4882a593Smuzhiyun	based SCSI controllers as well as the aic7770 based EISA and VLB
13*4882a593Smuzhiyun	SCSI controllers (the 274x and 284x series).  For AAA and ARO based
14*4882a593Smuzhiyun	configurations, only SCSI functionality is provided.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	To compile this driver as a module, choose M here: the
17*4882a593Smuzhiyun	module will be called aic7xxx.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyunconfig AIC7XXX_CMDS_PER_DEVICE
20*4882a593Smuzhiyun	int "Maximum number of TCQ commands per device"
21*4882a593Smuzhiyun	depends on SCSI_AIC7XXX
22*4882a593Smuzhiyun	default "32"
23*4882a593Smuzhiyun	help
24*4882a593Smuzhiyun	Specify the number of commands you would like to allocate per SCSI
25*4882a593Smuzhiyun	device when Tagged Command Queueing (TCQ) is enabled on that device.
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	This is an upper bound value for the number of tagged transactions
28*4882a593Smuzhiyun	to be used for any device.  The aic7xxx driver will automatically
29*4882a593Smuzhiyun	vary this number based on device behavior.  For devices with a
30*4882a593Smuzhiyun	fixed maximum, the driver will eventually lock to this maximum
31*4882a593Smuzhiyun	and display a console message indicating this value.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun	Due to resource allocation issues in the Linux SCSI mid-layer, using
34*4882a593Smuzhiyun	a high number of commands per device may result in memory allocation
35*4882a593Smuzhiyun	failures when many devices are attached to the system.  For this reason,
36*4882a593Smuzhiyun	the default is set to 32.  Higher values may result in higher performance
37*4882a593Smuzhiyun	on some devices.  The upper bound is 253.  0 disables tagged queueing.
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun	Per device tag depth can be controlled via the kernel command line
40*4882a593Smuzhiyun	"tag_info" option.  See Documentation/scsi/aic7xxx.rst for details.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyunconfig AIC7XXX_RESET_DELAY_MS
43*4882a593Smuzhiyun	int "Initial bus reset delay in milli-seconds"
44*4882a593Smuzhiyun	depends on SCSI_AIC7XXX
45*4882a593Smuzhiyun	default "5000"
46*4882a593Smuzhiyun	help
47*4882a593Smuzhiyun	The number of milliseconds to delay after an initial bus reset.
48*4882a593Smuzhiyun	The bus settle delay following all error recovery actions is
49*4882a593Smuzhiyun	dictated by the SCSI layer and is not affected by this value.
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	Default: 5000 (5 seconds)
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunconfig AIC7XXX_BUILD_FIRMWARE
54*4882a593Smuzhiyun	bool "Build Adapter Firmware with Kernel Build"
55*4882a593Smuzhiyun	depends on SCSI_AIC7XXX && !PREVENT_FIRMWARE_BUILD
56*4882a593Smuzhiyun	help
57*4882a593Smuzhiyun	This option should only be enabled if you are modifying the firmware
58*4882a593Smuzhiyun	source to the aic7xxx driver and wish to have the generated firmware
59*4882a593Smuzhiyun	include files updated during a normal kernel build.  The assembler
60*4882a593Smuzhiyun	for the firmware requires lex and yacc or their equivalents, as well
61*4882a593Smuzhiyun	as the db v1 library.  You may have to install additional packages
62*4882a593Smuzhiyun	or modify the assembler Makefile or the files it includes if your
63*4882a593Smuzhiyun	build environment is different than that of the author.
64*4882a593Smuzhiyun
65*4882a593Smuzhiyunconfig AIC7XXX_DEBUG_ENABLE
66*4882a593Smuzhiyun	bool "Compile in Debugging Code"
67*4882a593Smuzhiyun	depends on SCSI_AIC7XXX
68*4882a593Smuzhiyun	default y
69*4882a593Smuzhiyun	help
70*4882a593Smuzhiyun	Compile in aic7xxx debugging code that can be useful in diagnosing
71*4882a593Smuzhiyun	driver errors.
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunconfig AIC7XXX_DEBUG_MASK
74*4882a593Smuzhiyun        int "Debug code enable mask (2047 for all debugging)"
75*4882a593Smuzhiyun        depends on SCSI_AIC7XXX
76*4882a593Smuzhiyun        default "0"
77*4882a593Smuzhiyun        help
78*4882a593Smuzhiyun	Bit mask of debug options that is only valid if the
79*4882a593Smuzhiyun	CONFIG_AIC7XXX_DEBUG_ENABLE option is enabled.  The bits in this mask
80*4882a593Smuzhiyun	are defined in the drivers/scsi/aic7xxx/aic7xxx.h - search for the
81*4882a593Smuzhiyun	variable ahc_debug in that file to find them.
82*4882a593Smuzhiyun
83*4882a593Smuzhiyunconfig AIC7XXX_REG_PRETTY_PRINT
84*4882a593Smuzhiyun        bool "Decode registers during diagnostics"
85*4882a593Smuzhiyun        depends on SCSI_AIC7XXX
86*4882a593Smuzhiyun	default y
87*4882a593Smuzhiyun        help
88*4882a593Smuzhiyun	Compile in register value tables for the output of expanded register
89*4882a593Smuzhiyun	contents in diagnostics.  This make it much easier to understand debug
90*4882a593Smuzhiyun	output without having to refer to a data book and/or the aic7xxx.reg
91*4882a593Smuzhiyun	file.
92