linux_dsm_epyc7002/drivers/ntb/hw
Logan Gunthorpe 0175250182 ntb_hw_switchtec: Add initialization code for crosslink
Crosslink is a feature of the Switchtec switches that is similar to
the B2B mode of other NTB devices. It allows a system to be designed
that is perfectly symmetric with two identical switches that link
two hosts together.

In order for the system to be symmetric, there is an empty host-less
partition between the two switches which the host must enumerate and
assign BAR addresses to. The firmware in the switch manages this
specially so that the BAR addresses on both sides of the empty
partition will be identical despite being in the same partition with
the same address space.

The driver determines whether crosslink is enabled by a flag set in
the NTB partition info registers which are set by the switch's
configuration file.

When crosslink is enabled, a reserved LUT window is setup to point to
the peer's switch's NTB registers and the local MWs are set to forward
to the host-less partition's BARs. (Yes, this hurts my brain too.)
Once this is setup, largely the same NTB infrastructure is used to
communicate between the two hosts.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
2018-01-28 22:17:23 -05:00
..
amd ntb_hw_amd: Style fixes: open code macros that just obfuscate code 2017-07-06 11:30:07 -04:00
idt NTB: make idt_89hpes_cfg const 2017-11-18 20:37:13 -05:00
intel ntb: remove Intel Atom NTB driver support 2018-01-28 22:17:23 -05:00
mscc ntb_hw_switchtec: Add initialization code for crosslink 2018-01-28 22:17:23 -05:00
Kconfig NTB: switchtec_ntb: Introduce initial NTB driver 2017-11-18 20:37:12 -05:00
Makefile NTB: switchtec_ntb: Introduce initial NTB driver 2017-11-18 20:37:12 -05:00