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