Hsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftargetR/translations/zh_CN/networking/device_drivers/ethernet/freescale/dpaa2/dpio-drivermodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetR/translations/zh_TW/networking/device_drivers/ethernet/freescale/dpaa2/dpio-drivermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetR/translations/it_IT/networking/device_drivers/ethernet/freescale/dpaa2/dpio-drivermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetR/translations/ja_JP/networking/device_drivers/ethernet/freescale/dpaa2/dpio-drivermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetR/translations/ko_KR/networking/device_drivers/ethernet/freescale/dpaa2/dpio-drivermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetR/translations/sp_SP/networking/device_drivers/ethernet/freescale/dpaa2/dpio-drivermodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h4This data file has been placed in the public domain.h]h4This data file has been placed in the public domain.}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhho/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txthKubh)}(hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .h]hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsubstitution_definition)}(h*.. |amp| unicode:: U+00026 .. AMPERSANDh]h&}hhsbah}(h]h ]h"]ampah$]h&]uh1hhhhKhhhhubh)}(h+.. |apos| unicode:: U+00027 .. APOSTROPHEh]h'}hhsbah}(h]h ]h"]aposah$]h&]uh1hhhhKhhhhubh)}(h).. |ast| unicode:: U+0002A .. ASTERISKh]h*}hhsbah}(h]h ]h"]astah$]h&]uh1hhhhK hhhhubh)}(h+.. |brvbar| unicode:: U+000A6 .. BROKEN BARh]h¦}hhsbah}(h]h ]h"]brvbarah$]h&]uh1hhhhK hhhhubh)}(h0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUSh]h\}hjsbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hjsbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hjsbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hj-sbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hj<sbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjKsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hjZsbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjisbah}(h]h ]h"]darrah$]h&]uh1hhhhKhhhhubh)}(h,.. |deg| unicode:: U+000B0 .. DEGREE SIGNh]h°}hjxsbah}(h]h ]h"]degah$]h&]uh1hhhhKhhhhubh)}(h... |divide| unicode:: U+000F7 .. DIVISION SIGNh]h÷}hjsbah}(h]h ]h"]divideah$]h&]uh1hhhhKhhhhubh)}(h,.. |dollar| unicode:: U+00024 .. DOLLAR SIGNh]h$}hjsbah}(h]h ]h"]dollarah$]h&]uh1hhhhKhhhhubh)}(h,.. |equals| unicode:: U+0003D .. EQUALS SIGNh]h=}hjsbah}(h]h ]h"]equalsah$]h&]uh1hhhhKhhhhubh)}(h1.. |excl| unicode:: U+00021 .. EXCLAMATION MARKh]h!}hjsbah}(h]h ]h"]exclah$]h&]uh1hhhhKhhhhubh)}(h9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjsbah}(h]h ]h"]frac12ah$]h&]uh1hhhhKhhhhubh)}(h<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTERh]h¼}hjsbah}(h]h ]h"]frac14ah$]h&]uh1hhhhKhhhhubh)}(h;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTHh]h⅛}hjsbah}(h]h ]h"]frac18ah$]h&]uh1hhhhKhhhhubh)}(h?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERSh]h¾}hjsbah}(h]h ]h"]frac34ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHSh]h⅜}hjsbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hjsbah}(h]h ]h"]frac58ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHSh]h⅞}hjsbah}(h]h ]h"]frac78ah$]h&]uh1hhhhKhhhhubh)}(h2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGNh]h>}hj,sbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hj;sbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjJsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hjYsbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjhsbah}(h]h ]h"]iexclah$]h&]uh1hhhhK#hhhhubh)}(h7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARKh]h¿}hjwsbah}(h]h ]h"]iquestah$]h&]uh1hhhhK$hhhhubh)}(hJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARKh]h«}hjsbah}(h]h ]h"]laquoah$]h&]uh1hhhhK%hhhhubh)}(h0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROWh]h←}hjsbah}(h]h ]h"]larrah$]h&]uh1hhhhK&hhhhubh)}(h3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKETh]h{}hjsbah}(h]h ]h"]lcubah$]h&]uh1hhhhK'hhhhubh)}(h;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARKh]h“}hjsbah}(h]h ]h"]ldquoah$]h&]uh1hhhhK(hhhhubh)}(h).. |lowbar| unicode:: U+0005F .. LOW LINEh]h_}hjsbah}(h]h ]h"]lowbarah$]h&]uh1hhhhK)hhhhubh)}(h1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESISh]h(}hjsbah}(h]h ]h"]lparah$]h&]uh1hhhhK*hhhhubh)}(h4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKETh]h[}hjsbah}(h]h ]h"]lsqbah$]h&]uh1hhhhK+hhhhubh)}(h;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARKh]h‘}hjsbah}(h]h ]h"]lsquoah$]h&]uh1hhhhK,hhhhubh)}(h/.. |lt| unicode:: U+0003C .. LESS-THAN SIGNh]h<}hjsbah}(h]h ]h"]ltah$]h&]uh1hhhhK-hhhhubh)}(h+.. |micro| unicode:: U+000B5 .. MICRO SIGNh]hµ}hj sbah}(h]h ]h"]microah$]h&]uh1hhhhK.hhhhubh)}(h+.. |middot| unicode:: U+000B7 .. MIDDLE DOTh]h·}hjsbah}(h]h ]h"]middotah$]h&]uh1hhhhK/hhhhubh)}(h/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACEh]h }hj+sbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hj:sbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjIsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hjXsbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjgsbah}(h]h ]h"]ordfah$]h&]uh1hhhhK4hhhhubh)}(h<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATORh]hº}hjvsbah}(h]h ]h"]ordmah$]h&]uh1hhhhK5hhhhubh)}(h-.. |para| unicode:: U+000B6 .. PILCROW SIGNh]h¶}hjsbah}(h]h ]h"]paraah$]h&]uh1hhhhK6hhhhubh)}(h-.. |percnt| unicode:: U+00025 .. PERCENT SIGNh]h%}hjsbah}(h]h ]h"]percntah$]h&]uh1hhhhK7hhhhubh)}(h*.. |period| unicode:: U+0002E .. FULL STOPh]h.}hjsbah}(h]h ]h"]periodah$]h&]uh1hhhhK8hhhhubh)}(h*.. |plus| unicode:: U+0002B .. PLUS SIGNh]h+}hjsbah}(h]h ]h"]plusah$]h&]uh1hhhhK9hhhhubh)}(h0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGNh]h±}hjsbah}(h]h ]h"]plusmnah$]h&]uh1hhhhK:hhhhubh)}(h+.. |pound| unicode:: U+000A3 .. POUND SIGNh]h£}hjsbah}(h]h ]h"]poundah$]h&]uh1hhhhK;hhhhubh)}(h... |quest| unicode:: U+0003F .. QUESTION MARKh]h?}hjsbah}(h]h ]h"]questah$]h&]uh1hhhhKhhhhubh)}(h1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROWh]h→}hj sbah}(h]h ]h"]rarrah$]h&]uh1hhhhK?hhhhubh)}(h4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKETh]h}}hjsbah}(h]h ]h"]rcubah$]h&]uh1hhhhK@hhhhubh)}(h<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARKh]h”}hj*sbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hj9sbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjHsbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjWsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjfsbah}(h]h ]h"]rsquoah$]h&]uh1hhhhKEhhhhubh)}(h-.. |sect| unicode:: U+000A7 .. SECTION SIGNh]h§}hjusbah}(h]h ]h"]sectah$]h&]uh1hhhhKFhhhhubh)}(h*.. |semi| unicode:: U+0003B .. SEMICOLONh]h;}hjsbah}(h]h ]h"]semiah$]h&]uh1hhhhKGhhhhubh)}(h,.. |shy| unicode:: U+000AD .. SOFT HYPHENh]h­}hjsbah}(h]h ]h"]shyah$]h&]uh1hhhhKHhhhhubh)}(h(.. |sol| unicode:: U+0002F .. SOLIDUSh]h/}hjsbah}(h]h ]h"]solah$]h&]uh1hhhhKIhhhhubh)}(h,.. |sung| unicode:: U+0266A .. EIGHTH NOTEh]h♪}hjsbah}(h]h ]h"]sungah$]h&]uh1hhhhKJhhhhubh)}(h0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONEh]h¹}hjsbah}(h]h ]h"]sup1ah$]h&]uh1hhhhKKhhhhubh)}(h0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWOh]h²}hjsbah}(h]h ]h"]sup2ah$]h&]uh1hhhhKLhhhhubh)}(h2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREEh]h³}hjsbah}(h]h ]h"]sup3ah$]h&]uh1hhhhKMhhhhubh)}(h4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGNh]h×}hjsbah}(h]h ]h"]timesah$]h&]uh1hhhhKNhhhhubh)}(h0.. |trade| unicode:: U+02122 .. TRADE MARK SIGNh]h™}hjsbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hj sbah}(h]h ]h"]uarrah$]h&]uh1hhhhKPhhhhubh)}(h... |verbar| unicode:: U+0007C .. VERTICAL LINEh]h|}hjsbah}(h]h ]h"]verbarah$]h&]uh1hhhhKQhhhhubh)}(h*.. |yen| unicode:: U+000A5 .. YEN SIGN h]h¥}hj)sbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhsection)}(hhh](htitle)}(h#DPAA2 DPIO (Data Path I/O) Overviewh]h#DPAA2 DPIO (Data Path I/O) Overview}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj:hhhl/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/freescale/dpaa2/dpio-driver.rsthKubh field_list)}(hhh]hfield)}(hhh](h field_name)}(h Copyrighth]h Copyright}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjUhjMhKubh field_body)}(h|copy| 2016-2018 NXP h]h paragraph)}(h|copy| 2016-2018 NXPh](h©}(hjphhhNhNubh 2016-2018 NXP}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1jnhjMhKhjjubah}(h]h ]h"]h$]h&]uh1jhhjUubeh}(h]h ]h"]h$]h&]uh1jShjMhKhjPhhubah}(h]h ]h"]h$]h&]uh1jNhj:hhhjMhKubjo)}(hFThis document provides an overview of the Freescale DPAA2 DPIO driversh]hFThis document provides an overview of the Freescale DPAA2 DPIO drivers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK hj:hhubj9)}(hhh](j>)}(h Introductionh]h Introduction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjhhhjMhK ubjo)}(hA DPAA2 DPIO (Data Path I/O) is a hardware object that provides interfaces to enqueue and dequeue frames to/from network interfaces and other accelerators. A DPIO also provides hardware buffer pool management for network interfaces.h]hA DPAA2 DPIO (Data Path I/O) is a hardware object that provides interfaces to enqueue and dequeue frames to/from network interfaces and other accelerators. A DPIO also provides hardware buffer pool management for network interfaces.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjhhubjo)}(hZThis document provides an overview the Linux DPIO driver, its subcomponents, and its APIs.h]hZThis document provides an overview the Linux DPIO driver, its subcomponents, and its APIs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjhhubjo)}(hSee Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst for a general overview of DPAA2 and the general DPAA2 driver architecture in Linux.h]hSee Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst for a general overview of DPAA2 and the general DPAA2 driver architecture in Linux.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjhhubj9)}(hhh](j>)}(hDriver Overviewh]hDriver Overview}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjhhhjMhKubjo)}(haThe DPIO driver is bound to DPIO objects discovered on the fsl-mc bus and provides services that:h]haThe DPIO driver is bound to DPIO objects discovered on the fsl-mc bus and provides services that:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjhhubh block_quote)}(hX$A. allow other drivers, such as the Ethernet driver, to enqueue and dequeue frames for their respective objects B. allow drivers to register callbacks for data availability notifications when data becomes available on a queue or channel C. allow drivers to manage hardware buffer pools h]henumerated_list)}(hhh](h list_item)}(hlallow other drivers, such as the Ethernet driver, to enqueue and dequeue frames for their respective objectsh]jo)}(hlallow other drivers, such as the Ethernet driver, to enqueue and dequeue frames for their respective objectsh]hlallow other drivers, such as the Ethernet driver, to enqueue and dequeue frames for their respective objects}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK"hj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hyallow drivers to register callbacks for data availability notifications when data becomes available on a queue or channelh]jo)}(hyallow drivers to register callbacks for data availability notifications when data becomes available on a queue or channelh]hyallow drivers to register callbacks for data availability notifications when data becomes available on a queue or channel}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK$hj!ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h.allow drivers to manage hardware buffer pools h]jo)}(h-allow drivers to manage hardware buffer poolsh]h-allow drivers to manage hardware buffer pools}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK&hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]enumtype upperalphaprefixhsuffix.uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjMhK"hjhhubhdefinition_list)}(hhh]hdefinition_list_item)}(hXThe Linux DPIO driver consists of 3 primary components-- DPIO object driver-- fsl-mc driver that manages the DPIO object DPIO service-- provides APIs to other Linux drivers for services QBman portal interface-- sends portal commands, gets responses:: fsl-mc other bus drivers | | +---+----+ +------+-----+ |DPIO obj| |DPIO service| | driver |---| (DPIO) | +--------+ +------+-----+ | +------+-----+ | QBman | | portal i/f | +------------+ | hardware h](hterm)}(h8The Linux DPIO driver consists of 3 primary components--h]h8The Linux DPIO driver consists of 3 primary components--}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jmhjMhK=hjiubh definition)}(hhh](jo)}(h?DPIO object driver-- fsl-mc driver that manages the DPIO objecth]h?DPIO object driver-- fsl-mc driver that manages the DPIO object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK)hjubjo)}(h@DPIO service-- provides APIs to other Linux drivers for servicesh]h@DPIO service-- provides APIs to other Linux drivers for services}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK+hjubjo)}(h@QBman portal interface-- sends portal commands, gets responses::h]h?QBman portal interface-- sends portal commands, gets responses:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK-hjubh literal_block)}(hXl fsl-mc other bus drivers | | +---+----+ +------+-----+ |DPIO obj| |DPIO service| | driver |---| (DPIO) | +--------+ +------+-----+ | +------+-----+ | QBman | | portal i/f | +------------+ | hardwareh]hXl fsl-mc other bus drivers | | +---+----+ +------+-----+ |DPIO obj| |DPIO service| | driver |---| (DPIO) | +--------+ +------+-----+ | +------+-----+ | QBman | | portal i/f | +------------+ | hardware}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjMhK/hjubeh}(h]h ]h"]h$]h&]uh1j}hjiubeh}(h]h ]h"]h$]h&]uh1jghjMhK=hjdubah}(h]h ]h"]h$]h&]uh1jbhjhhhjMhNubjo)}(hiThe diagram below shows how the DPIO driver components fit with the other DPAA2 Linux driver components::h]hhThe diagram below shows how the DPIO driver components fit with the other DPAA2 Linux driver components:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK?hjhhubj)}(hX3 +------------+ | OS Network | | Stack | +------------+ +------------+ | Allocator |. . . . . . . | Ethernet | |(DPMCP,DPBP)| | (DPNI) | +-.----------+ +---+---+----+ . . ^ | . . | | dequeue> +-------------+ . | | | DPRC driver | . +--------+ +------------+ | (DPRC) | . . |DPIO obj| |DPIO service| +----------+--+ | driver |-| (DPIO) | | +--------+ +------+-----+ | +------|-----+ | | QBman | +----+--------------+ | portal i/f | | MC-bus driver | +------------+ | | | | /soc/fsl-mc | | +-------------------+ | | =========================================|=========|======================== +-+--DPIO---|-----------+ | | | | QBman Portal | +-----------------------+ ============================================================================h]hX3 +------------+ | OS Network | | Stack | +------------+ +------------+ | Allocator |. . . . . . . | Ethernet | |(DPMCP,DPBP)| | (DPNI) | +-.----------+ +---+---+----+ . . ^ | . . | | dequeue> +-------------+ . | | | DPRC driver | . +--------+ +------------+ | (DPRC) | . . |DPIO obj| |DPIO service| +----------+--+ | driver |-| (DPIO) | | +--------+ +------+-----+ | +------|-----+ | | QBman | +----+--------------+ | portal i/f | | MC-bus driver | +------------+ | | | | /soc/fsl-mc | | +-------------------+ | | =========================================|=========|======================== +-+--DPIO---|-----------+ | | | | QBman Portal | +-----------------------+ ============================================================================}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjMhKBhjhhubeh}(h]driver-overviewah ]h"]driver overviewah$]h&]uh1j8hjhhhjMhKubj9)}(hhh](j>)}(h"DPIO Object Driver (dpio-driver.c)h]h"DPIO Object Driver (dpio-driver.c)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjhhhjMhKcubj)}(hXVThe dpio-driver component registers with the fsl-mc bus to handle objects of type "dpio". The implementation of probe() handles basic initialization of the DPIO including mapping of the DPIO regions (the QBman SW portal) and initializing interrupts and registering irq handlers. The dpio-driver registers the probed DPIO with dpio-service. h]jo)}(hXUThe dpio-driver component registers with the fsl-mc bus to handle objects of type "dpio". The implementation of probe() handles basic initialization of the DPIO including mapping of the DPIO regions (the QBman SW portal) and initializing interrupts and registering irq handlers. The dpio-driver registers the probed DPIO with dpio-service.h]hXYThe dpio-driver component registers with the fsl-mc bus to handle objects of type “dpio”. The implementation of probe() handles basic initialization of the DPIO including mapping of the DPIO regions (the QBman SW portal) and initializing interrupts and registering irq handlers. The dpio-driver registers the probed DPIO with dpio-service.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKehjubah}(h]h ]h"]h$]h&]uh1jhjMhKehjhhubeh}(h] dpio-object-driver-dpio-driver-cah ]h"]"dpio object driver (dpio-driver.c)ah$]h&]uh1j8hjhhhjMhKcubj9)}(hhh](j>)}(h*DPIO service (dpio-service.c, dpaa2-io.h)h]h*DPIO service (dpio-service.c, dpaa2-io.h)}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj#hhhjMhKlubj)}(hXThe dpio service component provides queuing, notification, and buffers management services to DPAA2 drivers, such as the Ethernet driver. A system will typically allocate 1 DPIO object per CPU to allow queuing operations to happen simultaneously across all CPUs. Notification handling dpaa2_io_service_register() dpaa2_io_service_deregister() dpaa2_io_service_rearm() Queuing dpaa2_io_service_pull_fq() dpaa2_io_service_pull_channel() dpaa2_io_service_enqueue_fq() dpaa2_io_service_enqueue_qd() dpaa2_io_store_create() dpaa2_io_store_destroy() dpaa2_io_store_next() Buffer pool management dpaa2_io_service_release() dpaa2_io_service_acquire() h](jo)}(hXThe dpio service component provides queuing, notification, and buffers management services to DPAA2 drivers, such as the Ethernet driver. A system will typically allocate 1 DPIO object per CPU to allow queuing operations to happen simultaneously across all CPUs.h]hXThe dpio service component provides queuing, notification, and buffers management services to DPAA2 drivers, such as the Ethernet driver. A system will typically allocate 1 DPIO object per CPU to allow queuing operations to happen simultaneously across all CPUs.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKnhj4ubjc)}(hhh](jh)}(hkNotification handling dpaa2_io_service_register() dpaa2_io_service_deregister() dpaa2_io_service_rearm() h](jn)}(hNotification handlingh]hNotification handling}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jmhjMhKxhjIubj~)}(hhh](jo)}(hdpaa2_io_service_register()h]hdpaa2_io_service_register()}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKthj[ubjo)}(hdpaa2_io_service_deregister()h]hdpaa2_io_service_deregister()}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKvhj[ubjo)}(hdpaa2_io_service_rearm()h]hdpaa2_io_service_rearm()}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKxhj[ubeh}(h]h ]h"]h$]h&]uh1j}hjIubeh}(h]h ]h"]h$]h&]uh1jghjMhKxhjFubjh)}(hQueuing dpaa2_io_service_pull_fq() dpaa2_io_service_pull_channel() dpaa2_io_service_enqueue_fq() dpaa2_io_service_enqueue_qd() dpaa2_io_store_create() dpaa2_io_store_destroy() dpaa2_io_store_next() h](jn)}(hQueuingh]hQueuing}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jmhjMhKhjubj~)}(hhh](jo)}(hdpaa2_io_service_pull_fq()h]hdpaa2_io_service_pull_fq()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK{hjubjo)}(hdpaa2_io_service_pull_channel()h]hdpaa2_io_service_pull_channel()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhK}hjubjo)}(hdpaa2_io_service_enqueue_fq()h]hdpaa2_io_service_enqueue_fq()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjubjo)}(hdpaa2_io_service_enqueue_qd()h]hdpaa2_io_service_enqueue_qd()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjubjo)}(hdpaa2_io_store_create()h]hdpaa2_io_store_create()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjubjo)}(hdpaa2_io_store_destroy()h]hdpaa2_io_store_destroy()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjubjo)}(hdpaa2_io_store_next()h]hdpaa2_io_store_next()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjubeh}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jghjMhKhjFubjh)}(hNBuffer pool management dpaa2_io_service_release() dpaa2_io_service_acquire() h](jn)}(hBuffer pool managementh]hBuffer pool management}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jmhjMhKhjubj~)}(hhh](jo)}(hdpaa2_io_service_release()h]hdpaa2_io_service_release()}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhj)ubjo)}(hdpaa2_io_service_acquire()h]hdpaa2_io_service_acquire()}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhj)ubeh}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jghjMhKhjFubeh}(h]h ]h"]h$]h&]uh1jbhj4ubeh}(h]h ]h"]h$]h&]uh1jhjMhKnhj#hhubeh}(h]&dpio-service-dpio-service-c-dpaa2-io-hah ]h"])dpio service (dpio-service.c, dpaa2-io.h)ah$]h&]uh1j8hjhhhjMhKlubj9)}(hhh](j>)}(h'QBman portal interface (qbman-portal.c)h]h'QBman portal interface (qbman-portal.c)}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjhhhhjMhKubj)}(hXMThe qbman-portal component provides APIs to do the low level hardware bit twiddling for operations such as: - initializing Qman software portals - building and sending portal commands - portal interrupt configuration and processing The qbman-portal APIs are not public to other drivers, and are only used by dpio-service. h](jo)}(hkThe qbman-portal component provides APIs to do the low level hardware bit twiddling for operations such as:h]hkThe qbman-portal component provides APIs to do the low level hardware bit twiddling for operations such as:}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjyubj)}(h|- initializing Qman software portals - building and sending portal commands - portal interrupt configuration and processing h]h bullet_list)}(hhh](j)}(h"initializing Qman software portalsh]jo)}(hjh]h"initializing Qman software portals}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h$building and sending portal commandsh]jo)}(hjh]h$building and sending portal commands}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h.portal interrupt configuration and processing h]jo)}(h-portal interrupt configuration and processingh]h-portal interrupt configuration and processing}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhjMhKhjubah}(h]h ]h"]h$]h&]uh1jhjMhKhjyubjo)}(hYThe qbman-portal APIs are not public to other drivers, and are only used by dpio-service.h]hYThe qbman-portal APIs are not public to other drivers, and are only used by dpio-service.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhjyubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjhhhubeh}(h]%qbman-portal-interface-qbman-portal-cah ]h"]'qbman portal interface (qbman-portal.c)ah$]h&]uh1j8hjhhhjMhKubj9)}(hhh](j>)}(h"Other (dpaa2-fd.h, dpaa2-global.h)h]h"Other (dpaa2-fd.h, dpaa2-global.h)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj hhhjMhKubj)}(hFrame descriptor and scatter-gather definitions and the APIs used to manipulate them are defined in dpaa2-fd.h. Dequeue result struct and parsing APIs are defined in dpaa2-global.h.h](jo)}(hoFrame descriptor and scatter-gather definitions and the APIs used to manipulate them are defined in dpaa2-fd.h.h]hoFrame descriptor and scatter-gather definitions and the APIs used to manipulate them are defined in dpaa2-fd.h.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhj ubjo)}(hEDequeue result struct and parsing APIs are defined in dpaa2-global.h.h]hEDequeue result struct and parsing APIs are defined in dpaa2-global.h.}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjMhKhj ubeh}(h]h ]h"]h$]h&]uh1jhjMhKhj hhubeh}(h]other-dpaa2-fd-h-dpaa2-global-hah ]h"]"other (dpaa2-fd.h, dpaa2-global.h)ah$]h&]uh1j8hjhhhjMhKubeh}(h] introductionah ]h"] introductionah$]h&]uh1j8hj:hhhjMhK ubeh}(h]!dpaa2-dpio-data-path-i-o-overviewah ]h"]#dpaa2 dpio (data path i/o) overviewah$]h&]uh1j8hhhhhjMhKubeh}(h]h ]h"]h$]h&]sourcejMuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(j=N generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_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_handlerjv error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcejM _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}(hhhhhhhhj jjjj*jj9j-jHj<jWjKjfjZjujijjxjjjjjjjjjjjjjjjjj jjjj)jj8j,jGj;jVjJjejYjtjhjjwjjjjjjjjjjjjjjjjj jjj j(jj7j+jFj:jUjIjdjXjsjgjjvjjjjjjjjjjjjjjjjj jjj j'jj6j*jEj9jTjHjcjWjrjfjjujjjjjjjjjjjjjjjjjjjj j&jj5j)usubstitution_names}(amphЌaposhߌasthbrvbarhbsolj centjcolonj*commaj9commatjHcopyjWcurrenjfdarrjudegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34jfrac38j frac58jfrac78j)gtj8halfjGhorbarjVhyphenjeiexcljtiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquojltj microjmiddotj(nbspj7notjFnumjUohmjdordfjsordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotjraquoj rarrjrcubj'rdquoj6regjErparjTrsqbjcrsquojrsectjsemijshyjsoljsungjsup1jsup2jsup3jtimesjtradejuarrjverbarj&yenj5urefnames}refids}nameids}(jP jM jH jE jjj jjejbj jj@ j= u nametypes}(jP jH jj jej j@ uh}(jM j:jE jjjjjjbj#jjhj= j u 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]PDocumentation/networking/device_drivers/ethernet/freescale/dpaa2/dpio-driver.rst(NNNNta decorationNhhub.