summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorAllen Hubbe <Allen.Hubbe@emc.com>2015-04-09 17:33:20 +0300
committerJon Mason <jdmason@kudzu.us>2015-07-04 21:04:44 +0300
commita1bd3baeb2f18b2b3d0f98ce5fdaa725149b950b (patch)
treeea7f83ae16bf1369c37f1e5ed585efaa87fc84f2 /Documentation
parentec110bc7cc48d7806c9b65094e6afb19452d458f (diff)
downloadlinux-a1bd3baeb2f18b2b3d0f98ce5fdaa725149b950b.tar.xz
NTB: Add NTB hardware abstraction layer
Abstract the NTB device behind a programming interface, so that it can support different hardware and client drivers. Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/ntb.txt32
1 files changed, 32 insertions, 0 deletions
diff --git a/Documentation/ntb.txt b/Documentation/ntb.txt
new file mode 100644
index 000000000000..9d46dc9712a8
--- /dev/null
+++ b/Documentation/ntb.txt
@@ -0,0 +1,32 @@
+# NTB Drivers
+
+NTB (Non-Transparent Bridge) is a type of PCI-Express bridge chip that connects
+the separate memory systems of two computers to the same PCI-Express fabric.
+Existing NTB hardware supports a common feature set, including scratchpad
+registers, doorbell registers, and memory translation windows. Scratchpad
+registers are read-and-writable registers that are accessible from either side
+of the device, so that peers can exchange a small amount of information at a
+fixed address. Doorbell registers provide a way for peers to send interrupt
+events. Memory windows allow translated read and write access to the peer
+memory.
+
+## NTB Core Driver (ntb)
+
+The NTB core driver defines an api wrapping the common feature set, and allows
+clients interested in NTB features to discover NTB the devices supported by
+hardware drivers. The term "client" is used here to mean an upper layer
+component making use of the NTB api. The term "driver," or "hardware driver,"
+is used here to mean a driver for a specific vendor and model of NTB hardware.
+
+## NTB Client Drivers
+
+NTB client drivers should register with the NTB core driver. After
+registering, the client probe and remove functions will be called appropriately
+as ntb hardware, or hardware drivers, are inserted and removed. The
+registration uses the Linux Device framework, so it should feel familiar to
+anyone who has written a pci driver.
+
+## NTB Hardware Drivers
+
+NTB hardware drivers should register devices with the NTB core driver. After
+registering, clients probe and remove functions will be called.