Lines Matching +full:dma +full:- +full:window
5 NTB (Non-Transparent Bridge) is a type of PCI-Express bridge chip that connects
6 the separate memory systems of two or more computers to the same PCI-Express
9 scratchpad and message registers. Scratchpad registers are read-and-writable
36 ----------------------------------------
40 mainly used to perform the proper memory window initialization. Typically
41 there are two types of memory window interfaces supported by the NTB API:
50 | dma-mapped |-ntb_mw_set_trans(addr) |
52 | (addr) |<======| MW xlat addr |<====| MW base addr |<== memory-mapped IO
53 |------------| |--------------| | |--------------|
55 So typical scenario of the first type memory window initialization looks:
58 maps corresponding outbound memory window so to have access to the shared
68 | dma-mapped | | | MW base addr |<== memory-mapped IO
69 | memory | | |--------------|
70 | (addr) |<===================| MW xlat addr |<-ntb_peer_mw_set_trans(addr)
71 |------------| | |--------------|
76 outbound memory window so to have access to the shared memory region.
82 1) Allocate memory for a shared window
83 2) Initialize memory window by translated address of the allocated region
84 (it may fail if local memory window initialization is unsupported)
85 3) Send the translated address and memory window index to a peer device
88 1) Initialize memory window with retrieved address of the allocated
89 by another device memory region (it may fail if peer memory window
91 2) Map outbound memory window
93 In accordance with this scenario, the NTB Memory Window API can be used as
97 1) ntb_mw_count(pidx) - retrieve number of memory ranges, which can
100 2) ntb_get_align(pidx, midx) - retrieve parameters restricting the
105 4) ntb_mw_set_trans(pidx, midx) - try to set translation address of
106 the memory window with specified index for the defined peer device
108 5) Send translated base address (usually together with memory window
113 1) ntb_peer_mw_set_trans(pidx, midx) - try to set received from other
115 window. It may fail if retrieved address, for instance, exceeds
117 2) ntb_peer_mw_get_addr(widx) - retrieve MMIO address to map the memory
118 window so to have an access to the shared memory.
121 same value as ntb_peer_mw_count() on the peer with port index - pidx.
124 ------------------------------------------------------------------
136 -----------------------------------------
150 * unsafe - Some hardware has known issues with scratchpad and doorbell
154 * delay\_ms - Specify the delay between receiving a doorbell
157 * init\_db - Specify the doorbell bits to start new series of rounds. A new
160 * dyndbg - It is suggested to specify dyndbg=+p when loading this module, and
164 --------------------------------
204 ------------------------------------
237 ------------------------------------------
244 If the peer ntb is to be accessed via a memory window, then use
245 this memory window to access the peer ntb. A value of zero or positive
248 `-1`.
250 If the peer ntb is to be accessed via a memory window, and if
251 the memory window is large enough, still allow the client to use the
252 second half of the memory window for address translation to the peer.
255 this 64 bit address on the bus between the NTB devices for the window
257 * xeon\_b2b\_usd\_bar4\_addr64 - See *xeon\_b2b\_bar2\_addr64*.
258 * xeon\_b2b\_usd\_bar4\_addr32 - See *xeon\_b2b\_bar2\_addr64*.
259 * xeon\_b2b\_usd\_bar5\_addr32 - See *xeon\_b2b\_bar2\_addr64*.
260 * xeon\_b2b\_dsd\_bar2\_addr64 - See *xeon\_b2b\_bar2\_addr64*.
261 * xeon\_b2b\_dsd\_bar4\_addr64 - See *xeon\_b2b\_bar2\_addr64*.
262 * xeon\_b2b\_dsd\_bar4\_addr32 - See *xeon\_b2b\_bar2\_addr64*.
263 * xeon\_b2b\_dsd\_bar5\_addr32 - See *xeon\_b2b\_bar2\_addr64*.