NTB: Xeon Errata Workaround
authorJon Mason <jon.mason@intel.com>
Fri, 19 Apr 2013 00:07:36 +0000 (17:07 -0700)
committerJon Mason <jon.mason@intel.com>
Tue, 3 Sep 2013 20:51:51 +0000 (13:51 -0700)
commit948d3a65b6d164b34309625f57656cb9e8b1a908
tree01afe66a33f978552f0577eb478d801e8e6a6284
parent1517a3f21a1dd321f16bcf44204bddff9d21abd0
NTB: Xeon Errata Workaround

There is a Xeon hardware errata related to writes to SDOORBELL or
B2BDOORBELL in conjunction with inbound access to NTB MMIO Space, which
may hang the system.  To workaround this issue, use one of the memory
windows to access the interrupt and scratch pad registers on the remote
system.  This bypasses the issue, but removes one of the memory windows
from use by the transport.  This reduction of MWs necessitates adding
some logic to determine the number of available MWs.

Since some NTB usage methodologies may have unidirectional traffic, the
ability to disable the workaround via modparm has been added.

See BF113 in
http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-c5500-c3500-spec-update.pdf
See BT119 in
http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e5-family-spec-update.pdf

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