menu "IEEE 1394 (FireWire) support"
	depends on PCI || BROKEN
	# firewire-core does not depend on PCI but is
	# not useful without PCI controller driver

config FIREWIRE
	tristate "FireWire driver stack"
	select CRC_ITU_T
	help
	  This is the new-generation IEEE 1394 (FireWire) driver stack
	  a.k.a. Juju, a new implementation designed for robustness and
	  simplicity.
	  See http://ieee1394.wiki.kernel.org/index.php/Juju_Migration
	  for information about migration from the older Linux 1394 stack
	  to the new driver stack.

	  To compile this driver as a module, say M here: the module will be
	  called firewire-core.

config FIREWIRE_OHCI
	tristate "OHCI-1394 controllers"
	depends on PCI && FIREWIRE
	help
	  Enable this driver if you have a FireWire controller based
	  on the OHCI specification.  For all practical purposes, this
	  is the only chipset in use, so say Y here.

	  To compile this driver as a module, say M here:  The module will be
	  called firewire-ohci.

config FIREWIRE_OHCI_DEBUG
	bool
	depends on FIREWIRE_OHCI
	default y

config FIREWIRE_SBP2
	tristate "Storage devices (SBP-2 protocol)"
	depends on FIREWIRE && SCSI
	help
	  This option enables you to use SBP-2 devices connected to a
	  FireWire bus.  SBP-2 devices include storage devices like
	  harddisks and DVD drives, also some other FireWire devices
	  like scanners.

	  To compile this driver as a module, say M here:  The module will be
	  called firewire-sbp2.

	  You should also enable support for disks, CD-ROMs, etc. in the SCSI
	  configuration section.

config FIREWIRE_NET
	tristate "IP networking over 1394 (EXPERIMENTAL)"
	depends on FIREWIRE && INET && EXPERIMENTAL
	help
	  This enables IPv4 over IEEE 1394, providing IP connectivity with
	  other implementations of RFC 2734 as found on several operating
	  systems.  Multicast support is currently limited.

	  NOTE, this driver is not stable yet!

	  To compile this driver as a module, say M here:  The module will be
	  called firewire-net.

config FIREWIRE_NOSY
	tristate "Nosy - a FireWire traffic sniffer for PCILynx cards"
	depends on PCI
	help
	  Nosy is an IEEE 1394 packet sniffer that is used for protocol
	  analysis and in development of IEEE 1394 drivers, applications,
	  or firmwares.

	  This driver lets you use a Texas Instruments PCILynx 1394 to PCI
	  link layer controller TSB12LV21/A/B as a low-budget bus analyzer.
	  PCILynx is a nowadays very rare IEEE 1394 controller which is
	  not OHCI 1394 compliant.

	  The following cards are known to be based on PCILynx or PCILynx-2:
	  IOI IOI-1394TT (PCI card), Unibrain Fireboard 400 PCI Lynx-2
	  (PCI card), Newer Technology FireWire 2 Go (CardBus card),
	  Apple Power Mac G3 blue & white (onboard controller).

	  To compile this driver as a module, say M here:  The module will be
	  called nosy.  Source code of a userspace interface to nosy, called
	  nosy-dump, can be found in tools/firewire/ of the kernel sources.

	  If unsure, say N.

endmenu
