
menu "I2O device support"

config I2O
	tristate "I2O support"
	depends on PCI
	---help---
	  The Intelligent Input/Output (I2O) architecture allows hardware
	  drivers to be split into two parts: an operating system specific
	  module called the OSM and an hardware specific module called the
	  HDM. The OSM can talk to a whole range of HDM's, and ideally the
	  HDM's are not OS dependent. This allows for the same HDM driver to
	  be used under different operating systems if the relevant OSM is in
	  place. In order for this to work, you need to have an I2O interface
	  adapter card in your computer. This card contains a special I/O
	  processor (IOP), thus allowing high speeds since the CPU does not
	  have to deal with I/O.

	  If you say Y here, you will get a choice of interface adapter
	  drivers and OSM's with the following questions.

	  To compile this support as a module, choose M here: the
	  modules will be called i2o_core.

	  If unsure, say N.

config I2O_CONFIG
	tristate "I2O Configuration support"
	depends on PCI && I2O
	help
	  Say Y for support of the configuration interface for the I2O adapters.
	  If you have a RAID controller from Adaptec and you want to use the
	  raidutils to manage your RAID array, you have to say Y here.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_config.

config I2O_BLOCK
	tristate "I2O Block OSM"
	depends on I2O
	help
	  Include support for the I2O Block OSM. The Block OSM presents disk
	  and other structured block devices to the operating system. If you
	  are using an RAID controller, you could access the array only by
	  the Block OSM driver. But it is possible to access the single disks
	  by the SCSI OSM driver, for example to monitor the disks.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_block.

config I2O_SCSI
	tristate "I2O SCSI OSM"
	depends on I2O && SCSI
	help
	  Allows direct SCSI access to SCSI devices on a SCSI or FibreChannel
	  I2O controller. You can use both the SCSI and Block OSM together if
	  you wish. To access a RAID array, you must use the Block OSM driver.
	  But you could use the SCSI OSM driver to monitor the single disks.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_scsi.

config I2O_PROC
	tristate "I2O /proc support"
	depends on I2O
	help
	  If you say Y here and to "/proc file system support", you will be
	  able to read I2O related information from the virtual directory
	  /proc/i2o.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_proc.

endmenu

