NTB: NTB-RP support
authorJon Mason <jon.mason@intel.com>
Mon, 15 Jul 2013 23:43:54 +0000 (16:43 -0700)
committerJon Mason <jon.mason@intel.com>
Thu, 5 Sep 2013 18:07:58 +0000 (11:07 -0700)
commited6c24eda97b6bdcd013dbd91cc5c8b02de507e9
tree992940462fcdf730a3c93af95dd051b8a543f6ff
parent497938890a0121d040683aa1db42cad8daf7ae97
NTB: NTB-RP support

Add support for Non-Transparent Bridge connected to a PCI-E Root Port on
the remote system (also known as NTB-RP mode).  This allows for a NTB
enabled system to be connected to a non-NTB enabled system/slot.

Modifications to the registers and BARs/MWs on the Secondary side by the
remote system are reflected into registers on the Primary side for the
local system.  Similarly, modifications of registers and BARs/MWs on
Primary side by the local system are reflected into registers on the
Secondary side for the Remote System.  This allows communication between
the 2 sides via these registers and BARs/MWs.

Note: there is not a fix for the Xeon Errata (that was already worked
around in NTB-B2B mode) for NTB-RP mode.  Due to this limitation, NTB-RP
will not work on the Secondary side with the Xeon Errata workaround
enabled.  To get around this, disable the workaround via the
xeon_errata_workaround=0 modparm.  However, this can cause the hang
described in the errata.

Signed-off-by: Jon Mason <jon.mason@intel.com>
drivers/ntb/ntb_hw.c
drivers/ntb/ntb_regs.h