162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# AIC7XXX and AIC79XX 2.5.X Kernel configuration File.
462306a36Sopenharmony_ci# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#7 $
562306a36Sopenharmony_ci#
662306a36Sopenharmony_ciconfig SCSI_AIC7XXX
762306a36Sopenharmony_ci	tristate "Adaptec AIC7xxx Fast -> U160 support"
862306a36Sopenharmony_ci	depends on (PCI || EISA) && HAS_IOPORT && SCSI
962306a36Sopenharmony_ci	select SCSI_SPI_ATTRS
1062306a36Sopenharmony_ci	help
1162306a36Sopenharmony_ci	This driver supports all of Adaptec's Fast through Ultra 160 PCI
1262306a36Sopenharmony_ci	based SCSI controllers as well as the aic7770 based EISA and VLB
1362306a36Sopenharmony_ci	SCSI controllers (the 274x and 284x series).  For AAA and ARO based
1462306a36Sopenharmony_ci	configurations, only SCSI functionality is provided.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	To compile this driver as a module, choose M here: the
1762306a36Sopenharmony_ci	module will be called aic7xxx.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciconfig AIC7XXX_CMDS_PER_DEVICE
2062306a36Sopenharmony_ci	int "Maximum number of TCQ commands per device"
2162306a36Sopenharmony_ci	depends on SCSI_AIC7XXX
2262306a36Sopenharmony_ci	default "32"
2362306a36Sopenharmony_ci	help
2462306a36Sopenharmony_ci	Specify the number of commands you would like to allocate per SCSI
2562306a36Sopenharmony_ci	device when Tagged Command Queueing (TCQ) is enabled on that device.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	This is an upper bound value for the number of tagged transactions
2862306a36Sopenharmony_ci	to be used for any device.  The aic7xxx driver will automatically
2962306a36Sopenharmony_ci	vary this number based on device behavior.  For devices with a
3062306a36Sopenharmony_ci	fixed maximum, the driver will eventually lock to this maximum
3162306a36Sopenharmony_ci	and display a console message indicating this value.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	Due to resource allocation issues in the Linux SCSI mid-layer, using
3462306a36Sopenharmony_ci	a high number of commands per device may result in memory allocation
3562306a36Sopenharmony_ci	failures when many devices are attached to the system.  For this reason,
3662306a36Sopenharmony_ci	the default is set to 32.  Higher values may result in higher performance
3762306a36Sopenharmony_ci	on some devices.  The upper bound is 253.  0 disables tagged queueing.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	Per device tag depth can be controlled via the kernel command line
4062306a36Sopenharmony_ci	"tag_info" option.  See Documentation/scsi/aic7xxx.rst for details.
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciconfig AIC7XXX_RESET_DELAY_MS
4362306a36Sopenharmony_ci	int "Initial bus reset delay in milli-seconds"
4462306a36Sopenharmony_ci	depends on SCSI_AIC7XXX
4562306a36Sopenharmony_ci	default "5000"
4662306a36Sopenharmony_ci	help
4762306a36Sopenharmony_ci	The number of milliseconds to delay after an initial bus reset.
4862306a36Sopenharmony_ci	The bus settle delay following all error recovery actions is
4962306a36Sopenharmony_ci	dictated by the SCSI layer and is not affected by this value.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	Default: 5000 (5 seconds)
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciconfig AIC7XXX_BUILD_FIRMWARE
5462306a36Sopenharmony_ci	bool "Build Adapter Firmware with Kernel Build"
5562306a36Sopenharmony_ci	depends on SCSI_AIC7XXX && !PREVENT_FIRMWARE_BUILD
5662306a36Sopenharmony_ci	help
5762306a36Sopenharmony_ci	This option should only be enabled if you are modifying the firmware
5862306a36Sopenharmony_ci	source to the aic7xxx driver and wish to have the generated firmware
5962306a36Sopenharmony_ci	include files updated during a normal kernel build.  The assembler
6062306a36Sopenharmony_ci	for the firmware requires lex and yacc or their equivalents, as well
6162306a36Sopenharmony_ci	as the db v1 library.  You may have to install additional packages
6262306a36Sopenharmony_ci	or modify the assembler Makefile or the files it includes if your
6362306a36Sopenharmony_ci	build environment is different than that of the author.
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciconfig AIC7XXX_DEBUG_ENABLE
6662306a36Sopenharmony_ci	bool "Compile in Debugging Code"
6762306a36Sopenharmony_ci	depends on SCSI_AIC7XXX
6862306a36Sopenharmony_ci	default y
6962306a36Sopenharmony_ci	help
7062306a36Sopenharmony_ci	Compile in aic7xxx debugging code that can be useful in diagnosing
7162306a36Sopenharmony_ci	driver errors.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciconfig AIC7XXX_DEBUG_MASK
7462306a36Sopenharmony_ci        int "Debug code enable mask (2047 for all debugging)"
7562306a36Sopenharmony_ci        depends on SCSI_AIC7XXX
7662306a36Sopenharmony_ci        default "0"
7762306a36Sopenharmony_ci        help
7862306a36Sopenharmony_ci	Bit mask of debug options that is only valid if the
7962306a36Sopenharmony_ci	CONFIG_AIC7XXX_DEBUG_ENABLE option is enabled.  The bits in this mask
8062306a36Sopenharmony_ci	are defined in the drivers/scsi/aic7xxx/aic7xxx.h - search for the
8162306a36Sopenharmony_ci	variable ahc_debug in that file to find them.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciconfig AIC7XXX_REG_PRETTY_PRINT
8462306a36Sopenharmony_ci        bool "Decode registers during diagnostics"
8562306a36Sopenharmony_ci        depends on SCSI_AIC7XXX
8662306a36Sopenharmony_ci	default y
8762306a36Sopenharmony_ci        help
8862306a36Sopenharmony_ci	Compile in register value tables for the output of expanded register
8962306a36Sopenharmony_ci	contents in diagnostics.  This make it much easier to understand debug
9062306a36Sopenharmony_ci	output without having to refer to a data book and/or the aic7xxx.reg
9162306a36Sopenharmony_ci	file.
92