1. 17 10月, 2014 2 次提交
  2. 21 11月, 2013 3 次提交
  3. 06 9月, 2013 2 次提交
    • J
      NTB: Remove References of non-B2B BWD HW · b1ef0043
      Jon Mason 提交于
      NTB-RP is not a supported configuration on BWD hardware.  Remove the
      code attempting to set it up.
      Signed-off-by: NJon Mason <jon.mason@intel.com>
      b1ef0043
    • J
      NTB: NTB-RP support · ed6c24ed
      Jon Mason 提交于
      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: NJon Mason <jon.mason@intel.com>
      ed6c24ed
  4. 04 9月, 2013 3 次提交
  5. 18 1月, 2013 1 次提交
    • J
      PCI-Express Non-Transparent Bridge Support · fce8a7bb
      Jon Mason 提交于
      A PCI-Express non-transparent bridge (NTB) is a point-to-point PCIe bus
      connecting 2 systems, providing electrical isolation between the two subsystems.
      A non-transparent bridge is functionally similar to a transparent bridge except
      that both sides of the bridge have their own independent address domains.  The
      host on one side of the bridge will not have the visibility of the complete
      memory or I/O space on the other side of the bridge.  To communicate across the
      non-transparent bridge, each NTB endpoint has one (or more) apertures exposed to
      the local system.  Writes to these apertures are mirrored to memory on the
      remote system.  Communications can also occur through the use of doorbell
      registers that initiate interrupts to the alternate domain, and scratch-pad
      registers accessible from both sides.
      
      The NTB device driver is needed to configure these memory windows, doorbell, and
      scratch-pad registers as well as use them in such a way as they can be turned
      into a viable communication channel to the remote system.  ntb_hw.[ch]
      determines the usage model (NTB to NTB or NTB to Root Port) and abstracts away
      the underlying hardware to provide access and a common interface to the doorbell
      registers, scratch pads, and memory windows.  These hardware interfaces are
      exported so that other, non-mainlined kernel drivers can access these.
      ntb_transport.[ch] also uses the exported interfaces in ntb_hw.[ch] to setup a
      communication channel(s) and provide a reliable way of transferring data from
      one side to the other, which it then exports so that "client" drivers can access
      them.  These client drivers are used to provide a standard kernel interface
      (i.e., Ethernet device) to NTB, such that Linux can transfer data from one
      system to the other in a standard way.
      Signed-off-by: NJon Mason <jon.mason@intel.com>
      Reviewed-by: NNicholas Bellinger <nab@linux-iscsi.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fce8a7bb