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