Usphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget2/translations/zh_CN/PCI/endpoint/pci-vntb-functionmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget2/translations/zh_TW/PCI/endpoint/pci-vntb-functionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget2/translations/it_IT/PCI/endpoint/pci-vntb-functionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget2/translations/ja_JP/PCI/endpoint/pci-vntb-functionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget2/translations/ko_KR/PCI/endpoint/pci-vntb-functionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget2/translations/pt_BR/PCI/endpoint/pci-vntb-functionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget2/translations/sp_SP/PCI/endpoint/pci-vntb-functionmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhL/var/lib/git/docbuild/linux/Documentation/PCI/endpoint/pci-vntb-function.rsthKubhsection)}(hhh](htitle)}(hPCI vNTB Functionh]hPCI vNTB Function}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh field_list)}(hhh]hfield)}(hhh](h field_name)}(hAuthorh]hAuthor}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(hFrank Li h]h paragraph)}(hFrank Li h](h Frank Li <}(hhhhhNhNubh reference)}(hFrank.Li@nxp.comh]hFrank.Li@nxp.com}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:Frank.Li@nxp.comuh1jhhubh>}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(h@The difference between PCI NTB function and PCI vNTB function ish]h@The difference between PCI NTB function and PCI vNTB function is}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hLPCI NTB function need at two endpoint instances and connect HOST1 and HOST2.h]hLPCI NTB function need at two endpoint instances and connect HOST1 and HOST2.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hYPCI vNTB function only use one host and one endpoint(EP), use NTB connect EP and PCI hosth]hYPCI vNTB function only use one host and one endpoint(EP), use NTB connect EP and PCI host}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh literal_block)}(hX}+------------+ +---------------------------------------+ | | | | +------------+ | +--------------+ | NTB | | | NTB | | NetDev | | | NetDev | +------------+ | +--------------+ | NTB | | | NTB | | Transfer | | | Transfer | +------------+ | +--------------+ | | | | | | PCI NTB | | | | | EPF | | | | | Driver | | | PCI Virtual | | | +---------------+ | NTB Driver | | | | PCI EP NTB |<------>| | | | | FN Driver | | | +------------+ +---------------+ +--------------+ | | | | | | | PCI BUS | <-----> | PCI EP BUS | | Virtual PCI | | | PCI | | | BUS | +------------+ +---------------+--------+--------------+ PCI RC PCI EPh]hX}+------------+ +---------------------------------------+ | | | | +------------+ | +--------------+ | NTB | | | NTB | | NetDev | | | NetDev | +------------+ | +--------------+ | NTB | | | NTB | | Transfer | | | Transfer | +------------+ | +--------------+ | | | | | | PCI NTB | | | | | EPF | | | | | Driver | | | PCI Virtual | | | +---------------+ | NTB Driver | | | | PCI EP NTB |<------>| | | | | FN Driver | | | +------------+ +---------------+ +--------------+ | | | | | | | PCI BUS | <-----> | PCI EP BUS | | Virtual PCI | | | PCI | | | BUS | +------------+ +---------------+--------+--------------+ PCI RC PCI EP}hjasbah}(h]h ]h"]h$]h&]hhƌforcelanguagetexthighlight_args}uh1j_hhhKhhhhubh)}(hhh](h)}(h%Constructs used for Implementing vNTBh]h%Constructs used for Implementing vNTB}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthhhhhK,ubh block_quote)}(h}1) Config Region 2) Self Scratchpad Registers 3) Peer Scratchpad Registers 4) Doorbell (DB) Registers 5) Memory Window (MW) h]henumerated_list)}(hhh](h list_item)}(h Config Regionh]h)}(hjh]h Config Region}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hSelf Scratchpad Registersh]h)}(hjh]hSelf Scratchpad Registers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hPeer Scratchpad Registersh]h)}(hjh]hPeer Scratchpad Registers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hDoorbell (DB) Registersh]h)}(hjh]hDoorbell (DB) Registers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hMemory Window (MW) h]h)}(hMemory Window (MW)h]hMemory Window (MW)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix)uh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhK.hjthhubh)}(hhh](h)}(hConfig Region:h]hConfig Region:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK6ubh)}(h%It is same as PCI NTB Function driverh]h%It is same as PCI NTB Function driver}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjhhubeh}(h] config-regionah ]h"]config region:ah$]h&]uh1hhjthhhhhK6ubh)}(hhh](h)}(hScratchpad Registers:h]hScratchpad Registers:}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hhhhhK;ubh)}(h#It is appended after Config region.h]h#It is appended after Config region.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hj>hhubj`)}(hX+--------------------------------------------------+ Base | | | | | | | Common Config Register | | | | | | | +-----------------------+--------------------------+ Base + span_offset | | | | Peer Span Space | Span Space | | | | | | | +-----------------------+--------------------------+ Base + span_offset | | | + span_count * 4 | | | | Span Space | Peer Span Space | | | | +-----------------------+--------------------------+ Virtual PCI Pcie Endpoint NTB Driver NTB Driverh]hX+--------------------------------------------------+ Base | | | | | | | Common Config Register | | | | | | | +-----------------------+--------------------------+ Base + span_offset | | | | Peer Span Space | Span Space | | | | | | | +-----------------------+--------------------------+ Base + span_offset | | | + span_count * 4 | | | | Span Space | Peer Span Space | | | | +-----------------------+--------------------------+ Virtual PCI Pcie Endpoint NTB Driver NTB Driver}hj]sbah}(h]h ]h"]h$]h&]hhjojptextjr}uh1j_hhhK?hj>hhubeh}(h]scratchpad-registersah ]h"]scratchpad registers:ah$]h&]uh1hhjthhhhhK;ubh)}(hhh](h)}(hDoorbell Registers:h]hDoorbell Registers:}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhhhhhKZubj)}(hBDoorbell Registers are used by the hosts to interrupt each other. h]h)}(hADoorbell Registers are used by the hosts to interrupt each other.h]hADoorbell Registers are used by the hosts to interrupt each other.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjubah}(h]h ]h"]h$]h&]uh1jhhhK\hjuhhubeh}(h]doorbell-registersah ]h"]doorbell registers:ah$]h&]uh1hhjthhhhhKZubh)}(hhh](h)}(hMemory Window:h]hMemory Window:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK_ubj)}(hSActual transfer of data between the two hosts will happen using the memory window. h]h)}(hRActual transfer of data between the two hosts will happen using the memory window.h]hRActual transfer of data between the two hosts will happen using the memory window.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjubah}(h]h ]h"]h$]h&]uh1jhhhKahjhhubeh}(h] memory-windowah ]h"]memory window:ah$]h&]uh1hhjthhhhhK_ubeh}(h]%constructs-used-for-implementing-vntbah ]h"]%constructs used for implementing vntbah$]h&]uh1hhhhhhhhK,ubh)}(hhh](h)}(hModeling Constructs:h]hModeling Constructs:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKeubh)}(h 32-bit BARs.h]h 32-bit BARs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjhhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hBAR NOh]hBAR NO}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhj*ubah}(h]h ]h"]h$]h&]uh1j(hj%ubj))}(hhh]h)}(hCONSTRUCTS USEDh]hCONSTRUCTS USED}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjAubah}(h]h ]h"]h$]h&]uh1j(hj%ubeh}(h]h ]h"]h$]h&]uh1j#hj ubah}(h]h ]h"]h$]h&]uh1jhjubhtbody)}(hhh](j$)}(hhh](j))}(hhh]h)}(hBAR0h]hBAR0}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjlubah}(h]h ]h"]h$]h&]uh1j(hjiubj))}(hhh]h)}(h Config Regionh]h Config Region}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubah}(h]h ]h"]h$]h&]uh1j(hjiubeh}(h]h ]h"]h$]h&]uh1j#hjfubj$)}(hhh](j))}(hhh]h)}(hBAR1h]hBAR1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhjubah}(h]h ]h"]h$]h&]uh1j(hjubj))}(hhh]h)}(hDoorbellh]hDoorbell}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1j#hjfubj$)}(hhh](j))}(hhh]h)}(hBAR2h]hBAR2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjubah}(h]h ]h"]h$]h&]uh1j(hjubj))}(hhh]h)}(hMemory Window 1h]hMemory Window 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1j#hjfubj$)}(hhh](j))}(hhh]h)}(hBAR3h]hBAR3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjubah}(h]h ]h"]h$]h&]uh1j(hjubj))}(hhh]h)}(hMemory Window 2h]hMemory Window 2}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohj(ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1j#hjfubj$)}(hhh](j))}(hhh]h)}(hBAR4h]hBAR4}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjHubah}(h]h ]h"]h$]h&]uh1j(hjEubj))}(hhh]h)}(hMemory Window 3h]hMemory Window 3}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphj_ubah}(h]h ]h"]h$]h&]uh1j(hjEubeh}(h]h ]h"]h$]h&]uh1j#hjfubj$)}(hhh](j))}(hhh]h)}(hBAR5h]hBAR5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjubah}(h]h ]h"]h$]h&]uh1j(hj|ubj))}(hhh]h)}(hMemory Window 4h]hMemory Window 4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjubah}(h]h ]h"]h$]h&]uh1j(hj|ubeh}(h]h ]h"]h$]h&]uh1j#hjfubeh}(h]h ]h"]h$]h&]uh1jdhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(h 64-bit BARs.h]h 64-bit BARs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjhhubj)}(hhh]j)}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]j$)}(hhh](j))}(hhh]h)}(hBAR NOh]hBAR NO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjubah}(h]h ]h"]h$]h&]uh1j(hjubj))}(hhh]h)}(hCONSTRUCTS USEDh]hCONSTRUCTS USED}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhj ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1jhjubje)}(hhh](j$)}(hhh](j))}(hhh]h)}(hBAR0h]hBAR0}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhj4ubah}(h]h ]h"]h$]h&]uh1j(hj1ubj))}(hhh]h)}(hConfig Region + Scratchpadh]hConfig Region + Scratchpad}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjKubah}(h]h ]h"]h$]h&]uh1j(hj1ubeh}(h]h ]h"]h$]h&]uh1j#hj.ubj$)}(hhh](j))}(hhh]h)}(hBAR1h]hBAR1}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhjkubah}(h]h ]h"]h$]h&]uh1j(hjhubj))}(hhh]h}(h]h ]h"]h$]h&]uh1j(hjhubeh}(h]h ]h"]h$]h&]uh1j#hj.ubj$)}(hhh](j))}(hhh]h)}(hBAR2h]hBAR2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjubah}(h]h ]h"]h$]h&]uh1j(hjubj))}(hhh]h)}(hDoorbellh]hDoorbell}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1j#hj.ubj$)}(hhh](j))}(hhh]h)}(hBAR3h]hBAR3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjubah}(h]h ]h"]h$]h&]uh1j(hjubj))}(hhh]h}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1j#hj.ubj$)}(hhh](j))}(hhh]h)}(hBAR4h]hBAR4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjubah}(h]h ]h"]h$]h&]uh1j(hjubj))}(hhh]h)}(hMemory Window 1h]hMemory Window 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hj ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1j#hj.ubj$)}(hhh](j))}(hhh]h)}(hBAR5h]hBAR5}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK~hj+ubah}(h]h ]h"]h$]h&]uh1j(hj(ubj))}(hhh]h}(h]h ]h"]h$]h&]uh1j(hj(ubeh}(h]h ]h"]h$]h&]uh1j#hj.ubeh}(h]h ]h"]h$]h&]uh1jdhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]modeling-constructsah ]h"]modeling constructs:ah$]h&]uh1hhhhhhhhKeubeh}(h]pci-vntb-functionah ]h"]pci vntb functionah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj(footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jqjnjjj;j8jrjojjjjjijfu nametypes}(jqjj;jrjjjiuh}(jnhjjtj8jjoj>jjujjjfju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.