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