1# SPDX-License-Identifier: GPL-2.0-only 2config NTB_IDT 3 tristate "IDT PCIe-switch Non-Transparent Bridge support" 4 depends on PCI 5 select HWMON 6 help 7 This driver supports NTB of cappable IDT PCIe-switches. 8 9 Some of the pre-initializations must be made before IDT PCIe-switch 10 exposes it NT-functions correctly. It should be done by either proper 11 initialisation of EEPROM connected to master smbus of the switch or 12 by BIOS using slave-SMBus interface changing corresponding registers 13 value. Evidently it must be done before PCI bus enumeration is 14 finished in Linux kernel. 15 16 First of all partitions must be activated and properly assigned to all 17 the ports with NT-functions intended to be activated (see SWPARTxCTL 18 and SWPORTxCTL registers). Then all NT-function BARs must be enabled 19 with chosen valid aperture. For memory windows related BARs the 20 aperture settings shall determine the maximum size of memory windows 21 accepted by a BAR. Note that BAR0 must map PCI configuration space 22 registers. 23 24 It's worth to note, that since a part of this driver relies on the 25 BAR settings of peer NT-functions, the BAR setups can't be done over 26 kernel PCI fixups. That's why the alternative pre-initialization 27 techniques like BIOS using SMBus interface or EEPROM should be 28 utilized. 29 30 If unsure, say N. 31 32