# SPDX-License-Identifier: GPL-2.0-only
menu "IEEE 1394 (FireWire) support"
	depends on PCI || COMPILE_TEST
	# 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_KUNIT_UAPI_TEST
	tristate "KUnit tests for layout of structure in UAPI" if !KUNIT_ALL_TESTS
	depends on FIREWIRE && KUNIT
	default KUNIT_ALL_TESTS
	help
	  This builds the KUnit tests whether structures exposed to user
	  space have expected layout.

	  KUnit tests run during boot and output the results to the debug
	  log in TAP format (https://testanything.org/). Only useful for
	  kernel devs running KUnit test harness and are not for inclusion
	  into a production build.

	  For more information on KUnit and unit tests in general, refer
	  to the KUnit documentation in Documentation/dev-tools/kunit/.

config FIREWIRE_OHCI
	tristate "OHCI-1394 controllers"
	depends on PCI && FIREWIRE && MMU
	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_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"
	depends on FIREWIRE && INET
	help
	  This enables IPv4/IPv6 over IEEE 1394, providing IP connectivity
	  with other implementations of RFC 2734/3146 as found on several
	  operating systems.  Multicast support is currently limited.

	  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 and G4 with PCI graphics
	  (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