18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# AIC7XXX and AIC79XX 2.5.X Kernel configuration File.
48c2ecf20Sopenharmony_ci# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#7 $
58c2ecf20Sopenharmony_ci#
68c2ecf20Sopenharmony_ciconfig SCSI_AIC7XXX
78c2ecf20Sopenharmony_ci	tristate "Adaptec AIC7xxx Fast -> U160 support"
88c2ecf20Sopenharmony_ci	depends on (PCI || EISA) && SCSI
98c2ecf20Sopenharmony_ci	select SCSI_SPI_ATTRS
108c2ecf20Sopenharmony_ci	help
118c2ecf20Sopenharmony_ci	This driver supports all of Adaptec's Fast through Ultra 160 PCI
128c2ecf20Sopenharmony_ci	based SCSI controllers as well as the aic7770 based EISA and VLB
138c2ecf20Sopenharmony_ci	SCSI controllers (the 274x and 284x series).  For AAA and ARO based
148c2ecf20Sopenharmony_ci	configurations, only SCSI functionality is provided.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	To compile this driver as a module, choose M here: the
178c2ecf20Sopenharmony_ci	module will be called aic7xxx.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciconfig AIC7XXX_CMDS_PER_DEVICE
208c2ecf20Sopenharmony_ci	int "Maximum number of TCQ commands per device"
218c2ecf20Sopenharmony_ci	depends on SCSI_AIC7XXX
228c2ecf20Sopenharmony_ci	default "32"
238c2ecf20Sopenharmony_ci	help
248c2ecf20Sopenharmony_ci	Specify the number of commands you would like to allocate per SCSI
258c2ecf20Sopenharmony_ci	device when Tagged Command Queueing (TCQ) is enabled on that device.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	This is an upper bound value for the number of tagged transactions
288c2ecf20Sopenharmony_ci	to be used for any device.  The aic7xxx driver will automatically
298c2ecf20Sopenharmony_ci	vary this number based on device behavior.  For devices with a
308c2ecf20Sopenharmony_ci	fixed maximum, the driver will eventually lock to this maximum
318c2ecf20Sopenharmony_ci	and display a console message indicating this value.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci	Due to resource allocation issues in the Linux SCSI mid-layer, using
348c2ecf20Sopenharmony_ci	a high number of commands per device may result in memory allocation
358c2ecf20Sopenharmony_ci	failures when many devices are attached to the system.  For this reason,
368c2ecf20Sopenharmony_ci	the default is set to 32.  Higher values may result in higher performance
378c2ecf20Sopenharmony_ci	on some devices.  The upper bound is 253.  0 disables tagged queueing.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci	Per device tag depth can be controlled via the kernel command line
408c2ecf20Sopenharmony_ci	"tag_info" option.  See Documentation/scsi/aic7xxx.rst for details.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciconfig AIC7XXX_RESET_DELAY_MS
438c2ecf20Sopenharmony_ci	int "Initial bus reset delay in milli-seconds"
448c2ecf20Sopenharmony_ci	depends on SCSI_AIC7XXX
458c2ecf20Sopenharmony_ci	default "5000"
468c2ecf20Sopenharmony_ci	help
478c2ecf20Sopenharmony_ci	The number of milliseconds to delay after an initial bus reset.
488c2ecf20Sopenharmony_ci	The bus settle delay following all error recovery actions is
498c2ecf20Sopenharmony_ci	dictated by the SCSI layer and is not affected by this value.
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci	Default: 5000 (5 seconds)
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciconfig AIC7XXX_BUILD_FIRMWARE
548c2ecf20Sopenharmony_ci	bool "Build Adapter Firmware with Kernel Build"
558c2ecf20Sopenharmony_ci	depends on SCSI_AIC7XXX && !PREVENT_FIRMWARE_BUILD
568c2ecf20Sopenharmony_ci	help
578c2ecf20Sopenharmony_ci	This option should only be enabled if you are modifying the firmware
588c2ecf20Sopenharmony_ci	source to the aic7xxx driver and wish to have the generated firmware
598c2ecf20Sopenharmony_ci	include files updated during a normal kernel build.  The assembler
608c2ecf20Sopenharmony_ci	for the firmware requires lex and yacc or their equivalents, as well
618c2ecf20Sopenharmony_ci	as the db v1 library.  You may have to install additional packages
628c2ecf20Sopenharmony_ci	or modify the assembler Makefile or the files it includes if your
638c2ecf20Sopenharmony_ci	build environment is different than that of the author.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciconfig AIC7XXX_DEBUG_ENABLE
668c2ecf20Sopenharmony_ci	bool "Compile in Debugging Code"
678c2ecf20Sopenharmony_ci	depends on SCSI_AIC7XXX
688c2ecf20Sopenharmony_ci	default y
698c2ecf20Sopenharmony_ci	help
708c2ecf20Sopenharmony_ci	Compile in aic7xxx debugging code that can be useful in diagnosing
718c2ecf20Sopenharmony_ci	driver errors.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ciconfig AIC7XXX_DEBUG_MASK
748c2ecf20Sopenharmony_ci        int "Debug code enable mask (2047 for all debugging)"
758c2ecf20Sopenharmony_ci        depends on SCSI_AIC7XXX
768c2ecf20Sopenharmony_ci        default "0"
778c2ecf20Sopenharmony_ci        help
788c2ecf20Sopenharmony_ci	Bit mask of debug options that is only valid if the
798c2ecf20Sopenharmony_ci	CONFIG_AIC7XXX_DEBUG_ENABLE option is enabled.  The bits in this mask
808c2ecf20Sopenharmony_ci	are defined in the drivers/scsi/aic7xxx/aic7xxx.h - search for the
818c2ecf20Sopenharmony_ci	variable ahc_debug in that file to find them.
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ciconfig AIC7XXX_REG_PRETTY_PRINT
848c2ecf20Sopenharmony_ci        bool "Decode registers during diagnostics"
858c2ecf20Sopenharmony_ci        depends on SCSI_AIC7XXX
868c2ecf20Sopenharmony_ci	default y
878c2ecf20Sopenharmony_ci        help
888c2ecf20Sopenharmony_ci	Compile in register value tables for the output of expanded register
898c2ecf20Sopenharmony_ci	contents in diagnostics.  This make it much easier to understand debug
908c2ecf20Sopenharmony_ci	output without having to refer to a data book and/or the aic7xxx.reg
918c2ecf20Sopenharmony_ci	file.
92