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