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