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