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