| # SPDX-License-Identifier: GPL-2.0-only | |
| menuconfig USB4 | |
| tristate "Unified support for USB4 and Thunderbolt" | |
| depends on PCI | |
| select APPLE_PROPERTIES if EFI_STUB && X86 | |
| select CRC32 | |
| select CRYPTO_LIB_SHA256 | |
| select CRYPTO_LIB_UTILS | |
| select NVMEM | |
| help | |
| USB4 and Thunderbolt driver. USB4 is the public specification | |
| based on the Thunderbolt 3 protocol. This driver is required if | |
| you want to hotplug Thunderbolt and USB4 compliant devices on | |
| Apple hardware or on PCs with Intel Falcon Ridge or newer. | |
| To compile this driver a module, choose M here. The module will be | |
| called thunderbolt. | |
| if USB4 | |
| config USB4_CONFIGFS | |
| def_tristate USB4 | |
| depends on CONFIGFS_FS && !(USB4=y && CONFIGFS_FS=m) | |
| config USB4_DEBUGFS_WRITE | |
| bool "Enable write by debugfs to configuration spaces (DANGEROUS)" | |
| help | |
| Enables writing to device configuration registers through | |
| debugfs interface. You can use tools such as Thunderbolt/USB4 | |
| debugging tools to access these registers. For more | |
| information see: | |
| https://github.com/intel/tbtools | |
| Only enable this if you know what you are doing! Never enable | |
| this for production systems or distro kernels. | |
| config USB4_DEBUGFS_MARGINING | |
| bool "Expose receiver lane margining operations under USB4 ports and retimers (DANGEROUS)" | |
| depends on DEBUG_FS | |
| depends on USB4_DEBUGFS_WRITE | |
| help | |
| Enables hardware and software based receiver lane margining | |
| support under each USB4 port and retimer, including retimers | |
| on the other side of the cable. Used for electrical quality | |
| and robustness validation during manufacturing. Should not be | |
| enabled by distro kernels. | |
| config USB4_KUNIT_TEST | |
| bool "KUnit tests" if !KUNIT_ALL_TESTS | |
| depends on USB4 && KUNIT=y | |
| default KUNIT_ALL_TESTS | |
| config USB4_DMA_TEST | |
| tristate "DMA traffic test driver" | |
| depends on DEBUG_FS | |
| help | |
| This allows sending and receiving DMA traffic through loopback | |
| connection. Loopback connection can be done by either special | |
| dongle that has TX/RX lines crossed, or by simply connecting a | |
| cable back to the host. Only enable this if you know what you | |
| are doing. Normal users and distro kernels should say N here. | |
| To compile this driver a module, choose M here. The module will be | |
| called thunderbolt_dma_test. | |
| config USB4_STREAM | |
| tristate "Stream data over Thunderbolt/USB4 cable" | |
| depends on USB4_CONFIGFS | |
| help | |
| This adds support for USB4STREAM protocol that allows two | |
| hosts to stream data directly over Thunderbolt/USB4 cable | |
| through /dev/tbstreamX devices. | |
| To compile this driver a module, choose M here. The module will be | |
| called thunderbolt_stream. | |
| endif # USB4 |