From 0ecb7e533daa377cb51e03a485166a1999eae31e Mon Sep 17 00:00:00 2001 From: deepesh2017 Date: Wed, 18 Sep 2024 20:47:01 +0000 Subject: [PATCH] Build: (c9a1c63) Embedded PCIe Collateral Structure Update --- .../debugging.doctree | Bin 0 -> 4313 bytes .../device_tree_structure.doctree | Bin 0 -> 4385 bytes .../ecam_mapping_and_addressing.doctree | Bin 0 -> 4421 bytes .../index.doctree | Bin 3948 -> 3948 bytes .../petalinux_image_generation.doctree | Bin 0 -> 4415 bytes .../supporting_documentation.doctree | Bin 0 -> 4403 bytes .../system_testability_and_setup.doctree | Bin 0 -> 4427 bytes .../tactical_patch_requirement.doctree | Bin 0 -> 4415 bytes pciedebug/build/doctrees/environment.pickle | Bin 360533 -> 374561 bytes .../debugging.rst.txt | 8 + .../device_tree_structure.rst.txt | 8 + .../ecam_mapping_and_addressing.rst.txt | 8 + .../index.rst.txt | 9 + .../petalinux_image_generation.rst.txt | 8 + .../supporting_documentation.rst.txt | 8 + .../system_testability_and_setup.rst.txt | 8 + .../tactical_patch_requirement.rst.txt | 8 + .../debugging.html | 184 ++++++++++++++++++ .../device_tree_structure.html | 184 ++++++++++++++++++ .../ecam_mapping_and_addressing.html | 184 ++++++++++++++++++ .../petalinux_image_generation.html | 184 ++++++++++++++++++ .../supporting_documentation.html | 184 ++++++++++++++++++ .../system_testability_and_setup.html | 184 ++++++++++++++++++ .../tactical_patch_requirement.html | 184 ++++++++++++++++++ pciedebug/build/html/objects.inv | Bin 11703 -> 12273 bytes pciedebug/build/html/searchindex.js | 2 +- .../debugging.rst | 8 + .../device_tree_structure.rst | 8 + .../ecam_mapping_and_addressing.rst | 8 + .../index.rst | 9 + .../petalinux_image_generation.rst | 8 + .../supporting_documentation.rst | 8 + .../system_testability_and_setup.rst | 8 + .../tactical_patch_requirement.rst | 8 + 34 files changed, 1419 insertions(+), 1 deletion(-) create mode 100644 pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.doctree create mode 100644 pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.doctree create mode 100644 pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.doctree create mode 100644 pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.doctree create mode 100644 pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.doctree create mode 100644 pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.doctree create mode 100644 pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.doctree create mode 100644 pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst.txt create mode 100644 pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst.txt create mode 100644 pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst.txt create mode 100644 pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst.txt create mode 100644 pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst.txt create mode 100644 pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst.txt create mode 100644 pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst.txt create mode 100644 pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.html create mode 100644 pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.html create mode 100644 pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.html create mode 100644 pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.html create mode 100644 pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.html create mode 100644 pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.html create mode 100644 pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.html create mode 100644 pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst create mode 100644 pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst create mode 100644 pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst create mode 100644 pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst create mode 100644 pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst create mode 100644 pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst create mode 100644 pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst diff --git a/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.doctree b/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0a96ef5f25b7080daca4132cd3693e5d281b9ac2 GIT binary patch literal 4313 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 literal 0 HcmV?d00001 diff --git a/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.doctree b/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.doctree index e7e1e5e04f6154ac4963d1ae78939cfd45b010f7..c928ee4092e65096e7244ff51a0fc4892ed72921 100644 GIT binary patch delta 14 WcmaDO_eO5RCKg7a&6`?iSWE3i%6wk2P zb^Jy~x?c%s8>Ys5c3iaVkNSN=GflHVa+*c{H&pVJD;n})KBj@-!6cH}928>pSz*_i zF-i_|1CyKy*JY@o&aMU#(;7tlZzU}D|JK4hn=OVcm?%E-JoqES!oHvBp3~mTBLC~P z_e$-(MthOlRl~+kRw35yN+c6r94*^+#&BO#i0fimT(|Ao8-E&zH0A@9Cka=Bvs6t6 zr4}!C60_`;>vDVGg$&?7JveznPYxe)dh*EsK2B3ZPf}&*N2QwvpL3;IL=R6sx&IOe z*K(ZDM>5H$gNz#ntMe(9F&lF_=CF(znI?UuO_2{p$F6D~I7;)vq9xkS?fckl8EGOu zw`Fgi)H2CKCzCvAWR{PGLn}}D)V=tXyk8e3oS^KUAmXm`qaxaR7Vm!=;qnBIozKlNcHTE972URt_K2ze?v zfzjmSsXMI6VVW3~MiE!!M5SZJVwsG|CkW7pRBuOQLOy%&;}1Uk3DJ2RGbO*`nq;24 zWKT!LEXWOJa!08mA17g!%ESP<>wHsMgN z_$$>u={=H2tK+;9)9{6aRxkwr=V0O_x|1Won^mJG6d>mB8>#L zzbes81k+^5c|yW8;Uq|v0;r?&e)Yot_w9efx0i$B(N#eqel3n%@GeHcT0Z1WwC~&7 zO~UGx39C0tScTZ-bvl@5Bqbx6V|3~Lb&5;D=hMm$5SwK_7w`GBV!z9$8Bjz~G&u5o zz(YDbr)4#GQHU?ahPK~%B@0Rn7z*-{z*pcK*LJ{{)x&W zvl+2uoV)st%b@67Lo;UIKn6@zh>j`)IG{!X8OOGbtUtmX;SL#66qu2m7NTvtEH^2g zk?b|sC~by$oY4k#@M=jwmEbC2krTL8QsCM|ySJZ_GR^Zar6`8rx`{wZHK+3@ONb!8 zPNkNn#OD?brDns(U8J&dwT=d{XE$&e4g8lWA3`@PHae1#Z~eL%&t~!JY}s&>A%kiM zZ2Pt_CesH4bVix(XXi$s6-w23P}p0J(@Aoi)bJSIHDw9sS?|sV_u-DN8U+jD9c3o| z{aQQ%jXAhYxav!8Mx_pf>_C_}g0hZbLqtGmL~*occY&vvHlfud9O}D>3;R}SmrT$~ zxK<6YbzTaA;~VJ4n8!V6y)j}c86qY#&v+B9;PSJ>o{d9oWs zy82urCTsGn##O@#SUQl$&>m;v<=uh(^UvYECr0HkXmox+{?}%;%gxq5uWGhjJMnk4 zGk?2^$+oJ(x@=b*IFTnF9{=)FSKa(@@7t2UU_|+AJ)-!zQ2b+IJ+O~{1qsSUGx4!S z_Fiwq-Xl^I^b@4Xd0`*us7FH#ThF&J7F~6b>bB1}{sZ4j7k<8u6LZ&X27D(G_vZFS U1IIFftcR|oR@KK%p!u->FZQsTBLDyZ literal 0 HcmV?d00001 diff --git a/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.doctree b/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f7ab34ef27baa92d1930aaef2493829f4a300316 GIT binary patch literal 4403 zcmeHKUvC_@5tnS;NheDuONmprjT%OQ1I6{-r9cV?nTeLxCJ{xZ`j*GaSy$Z|0AUzwB=> zl^?sMGa-|4mxW=HhFlkRElh(v=7}l3E#CQ4@vPXlEyd1tnyY{pb_pDTkWr|3Qar(C z+wmJ2>24*UX_y-F>2cApKks%4%{0vd$!Qk(-%!aju4u^n`H%*J2ct-8b5MxYCxu;S z#wgj(4NP(-T$iDSI=dP~OluJFzmc%m|62?5Y`W;PV5IoK^WcvR3;TAaJ5GBii~O(G z-YKE6jHJvn^9>B&R?`zTEfJxP_J_e(eRKI2NWh#sDN{N8gM zT+3lXAIc;j_jI0RI3|-JtsjyZnI>JOO_BFS%dTo3ILhRGMME^5)AzC2Fw#VPX3O3_ zok%42tI#MVmJfv^E06iuz4jHHUl(N{LD4-y#9ik@@#e93<2dg#aTD(=cAgaCReWE= z_cp#ic~a!!XJQ}hcRah;6K@=?_!|UiJQtw|F>;rjoOYZKiT4<}?*fY))`8{C?Y#u! z)Y>N0|N1H$ZEGAy2RdUeHP$l4HCJc6H2q+~^d?OIl}{+q`21vfY3VK@Y zr=1TUlgElBI^ZtF$%DjjHGq%qkq4iAN}K_Y;3+7T$-VEozO(GNN`^y@3rizeB)=-n zB7$ks=R6@{ns5@NN+F=5i*EJ8Klt{4;oJG7cz9J(h>ygPOWwr{Sj+o-lI{EU_Ow)W z=1Nr|c6nV4=GgGy9-4gpaYg-QAf@25CFL#TWm(0=o4%yjAM-rjw&DUkoGTV zi2=_F@uk?%_D3&d0kD8!7YwsEt4*(!PS8T^Ij=0+c90`v6GJN$Ikp=$rNop&rgc>*wNe#W94$X5fj*gv+dAqNC8ld1xXkO4Rii!&^4cr_HVM_8^` z%UnfRZJIQo4lvy=)HPt2x+v_<07W554WHQr4sN;{l;klTBZ*^&jBO2^&S+JUHAMc@ zQ+UK(jn?#B8bNE=hQ{hZh2yxq;tsKB#LswC99^^Pf<=>M!*27jgs%)UxvrTSwozgz z)V0r+>56C+$sl0Szw+_$Mj>W;0^R zFlR#!cZUF+YiPmjE2w^{3eiVp2o9)`h>T;~M8zNAj&O$zDZphQ$AxIxHp@*)rzCsL zwMUy_9%pnCb?|CQ077t;u*eDADk*SnqTSn1Ntxz(m{I^CxNag*QqAe?$udNcUuRNF zAD>$^l$!M;cah4<)jAu*p54G@G~(Z zGJVkNfvmgPg%N0hQZ?)q_Lk#xk{l;BJcf5o3Ew>H+>RS~P^M z^HPX7zJVTmvP9n9)E9|iV=ClOMED{~SEAGf_=ZMLVCWxmWUt1_SIV_t(kKmB<-^@T zFj$Tk_F08DbLEHP^eE4Y%d)dC+rcW^FA*kbAd>+eyH5WdR}fJC7WicBqBKgG&pFpe zj|v1w+(&WM<^m=Njv3+7-U`4qqC93YqL@Nl7gU*5iz3Bwce60@2{RCtAxIxehq0P5h|GBEoa?QlQ(9Hbv zDkj^gV0GE9xX?tEcyRo?PaL-Sf!;SIf5&k0k9s)q)1dhG!n$W4{vHyP%Vpv-i|oDJ zSiMK2Cg>)}q~e8L#6~?7V$6EFg@Nd*i&VFLy74`H&t3TGI!?@7cQVvFiMThnHzvVY SmXGz&0cwRkZuZRk-TwllteD6E literal 0 HcmV?d00001 diff --git a/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.doctree b/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.doctree new file mode 100644 index 0000000000000000000000000000000000000000..42d99d77343092bf6cc08c1b60eb076a7e6af7c6 GIT binary patch literal 4427 zcmeHK-EUjB6}J=1wj6)NZqs#Jys{orcv&QMKnE1w9=5q%mpXNg*e&+ZfTixGL`L^( zB(E(M2(UdAs0Y6F?ho02u)k;yM4U{Azo_ zf9#engv^F*7ROm0b6wfhIFHJdXQukP`pKWFXVt!KDt4jsQboM73*d-^Ok%~e>IpVC z9lw!@Zr1{q4O4wSJuVvdr|mYOg{DO$IW3a#8!LIv6^(hf?9)i_Xpl&44l1$oq_S(w z7$v)O&H!_xnf2(m>Ocz}i4HWMM9{iDUW#1}v%V}>FN%#%g zTV8u>qP;5ZieY^xs}gH=DUlhkju!25!Ej$wiJM|k+_cMMZ~V0*@|1T}nPpscE^;;K zcr8KfAZ5i1*M7SbgmmCP-8ng>Cx;I?J$V#ZJMy!?C3^K6J1C4cuQ=9#l~HKoD`?`BS`kEZ#USyG-21 zTZ^41m3S53*YJHE-yb}wO7SDH5B7V3UF?ZBj+VkrqCCBVR=|ziCnu*Z=T8#6N8WQF zBZp&<1(Q23!8o;c8R~y|osG6ROp^m$Fc&7Ph2om4bM8$)m@|DDrvD-YmuUR{WN~5P zJ|W~xZ~~*r`$KnFlfyhSDo+xw$cf7Pils8^laCOl38~+Y$c%jQ!Oz})_vb{HY08xR zf@@L)ZqJ_gh?$ccP387-Mc&WiBA1!*FY0hd9PUU8JtQx#1wWqBQ&d8Z!nU1&%ck(bZT=n3i2jt<$pAcujV|WTmW%l5IUEg8tH%i8R zjtfg8St7siW)Z2jWtIL|nVa-{(5WYn%-_&eYJKYV*NC>~uG6yig1!{1K07cSL<%cvgwe#k#iNdm#&o4H$O8FnhzX`D3M%3L^HLcNXntR06u0 zp><_Bw(DbxuR+Il6&Ex}04UMhlakw0h-IFkz%75uk`mQ$T(rghv2FG_$`UiVs<4Qe zcUf9saVw~ykUhY1tzMQY!D_?g5p_k>?Lu7xcBxTicX~(;S#J2uCTin`%SBn4(jkI5 zb=7iHqjndx&deGje;6n{;VxHedLfOV<5CWd^?|y!Q)WeJD4sQs!ByF2X?m@9 zTPUNbURO6MS1MOj0F6k*@Ut^DGL_xROLJ99!%L~`?%d9t2=QmT8H7#^7$3cRbz| zk?F}{C6?_bD@{(PBzwcPOdD~T7Ors!sDoEM0hNNQj3rLsmZ!kAnRahKB^8>NaZXVX z!F3yfl50+9PkM+TzRsnV0iRnmmYQ`Fcahr4m2otPJ-d#}XjtOYK7?-6Y_um6Tn_Ev zX2FYTygFOf9i_{l+5y|XE{rMkL8k+0SD6-?xW#v|j=yc_gzQ9(x@A zJ1!w0{mt>o)S)!VS%^8;TMsILBkdx&YBPcff@5yDw09zK4Jc2UOeiK3*A02Ix9heC zs7!hxd0pD|Ai;~*IDM06=M}n1yBd-Rq81pGSu9;|K*Mz65wi^=fhmLW1%8d)$nXql z?g}-G6(B=eZ?af+v4e@krFwLz>rC4fw;5>rC=k1XiqA^hbW}4cV7_Z@KmSV5<5KLn z|GVgBKNI&#yD|It-h_=v0z%Fx=m``TqGP^b{46E#AqW70w3{arJbBhv=ZF*T<`s#} zu~vU*=Zbu!T4h{rzcVkZ-dV6~NFY&Oy7W-lTajyA{fvPMvT|6{zlImStRA~yWeRbL z`Aq{ALE$8i%#z(evRMx`HTSf})k6zdnvloPA{XNM-H!d+ui?E@qe>Xm8y%2u-_&-s z<@(QcEthL3{)L9-pVu+jMqOGL?UI8hGR4E=-+t`sTNw01WAb+lD*qS{Dq%tt|DIcS z?4#d7f^zXpLUfV6mm9bDh|~lf1({^MxD9-a2SkiqPq#1}U3ZcCwoli;f$zBsKV8F# fnd?r5eJ2t3=JwVEkUoX1#jdE<^~cSjWw-rbrsbfT literal 0 HcmV?d00001 diff --git a/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.doctree b/pciedebug/build/doctrees/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.doctree new file mode 100644 index 0000000000000000000000000000000000000000..65bb8f85947623082bd40b8b01118b0ffdac8f7f GIT binary patch literal 4415 zcmeHKUvFEt6}J;hwj5iI-KOiZdSyMN@UlqifD9TCAcX<(VzND}Vg^@_D)MTAH01Rp^M9ZV4QbkV&k0RzAgM z+w)tQnC?VC(=t8ev*V)Se$wp{nj4x&lG8j1zp<95T+^8Miy@5!k4A|!_MjB2PfNGX ztktq#SeWEZxGrM@b#66Em@y#YerMNDZ#dX)Lz451>P$}=}BFnh$ohd!) zRa%1BQOfd{uB+`{5YmJHOz-3|Jvn^9>B+naCt3UM6`olUY3$4y`=lWB=k;@_tiRaDuXXf{44`lj5CY@%C}iXW}MaS?oM5 z#q0RKf$y96-hNsZ;)h}%>~{jY*b{Fbt%O@dD!qhL0FB%wCyzVclO*_!eBj|l4r_P? zgL|*QIJ341^}o2vM%Nmr$$`n450JH7bHnv1uS`E!Fue)We;&e0G=6)sytH(e5b{KD z0;9=?V}IC?LzP*rl7wq=qSa8dRAxi+2?8`BleZ%>BcFZr)A!#088JngGA+O6hU9^} zVpjuV7vx4WxdWxihgqB}nOVZJn0Ukyk2sP-4^cVS%!9;q@!+SDpFtY4Q}tGnl#Mu) zYyMKTk2@bdAx|{ROvHVllLwjQdH^5YBM(0PjCcbc!BbEwvwQ#U`rfi%X&DbWE-bBN ziTt`UiwI^&pYx2wD&r(lS_9O{d3W-{|M%^G!?%}%;^9?6AwCvIK6n=+V6Eu$X|(UV z+jYX~R0*pym#|8)%jPa}lFz4=A0alYd@kMzX~lh?k8_|1S#!XV z?;{@5{yD9x!ShmlDK?Dz-b-0fV!*HqhWXpo#@9-xbwliV&n&xkQ~^5pj zRe6rx8Un;3_)(a*r-gQ)5yw13S!;gIk^(ibF4bcH*tLcn#fVv@ODtlB5^7nRV{s#> zp^!boa(%Kabb{5URT1^2)9*rE19s{2((Me87&2w~+$JjGrq4rJk@1S^=?ybw4 zlxwXt6-Ylw!tk>k*A7Bw2GmF2y1cP)(%tkIFz}Lq zf0C-mY$hxl7Hr7j?ifYq8k#Zp8Zw~LF*>Ro;D8zlWE{IDvi<;fggazRQD6pgT#BY^ zv%)GmBe`q7QQC})G^bP4!K)PkRf6k`C0^iGMS*KGJFk%^V7bu@@Qw}HzT;J-@w5V|>GqXU_Q)~}uOd={_XmJLto zGpP2!c5e!6b92z^fo!_@xfLqwDn0C#?w05Dk~}B1JcV~{Rl<4Rx%1wAxTCEH(SmqS znTdb57LPz<9&RJ9yOP^Mr2`?`6E;nttYujr5fEEZ9<8}u;3=ik(3&P38oG!J_eN!x z%+N~sDh$|qFU7#|4RqtvCF1U;InOK`Qz3^U!51i9Nt6fphCyFo=~o4!*Wl!9)jBL` zqR=G1*!fgZz zm3V{G*LikYqLXxMA&DSrfkBzY=zf8?Fq2dx!8VKprYwdQ_%-%}!gHj#OVlt-fDCDa z>7wal2Xlx|_2^DFm~pFqGtl-?Aa(^6Ulgw8srEdF`M$0F@>@ZV3$f$>@1m3aLfk3b z=KSMVCTvC$5b{PrPoVe^t@(oS^OV4cNeB=~`zo2@sbYP7fjH%EU6R8ft8tTI1uQMdV`z_a@#1dJ{rQ*h-eao^7&JIPApdK#+T~{JpI0?o zzMc3x+L^yy#pD{3!n*8MJUEdj9vuJrQ(xV}a39)|zhFf9YdxZbxlsILVcl~Ne*+2H zM>7erMfP58#NH#)5cCsh;OZu;3v|?@A%?AITNsP3y2#|V&o=%8-wPLhwvH2X*PRad bULx+z-Hj<6s|2zh`;t1TK7Il%`rUs49}}Aq literal 0 HcmV?d00001 diff --git a/pciedebug/build/doctrees/environment.pickle b/pciedebug/build/doctrees/environment.pickle index a9ef66f92fc9fab768f2e80bc579a3bcb7731b72..04444075796dd16eeaa0bce86c1993ecc6d65556 100644 GIT binary patch literal 374561 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 G{r?BjL~-r_ literal 360533 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Π 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

^SgT0G)^tNQ?*L!1Dq8FDm&3663EFc#!}v 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 PnxV$P9T}V)Ui<$6%j_JH diff --git a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst.txt b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst.txt new file mode 100644 index 0000000..759fa98 --- /dev/null +++ b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst.txt @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Debugging +======================= + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst.txt b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst.txt new file mode 100644 index 0000000..daeb3a6 --- /dev/null +++ b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst.txt @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Device Tree Structure +===================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst.txt b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst.txt new file mode 100644 index 0000000..dcd3250 --- /dev/null +++ b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst.txt @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +ECAM Mapping and Addressing +=========================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst.txt b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst.txt index e21fda7..bfdb401 100644 --- a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst.txt +++ b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst.txt @@ -7,3 +7,12 @@ Versal CPM4 PCIe Root Port Design (Linux) .. toctree:: hardware_design_creation.rst + petalinux_image_generation.rst + device_tree_structure.rst + ecam_mapping_and_addressing.rst + tactical_patch_requirement.rst + system_testability_and_setup.rst + supporting_documentation.rst + debugging.rst + + diff --git a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst.txt b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst.txt new file mode 100644 index 0000000..593d59c --- /dev/null +++ b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst.txt @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Petalinux Image Generation +========================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst.txt b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst.txt new file mode 100644 index 0000000..bc84834 --- /dev/null +++ b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst.txt @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Supporting Documentation +======================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst.txt b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst.txt new file mode 100644 index 0000000..9fd80c8 --- /dev/null +++ b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst.txt @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +System Testability and Setup +============================ + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst.txt b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst.txt new file mode 100644 index 0000000..2117c8f --- /dev/null +++ b/pciedebug/build/html/_sources/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst.txt @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Tactical Patch Requirement +========================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.html b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.html new file mode 100644 index 0000000..c57efbc --- /dev/null +++ b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + Debugging — PCIe Debug K-Map 1.0 documentation + + + + + + + + + + + + + + + + + + + + +

+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Debugging¶

+
+ + +
+
+ + + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.html b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.html new file mode 100644 index 0000000..d6d632a --- /dev/null +++ b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + Device Tree Structure — PCIe Debug K-Map 1.0 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Device Tree Structure¶

+
+ + +
+
+ + + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.html b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.html new file mode 100644 index 0000000..ba70427 --- /dev/null +++ b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + ECAM Mapping and Addressing — PCIe Debug K-Map 1.0 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ECAM Mapping and Addressing¶

+
+ + +
+
+ + + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.html b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.html new file mode 100644 index 0000000..673f44d --- /dev/null +++ b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + Petalinux Image Generation — PCIe Debug K-Map 1.0 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Petalinux Image Generation¶

+
+ + +
+
+ + + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.html b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.html new file mode 100644 index 0000000..7685b13 --- /dev/null +++ b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + Supporting Documentation — PCIe Debug K-Map 1.0 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Supporting Documentation¶

+
+ + +
+
+ + + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.html b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.html new file mode 100644 index 0000000..6eb7ee1 --- /dev/null +++ b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + System Testability and Setup — PCIe Debug K-Map 1.0 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

System Testability and Setup¶

+
+ + +
+
+ + + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.html b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.html new file mode 100644 index 0000000..fb8bdf2 --- /dev/null +++ b/pciedebug/build/html/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + Tactical Patch Requirement — PCIe Debug K-Map 1.0 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tactical Patch Requirement¶

+
+ + +
+
+ + + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/pciedebug/build/html/objects.inv b/pciedebug/build/html/objects.inv index ddf6cefc8e09af79ce8605b8530ddff96cf24713..f626d175f7ea31ec76c439cc0383f08ecc7bd721 100644 GIT binary patch delta 12244 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 diff --git a/pciedebug/build/html/searchindex.js b/pciedebug/build/html/searchindex.js index c2dc5ff..135ceeb 100644 --- a/pciedebug/build/html/searchindex.js +++ b/pciedebug/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["README", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_checklist/images", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_checklist/index", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_faq", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_gotchas", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/index", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/issue_q&a_debug_tips", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/links_docs_misc", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/specific_issues", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_RootPort_Driver/debug_faq", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/debug_checklist", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/debug_gotchas", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/images", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/index", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/issue_q&a_debug_tips", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/links_docs_misc", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/performance_debug_checklist", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/specific_issues", "docs/Interrupt/index", "docs/Link_Training/general_debug_checklist_reasons_questions", "docs/Link_Training/index", "docs/Link_Training/issue_q&a_debug_tips", "docs/Link_Training/links_docs_misc", "docs/Link_Training/specific_issues", "docs/PCIe_Collaterals/PCIe_Application_Notes", "docs/PCIe_Collaterals/PCIe_Debug_Tips_and_Techniques_Blogs", "docs/PCIe_Collaterals/PCIe_LFARs_Long_Form_Answer_Records", "docs/PCIe_Collaterals/PCIe_PGs_and_relevant_Docs", "docs/PCIe_Collaterals/PCIe_Release_Notes", "docs/PCIe_Collaterals/PCIe_Videos", "docs/PCIe_Collaterals/PCIe_White_Papers", "docs/PCIe_Collaterals/index", "docs/PCIe_Common_Issues/index", "docs/PCIe_Debug_General_Techniques/Link_Training/general_debug_checklist_reasons_questions", "docs/PCIe_Debug_General_Techniques/Link_Training/index", "docs/PCIe_Debug_General_Techniques/Link_Training/issue_q&a_debug_tips", "docs/PCIe_Debug_General_Techniques/Link_Training/links_docs_misc", "docs/PCIe_Debug_General_Techniques/Link_Training/specific_issues", "docs/PCIe_Debug_General_Techniques/index", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/hardware_design_creation", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/debug_faq", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/index", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/issue_q&a_debug_tips", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/links_docs_misc", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/specific_issues", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/debug_checklist", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/debug_faq", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/index", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/issue_q&a_debug_tips", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/links_docs_misc", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/index", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/ports/tables", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/debug_gotchas", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/dmesg_log", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/errors", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/table_sources/check_pidx_update", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/table_sources/ip_configuration_parameters", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/specific_issues", "docs/Simulation_Issue/index", "docs/Tandem_PCIe/index", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/debug_faq", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/debug_gotchas", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/images_checklist/images", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/index", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/issue_q&a_debug_tips", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/links_docs_misc", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/specific_issues", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/debug_faq", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/index", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/issue_q&a_debug_tips", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/links_docs_misc", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/specific_issues", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/versal_acap_cpm_example_designs", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/debug_faq", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/debug_gotchas", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/index", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/issue_q&a_debug_tips", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/links_docs_misc", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/specific_issues", "index"], "filenames": ["README.md", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_checklist/images.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_checklist/index.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_faq.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_gotchas.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/index.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/issue_q&a_debug_tips.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/links_docs_misc.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/specific_issues.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_RootPort_Driver/debug_faq.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/debug_checklist.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/debug_gotchas.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/images.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/index.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/issue_q&a_debug_tips.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/links_docs_misc.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/performance_debug_checklist.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/specific_issues.rst", "docs/Interrupt/index.rst", "docs/Link_Training/general_debug_checklist_reasons_questions.rst", "docs/Link_Training/index.rst", "docs/Link_Training/issue_q&a_debug_tips.rst", "docs/Link_Training/links_docs_misc.rst", "docs/Link_Training/specific_issues.rst", "docs/PCIe_Collaterals/PCIe_Application_Notes.rst", "docs/PCIe_Collaterals/PCIe_Debug_Tips_and_Techniques_Blogs.rst", "docs/PCIe_Collaterals/PCIe_LFARs_Long_Form_Answer_Records.rst", "docs/PCIe_Collaterals/PCIe_PGs_and_relevant_Docs.rst", "docs/PCIe_Collaterals/PCIe_Release_Notes.rst", "docs/PCIe_Collaterals/PCIe_Videos.rst", "docs/PCIe_Collaterals/PCIe_White_Papers.rst", "docs/PCIe_Collaterals/index.rst", "docs/PCIe_Common_Issues/index.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/general_debug_checklist_reasons_questions.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/index.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/issue_q&a_debug_tips.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/links_docs_misc.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/specific_issues.rst", "docs/PCIe_Debug_General_Techniques/index.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/hardware_design_creation.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/debug_faq.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/index.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/issue_q&a_debug_tips.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/links_docs_misc.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/specific_issues.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/debug_checklist.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/debug_faq.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/index.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/issue_q&a_debug_tips.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/links_docs_misc.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/index.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/ports/tables.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/debug_gotchas.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/dmesg_log.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/errors.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/table_sources/check_pidx_update.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/table_sources/ip_configuration_parameters.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/specific_issues.rst", "docs/Simulation_Issue/index.rst", "docs/Tandem_PCIe/index.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/debug_faq.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/debug_gotchas.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/images_checklist/images.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/index.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/issue_q&a_debug_tips.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/links_docs_misc.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/specific_issues.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/debug_faq.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/index.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/issue_q&a_debug_tips.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/links_docs_misc.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/specific_issues.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/versal_acap_cpm_example_designs.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/debug_faq.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/debug_gotchas.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/index.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/issue_q&a_debug_tips.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/links_docs_misc.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/specific_issues.rst", "index.rst"], "titles": ["<no title>", "Global Signals", "<no title>", "General Debug Checklist", "Debug Gotchas", "DMA/Bridge Subsystem for PCI Express (Bridge IP Endpoint)", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "Specific Issues", "General Debug Checklist", "General Debug Checklist", "Debug Gotchas", "Top-Level Interface Signals", "DMA/Bridge Subsystem for PCI Express (XDMA IP/Driver)", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "XDMA Performance Debug", "<no title>", "Interrupt Issue", "Common Link Training Issue Reasons", "Link Training Issue", "Issues and Answers", "Documents and Debug Collaterals", "<no title>", "PCIe Application Notes", "PCIe Debug Tips and Techniques Blogs", "PCIe LFARs (Long Form Answer Records)", "PCIe Application Notes", "PCIe Release Notes", "PCIe Videos", "PCIe White Papers", "PCIe Collaterals", "PCIe Common Issues", "Common Link Training Issue Reasons", "Link Training", "Issues and Answers", "Documents and Debug Collaterals", "<no title>", "PCIe General Debug Techniques", "Hardware Design Creation", "Versal CPM4 PCIe Root Port Design (Linux)", "General Debug Checklist", "Documentation & Debugging Resources", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "<no title>", "General Debug Checklist", "General FAQs", "QDMA Subsystem for PCIExpress (IP/Driver)", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "QDMA Debug Flow", "QDMA Global Port Descriptions", "Debug Gotchas", "dmesg Log", "Global Error Registers", "Check PIDX Update", "IP Configuration Parameters", "<no title>", "Simulation Issue", "Tandem PCIe", "General Debug Checklist", "Debug Gotchas", "Configuration Status Interface Port Descriptions Phy Link", "UltraScale+ Devices Integrated Block for PCIExpress", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "<no title>", "General Debug Checklist", "Versal ACAP CPM Mode for PCI Express", "Issues and Debug Tips/Questions", "Documents and Debug Collaterals", "<no title>", "Versal Adaptive SoC CPM Example Designs", "General Debug Checklist", "Debug Gotchas", "Versal ACAP Integrated Block for PCI Express", "<no title>", "Documents and Debug Collaterals", "Specific Issues", "PCIe Debug K-Map"], "terms": {"pcie": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 18, 19, 33, 41, 43, 44, 46, 47, 50, 53, 57, 59, 61, 68, 71, 73, 74, 78, 79], "debug": [0, 5, 8, 13, 20, 24, 26, 27, 29, 31, 34, 48, 64, 69, 73, 76], "k": [0, 46], "map": [0, 10, 15, 25, 26, 32, 46, 47, 49, 51, 53, 56], "see": [1, 4, 8, 12, 14, 16, 19, 29, 32, 33, 38, 43, 46, 49, 52, 53, 56, 61, 63, 68, 74, 75], "latest": [1, 3, 4, 9, 11, 12, 16, 18, 41, 43, 52, 53, 61, 62, 63], "version": [1, 3, 4, 7, 9, 11, 12, 15, 16, 19, 28, 33, 41, 43, 47, 49, 50, 52, 53, 59, 61, 62, 63], "pg194": [1, 3, 7], "updat": [1, 3, 4, 11, 12, 25, 46, 49, 51, 52, 53, 60, 61, 62, 63, 74], "global": [2, 51], "signal": [2, 3, 8, 10, 16, 18, 19, 25, 32, 33, 47, 49, 51, 59, 61, 62, 75], "axi": [2, 3, 4, 6, 7, 8, 9, 10, 15, 16, 25, 26, 28, 29, 32, 41, 44, 46, 49, 50, 51, 53, 57, 73], "slave": [2, 3, 4, 6, 10, 25, 53, 57], "interfac": [2, 3, 4, 6, 8, 9, 10, 11, 16, 19, 22, 25, 33, 36, 41, 46, 47, 49, 51, 53, 57, 59, 61, 62, 66, 68, 74, 79], "master": [2, 3, 4, 7, 10, 15, 16, 24, 26, 27, 28, 43, 49, 50, 53, 57, 61, 75], "axi4": [2, 3, 4, 10, 11, 24, 27, 49, 51, 53], "lite": [2, 3, 4, 8, 9, 10, 24, 27, 41, 57], "control": [2, 3, 4, 8, 9, 10, 11, 18, 25, 32, 41, 49, 50, 53], "bridg": [2, 3, 4, 6, 7, 8, 9, 15, 24, 25, 27, 28, 32, 41, 46, 50, 53, 57, 73], "gen3": [2, 3, 4, 7, 15, 16, 19, 22, 24, 25, 26, 27, 28, 29, 33, 36, 59, 66, 68], "msi": [2, 3, 11, 16, 18, 25, 43, 57, 68], "x": [2, 3, 11, 16, 18, 25, 43, 57, 68], "dma_bridg": [2, 3], "subsystem": [2, 3, 4, 7, 15, 24, 25, 26, 27, 28, 29, 44, 46, 50, 60], "mode": [2, 3, 4, 9, 16, 19, 24, 25, 27, 28, 33, 41, 43, 46, 47, 49, 51, 53, 57, 59, 60, 61, 68, 71, 80], "interrupt": [2, 3, 4, 11, 16, 25, 26, 43, 46, 49, 53, 56, 57, 66, 80], "decod": [2, 3, 4, 6, 49], "regist": [2, 3, 4, 7, 8, 9, 10, 11, 14, 15, 18, 19, 25, 26, 32, 33, 41, 43, 46, 47, 49, 51, 53, 61, 68, 71, 75], "phy": [2, 3, 28, 61, 74], "status_control": [2, 3], "root": [2, 3, 4, 9, 19, 26, 29, 33, 41, 43, 44, 61, 71, 73, 80], "port": [2, 3, 4, 9, 10, 19, 26, 33, 41, 43, 44, 46, 47, 49, 51, 53, 61, 65, 71, 79, 80], "error": [2, 3, 4, 6, 16, 19, 25, 33, 43, 46, 47, 49, 51, 53, 54, 57, 59, 60, 61, 62, 75], "fifo": [2, 3, 46, 62], "read": [2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 25, 26, 41, 43, 46, 51, 53, 57, 59, 61, 68, 80], "clock": [2, 3, 4, 18, 20, 34, 46, 57, 59, 60, 62, 68, 74, 80], "diagram": [2, 3, 46, 61, 68, 74], "ultrascal": [2, 3, 9, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 33, 36, 41, 43, 44, 50, 60, 61, 65, 66, 68, 74], "devic": [2, 3, 4, 9, 10, 16, 19, 22, 25, 26, 29, 30, 33, 36, 38, 41, 43, 47, 50, 60, 61, 66, 68, 70, 74, 80], "endpoint": [2, 3, 4, 9, 16, 19, 24, 25, 26, 27, 28, 32, 33, 41, 43, 44, 59, 61, 73, 80], "system": [2, 3, 6, 9, 16, 20, 24, 26, 27, 30, 32, 34, 41, 43, 44, 46, 49, 50, 80], "reset": [2, 3, 4, 9, 19, 32, 33, 41, 43, 53, 59, 60, 74], "connect": [2, 3, 4, 16, 19, 24, 27, 29, 30, 32, 33, 41, 43, 49, 59, 60, 74], "confirm": [3, 9, 19, 33, 41, 43, 46, 49, 68, 74], "architectur": [3, 19, 25, 28, 30, 33, 60], "i": [3, 4, 6, 8, 9, 10, 11, 14, 16, 18, 19, 32, 33, 41, 43, 46, 47, 49, 51, 53, 56, 57, 59, 60, 61, 62, 65, 68, 70, 74, 75, 80], "correct": [3, 4, 9, 19, 25, 33, 41, 46, 47, 53, 59, 60], "rootport": [3, 43], "check": [3, 6, 8, 10, 14, 16, 18, 19, 32, 33, 41, 43, 46, 47, 49, 51, 57, 59, 61, 68, 74, 75, 80], "statu": [3, 10, 14, 16, 19, 25, 33, 43, 46, 47, 49, 51, 53, 56, 57, 61, 68, 80], "If": [3, 4, 6, 8, 14, 16, 18, 19, 32, 33, 38, 41, 43, 46, 47, 49, 53, 56, 59, 60, 61, 68, 74, 75], "issu": [3, 4, 5, 7, 10, 13, 15, 16, 22, 25, 26, 34, 36, 42, 46, 48, 50, 51, 53, 54, 61, 64, 66, 68, 69, 74, 76, 78, 80], "relat": [3, 6, 10, 14, 19, 25, 33, 61, 68], "incom": [3, 53], "outgo": 3, "packet": [3, 4, 6, 8, 11, 19, 22, 25, 26, 33, 36, 46, 47, 49, 53, 57, 62, 66, 68], "from": [3, 4, 6, 9, 11, 16, 19, 29, 32, 33, 41, 43, 46, 47, 49, 50, 53, 54, 61, 62, 74, 80], "user": [3, 4, 9, 11, 16, 19, 25, 32, 33, 38, 41, 46, 47, 49, 53, 59, 60, 62, 68, 74], "logic": [3, 4, 16, 46, 47, 49, 53, 59, 60], "follow": [3, 4, 8, 9, 10, 11, 14, 19, 32, 33, 38, 41, 43, 46, 49, 61, 65, 68, 70, 74, 75], "vivado": [3, 4, 7, 10, 15, 16, 19, 22, 24, 25, 26, 27, 28, 29, 33, 36, 47, 49, 50, 59, 61, 66, 68, 74], "ila": [3, 10, 19, 25, 26, 32, 33, 49, 61, 68, 75], "an": [3, 4, 9, 11, 14, 16, 19, 26, 29, 32, 33, 38, 41, 43, 46, 47, 53, 54, 59, 60, 61, 62, 68], "write": [3, 4, 8, 10, 14, 25, 32, 46, 49, 51, 53, 57, 61, 68], "For": [3, 4, 6, 8, 9, 10, 11, 16, 19, 28, 33, 38, 41, 43, 46, 49, 53, 59, 60, 61, 68, 74, 75], "pleas": [3, 4, 11, 14, 19, 33, 53, 61, 62], "refer": [3, 4, 10, 11, 19, 24, 27, 30, 33, 47, 53, 61, 62, 68, 71], "new": [3, 4, 11, 25, 38, 51, 53, 60, 61, 62, 74, 79], "more": [3, 4, 11, 16, 32, 38, 46, 49, 53, 61, 62, 74, 75], "detail": [3, 4, 9, 16, 19, 33, 38, 41, 51, 53, 61, 62, 68, 75], "referenc": [3, 61], "assert": [4, 6, 11, 18, 46, 47, 49, 53, 61, 62], "bit": [4, 8, 10, 11, 18, 32, 41, 43, 47, 49, 51, 53, 56, 61, 62, 75], "doe": [4, 16, 19, 32, 33, 43, 47, 49, 53, 61, 74], "caus": [4, 19, 32, 33, 46, 53, 60], "line": [4, 18, 19, 32, 33, 46, 53], "unless": 4, "correspond": [4, 8, 19, 33, 49, 59, 62], "mask": [4, 19, 33, 49, 57], "also": [4, 16, 18, 46, 47, 53, 56, 60, 61, 62, 68], "set": [4, 6, 8, 9, 14, 19, 32, 33, 41, 43, 46, 47, 49, 53, 57, 59, 65, 70, 74], "avail": [4, 14, 16, 19, 33, 43, 46, 47, 49, 53, 56, 74], "dma": [4, 10, 14, 15, 16, 24, 25, 26, 27, 28, 29, 43, 46, 47, 49, 50, 51, 53, 56, 57, 59, 60, 80], "option": [4, 9, 16, 19, 33, 41, 57, 61, 62, 79], "dma_bridge_resetn": 4, "input": [4, 19, 24, 27, 32, 33, 46, 47, 51, 53, 59], "pin": [4, 9, 11, 18, 19, 32, 33, 41, 60, 74], "which": [4, 6, 14, 16, 19, 33, 43, 46, 47, 49, 53, 61], "allow": [4, 19, 33, 53, 62], "you": [4, 8, 11, 14, 16, 18, 19, 32, 33, 38, 41, 46, 49, 53, 62, 75], "all": [4, 11, 19, 28, 32, 33, 46, 47, 49, 51, 53, 57, 59, 60, 61], "intern": [4, 7, 8, 10, 15, 26, 47, 49, 51, 53, 57], "engin": [4, 46, 49, 51, 53, 56], "well": [4, 19, 33, 43, 46, 49, 53, 56, 68, 74], "peripher": [4, 6], "driven": [4, 32, 59], "axi_aresetn": [4, 6, 49], "axi_ctl_aresetn": 4, "when": [4, 6, 9, 11, 14, 32, 41, 43, 46, 47, 49, 53, 57, 59, 60, 62, 75, 80], "paramet": [4, 8, 10, 19, 33, 46, 51], "need": [4, 11, 18, 43, 46, 47, 49, 53, 75], "dure": [4, 11, 32, 41, 43, 53, 60, 62], "initi": [4, 9, 10, 14, 16, 24, 27, 41, 43, 51, 56, 60], "link": [4, 5, 6, 13, 14, 16, 24, 25, 26, 27, 32, 41, 42, 43, 46, 47, 48, 49, 53, 61, 62, 64, 68, 69, 73, 74, 75, 76, 80], "up": [4, 6, 8, 9, 14, 16, 32, 38, 41, 43, 47, 53, 61, 68], "oper": [4, 9, 41, 43, 46, 53], "becaus": [4, 6, 8, 46, 47, 53], "done": [4, 6, 9, 11, 18, 32, 41, 43, 47, 49, 53, 60, 70, 74], "automat": [4, 74], "ip": [4, 6, 7, 9, 11, 14, 15, 16, 18, 19, 24, 25, 26, 27, 29, 33, 41, 46, 47, 49, 50, 51, 59, 60, 61, 65, 68, 74, 78, 79, 80], "must": [4, 8, 11, 32, 41, 46, 49, 53, 60, 61, 62], "termin": [4, 11, 19, 33], "transact": [4, 6, 8, 25, 53, 59, 61], "befor": [4, 6, 8, 14, 28, 41, 43, 46, 47, 49, 53, 68, 74], "thi": [4, 6, 8, 11, 14, 16, 18, 19, 32, 33, 38, 41, 43, 46, 47, 49, 53, 60, 61, 62, 68, 70, 74, 75, 79], "after": [4, 6, 8, 19, 32, 33, 49, 53, 60, 62, 74, 80], "being": [4, 9, 16, 19, 32, 33, 41, 43, 46, 49, 53, 59], "kept": 4, "minimum": [4, 19, 33], "durat": [4, 62], "least": 4, "equal": [4, 6, 19, 33], "complet": [4, 8, 16, 25, 46, 47, 49, 51, 53, 56, 57, 60, 61, 62, 80], "timeout": [4, 6, 49, 53, 59, 75, 80], "valu": [4, 9, 14, 16, 19, 33, 41, 43, 46, 49, 53, 60, 62, 75], "typic": [4, 11, 16, 32, 46], "50": 4, "m": [4, 43, 60], "clear": [4, 11, 19, 33, 46, 53], "ani": [4, 6, 8, 16, 19, 33, 47, 49, 53, 54, 59, 61, 62, 75], "pend": [4, 8, 11, 51], "transfer": [4, 10, 11, 14, 16, 46, 49, 51, 53, 54, 62], "mai": [4, 19, 33, 53], "current": [4, 47, 53, 74], "queu": 4, "data": [4, 6, 8, 11, 16, 19, 33, 46, 47, 51, 53, 54, 57, 61, 62, 70, 80], "path": [4, 19, 33], "To": [4, 10, 38, 41, 47, 53, 61, 68, 74], "type": [4, 6, 11, 19, 33, 57, 62], "command": [4, 9, 11, 14, 18, 32, 41, 43, 46, 49, 61, 74, 75], "tcl": [4, 11, 38, 47, 60, 74], "set_properti": [4, 11, 60, 74], "dict": [4, 11], "list": [4, 11, 19, 29, 32, 33, 49, 59], "config": [4, 6, 10, 11, 19, 24, 27, 32, 33, 60, 74], "soft_reset_en": 4, "true": [4, 11, 19, 33, 47, 60, 74], "get_ip": [4, 11, 74], "ip_nam": [4, 11], "request": [4, 6, 8, 11, 43, 46, 47, 53, 61, 62, 80], "length": [4, 6, 11, 47, 57], "greater": [4, 6, 43], "than": [4, 6, 11, 16, 32, 43, 46, 49, 53, 61, 62], "1": [4, 6, 7, 8, 10, 11, 14, 15, 19, 22, 25, 26, 29, 32, 33, 36, 41, 43, 46, 47, 49, 50, 51, 60, 61, 62, 66, 73], "dword": [4, 6, 61], "size": [4, 6, 11, 16, 32, 46, 47, 49, 53, 62], "burst": [4, 6, 16, 46], "alwai": [4, 6, 11, 46, 49, 51, 53, 59], "width": [4, 6, 11, 16, 19, 33, 38, 46, 61, 62, 75], "bu": [4, 6, 9, 24, 27, 32, 41, 43, 46, 53, 61, 62, 75], "even": [4, 6, 11, 46, 49, 60], "receiv": [4, 6, 18, 43, 53, 62, 80], "shorter": [4, 6], "s_axi_wstrb": 4, "can": [4, 6, 8, 9, 11, 16, 19, 32, 33, 38, 41, 43, 46, 47, 49, 53, 60, 61, 62, 70, 74, 79], "us": [4, 5, 6, 9, 10, 11, 13, 14, 16, 19, 20, 24, 25, 26, 27, 29, 32, 33, 34, 38, 41, 42, 43, 46, 47, 48, 49, 53, 57, 61, 62, 64, 68, 69, 73, 74, 75, 76, 80], "facilit": 4, "align": [4, 46, 61], "address": [4, 6, 8, 10, 11, 25, 26, 32, 46, 53, 56, 61], "boundari": [4, 46, 47], "0": [4, 7, 10, 28, 29, 32, 41, 43, 46, 47, 49, 50, 56], "begin": 4, "valid": [4, 41, 46, 62], "cycl": [4, 11, 18, 32, 62], "appropri": [4, 60], "calcul": 4, "offset": [4, 8, 10, 60], "given": [4, 11, 18, 49, 59], "howev": [4, 16, 43, 61], "identifi": [4, 10, 19, 33, 53, 60], "continu": [4, 16, 32, 53], "first": [4, 8, 19, 32, 33, 47, 49, 53, 59, 60, 80], "byte": [4, 10, 11, 16, 46, 47, 49, 61], "enabl": [4, 8, 11, 14, 16, 18, 19, 32, 33, 41, 43, 46, 49, 51, 53, 56, 57, 60, 61, 65, 68, 74, 75, 79], "last": [4, 11, 47, 56, 62], "The": [4, 6, 8, 9, 10, 11, 14, 16, 18, 19, 29, 32, 33, 38, 41, 43, 46, 47, 49, 53, 54, 60, 61, 62, 68, 70, 74, 75, 79], "core": [4, 14, 19, 24, 26, 27, 29, 33, 46, 60, 62, 71, 78], "conform": 4, "order": [4, 8, 32, 46, 49], "rule": [4, 8, 19, 33], "pci": [4, 7, 9, 15, 16, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 32, 33, 36, 41, 43, 44, 50, 59, 60, 61, 65, 66, 68, 71, 74, 75, 78], "sig": [4, 29], "specif": [4, 5, 9, 19, 33, 41, 46, 76, 80], "behavior": [4, 20, 34, 80], "ar": [4, 8, 9, 10, 11, 14, 16, 18, 19, 28, 32, 33, 41, 43, 46, 47, 49, 53, 56, 57, 59, 60, 61, 62, 68, 70, 74], "implement": [4, 11, 20, 29, 34, 46, 53, 80], "enforc": 4, "highli": 4, "parallel": 4, "bresp": [4, 8, 53], "remot": 4, "until": [4, 18, 60, 62], "memwr": 4, "tlp": [4, 6, 61, 62, 80], "transmiss": [4, 19, 33], "guarante": 4, "sent": [4, 11, 49, 53], "subsequ": 4, "tx": [4, 19, 33, 46, 59], "relax": [4, 32, 46], "within": [4, 10, 11, 16, 18, 19, 32, 33, 43, 60, 62], "header": 4, "permit": 4, "pass": [4, 29, 47], "previou": [4, 8, 19, 33, 74], "phase": [4, 19, 33, 53, 59, 68], "held": [4, 18], "have": [4, 8, 16, 19, 32, 33, 38, 43, 46, 47, 49, 53, 68], "ha": [4, 8, 9, 10, 11, 14, 18, 19, 32, 33, 41, 43, 46, 49, 53, 60, 61, 62], "been": [4, 6, 9, 11, 14, 19, 32, 33, 41, 47, 49, 60, 68], "attribut": [4, 61], "prior": [4, 8, 28, 53], "": [4, 6, 11, 15, 16, 19, 25, 26, 32, 33, 41, 43, 46, 47, 50, 53, 73], "present": 4, "channel": [4, 10, 16, 19, 33, 74], "integr": [4, 14, 16, 18, 19, 22, 24, 25, 26, 27, 28, 32, 33, 36, 38, 46, 53, 59, 60, 61, 62, 65, 66, 68, 74, 78, 80], "block": [4, 11, 18, 19, 22, 24, 25, 26, 27, 28, 33, 36, 43, 47, 49, 53, 59, 60, 61, 62, 65, 66, 68, 74, 78, 79, 80], "express": [4, 7, 9, 15, 16, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 33, 36, 38, 41, 44, 50, 59, 60, 61, 65, 66, 68, 71, 74, 78], "detect": [4, 11, 14, 32, 43, 47, 49, 53, 61, 68, 70, 74, 80], "malform": 4, "configur": [4, 9, 11, 16, 18, 20, 24, 25, 27, 29, 34, 41, 46, 49, 51, 53, 59, 60, 61, 62, 68, 70, 75, 80], "result": [4, 6, 46, 53], "fatal": [4, 43, 47], "messag": [4, 25, 60], "upstream": [4, 61], "report": [4, 41, 43, 46, 47, 49, 50], "monitor": [4, 25, 47], "ensur": [4, 8, 11, 16, 18, 19, 32, 33, 43, 53, 59], "onli": [4, 6, 10, 11, 16, 18, 19, 25, 33, 38, 43, 47, 49, 51, 53, 56, 61, 62, 73, 74], "incr": 4, "increment": [4, 53], "other": [4, 8, 19, 33, 43, 46, 59], "treat": [4, 62], "condit": 4, "illeg": 4, "sib": 4, "In": [4, 6, 19, 24, 25, 27, 33, 38, 43, 46, 47, 49, 53, 61, 70, 74], "case": [4, 19, 26, 33, 38, 46, 47, 49, 53, 61], "slverr": 4, "beat": [4, 11, 62], "arbitrari": 4, "place": [4, 19, 32, 33, 60], "s_axi_rdata": 4, "respons": [4, 6, 10, 14, 25, 49, 53, 57], "discard": 4, "normal": [4, 53], "depend": [4, 6, 8, 11, 46, 53, 62], "establish": [4, 6, 41], "maintain": [4, 53, 56, 60], "point": [4, 19, 33, 46, 47], "extern": [4, 70, 79], "lost": [4, 32, 53], "re": [4, 32, 60, 61, 68, 74], "return": [4, 6, 32, 68], "hot": [4, 18, 43], "goe": [4, 43, 53, 61, 68, 74], "down": [4, 14, 19, 32, 33, 43, 46, 49, 53], "space": [4, 10, 18, 19, 25, 32, 33, 41, 44, 53, 56, 61, 71, 75], "reconfigur": [4, 24, 27, 60], "yet": 4, "associ": [4, 43, 46, 47, 53], "start": [4, 43, 53, 60, 62, 68], "bar": [4, 8, 9, 16, 19, 32, 33, 41, 46, 57, 68], "support": [4, 7, 10, 11, 15, 16, 18, 19, 22, 24, 27, 30, 33, 36, 38, 41, 43, 44, 46, 47, 49, 50, 59, 61, 66, 68, 71, 73, 74, 78], "filter": [4, 60], "forward": [4, 8], "translat": [4, 8, 9, 25, 41], "disabl": [4, 6, 9, 11, 16, 18, 19, 32, 33, 41, 43, 46, 53, 57, 61, 75], "custom": [4, 16, 19, 25, 33, 46, 47, 49, 60, 74], "design": [4, 9, 10, 11, 15, 16, 20, 22, 24, 25, 26, 27, 28, 29, 30, 32, 34, 36, 41, 44, 46, 49, 50, 53, 60, 61, 66, 68, 69, 74, 79, 80], "suit": [4, 28, 59], "rp": [4, 19, 33, 43], "applic": [4, 11, 16, 31, 32, 46, 49, 53, 60, 61, 62, 80], "without": [4, 6, 43], "default": [4, 6, 15, 19, 22, 25, 33, 36, 53, 61], "0x0000_0000": 4, "program": [4, 9, 24, 25, 27, 29, 32, 41, 43, 46, 47, 51, 53, 56, 60, 70], "separ": [4, 19, 33, 53, 60], "hit": [4, 49], "accord": [4, 19, 33], "outsid": [4, 49, 74], "rang": [4, 9, 41], "cannot": [4, 46, 60], "recommend": [4, 9, 41, 46, 53], "do": [4, 8, 14, 16, 19, 32, 33, 38, 41, 43, 47, 49, 60, 61, 68, 74], "set_finite_credit": 4, "fals": [4, 60, 74], "infinit": [4, 62], "credit": [4, 14, 16, 19, 25, 32, 33, 46, 47, 49, 51, 53, 56, 57, 62], "advertis": [4, 41], "complex": [4, 26, 29, 44, 73], "finit": 4, "requir": [4, 18, 19, 25, 32, 33, 41, 43, 46, 47, 49, 53, 60, 74], "most": [4, 19, 33], "obei": 4, "caution": [4, 46], "verifi": [4, 19, 25, 33, 51], "function": [4, 14, 41, 46, 47, 57, 61, 75], "output": [4, 14, 19, 24, 27, 33, 46, 49, 51, 60, 70, 75], "s_axi_arreadi": 4, "s_axi_rvalid": 4, "unrespons": 4, "met": [4, 24, 27], "older": 4, "axi_ctl_aclk": 4, "axi_ctl_aclk_out": 4, "puls": 4, "out": [4, 10, 19, 25, 32, 33, 47, 54, 70, 79], "activ": [4, 49, 60, 62], "low": [4, 46, 53], "main": [4, 16], "toggl": 4, "simul": [4, 19, 24, 25, 26, 27, 29, 33, 46, 73, 80], "run": [4, 9, 19, 25, 29, 32, 33, 41, 43, 46, 49, 53, 61, 68, 74], "featur": [4, 14, 19, 22, 25, 26, 33, 36, 47, 53, 57, 60, 61, 66, 68, 74], "captur": [4, 10, 19, 33, 61, 68], "waveform": 4, "access": [4, 6, 14, 41, 46, 60], "abov": [4, 11, 19, 43, 53, 61, 62, 68], "taken": [4, 11, 19, 33, 46, 53, 62], "qdma": [4, 15, 25, 26, 29, 38, 47, 49, 50, 53, 54, 59, 62, 73, 79], "product": [4, 7, 11, 16, 18, 53, 61, 62, 66, 71, 78], "guid": [4, 11, 15, 16, 18, 19, 22, 25, 26, 33, 36, 41, 44, 50, 53, 61, 62, 66, 68, 71, 74, 78], "pg195": [4, 10, 11, 12, 15], "document": [4, 5, 11, 13, 19, 20, 24, 27, 30, 33, 34, 48, 49, 53, 61, 62, 64, 68, 69, 74, 76, 80], "gotcha": [5, 13, 48, 51, 64, 76, 80], "gener": [5, 11, 13, 14, 20, 25, 26, 29, 34, 42, 44, 48, 50, 51, 53, 64, 69, 76], "checklist": [5, 13, 20, 34, 42, 48, 51, 64, 69, 76, 80], "tip": [5, 13, 31, 42, 48, 51, 64, 69, 80], "question": [5, 13, 20, 34, 42, 48, 51, 64, 69, 80], "collater": [5, 13, 20, 34, 42, 48, 64, 69, 76, 80], "between": [6, 10, 19, 33], "d0": 6, "uniniti": 6, "state": [6, 8, 19, 32, 33, 43, 53, 61, 65, 68, 74, 75], "mean": [6, 32, 49], "physic": [6, 57, 60], "hasn": [6, 47], "t": [6, 19, 33, 43, 47, 60], "exchang": [6, 32], "initfc": 6, "enumer": [6, 9, 14, 19, 33, 41, 68, 80], "thu": [6, 53, 60, 62], "get": [6, 14, 16, 46, 49, 51, 60, 65, 68], "through": [6, 8, 10, 24, 25, 27, 32, 43, 46, 47, 53, 56, 61], "essenti": 6, "user_reset": 6, "releas": [6, 7, 15, 31, 41, 44, 50, 66, 78, 80], "layer": 6, "should": [6, 9, 10, 16, 19, 32, 33, 41, 43, 46, 47, 49, 53, 56, 60, 61, 62], "therefor": 6, "indic": [6, 11, 14, 18, 19, 32, 33, 53, 75], "send": [6, 16, 47, 49, 53, 59], "over": [6, 11, 62], "usabl": 6, "host": [6, 11, 16, 19, 25, 32, 33, 46, 49, 53, 56, 61, 68, 70, 74], "testbench": 6, "hang": [6, 14, 46, 49], "memori": [6, 10, 15, 16, 19, 24, 25, 26, 27, 32, 33, 41, 46, 49, 51, 53, 61, 68, 75], "whether": [6, 19, 32, 33, 38], "non": [6, 9, 19, 33, 41, 43, 60, 62], "exist": [6, 19, 32, 33, 74], "These": [6, 49, 60], "attempt": [6, 19, 33], "would": [6, 16, 43, 46], "readi": [6, 62], "mechan": [6, 11, 25], "unlik": [6, 41], "A": [6, 11, 19, 25, 33, 44, 53, 59, 71], "possibl": [6, 10, 16, 19, 33, 38, 46, 53, 74], "workaround": 6, "firewal": 6, "outstand": [6, 53, 62], "number": [6, 9, 16, 28, 41, 46, 47, 49, 53, 57, 62], "8": [6, 10, 25, 26, 43, 73], "c_s_axi_num_read": 6, "one": [6, 11, 18, 32, 59], "instead": [6, 16, 19, 32, 33, 53, 61, 74], "narow": 6, "event": [6, 46], "though": [6, 49], "limit": [6, 16, 43, 74], "masteraxi": 6, "descript": [7, 15, 18, 19, 22, 33, 36, 44, 50, 51, 59, 61, 66, 71, 78], "url": [7, 15, 18, 22, 36, 44, 50, 59, 66, 71, 78], "v3": [7, 50], "http": [7, 15, 16, 18, 19, 22, 24, 27, 29, 30, 33, 36, 38, 41, 43, 44, 46, 47, 49, 50, 59, 61, 66, 68, 71, 73, 74, 78], "www": [7, 15, 18, 19, 22, 24, 27, 29, 30, 33, 36, 38, 41, 43, 44, 46, 50, 59, 61, 66, 68, 71, 74, 78], "xilinx": [7, 9, 15, 16, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 33, 36, 38, 41, 43, 44, 46, 47, 49, 50, 53, 59, 61, 66, 68, 71, 73, 74, 78], "com": [7, 15, 16, 18, 19, 22, 24, 27, 29, 30, 33, 36, 38, 41, 43, 44, 46, 47, 50, 59, 61, 66, 68, 71, 73, 74, 78], "ip_document": [7, 15, 66], "axi_pcie3": 7, "v3_0": 7, "pdf": [7, 15, 19, 22, 24, 27, 30, 33, 36, 59, 66, 71, 78], "xdma": [7, 9, 10, 11, 14, 15, 25, 26, 29, 41, 50, 54], "jtag": [7, 15, 19, 26, 32, 33], "answer": [7, 9, 15, 16, 18, 19, 22, 28, 31, 33, 34, 36, 38, 41, 43, 44, 46, 50, 61, 66, 68, 74, 78, 80], "71322": [7, 15], "html": [7, 15, 18, 19, 22, 29, 33, 36, 38, 41, 43, 44, 46, 49, 50, 61, 66, 68, 74, 78], "note": [7, 15, 31, 41, 43, 44, 46, 49, 50, 66, 78, 80], "known": [7, 15, 19, 33, 43, 50, 66, 78], "2013": 7, "newer": [7, 15, 50], "tool": [7, 15, 50, 60], "54646": [7, 28], "gen": 7, "3": [7, 10, 15, 19, 25, 26, 33, 43, 47, 51, 59, 66, 68, 73], "intellectu": 7, "properti": [7, 70, 74], "axi_pcie_gen3": 7, "trasfer": 8, "probe": [8, 14, 19, 33, 43], "m_axi": 8, "s_axi": 8, "direct": [8, 19, 32, 33, 46, 47, 49, 53, 56, 70, 74], "flow": [8, 9, 10, 25, 38, 41, 43, 48, 49, 74, 80], "trigger": [8, 25, 57, 75], "catch": 8, "made": [8, 29], "show": [8, 19, 33, 43, 47, 54, 80], "here": 8, "field": [8, 47, 57, 61], "araddr": 8, "awaddr": 8, "expect": [8, 19, 33, 46, 59], "vector": 8, "c_pciebar2axibar_": 8, "c_axibar_": 8, "anyth": [8, 47], "failur": [8, 19, 32, 33, 43], "make": [8, 9, 19, 32, 33, 38, 41, 43, 46, 49, 53, 60, 61, 70, 79], "sure": [8, 9, 19, 32, 33, 41, 43, 46, 49, 61, 70], "thei": [8, 46, 49], "bvalid": 8, "breadi": 8, "each": [8, 10, 32, 46, 49, 53, 57, 75], "rresp": 8, "rvalid": 8, "rreadi": 8, "both": [8, 46, 47, 49, 59, 62, 68, 74, 79], "investig": [8, 41], "those": [8, 47, 49, 60], "move": [8, 60], "strict": 8, "might": [8, 19, 32, 33, 46, 49, 59], "halt": 8, "pipelin": [8, 19, 33], "0x148": 8, "s_axil_": 8, "axis_tx": 8, "rx": [8, 59], "spot": 8, "visibl": [8, 32], "problem": [8, 43, 53], "mm": [8, 51, 53, 56, 57, 73], "gen2": [8, 16, 19, 24, 27, 33, 59], "machin": [8, 16, 19, 32, 33, 43, 46, 61, 68, 74], "seen": [8, 43, 53, 59], "axis_": 8, "datapath": [8, 11], "p": [9, 15, 19, 22, 26, 29, 33, 36, 38, 41, 43, 44, 61, 66, 68, 70, 74], "driver": [9, 10, 14, 15, 16, 18, 19, 24, 25, 26, 27, 29, 32, 33, 41, 43, 44, 46, 47, 49, 50, 51, 53, 54, 56, 60, 71, 80], "model": [9, 26, 41, 59], "section": [9, 14, 41, 68, 74], "ug1085": [9, 41], "summar": [9, 41], "review": [9, 10, 19, 33, 41, 46, 49, 51, 68, 74], "gt": [9, 14, 19, 32, 33, 41, 43, 60, 65, 74], "transceiv": [9, 19, 33, 41], "iou": [9, 41], "correctli": [9, 32, 41, 49], "try": [9, 16, 19, 32, 33, 41, 43, 49, 65], "petalinux": [9, 26, 41, 44], "bsp": [9, 41], "particular": [9, 14, 41], "board": [9, 16, 19, 25, 29, 32, 33, 41, 43, 50, 70], "silicon": [9, 16, 41], "revis": [9, 19, 33, 41], "base": [9, 14, 16, 25, 30, 41, 46, 47, 53, 56, 68, 73, 74], "templat": [9, 41], "build": [9, 41], "project": [9, 38, 41], "hdf": [9, 41], "file": [9, 14, 19, 22, 33, 36, 38, 41, 46, 49, 50], "dt": [9, 41], "test": [9, 24, 25, 26, 27, 29, 41, 43, 46, 47, 49], "off": [9, 19, 33, 41, 46, 53, 70], "shelf": [9, 41], "card": [9, 11, 19, 32, 33, 41, 43], "exampl": [9, 10, 11, 15, 16, 19, 24, 25, 26, 27, 29, 33, 41, 44, 46, 50, 60, 61, 68, 69, 74, 79, 80], "nic": [9, 41, 43], "help": [9, 14, 41, 43, 46, 49, 53], "compar": [9, 19, 33, 41, 49, 53], "develop": [9, 19, 25, 29, 33, 41, 53], "zcu102": [9, 26, 41, 43, 44], "below": [9, 19, 33, 38, 41, 43, 46, 47, 49, 54, 61, 68, 74, 79], "xsct": [9, 41], "mrd": [9, 41], "0xfd480000": [9, 41], "100": [9, 41, 43], "pl": [9, 25, 26, 38, 41, 43, 44, 46, 47, 50, 74], "zynq": [9, 29, 41, 43, 44], "mpsoc": [9, 41, 44], "experi": [9, 41], "seamless": [9, 41], "interoper": [9, 41], "70854": [9, 41], "provid": [9, 16, 19, 33, 38, 41, 46, 47, 53, 60, 68, 74], "topic": [9, 41], "prefetch": [9, 16, 41, 46, 47, 49, 51, 53, 56, 57], "top": [10, 59, 79], "level": [10, 16, 49, 53, 59, 60, 79], "h2c": [10, 15, 25, 46, 49, 51, 53, 56], "c2h": [10, 11, 14, 16, 46, 47, 49, 51, 53, 56, 57], "setup": [10, 19, 33], "summari": 10, "stream": [10, 11, 14, 16, 46, 49, 51, 53, 56, 57], "track": [10, 19, 33], "bypass": [10, 19, 25, 33, 46, 47, 49, 51, 53, 57, 59, 68], "descriptor": [10, 11, 14, 16, 25, 46, 47, 49, 51, 53, 56, 57, 61], "defin": [10, 19, 25, 33], "0x00": 10, "0x04": 10, "etc": [10, 19, 33, 47, 49, 56, 75], "how": [10, 16, 19, 25, 29, 33, 46, 47, 49, 56, 79, 80], "find": [10, 47], "differ": [10, 11, 19, 33, 46, 47, 74], "format": 10, "tabl": [10, 25, 66], "e": [10, 16, 38, 47, 59, 75], "g": [10, 16, 38, 47, 75], "0x00000104": 10, "7": [10, 22, 24, 25, 26, 27, 28, 29, 30, 36, 43, 60, 73], "11": [10, 25, 26, 73], "id": [10, 19, 32, 33, 79], "15": [10, 25, 26, 73], "12": [10, 25, 26, 73], "submodul": 10, "31": [10, 25], "16": [10, 25, 26, 43, 46, 49, 73], "reserv": [10, 53], "arm": [10, 43, 56], "processor": [10, 46], "No": [10, 25, 26, 47, 57], "what": [10, 14, 16, 19, 33, 46, 47, 49, 61, 74], "xdma0_bypass_h2c_0": 10, "xdma0_bypass_c2h_0": 10, "xdma0_bypass": 10, "xdma0_bypass_h2c": 10, "xdma0_bypass_c2h_": 10, "so": [10, 16, 18, 19, 32, 33, 46, 47, 49, 53, 60, 62, 74], "ignor": 10, "combin": [10, 60], "xdma0_c2h_0": 10, "xdma0_c2h_1": 10, "xdma0_c2h_2": 10, "xdma0_c2h_3": 10, "singl": [10, 19, 33, 46, 61], "select": [10, 19, 33, 57, 60, 62, 66, 71, 78, 79], "individu": [10, 53, 57], "its": [10, 43, 53, 60], "wai": [10, 11, 46, 47, 53], "specifi": [11, 19, 33], "time": [11, 16, 19, 33, 46, 47, 53, 60, 61, 68, 74], "take": 11, "preced": 11, "legaci": [11, 16, 18], "softwar": [11, 47, 49, 51, 53, 56, 57], "switch": [11, 19, 33, 46], "either": [11, 43, 53, 62], "while": [11, 19, 33, 46, 47, 74], "user_irq_ack": 11, "remain": [11, 60], "queri": [11, 41], "servic": [11, 46, 53], "routin": 11, "isr": [11, 16], "determin": 11, "sourc": [11, 14, 38, 53], "know": [11, 47], "mani": [11, 16, 46, 49, 61], "your": [11, 16, 19, 32, 33], "involv": 11, "arrai": 11, "modifi": [11, 14, 25, 74], "destin": [11, 53], "unus": 11, "span": 11, "multipl": [11, 19, 32, 33, 47, 61, 68, 74], "eop": 11, "tlast": [11, 32, 47], "tkeep": 11, "except": [11, 51], "On": [11, 43], "full": [11, 16, 38, 46, 49, 53], "pack": 11, "lsb": 11, "contigu": [11, 19, 33], "buffer": [11, 46, 53, 57, 60], "It": [11, 47, 49, 53, 60], "64": [11, 32, 46, 49, 61, 62], "irq": [11, 43], "usr_irq_exd": 11, "faq": [13, 48, 64, 76, 80], "perform": [13, 24, 25, 27, 30, 48, 50, 53, 57, 61, 73, 80], "similar": [14, 19, 32, 33, 54, 74], "boot": [14, 32, 43, 46, 60], "strategi": 14, "fail": [14, 18, 20, 34, 41, 43, 49, 60, 61, 70, 80], "load": [14, 49, 54, 60], "dmesg": [14, 25, 43, 51], "narrow": [14, 16], "where": [14, 38, 41, 46], "onc": [14, 16, 46, 56], "call": [14, 16, 59], "pio": [14, 25, 26, 61, 73, 74], "primari": [14, 53], "look": [14, 16, 47, 49, 54], "insid": [14, 16, 60], "c": 14, "insert": [14, 19, 29, 33, 57, 60], "kernel": [14, 16, 18, 25, 26, 29, 32, 41, 43, 46, 49, 50], "variou": [14, 38], "insmod": 14, "load_driv": 14, "sh": 14, "ko": 14, "enable_credit_mp": 14, "download": [15, 16, 46, 49, 50], "github": [15, 16, 46, 47, 49, 50, 59, 73], "dma_ip_driv": [15, 16, 47, 49, 50], "v4": [15, 29, 50], "v4_1": 15, "2015": 15, "65443": [15, 28], "71435": [15, 16], "articl": [15, 46, 50, 73], "000034166": 15, "languag": [15, 46, 50, 59, 73], "en_u": [15, 46, 50, 73], "v": [15, 19, 29, 33, 50, 60], "forum": [15, 19, 22, 29, 33, 36, 38, 61, 66, 68, 74], "t5": [15, 19, 22, 29, 33, 36, 38, 61, 66, 68, 74], "cpm": [15, 25, 28, 46, 47, 68, 71, 80], "td": 15, "944098": 15, "measur": [16, 19, 33], "lspci": [16, 25, 38, 41, 43, 49, 61, 68, 74, 80], "come": [16, 19, 33, 74], "speed": [16, 19, 33, 38, 46, 61, 75], "video": [16, 31, 44, 80], "best": [16, 46], "ar71435": 16, "record": [16, 28, 31, 46, 61, 68, 74, 80], "ar68049": 16, "did": [16, 19, 32, 33, 43, 46], "65444": 16, "tree": [16, 59, 73], "linux": [16, 25, 26, 29, 41, 43, 46, 49, 50, 71, 80], "tri": [16, 19, 33], "improv": [16, 46, 53], "One": 16, "factor": 16, "affect": [16, 53], "throughput": 16, "process": [16, 32, 43, 53], "wait": [16, 53], "predict": 16, "overal": 16, "total": [16, 47, 62], "slow": [16, 46, 70], "unpredict": 16, "There": [16, 19, 33, 47, 49, 53], "coupl": [16, 19, 33], "work": [16, 46, 47, 59, 60, 61, 68], "around": 16, "With": 16, "rate": [16, 19, 33, 46, 53], "better": [16, 61], "we": [16, 47], "explain": 16, "some": [16, 18, 33, 43, 46], "lower": [16, 46], "poll": [16, 53], "give": [16, 43, 47, 49], "mp": [16, 46], "mrr": [16, 46], "128byte": 16, "wp350": [16, 30], "x58": 16, "256": [16, 49, 61, 62], "maximum": [16, 46, 53, 62], "payload": [16, 61, 62, 80], "x38": 16, "128": 16, "high": [16, 19, 33, 46, 60, 62, 70], "end": [16, 38, 62, 79], "effici": [16, 46], "comparison": 16, "stabl": [16, 32], "ltssm": [16, 19, 33, 43, 61, 65, 68, 74, 75, 80], "go": [16, 19, 32, 33, 46, 47], "recoveri": [16, 19, 32, 33, 53, 61, 68, 74], "intermitt": 16, "ar71355": 16, "analyz": [16, 19, 33], "nak": 16, "could": [16, 19, 33, 38, 46, 49, 68], "pipe": [16, 19, 22, 24, 25, 27, 29, 33, 36, 59, 66], "descrambl": [16, 19, 22, 25, 33, 36, 66], "modul": [16, 19, 22, 25, 33, 36, 60, 66, 71], "blog": [16, 19, 22, 29, 31, 33, 36, 38, 61, 66, 68, 74, 80], "lane": [16, 19, 25, 33, 38, 61], "gen3x8": 16, "larger": 16, "higher": [16, 38], "tradeoff": 16, "consum": [16, 46, 60], "inform": [16, 32, 46, 50, 53, 56, 74], "enough": [16, 43, 46, 53, 61, 68, 74], "partner": [16, 19, 33, 61], "bram": [16, 46], "ddr": [16, 46], "prone": 16, "robust": 16, "reduc": [16, 46, 53], "kick": 16, "happen": [16, 19, 33, 49, 75], "increas": [16, 60], "side": [16, 49, 53, 59], "frequenc": [16, 19, 33, 46, 59], "smart": 16, "replac": 16, "interconnect": 16, "synchron": [16, 19, 33, 59], "same": [16, 19, 33, 46, 47, 49], "boost": 16, "due": [16, 49, 53], "hardwar": [16, 19, 29, 33, 40, 46, 51, 53, 56, 80], "log": [16, 41, 47, 49, 51, 53], "repeat": 16, "cfg_interrupt_int": 18, "cfg_interrupt_don": 18, "certain": [18, 49, 53, 75, 80], "steadi": 18, "respond": 18, "encod": [18, 75], "58495": 18, "72702": [18, 66], "howto": 18, "org": 18, "doc": [18, 46, 68, 71, 74, 78], "unabl": [19, 33], "retain": [19, 33], "l0": [19, 32, 33, 61, 68, 74], "incorrect": [19, 33, 41], "pinout": [19, 33], "revers": [19, 25, 33, 61], "neither": [19, 33], "ep": [19, 25, 32, 33, 43], "too": [19, 33, 46, 60], "big": [19, 33], "wrong": [19, 33], "mayb": [19, 33], "miss": [19, 33, 80], "surpris": [19, 33], "vm": [19, 33], "assign": [19, 32, 33, 41, 43, 47, 60, 74], "proper": [19, 33], "iommu": [19, 33], "bifurc": [19, 33], "doesn": [19, 33, 43, 47, 60], "match": [19, 33, 46, 47, 53], "vice": [19, 33], "versa": [19, 33], "slot": [19, 32, 33, 43, 46, 57], "power": [19, 29, 32, 33, 46, 68, 74], "vendor": [19, 25, 32, 33], "invalid": [19, 33, 49, 51, 53], "pointer": [19, 33], "extend": [19, 33, 46], "bad": [19, 33], "tandem": [19, 24, 25, 27, 29, 33, 73], "imag": [19, 26, 33, 44], "constraint": [19, 33, 60, 74], "stall": [19, 33, 53], "throttl": [19, 33, 46], "cfg_space": [19, 33], "errata": [19, 33], "bio": [19, 33, 41, 43, 46, 70], "occur": [19, 33, 47, 49, 53, 61], "gen1x1": [19, 33, 38], "motherboard": [19, 33], "pc": [19, 33], "who": [19, 33, 47], "manufactur": [19, 33], "chipset": [19, 33], "gen1": [19, 33], "describ": [19, 33, 68, 79], "fpga": [19, 22, 24, 26, 27, 28, 29, 30, 33, 36, 44, 66, 80], "estim": [19, 33], "loss": [19, 33], "desir": [19, 33, 46, 60], "passiv": [19, 33], "interpos": [19, 33], "retim": [19, 33], "part": [19, 32, 33, 73], "chip": [19, 33], "add": [19, 33, 46, 60], "backplan": [19, 33], "cabl": [19, 33], "lock": [19, 33, 65], "asynchron": [19, 33], "ssc": [19, 33, 70], "were": [19, 33, 49, 60], "synthesi": [19, 33], "rout": [19, 33], "xdc": [19, 33], "immedi": [19, 33, 53, 57], "hour": [19, 33], "back": [19, 32, 33], "observ": [19, 33, 46], "chang": [19, 33, 62, 74, 75], "long": [19, 31, 33, 80], "success": [19, 33], "wa": [19, 32, 33, 43, 47, 49, 53, 57, 80], "protocol": [19, 22, 33, 36], "analysi": [19, 25, 26, 33], "oscilloscop": [19, 33], "free": [19, 33], "ti": [19, 33], "abil": [19, 33, 53], "clean": [19, 33], "graph": [19, 33], "debugg": [19, 33], "gui": [19, 33, 65, 79], "ey": [19, 24, 27, 33, 61, 68, 74], "scan": [19, 24, 27, 32, 33], "ibert": [19, 33], "jitter": [19, 33, 68, 74], "nois": [19, 33, 68, 74], "refclk": [19, 33], "plot": [19, 33], "dfe": [19, 33], "lpm": [19, 33], "autorxeq": [19, 33], "regener": [19, 33], "tape": [19, 33], "38988": [19, 33], "eou": [19, 33], "techniqu": [19, 22, 31, 33, 36, 61, 66, 68, 74, 80], "ba": [19, 22, 29, 33, 36, 38, 61, 66, 68, 74], "1097525": [19, 33, 61], "versal": [19, 25, 28, 29, 33, 38, 46, 47, 50, 68, 71, 74, 78], "acap": [19, 25, 28, 29, 33, 38, 46, 50, 68, 71, 74, 78], "1203707": [19, 33, 38, 68, 74], "guidelin": [19, 25, 33], "gth": [19, 33], "gty": [19, 33], "user_guid": [19, 33], "ug576": [19, 33], "ug578": [19, 33], "56616": [19, 22, 33, 36], "73361": [19, 22, 33, 36, 38, 61, 66, 68, 74], "transit": [19, 33], "store_ltssm": [19, 33], "71355": [19, 33], "erron": [19, 33], "consult": [19, 33], "understand": [19, 25, 30, 33, 38, 74], "why": [19, 33], "As": [19, 33, 46, 53], "put": [19, 33, 46, 59], "ac": [19, 33], "capacitor": [19, 33], "transmitt": [19, 33], "differenti": [19, 33], "pair": [19, 33], "75": [19, 33], "nf": [19, 33], "200": [19, 33], "close": [19, 33, 38], "proxim": [19, 33], "crack": [19, 33], "sheet": [19, 33], "target": [19, 30, 33, 59], "care": [19, 33], "respect": [19, 33, 41], "schemat": [19, 33, 68, 74], "per": [19, 33, 49, 53, 56, 57, 60, 62, 68, 74], "io": [19, 33, 49, 50, 60, 70], "standard": [19, 33, 60], "suppli": [19, 33], "decoupl": [19, 33, 60], "mention": [19, 33, 47], "peak": [19, 33], "resistor": [19, 33], "calibr": [19, 33], "circuit": [19, 33], "layout": [19, 33], "fulfil": [19, 33], "oscil": [19, 33], "regard": [19, 33], "dedic": [19, 33, 46, 60], "meet": [19, 33, 43, 47, 60], "exce": [19, 33, 46], "characterist": [19, 33], "datasheet": [19, 33], "keep": [19, 33, 62], "imped": [19, 33], "discontinu": [19, 33, 62], "auto": [19, 33], "rxeq": [19, 33], "sometim": [19, 33], "cpll": [19, 33], "qpll": [19, 33], "pll": [19, 33], "preset": [19, 33], "5": [19, 24, 25, 26, 27, 33, 43, 73], "4": [19, 25, 26, 29, 33, 43, 46, 47, 49, 50, 73], "2": [19, 25, 26, 29, 33, 46, 47, 49, 50, 51, 59, 60, 62, 68, 73], "phase2": [19, 33], "mac": [19, 33], "skew": [19, 33], "demystifi": [19, 22, 25, 33, 36, 66], "built": [19, 22, 25, 29, 33, 36, 44, 47, 66], "980246": [19, 22, 33, 36, 66], "third": [19, 33, 43, 59], "parti": [19, 33, 43, 59], "mandatori": [19, 33], "pg239": [19, 33], "drive": [19, 29, 33, 47, 60, 62, 70], "persist": [19, 33, 60, 61, 68, 74], "bitstream": [19, 33, 43, 60], "spi": [19, 33], "bp": [19, 33], "flash": [19, 33, 60], "across": [19, 60], "common": [20, 34, 41, 74, 80], "reason": [20, 34, 49, 53, 80], "regress": [20, 34, 80], "capabl": [20, 24, 27, 34, 43, 57, 60, 61, 80], "si": [20, 34, 80], "info": [20, 34, 80], "train": [22, 25, 26, 36, 61, 66, 80], "2019": [22, 26, 29, 36, 66], "usag": [22, 25, 26, 29, 36, 66, 70], "72471": [22, 36, 38, 66], "seri": [22, 24, 26, 27, 28, 29, 30, 36, 60, 71, 78], "troubleshoot": [22, 25, 36], "pcisig": [22, 36], "site": [22, 36, 60], "02_01_troubleshooting_pci_express_link_training_and_protocol_issues_frozen": [22, 36], "xapp1177": [24, 27], "sr": [24, 27], "iov": [24, 27], "virtex": [24, 26, 27, 28, 29], "application_not": [24, 27, 59], "sriov": [24, 26, 27, 57], "xapp1179": [24, 27], "kintex": [24, 27, 29], "trd": [24, 27], "xapp1184": [24, 27, 59], "x8": [24, 27, 29, 43, 59], "xapp1171": [24, 27], "central": [24, 27], "xapp1201": [24, 27], "xt": [24, 27], "ht": [24, 27], "xapp1198": [24, 27], "xapp859": [24, 27], "ddr2": [24, 27], "sdram": [24, 27], "demonstr": [24, 27], "platform": [24, 27, 41, 43], "xapp1002": [24, 27], "chipscop": [24, 27], "pro": [24, 27], "plu": [24, 26, 27, 28, 66], "wrapper": [24, 26, 27, 28], "xapp": [24, 27], "1022": [24, 27], "xapp1022": [24, 27], "1052": [24, 27], "solut": [24, 27, 60], "xapp1052": [24, 27], "xapp518": [24, 27], "bpi": [24, 27], "prom": [24, 27, 60], "6": [24, 25, 26, 27, 28, 29, 30, 43, 46, 73], "technologi": [24, 27], "isp": [24, 27], "xapp883": [24, 27], "fast": [24, 27, 29, 59], "partial": [24, 27, 60], "xapp883_fast_config_pci": [24, 27], "xapp1286": [24, 27], "titl": [25, 26, 28], "setpci": [25, 32, 38, 41, 43, 61, 68, 74], "python": 25, "9": [25, 26, 73], "10": [25, 26, 73], "advanc": 25, "bdf": 25, "manag": [25, 49, 51, 53, 57, 60], "13": [25, 26, 73], "14": [25, 26, 43, 73], "cpm4": [25, 50, 73, 74, 80], "gen4x8": [25, 73], "ced": [25, 59, 73], "17": [25, 26, 43, 73], "18": [25, 26, 73], "aer": [25, 32], "19": [25, 26, 73], "20": [25, 26, 46], "vpk120": 25, "21": [25, 26], "modular": 25, "22": [25, 26], "cpm5": [25, 73, 80], "23": [25, 26], "questa": 25, "24": 25, "queue": [25, 26, 28, 46, 47, 49, 50, 51, 53, 56, 57], "tune": [25, 46], "25": 25, "compil": 25, "dpdk": [25, 29, 46, 47, 49], "app": [25, 46], "step": [25, 38], "screenshot": [25, 54], "26": [25, 43], "pcie4": [25, 66, 74], "pcie5": [25, 50], "27": 25, "adapt": [25, 46, 69, 71, 78, 80], "soc": [25, 69, 71, 78, 80], "logicor": [25, 78], "28": [25, 43], "29": [25, 29], "deep": 25, "dive": 25, "loopback": [25, 61], "30": [25, 29], "profil": [25, 56], "context": [25, 46, 47, 49, 51, 53, 56, 57], "32": [25, 32, 46, 61], "2023": [25, 73], "33": 25, "deciph": 25, "pidx": [25, 46, 49, 51, 53], "34": 25, "flr": [25, 53, 57], "35": 25, "36": 25, "illustr": 25, "37": 25, "marker": [25, 47, 53, 57], "38": 25, "39": 25, "st": [25, 51, 73], "2024": 25, "40": 25, "downstream": 26, "quick": 26, "serial": [26, 59], "rapidio": 26, "verilog": [26, 59], "zc706": [26, 44], "kc705": [26, 44], "zcu106": 26, "ultraz": 26, "intel": 26, "ssd": 26, "750": 26, "nvme": 26, "remark": [28, 57], "75397": 28, "75396": 28, "75350": 28, "73083": [28, 78], "72289": 28, "70927": [28, 50], "66988": 28, "71399": 28, "4c": 28, "65751": [28, 66], "57945": 28, "61898": 28, "54645": 28, "v2": 28, "onward": 28, "47441": 28, "ISE": 28, "54643": 28, "40469": 28, "44969": 28, "edk": 28, "65178": 28, "65177": 28, "spartan": [28, 30], "xilnx": 28, "51597": 28, "x16": 29, "harden": 29, "complianc": 29, "now": [29, 32, 74], "100gbp": 29, "xcell": 29, "daili": 29, "694911": 29, "mig": [29, 44, 60], "kcu105": 29, "windriv": 29, "jungo": 29, "ipi": [29, 38, 44, 59, 73], "ddr4": 29, "creat": [29, 38, 49, 60], "youtub": [29, 50], "watch": [29, 50], "1ygviynflyi": 29, "g8n86wvh2ig": 29, "mentor": 29, "bfm": 29, "vwnkg01rjei": 29, "0knvw_6bgu0": 29, "simpl": [29, 46, 47, 51, 57], "d1vofbsuwac": 29, "demo": 29, "iohgltr11qi": 29, "wxd71xdmmke": 29, "maw7ao6p6zu": 29, "bu8bspuiyoo": 29, "index": [29, 56], "pl35626fef3d5cb8f2": 29, "i8axs4hw2f4": 29, "startup": [29, 60], "dt3ytlwfehw": 29, "104": 29, "n5ovptstwua": 29, "youtu": 29, "c2j89lixhya": 29, "ryozp": 29, "dmwsk": 29, "vcu118": 29, "hjuarbawyqw": 29, "x0njx": 29, "zzg4k": 29, "u200": [29, 50], "2020": [29, 50], "esjc6twgafi": [29, 50], "live": 29, "premium": [29, 71, 78], "gen5": 29, "wp464": 30, "white_pap": 30, "wp384": 30, "wp384_pcie_7seri": 30, "wp363": 30, "lfar": [31, 80], "form": [31, 46, 80], "white": [31, 80], "paper": [31, 80], "cfg_ltssm_state": [32, 75], "h10": 32, "consist": [32, 38], "stai": 32, "repeatedli": 32, "100m": [32, 43, 60], "good": [32, 46, 49], "warm": [32, 61, 68, 74], "reboot": [32, 61, 68, 74], "violat": 32, "server": 32, "anoth": 32, "discoveri": 32, "cold": 32, "recov": 32, "00": [32, 41, 43], "indefinit": 32, "cfg_link_training_en": 32, "b1": [32, 49], "fsm": 32, "phy_status_rst": 32, "reset_don": 32, "cross": 32, "against": [32, 53], "max": [32, 46, 57], "chanc": [32, 43], "rescan": [32, 41, 43], "properli": [32, 43], "treadi": 32, "tvalid": 32, "vvv": 32, "d": [32, 68, 74], "someth": 32, "region": [32, 60], "word": 32, "virtual": 32, "previous": 32, "unexpect": 32, "them": [32, 46, 49, 59, 60, 79], "util": [32, 41, 46, 62], "alloc": [32, 43, 46], "larg": [32, 53, 60], "realloc": 32, "mmio": 32, "rxof": 32, "suffici": 32, "item": 33, "reproduc": [38, 49], "u": [38, 46, 68, 71, 74, 78], "1148199": [38, 61, 68, 74], "37406": 38, "instruct": 38, "isol": [38, 46], "introduc": 38, "concept": 38, "split": 38, "compon": [38, 74], "1215986": [38, 74], "wish": 38, "extract": 38, "project_1": 38, "name": [38, 56, 60], "catalog": 38, "right": 38, "click": [38, 79], "two": [38, 49, 53, 79], "_rp": 38, "export": 38, "_ep": 38, "shown": [38, 41, 46, 79], "snapshot": [38, 79], "creation": [40, 80], "class": 41, "code": [41, 43, 61], "pcw": 41, "70702": [41, 44], "71210": [41, 44], "x86": [41, 43], "memen": 41, "embed": [41, 60], "relev": [41, 53, 68], "api": [41, 43, 47], "via": [41, 43, 59], "devmem": [41, 43], "01": [41, 43], "0x7": [41, 43], "successfulli": [41, 80], "proceed": 41, "further": [41, 53], "detec": 41, "echo": [41, 43], "sy": [41, 43], "0000": [41, 43], "remov": [41, 43, 60], "mellanox": 43, "connect4": 43, "lx": 43, "recogn": [43, 47], "mlx5": 43, "encount": [43, 53], "excerpt": 43, "940428": 43, "0002": 43, "946132": 43, "mellanox_check_broken_intx_mask": 43, "0x0": 43, "0x1b8": 43, "took": 43, "11111": 43, "usec": 43, "954572": 43, "mlx5_core": 43, "got": 43, "51": 43, "954852": 43, "954929": 43, "firmwar": 43, "1040": 43, "960966": 43, "000": 43, "gb": 43, "bandwidth": [43, 46], "x4": 43, "63": 43, "008": 43, "278293": 43, "mlx5_load": 43, "1068": 43, "pid": 43, "003727": 43, "init_on": 43, "1349": 43, "mlx5_load_on": 43, "012869": 43, "012981": 43, "019199": 43, "025095": 43, "52": 43, "025685": 43, "025765": 43, "031808": 43, "349033": 43, "072889": 43, "082038": 43, "082160": 43, "zu": 43, "fsbl": 43, "abl": [43, 53, 70], "gtr": 43, "includ": [43, 53], "ref": [43, 61, 68, 74], "ug1137": 43, "fit": 43, "0xfd480238": 43, "prompt": [43, 74], "0x3": 43, "html_doc": [43, 68], "ug1087": 43, "pcie_attrib___attr_101": 43, "0xfd480228": 43, "pg054": 43, "found": [43, 53], "just": [43, 60, 61], "0xfd1a0100": 43, "pcie_ctrl_reset": 43, "like": [43, 46, 49], "perst": 43, "ultrascaleregist": 43, "crf_apb___rst_fpd_top": 43, "nwl": 43, "fd0e0000": 43, "unsupport": [43, 80], "gpu": 43, "3130": 43, "483591": 43, "490863": 43, "0x4": 43, "structur": [43, 46, 56, 57], "execut": [43, 53], "invok": 43, "pci_enable_device_mem": 43, "manual": [43, 60, 71, 74], "land": 44, "page": [44, 46, 53, 71], "wiki": [44, 71], "atlassian": [44, 71], "net": [44, 71], "85983409": 44, "71493": 44, "71494": 44, "000033516": [46, 50], "000033539": [46, 50], "72813": 46, "pf0": [46, 47, 57], "bar2": 46, "ring": [46, 47, 49, 53, 56], "cmpt": [46, 47, 49, 53, 56, 57], "4k": [46, 47, 49], "fmap": 46, "fetch": [46, 47, 49, 51, 53, 57], "cidx": [46, 49, 53, 56], "drop": [46, 47, 49, 53], "c2h_byp_in_st_csh_pfch_tag": 46, "mdma_c2h_pfch_byp_tag": 46, "0x140c": 46, "dump": [46, 49, 56], "r": [46, 65, 68, 71, 74, 78], "en": [46, 68, 71, 74, 78], "pg347": 46, "tocid": 46, "agbmxdqps_4dpkxb2mlg": 46, "traffic": [46, 49, 51, 53, 57], "pattern": 46, "appli": [46, 68, 74], "achiev": 46, "gen3x16": 46, "512": [46, 62], "2048": [46, 56], "chapter": 46, "ug1388": 46, "2021": [46, 50], "english": 46, "methodologi": 46, "pg344": 46, "resourc": [46, 53, 80], "6qfbehqfba9swgguwrx89a": 46, "accept": [46, 49, 62], "tag": [46, 57], "71453": [46, 50], "network": 46, "optim": [46, 53], "small": 46, "satur": [46, 53], "ethernet": 46, "comput": 46, "storag": [46, 53], "4kb": 46, "fewer": 46, "suggest": 46, "thread": 46, "easili": 46, "workload": [46, 53], "obtain": 46, "concurr": 46, "bank": [46, 60], "greatli": 46, "avoid": [46, 60, 62], "bi": 46, "uni": 46, "rq": [46, 53], "share": [46, 53], "multi": 46, "socket": 46, "numa": 46, "latenc": [46, 53], "prohibit": 46, "far": 46, "awai": 46, "cpu": 46, "directli": 46, "depth": [46, 57], "4096": 46, "default_hugepagesz": 46, "1gb": 46, "hugepagesz": 46, "1g": 46, "hugepag": 46, "addit": 46, "practic": 46, "asid": 46, "ad": [46, 60], "grub": 46, "isolcpu": 46, "n": 46, "nohz_ful": 46, "rcu_nocb": 46, "schedul": 46, "task": 46, "tick": 46, "fenc": 46, "random": 46, "softirq": 46, "rcu": 46, "callback": 46, "iptabl": 46, "ip6tabl": 46, "irqbal": 46, "cpuspe": 46, "scale": 46, "governor": 46, "save": 46, "alon": 46, "hors": 46, "max_cstat": 46, "intel_idl": 46, "intel_pst": 46, "doubl": [46, 79], "cat": 46, "proc": 46, "cpuinfo": 46, "grep": 46, "mhz": 46, "intend": [46, 47], "guidanc": 46, "excess": 46, "writeback": [46, 51, 53, 56, 57], "sever": [46, 53], "128b": [46, 53], "restrict": [46, 53, 60, 62], "unit": [46, 53], "h2c_req_throt": [46, 53], "shallow": 46, "bett": 46, "erperform": 46, "completi": 46, "largest": 46, "applicati": 46, "performac": 46, "h2c_byp_in_st_sdi": 46, "everi": 46, "impact": 46, "along": 46, "seper": 47, "metadata": 47, "let": 47, "entri": [47, 49, 53, 56], "actual": 47, "ye": [47, 74], "rc_tlast": 47, "figur": 47, "choos": 47, "s_axis_c2h_mti": 47, "empti": [47, 49], "mty": 47, "qdma_c2h_err_stat": [47, 49, 55], "0xaf0": 47, "erorr": 47, "qdma_hw_error_handl": [47, 49], "mismatch": 47, "s_axis_c2h_ctrl": 47, "len": 47, "pg": 47, "h2c_byp_in_st_at": 47, "enable_at_port": 47, "consol": [47, 49, 74], "de": 47, "thoroughli": 47, "pg302": [47, 52, 53], "sai": 47, "don": 47, "qid": [47, 49, 56], "0x844": 47, "pf": [47, 53, 79], "252": 47, "vf": [47, 53], "4pf": 47, "Then": 47, "belong": 47, "pf1": 47, "jumbo": 47, "want": 47, "10k": 47, "upto": 47, "64k": 47, "break": 47, "chunk": 47, "cater": 47, "hard": [47, 50], "debugf": [49, 50], "qdma_usecas": 49, "qdma_design": 49, "ctl": [49, 56], "dmactl": [49, 56], "distribut": 49, "usecas": 49, "qdma_device_onlin": 49, "qdma_init": 49, "st_rx_msg_rdy": 49, "tm_dsc_sts_rdy": 49, "soft_reset_n": 49, "tm_dsc_sts_error": 49, "seem": 49, "tear": 49, "modif": 49, "local": [49, 61, 75], "feasibl": 49, "still": [49, 61, 68, 74], "propag": 49, "aggreg": [49, 53, 56], "determinist": 49, "tm_dsc_sts_vld": 49, "counter": 49, "count": [49, 61], "qdma_c2h_stat_s_axis_c2h_accept": [49, 55], "0xa88": 49, "qdma_c2h_stat_s_axis_cmpt_accept": 49, "0xa8c": 49, "qdma_c2h_stat_desc_rsp_pkt_accept": [49, 55], "0xa90": 49, "s_axis_c2h_ctrl_has_cmpt": 49, "s_axis_c2h_cmpt_ctrl_cmpt_typ": 49, "bounderi": 49, "s_axis_c2h_treadi": 49, "s_axis_c2h_cmpt_treadi": 49, "bigger": 49, "tell": 49, "post": [49, 53, 62], "axis_c2h_status_error": 49, "axis_c2h_status_drop": 49, "0xa80": 49, "0xbf4": 49, "lack": 49, "axi_st": 49, "tm_dsc_sts_": 49, "q": 49, "0xb10": 49, "qdma_c2h_stat_desc_rsp_drop_accept": [49, 55], "smaller": 49, "64byte": 49, "0xa94": 49, "userappl": 49, "qdma_c2h_stat_axis_pkg_cmp": 49, "feed": 49, "user_link_up": 49, "phy_readi": 49, "desc_rsp_err": 49, "qdma_c2h_drop_len_mismatch": 49, "0xbb4": 49, "qdma_c2h_drop_desc_rsp_len": 49, "0xbb8": 49, "qdma_c2h_drop_qid_fifo_len": 49, "0xbbc": 49, "qdma_c2h_drop_payload_cnt": 49, "0xbb0": 49, "0xe38": 49, "c2h_packets_drop": 49, "0x088": 49, "tm_dsc_sts_avl": 49, "2018": 50, "migrat": 50, "75234": 50, "000033502": 50, "000033503": 50, "soft": 50, "33054": 50, "collect": 51, "handl": [51, 53, 60], "reiview": 51, "tm": 51, "cach": [51, 53, 57], "desc": 51, "turn": [53, 70], "priorit": 53, "tm_dsc_st": 53, "pre": 53, "basi": [53, 56], "opportunist": 53, "significantli": 53, "almost": 53, "color": [53, 56], "portion": 53, "qdma_dmap_sel_h2c_dsc_pidx": [53, 56], "qdma_dmap_sel_c2h_dsc_pidx": [53, 56], "irq_arm": 53, "tm_dsc_sts_valid": 53, "deassert": [53, 62], "alreadi": 53, "reassert": 53, "quiesc": 53, "categori": 53, "proce": 53, "second": [53, 60], "itself": 53, "functio": 53, "ram": 53, "ecc": 53, "abort": 53, "pull": [53, 60, 70], "pariti": 53, "awar": [53, 60], "gone": 53, "potenti": [53, 60], "head": 53, "sink": 53, "qualiti": 53, "rc": [53, 62], "amount": 53, "sw": [53, 56], "threshold": 53, "0xe24": 53, "deliv": 53, "stop": 53, "much": 53, "faster": 53, "suffer": 53, "soon": 53, "written": [53, 68], "situat": 53, "screenshost": 54, "qdma_glbl_err_stat": 55, "qdma_glbl_trq_err_st": 55, "qdma_ram_sbe_sts_a": 55, "qdma_ram_dbe_sts_a": 55, "qdma_glbl_dsc_err_st": 55, "qdma_glbl_dsc_err_log0": 55, "qdma_glbl_dsc_err_log1": 55, "qdma_glbl_dsc_dbg_dat0": 55, "qdma_glbl_dsc_dbg_dat1": 55, "qdma_glbl_dsc_dbg_ctl": 55, "qdma_glbl_dsc_err_log2": 55, "qdma_glbl_trq_err_log": 55, "qdma_qdma_h2c_mm_statu": 55, "qdma_h2c_mm_error_cod": 55, "qdma_h2c_mm_error_info": 55, "qdma_h2c_mm_debug": 55, "qdma_c2h_mm_statu": 55, "c2h_channel_completed_descriptor_count": 55, "qdma_c2h_mm_error_cod": 55, "qdma_c2h_mm_error_info": 55, "qdma_c2h_mm_debug": 55, "qdma_c2h_fatal_err_stat": 55, "qdma_c2h_first_err_qid": 55, "qdma_c2h_stat_s_axis_wrb_accept": 55, "qdma_c2h_stat_debug_dma_eng_0": 55, "qdma_c2h_stat_debug_dma_eng_1": 55, "qdma_c2h_stat_debug_dma_eng_2": 55, "qdma_c2h_stat_debug_dma_eng_3": 55, "qdma_c2h_stat_desc_rsp_err_accept": 55, "qdma_h2c_err_stat": 55, "qdma_h2c_dbg_reg0": 55, "qdma_h2c_dbg_reg1": 55, "qdma_h2c_dbg_reg2": 55, "qdma_h2c_dbg_reg3": 55, "qdma_h2c_dbg_reg4": 55, "qdma_c2h_intr_h2c_req": 55, "qdma_c2h_intr_c2h_mm_req": 55, "qdma_c2h_intr_err_int_req": 55, "qdma_c2h_intr_c2h_st_req": 55, "qdma_c2h_intr_h2c_err_c2h_mm_msix_ack": 55, "qdma_c2h_intr_h2c_err_c2h_mm_msix_fail": 55, "qdma_c2h_intr_h2c_err_c2h_mm_msix_no_msix": 55, "qdma_c2h_intr_h2c_err_c2h_mm_ctxt_inv": 55, "qdma_c2h_intr_c2h_st_msix_ack": 55, "qdma_c2h_intr_c2h_st_msix_fail": 55, "qdma_c2h_intr_c2h_st_no_msix": 55, "qdma_c2h_intr_c2h_st_ctxt_inv": 55, "kei": [56, 60, 68, 74], "locat": [56, 60, 74], "contain": 56, "containx": 56, "copi": 56, "dynam": 56, "0x18004": 56, "0x18008": 56, "store": 56, "multip": 56, "aggregatoin": 56, "aggretatoin": 56, "informaton": 56, "vdm": 57, "csr": 57, "mailbox": 57, "among": 57, "exted": 57, "none": 57, "coalesc": 57, "protect": 57, "user_trig": 57, "regular": 57, "zero": 57, "eq": 59, "pl_eq_bypass_phase23": 59, "vhdl": 59, "polar": 59, "unisim_v": 59, "librari": 59, "launch": 59, "script": [59, 60], "txp": 59, "txn": 59, "pipe_txdata": 59, "xilinxcedstor": [59, 73], "2022": 59, "versal_cpm5_qdma_simulation_design": 59, "me": 59, "blob": 59, "readm": 59, "txt": 59, "veral": 59, "bmd": [59, 73, 74], "versal_cpm5_pcie_bmd_simulation_design": 59, "tutori": 59, "sw_manual": 59, "xilinx2020_2": 59, "ug937": 59, "stage": 60, "becom": 60, "aliv": 60, "float": 60, "obuft": 60, "mux": 60, "z": 60, "constant": 60, "unconfigur": 60, "pudc_b": 60, "pullup": [60, 70], "quad": [60, 74], "x2": 60, "x1": 60, "granular": [60, 74], "dual": [60, 73], "icap": 60, "mutual": 60, "exclus": 60, "65": 60, "especi": 60, "partit": 60, "NOT": 60, "design_switch": 60, "signifi": 60, "stage2": 60, "multiplex": 60, "bank65": 60, "stage1": 60, "cell": 60, "hd": 60, "get_cel": 60, "stage1cel": 60, "tandem_ip_pblock": 60, "stage1_main": 60, "term": 60, "stage1_config_io": 60, "stage1_io": 60, "pblock": 60, "create_pblock": 60, "stage1pblocknam": 60, "resize_pblock": 60, "get_pblock": 60, "stage1siterang": 60, "contain_rout": 60, "exclude_plac": 60, "add_cells_to_pblock": 60, "compress": 60, "current_design": 60, "override_persist": 60, "tandem_bitstream": 60, "cellnam": 60, "refclk_ibuf": 60, "sys_reset_n_ibuf": 60, "primit": 60, "special": 60, "attent": 60, "bscan": 60, "Be": 60, "hwicap": 60, "microblaz": 60, "mdm": 60, "opt_design": 60, "straddl": [60, 62], "instanti": 60, "inadvert": 60, "conflict": 60, "entireti": 60, "dbg_hub": 60, "opt_deisgn": 60, "opt_design_post": 60, "quiet": 60, "hierarch": 60, "primitive_typ": 60, "mcap": 60, "window": 60, "64761": 60, "350h": 60, "oppos": 60, "340h": 60, "recompil": 60, "discuss": [61, 68, 74], "wide": [61, 68, 74], "phy_link": 61, "negoti": 61, "pg213": [61, 62, 63, 66], "critic": 61, "dw": 61, "o": [61, 75], "completiontlp": 61, "By": 61, "disable_lane_revers": 61, "signific": 62, "ineffici": 62, "lead": 62, "overflow": [62, 80], "advert": 62, "less": 62, "s_axis_cc_tvalid": 62, "nullifi": 62, "transmit": 62, "corrupt": 62, "s_axis_cc_tlast": 62, "s_axis_cc_treadi": 62, "cc": 62, "sampl": 62, "whenev": 62, "s_axis_cc_tdata": 62, "pace": 62, "transciev": 65, "coinfigur": 65, "expos": 65, "stuck": 65, "v1": 66, "pcie4_uscale_plu": 66, "v1_3": 66, "pcb": [68, 74], "ug863": [68, 74], "xtp546": [68, 74], "cgi": [68, 74], "bin": [68, 74], "ctdoc": [68, 74], "cid": [68, 74], "90f995d8": [68, 74], "c517": [68, 74], "4adc": [68, 74], "a95c": [68, 74], "13a8994d6618": [68, 74], "zip": [68, 74], "pg346": [68, 71], "theori": [68, 74], "thing": [68, 74, 80], "spec": [68, 74], "1218411": 68, "phy_rdi": 68, "am012": [68, 71], "cpm4_pcie0_attr___phy_rdi": 68, "cpm4_pcie0_attr___pl_eq_bypass_phase23": 68, "cpm4_pcie0_attr___pfx_bar0_control_0": 68, "cpm4_pcie0_attr___pfx_bar0_control_1": 68, "cpm4_pcie0_attr___pfx_bar0_control_2": 68, "cpm4_pcie0_attr___cfg_interrupt": 68, "xsdb": 68, "1221922": 68, "vmk180": 70, "vck190": 70, "es1": 70, "pdi": 70, "pmc": 70, "pmc_mio_37": 70, "gpio": 70, "strength": 70, "8ma": 70, "slew": 70, "ccix": 71, "184287255": 71, "technic": 71, "am011": 71, "trm": 71, "prime": [71, 78], "psg": [71, 78], "ai": [71, 78], "versal_cpm_qdma_ep_simulation_design": 73, "cpm5_qdma": 73, "cpm4_qdma": 73, "versal_cpm_pcie_bmd_ep_simulation_design": 73, "cpm5_bmd": 73, "cpm4_bmd": 73, "versal_cpm_pcie_debug": 73, "versal_cpm_tandem_pci": 73, "versal_cpm_bridge_rp_design": 73, "versal_cpm_qdma_ep_design": 73, "cpm4_qdma_perf": 73, "ctrl": 73, "cpm5_qdma_dual_ctrl": 73, "gen5x8": 73, "cpm5_qdma_g5x8_mm_perf": 73, "cpm5_qdma_mm_st": 73, "cpm5_qdma_st_onli": 73, "versal_cpm_pcie_pio_ep_design": 73, "cpm5_pcie_pio": 73, "000035901": 73, "cpm4_pcie_pio": 73, "versal_cpm_pcie_bmd_ep_design": 73, "cpm5_bmd_ep": 73, "cpm4_bmd_ep": 73, "versal_cpm_qdma_ep_design_partbas": 73, "cpm5_qdma_g5x8_dual_perf": 73, "cpm5_qdma_g5x8_st_perf": 73, "pg343": [74, 75, 78], "enter": 74, "thevers": 74, "bmd_pio_mod": 74, "pcie_versal_0": 74, "mio38": 74, "open": 74, "sue": 74, "insert_cip": 74, "major": 74, "went": 74, "wizard": 74, "cfg_function_statu": 75, "intx": 75, "cfg_negotiated_width": 75, "cfg_current_spe": 75, "cfg_local_error_out": 75, "replai": 75, "repli": 75, "rollov": 75, "sign": 79, "_support": 79, "tab": 79, "brought": 79, "pciexpress": 80}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"global": [1, 52, 55], "signal": [1, 12, 52], "axi": [1, 52], "slave": [1, 12, 52], "interfac": [1, 12, 52, 63], "master": [1, 12, 52], "axi4": [1, 12, 52], "lite": [1, 12, 52], "control": 1, "bridg": [1, 5, 13, 52, 80], "pcie": [1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 40, 60, 80], "gen3": 1, "msi": 1, "x": 1, "dma_bridg": 1, "subsystem": [1, 5, 13, 48, 80], "mode": [1, 52, 69], "interrupt": [1, 12, 18, 52, 55], "decod": 1, "regist": [1, 55], "phy": [1, 63], "status_control": 1, "root": [1, 40], "port": [1, 12, 40, 52, 63], "error": [1, 55, 63], "fifo": 1, "read": [1, 12, 32, 52], "clock": [1, 19, 33], "diagram": 1, "ultrascal": [1, 64, 80], "devic": [1, 32, 64], "endpoint": [1, 5, 38], "system": [1, 19, 33], "reset": 1, "connect": 1, "gener": [3, 9, 10, 18, 19, 33, 38, 41, 46, 47, 59, 60, 61, 68, 74, 80], "debug": [3, 4, 6, 7, 9, 10, 11, 14, 15, 16, 18, 19, 22, 25, 33, 36, 38, 41, 42, 43, 44, 46, 49, 50, 51, 53, 59, 60, 61, 62, 65, 66, 68, 70, 71, 74, 75, 78, 80], "checklist": [3, 9, 10, 18, 19, 33, 41, 46, 59, 60, 61, 68, 74], "gotcha": [4, 11, 53, 62, 75], "dma": [5, 12, 13, 32, 52], "pci": [5, 13, 69, 76, 80], "express": [5, 13, 69, 76, 80], "ip": [5, 13, 38, 48, 57], "issu": [6, 8, 14, 18, 19, 20, 21, 32, 33, 35, 38, 43, 49, 59, 60, 65, 70, 79], "tip": [6, 14, 25, 43, 49, 60, 65, 70], "question": [6, 14, 19, 33, 43, 46, 49, 60, 65, 70], "document": [7, 15, 18, 22, 36, 42, 44, 50, 59, 60, 66, 71, 78], "collater": [7, 15, 18, 22, 31, 36, 44, 50, 59, 60, 66, 71, 78], "us": [7, 15, 18, 22, 36, 44, 50, 59, 60, 66, 71, 78], "link": [7, 15, 18, 19, 20, 22, 33, 34, 36, 38, 44, 50, 59, 60, 63, 66, 71, 78], "specif": [8, 60, 79], "faq": [10, 47, 60, 61, 74], "top": 12, "level": 12, "h2c": [12, 52, 55], "channel": 12, "0": 12, "3": 12, "stream": [12, 52], "c2h": [12, 52, 55], "memori": [12, 52], "map": [12, 52, 80], "address": [12, 52], "write": [12, 52], "respons": [12, 52], "bypass": [12, 52], "config": [12, 52], "statu": [12, 38, 52, 63], "configur": [12, 19, 33, 38, 52, 57, 63], "extend": [12, 52], "descript": [12, 52, 63], "manag": 12, "descriptor": [12, 52, 55, 63], "exampl": [12, 38, 59, 73], "flow": [12, 51, 52], "initi": 12, "setup": 12, "For": 12, "transfer": 12, "summari": 12, "xdma": [13, 16, 80], "driver": [13, 48], "perform": [16, 46], "common": [19, 32, 33], "train": [19, 20, 33, 34, 38, 63], "reason": [19, 33], "regress": [19, 33], "design": [19, 33, 38, 39, 40, 59, 73], "implement": [19, 33], "fail": [19, 33], "behavior": [19, 33], "capabl": [19, 33], "si": [19, 33], "info": [19, 33], "answer": [21, 26, 35, 60], "applic": [24, 27], "note": [24, 27, 28], "techniqu": [25, 38], "blog": 25, "lfar": 26, "long": 26, "form": 26, "record": 26, "releas": 28, "video": 29, "white": 30, "paper": 30, "enumer": [32, 38], "show": 32, "lspci": 32, "miss": 32, "data": [32, 52], "certain": 32, "request": [32, 63], "payload": 32, "tlp": 32, "unsupport": 32, "complet": [32, 52, 63], "timeout": 32, "receiv": 32, "overflow": 32, "first": 38, "thing": 38, "check": [38, 56], "how": 38, "ltssm": [38, 63], "wa": 38, "successfulli": 38, "detect": 38, "when": 38, "fpga": 38, "i": 38, "after": 38, "block": [38, 64, 76], "from": 38, "hardwar": [39, 52], "creation": 39, "versal": [40, 59, 69, 73, 76, 80], "cpm4": 40, "linux": 40, "resourc": 42, "qdma": [46, 48, 51, 52, 80], "pciexpress": [48, 64], "st": [52, 55], "cmp": 52, "vdm": 52, "flr": 52, "input": 52, "mm": [52, 55], "cach": 52, "output": 52, "credit": 52, "tm": 52, "user": 52, "queue": 52, "context": 52, "program": 52, "fetch": 52, "softwar": 52, "structur": 52, "definit": 52, "prefetch": 52, "intern": 52, "handl": 52, "except": 52, "event": 52, "simpl": 52, "writeback": 52, "dmesg": 54, "log": 54, "ram": 55, "singl": 55, "bit": 55, "doubl": 55, "engin": 55, "target": 55, "access": 55, "In": 55, "direct": 55, "pidx": 56, "updat": 56, "paramet": 57, "simul": 59, "acap": [59, 69, 76, 80], "cpm5": 59, "tandem": 60, "miscellan": 60, "negoti": 63, "width": 63, "speed": 63, "function": 63, "local": 63, "field": 63, "byte": 63, "count": 63, "dword": 63, "code": 63, "integr": [64, 76], "cpm": [69, 73], "adapt": 73, "soc": 73, "k": 80, "embed": 80}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_checklist/images", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_checklist/index", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_faq", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_gotchas", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/index", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/issue_q&a_debug_tips", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/links_docs_misc", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/specific_issues", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_RootPort_Driver/debug_faq", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/debug_checklist", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/debug_gotchas", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/images", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/index", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/issue_q&a_debug_tips", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/links_docs_misc", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/performance_debug_checklist", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/specific_issues", "docs/Interrupt/index", "docs/Link_Training/general_debug_checklist_reasons_questions", "docs/Link_Training/index", "docs/Link_Training/issue_q&a_debug_tips", "docs/Link_Training/links_docs_misc", "docs/Link_Training/specific_issues", "docs/PCIe_Collaterals/PCIe_Application_Notes", "docs/PCIe_Collaterals/PCIe_Debug_Tips_and_Techniques_Blogs", "docs/PCIe_Collaterals/PCIe_LFARs_Long_Form_Answer_Records", "docs/PCIe_Collaterals/PCIe_PGs_and_relevant_Docs", "docs/PCIe_Collaterals/PCIe_Release_Notes", "docs/PCIe_Collaterals/PCIe_Videos", "docs/PCIe_Collaterals/PCIe_White_Papers", "docs/PCIe_Collaterals/index", "docs/PCIe_Common_Issues/index", "docs/PCIe_Debug_General_Techniques/Link_Training/general_debug_checklist_reasons_questions", "docs/PCIe_Debug_General_Techniques/Link_Training/index", "docs/PCIe_Debug_General_Techniques/Link_Training/issue_q&a_debug_tips", "docs/PCIe_Debug_General_Techniques/Link_Training/links_docs_misc", "docs/PCIe_Debug_General_Techniques/Link_Training/specific_issues", "docs/PCIe_Debug_General_Techniques/index", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/hardware_design_creation", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/debug_faq", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/index", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/issue_q&a_debug_tips", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/links_docs_misc", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/specific_issues", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/debug_checklist", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/debug_faq", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/index", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/issue_q&a_debug_tips", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/links_docs_misc", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/index", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/ports/tables", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/debug_gotchas", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/dmesg_log", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/errors", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/table_sources/check_pidx_update", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/table_sources/ip_configuration_parameters", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/specific_issues", "docs/Simulation_Issue/index", "docs/Tandem_PCIe/index", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/debug_faq", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/debug_gotchas", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/images_checklist/images", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/index", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/issue_q&a_debug_tips", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/links_docs_misc", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/specific_issues", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/debug_faq", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/index", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/issue_q&a_debug_tips", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/links_docs_misc", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/specific_issues", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/versal_acap_cpm_example_designs", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/debug_faq", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/debug_gotchas", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/index", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/issue_q&a_debug_tips", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/links_docs_misc", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/specific_issues", "index"], "filenames": ["README.md", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_checklist/images.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_checklist/index.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_faq.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/debug_gotchas.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/index.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/issue_q&a_debug_tips.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/links_docs_misc.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_IP_Endpoint/specific_issues.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_Bridge_RootPort_Driver/debug_faq.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/debug_checklist.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/debug_gotchas.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/images.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/index.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/issue_q&a_debug_tips.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/links_docs_misc.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/performance_debug_checklist.rst", "docs/DMA_Bridge_Subsystem_for_PCI_Express_XDMA_IP_Driver/specific_issues.rst", "docs/Interrupt/index.rst", "docs/Link_Training/general_debug_checklist_reasons_questions.rst", "docs/Link_Training/index.rst", "docs/Link_Training/issue_q&a_debug_tips.rst", "docs/Link_Training/links_docs_misc.rst", "docs/Link_Training/specific_issues.rst", "docs/PCIe_Collaterals/PCIe_Application_Notes.rst", "docs/PCIe_Collaterals/PCIe_Debug_Tips_and_Techniques_Blogs.rst", "docs/PCIe_Collaterals/PCIe_LFARs_Long_Form_Answer_Records.rst", "docs/PCIe_Collaterals/PCIe_PGs_and_relevant_Docs.rst", "docs/PCIe_Collaterals/PCIe_Release_Notes.rst", "docs/PCIe_Collaterals/PCIe_Videos.rst", "docs/PCIe_Collaterals/PCIe_White_Papers.rst", "docs/PCIe_Collaterals/index.rst", "docs/PCIe_Common_Issues/index.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/general_debug_checklist_reasons_questions.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/index.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/issue_q&a_debug_tips.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/links_docs_misc.rst", "docs/PCIe_Debug_General_Techniques/Link_Training/specific_issues.rst", "docs/PCIe_Debug_General_Techniques/index.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/hardware_design_creation.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/debug_faq.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/index.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/issue_q&a_debug_tips.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/links_docs_misc.rst", "docs/PS_PCIe_PL_PCIe_Root_Port_Driver/specific_issues.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/debug_checklist.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/debug_faq.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/index.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/issue_q&a_debug_tips.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/links_docs_misc.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/index.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/ports/tables.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/debug_gotchas.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/dmesg_log.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/src/errors.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/table_sources/check_pidx_update.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/qdma_debug_flow/table_sources/ip_configuration_parameters.rst", "docs/QDMA_Subsystem_for_PCIExpress_IP_Driver/specific_issues.rst", "docs/Simulation_Issue/index.rst", "docs/Tandem_PCIe/index.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/debug_faq.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/debug_gotchas.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/images_checklist/images.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/index.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/issue_q&a_debug_tips.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/links_docs_misc.rst", "docs/UltraScale+_Devices_Integrated_Block_for_PCIExpress/specific_issues.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/debug_faq.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/index.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/issue_q&a_debug_tips.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/links_docs_misc.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/specific_issues.rst", "docs/Versal_ACAP_CPM_Mode_for_PCI_Express/versal_acap_cpm_example_designs.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/debug_faq.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/debug_gotchas.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/index.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/issue_q&a_debug_tips.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/links_docs_misc.rst", "docs/Versal_ACAP_Integrated_Block_for_PCI_Express/specific_issues.rst", "index.rst"], "titles": ["<no title>", "Global Signals", "<no title>", "General Debug Checklist", "Debug Gotchas", "DMA/Bridge Subsystem for PCI Express (Bridge IP Endpoint)", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "Specific Issues", "General Debug Checklist", "General Debug Checklist", "Debug Gotchas", "Top-Level Interface Signals", "DMA/Bridge Subsystem for PCI Express (XDMA IP/Driver)", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "XDMA Performance Debug", "<no title>", "Interrupt Issue", "Common Link Training Issue Reasons", "Link Training Issue", "Issues and Answers", "Documents and Debug Collaterals", "<no title>", "PCIe Application Notes", "PCIe Debug Tips and Techniques Blogs", "PCIe LFARs (Long Form Answer Records)", "PCIe Application Notes", "PCIe Release Notes", "PCIe Videos", "PCIe White Papers", "PCIe Collaterals", "PCIe Common Issues", "Common Link Training Issue Reasons", "Link Training", "Issues and Answers", "Documents and Debug Collaterals", "<no title>", "PCIe General Debug Techniques", "Debugging", "Device Tree Structure", "ECAM Mapping and Addressing", "Hardware Design Creation", "Versal CPM4 PCIe Root Port Design (Linux)", "Petalinux Image Generation", "Supporting Documentation", "System Testability and Setup", "Tactical Patch Requirement", "General Debug Checklist", "Documentation & Debugging Resources", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "<no title>", "General Debug Checklist", "General FAQs", "QDMA Subsystem for PCIExpress (IP/Driver)", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "QDMA Debug Flow", "QDMA Global Port Descriptions", "Debug Gotchas", "dmesg Log", "Global Error Registers", "Check PIDX Update", "IP Configuration Parameters", "<no title>", "Simulation Issue", "Tandem PCIe", "General Debug Checklist", "Debug Gotchas", "Configuration Status Interface Port Descriptions Phy Link", "UltraScale+ Devices Integrated Block for PCIExpress", "Issues/Debug Tips/Questions", "Documents and Debug Collaterals", "<no title>", "General Debug Checklist", "Versal ACAP CPM Mode for PCI Express", "Issues and Debug Tips/Questions", "Documents and Debug Collaterals", "<no title>", "Versal Adaptive SoC CPM Example Designs", "General Debug Checklist", "Debug Gotchas", "Versal ACAP Integrated Block for PCI Express", "<no title>", "Documents and Debug Collaterals", "Specific Issues", "PCIe Debug K-Map"], "terms": {"pcie": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 18, 19, 33, 48, 50, 51, 53, 54, 57, 60, 64, 66, 68, 75, 78, 80, 81, 85, 86], "debug": [0, 5, 8, 13, 20, 24, 26, 27, 29, 31, 34, 55, 71, 76, 80, 83], "k": [0, 53], "map": [0, 10, 15, 25, 26, 32, 53, 54, 56, 58, 60, 63], "see": [1, 4, 8, 12, 14, 16, 19, 29, 32, 33, 38, 50, 53, 56, 59, 60, 63, 68, 70, 75, 81, 82], "latest": [1, 3, 4, 9, 11, 12, 16, 18, 48, 50, 59, 60, 68, 69, 70], "version": [1, 3, 4, 7, 9, 11, 12, 15, 16, 19, 28, 33, 48, 50, 54, 56, 57, 59, 60, 66, 68, 69, 70], "pg194": [1, 3, 7], "updat": [1, 3, 4, 11, 12, 25, 53, 56, 58, 59, 60, 67, 68, 69, 70, 81], "global": [2, 58], "signal": [2, 3, 8, 10, 16, 18, 19, 25, 32, 33, 54, 56, 58, 66, 68, 69, 82], "axi": [2, 3, 4, 6, 7, 8, 9, 10, 15, 16, 25, 26, 28, 29, 32, 48, 51, 53, 56, 57, 58, 60, 64, 80], "slave": [2, 3, 4, 6, 10, 25, 60, 64], "interfac": [2, 3, 4, 6, 8, 9, 10, 11, 16, 19, 22, 25, 33, 36, 48, 53, 54, 56, 58, 60, 64, 66, 68, 69, 73, 75, 81, 86], "master": [2, 3, 4, 7, 10, 15, 16, 24, 26, 27, 28, 50, 56, 57, 60, 64, 68, 82], "axi4": [2, 3, 4, 10, 11, 24, 27, 56, 58, 60], "lite": [2, 3, 4, 8, 9, 10, 24, 27, 48, 64], "control": [2, 3, 4, 8, 9, 10, 11, 18, 25, 32, 48, 56, 57, 60], "bridg": [2, 3, 4, 6, 7, 8, 9, 15, 24, 25, 27, 28, 32, 48, 53, 57, 60, 64, 80], "gen3": [2, 3, 4, 7, 15, 16, 19, 22, 24, 25, 26, 27, 28, 29, 33, 36, 66, 73, 75], "msi": [2, 3, 11, 16, 18, 25, 50, 64, 75], "x": [2, 3, 11, 16, 18, 25, 50, 64, 75], "dma_bridg": [2, 3], "subsystem": [2, 3, 4, 7, 15, 24, 25, 26, 27, 28, 29, 51, 53, 57, 67], "mode": [2, 3, 4, 9, 16, 19, 24, 25, 27, 28, 33, 48, 50, 53, 54, 56, 58, 60, 64, 66, 67, 68, 75, 78, 87], "interrupt": [2, 3, 4, 11, 16, 25, 26, 50, 53, 56, 60, 63, 64, 73, 87], "decod": [2, 3, 4, 6, 56], "regist": [2, 3, 4, 7, 8, 9, 10, 11, 14, 15, 18, 19, 25, 26, 32, 33, 48, 50, 53, 54, 56, 58, 60, 68, 75, 78, 82], "phy": [2, 3, 28, 68, 81], "status_control": [2, 3], "root": [2, 3, 4, 9, 19, 26, 29, 33, 48, 50, 51, 68, 78, 80, 87], "port": [2, 3, 4, 9, 10, 19, 26, 33, 48, 50, 51, 53, 54, 56, 58, 60, 68, 72, 78, 86, 87], "error": [2, 3, 4, 6, 16, 19, 25, 33, 50, 53, 54, 56, 58, 60, 61, 64, 66, 67, 68, 69, 82], "fifo": [2, 3, 53, 69], "read": [2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 25, 26, 48, 50, 53, 58, 60, 64, 66, 68, 75, 87], "clock": [2, 3, 4, 18, 20, 34, 53, 64, 66, 67, 69, 75, 81, 87], "diagram": [2, 3, 53, 68, 75, 81], "ultrascal": [2, 3, 9, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 33, 36, 48, 50, 51, 57, 67, 68, 72, 73, 75, 81], "devic": [2, 3, 4, 9, 10, 16, 19, 22, 25, 26, 29, 30, 33, 36, 38, 48, 50, 54, 57, 67, 68, 73, 75, 77, 81, 87], "endpoint": [2, 3, 4, 9, 16, 19, 24, 25, 26, 27, 28, 32, 33, 48, 50, 51, 66, 68, 80, 87], "system": [2, 3, 6, 9, 16, 20, 24, 26, 27, 30, 32, 34, 48, 50, 51, 53, 56, 57, 87], "reset": [2, 3, 4, 9, 19, 32, 33, 48, 50, 60, 66, 67, 81], "connect": [2, 3, 4, 16, 19, 24, 27, 29, 30, 32, 33, 48, 50, 56, 66, 67, 81], "confirm": [3, 9, 19, 33, 48, 50, 53, 56, 75, 81], "architectur": [3, 19, 25, 28, 30, 33, 67], "i": [3, 4, 6, 8, 9, 10, 11, 14, 16, 18, 19, 32, 33, 48, 50, 53, 54, 56, 58, 60, 63, 64, 66, 67, 68, 69, 72, 75, 77, 81, 82, 87], "correct": [3, 4, 9, 19, 25, 33, 48, 53, 54, 60, 66, 67], "rootport": [3, 50], "check": [3, 6, 8, 10, 14, 16, 18, 19, 32, 33, 48, 50, 53, 54, 56, 58, 64, 66, 68, 75, 81, 82, 87], "statu": [3, 10, 14, 16, 19, 25, 33, 50, 53, 54, 56, 58, 60, 63, 64, 68, 75, 87], "If": [3, 4, 6, 8, 14, 16, 18, 19, 32, 33, 38, 48, 50, 53, 54, 56, 60, 63, 66, 67, 68, 75, 81, 82], "issu": [3, 4, 5, 7, 10, 13, 15, 16, 22, 25, 26, 34, 36, 49, 53, 55, 57, 58, 60, 61, 68, 71, 73, 75, 76, 81, 83, 85, 87], "relat": [3, 6, 10, 14, 19, 25, 33, 68, 75], "incom": [3, 60], "outgo": 3, "packet": [3, 4, 6, 8, 11, 19, 22, 25, 26, 33, 36, 53, 54, 56, 60, 64, 69, 73, 75], "from": [3, 4, 6, 9, 11, 16, 19, 29, 32, 33, 48, 50, 53, 54, 56, 57, 60, 61, 68, 69, 81, 87], "user": [3, 4, 9, 11, 16, 19, 25, 32, 33, 38, 48, 53, 54, 56, 60, 66, 67, 69, 75, 81], "logic": [3, 4, 16, 53, 54, 56, 60, 66, 67], "follow": [3, 4, 8, 9, 10, 11, 14, 19, 32, 33, 38, 48, 50, 53, 56, 68, 72, 75, 77, 81, 82], "vivado": [3, 4, 7, 10, 15, 16, 19, 22, 24, 25, 26, 27, 28, 29, 33, 36, 54, 56, 57, 66, 68, 73, 75, 81], "ila": [3, 10, 19, 25, 26, 32, 33, 56, 68, 75, 82], "an": [3, 4, 9, 11, 14, 16, 19, 26, 29, 32, 33, 38, 48, 50, 53, 54, 60, 61, 66, 67, 68, 69, 75], "write": [3, 4, 8, 10, 14, 25, 32, 53, 56, 58, 60, 64, 68, 75], "For": [3, 4, 6, 8, 9, 10, 11, 16, 19, 28, 33, 38, 48, 50, 53, 56, 60, 66, 67, 68, 75, 81, 82], "pleas": [3, 4, 11, 14, 19, 33, 60, 68, 69], "refer": [3, 4, 10, 11, 19, 24, 27, 30, 33, 54, 60, 68, 69, 75, 78], "new": [3, 4, 11, 25, 38, 58, 60, 67, 68, 69, 81, 86], "more": [3, 4, 11, 16, 32, 38, 53, 56, 60, 68, 69, 81, 82], "detail": [3, 4, 9, 16, 19, 33, 38, 48, 58, 60, 68, 69, 75, 82], "referenc": [3, 68], "assert": [4, 6, 11, 18, 53, 54, 56, 60, 68, 69], "bit": [4, 8, 10, 11, 18, 32, 48, 50, 54, 56, 58, 60, 63, 68, 69, 82], "doe": [4, 16, 19, 32, 33, 50, 54, 56, 60, 68, 81], "caus": [4, 19, 32, 33, 53, 60, 67], "line": [4, 18, 19, 32, 33, 53, 60], "unless": 4, "correspond": [4, 8, 19, 33, 56, 66, 69], "mask": [4, 19, 33, 56, 64], "also": [4, 16, 18, 53, 54, 60, 63, 67, 68, 69, 75], "set": [4, 6, 8, 9, 14, 19, 32, 33, 48, 50, 53, 54, 56, 60, 64, 66, 72, 77, 81], "avail": [4, 14, 16, 19, 33, 50, 53, 54, 56, 60, 63, 81], "dma": [4, 10, 14, 15, 16, 24, 25, 26, 27, 28, 29, 50, 53, 54, 56, 57, 58, 60, 63, 64, 66, 67, 87], "option": [4, 9, 16, 19, 33, 48, 64, 68, 69, 86], "dma_bridge_resetn": 4, "input": [4, 19, 24, 27, 32, 33, 53, 54, 58, 60, 66], "pin": [4, 9, 11, 18, 19, 32, 33, 48, 67, 81], "which": [4, 6, 14, 16, 19, 33, 50, 53, 54, 56, 60, 68], "allow": [4, 19, 33, 60, 69], "you": [4, 8, 11, 14, 16, 18, 19, 32, 33, 38, 48, 53, 56, 60, 69, 82], "all": [4, 11, 19, 28, 32, 33, 53, 54, 56, 58, 60, 64, 66, 67, 68], "intern": [4, 7, 8, 10, 15, 26, 54, 56, 58, 60, 64], "engin": [4, 53, 56, 58, 60, 63], "well": [4, 19, 33, 50, 53, 56, 60, 63, 75, 81], "peripher": [4, 6], "driven": [4, 32, 66], "axi_aresetn": [4, 6, 56], "axi_ctl_aresetn": 4, "when": [4, 6, 9, 11, 14, 32, 48, 50, 53, 54, 56, 60, 64, 66, 67, 69, 82, 87], "paramet": [4, 8, 10, 19, 33, 53, 58], "need": [4, 11, 18, 50, 53, 54, 56, 60, 82], "dure": [4, 11, 32, 48, 50, 60, 67, 69], "initi": [4, 9, 10, 14, 16, 24, 27, 48, 50, 58, 63, 67], "link": [4, 5, 6, 13, 14, 16, 24, 25, 26, 27, 32, 48, 49, 50, 53, 54, 55, 56, 60, 68, 69, 71, 75, 76, 80, 81, 82, 83, 87], "up": [4, 6, 8, 9, 14, 16, 32, 38, 48, 50, 54, 60, 68, 75], "oper": [4, 9, 48, 50, 53, 60], "becaus": [4, 6, 8, 53, 54, 60], "done": [4, 6, 9, 11, 18, 32, 48, 50, 54, 56, 60, 67, 77, 81], "automat": [4, 81], "ip": [4, 6, 7, 9, 11, 14, 15, 16, 18, 19, 24, 25, 26, 27, 29, 33, 48, 53, 54, 56, 57, 58, 66, 67, 68, 72, 75, 81, 85, 86, 87], "must": [4, 8, 11, 32, 48, 53, 56, 60, 67, 68, 69], "termin": [4, 11, 19, 33], "transact": [4, 6, 8, 25, 60, 66, 68], "befor": [4, 6, 8, 14, 28, 48, 50, 53, 54, 56, 60, 75, 81], "thi": [4, 6, 8, 11, 14, 16, 18, 19, 32, 33, 38, 48, 50, 53, 54, 56, 60, 67, 68, 69, 75, 77, 81, 82, 86], "after": [4, 6, 8, 19, 32, 33, 56, 60, 67, 69, 81, 87], "being": [4, 9, 16, 19, 32, 33, 48, 50, 53, 56, 60, 66], "kept": 4, "minimum": [4, 19, 33], "durat": [4, 69], "least": 4, "equal": [4, 6, 19, 33], "complet": [4, 8, 16, 25, 53, 54, 56, 58, 60, 63, 64, 67, 68, 69, 87], "timeout": [4, 6, 56, 60, 66, 82, 87], "valu": [4, 9, 14, 16, 19, 33, 48, 50, 53, 56, 60, 67, 69, 82], "typic": [4, 11, 16, 32, 53], "50": 4, "m": [4, 50, 67], "clear": [4, 11, 19, 33, 53, 60], "ani": [4, 6, 8, 16, 19, 33, 54, 56, 60, 61, 66, 68, 69, 82], "pend": [4, 8, 11, 58], "transfer": [4, 10, 11, 14, 16, 53, 56, 58, 60, 61, 69], "mai": [4, 19, 33, 60], "current": [4, 54, 60, 81], "queu": 4, "data": [4, 6, 8, 11, 16, 19, 33, 53, 54, 58, 60, 61, 64, 68, 69, 77, 87], "path": [4, 19, 33], "To": [4, 10, 38, 48, 54, 60, 68, 75, 81], "type": [4, 6, 11, 19, 33, 64, 69], "command": [4, 9, 11, 14, 18, 32, 48, 50, 53, 56, 68, 81, 82], "tcl": [4, 11, 38, 54, 67, 81], "set_properti": [4, 11, 67, 81], "dict": [4, 11], "list": [4, 11, 19, 29, 32, 33, 56, 66], "config": [4, 6, 10, 11, 19, 24, 27, 32, 33, 67, 81], "soft_reset_en": 4, "true": [4, 11, 19, 33, 54, 67, 81], "get_ip": [4, 11, 81], "ip_nam": [4, 11], "request": [4, 6, 8, 11, 50, 53, 54, 60, 68, 69, 87], "length": [4, 6, 11, 54, 64], "greater": [4, 6, 50], "than": [4, 6, 11, 16, 32, 50, 53, 56, 60, 68, 69], "1": [4, 6, 7, 8, 10, 11, 14, 15, 19, 22, 25, 26, 29, 32, 33, 36, 48, 50, 53, 54, 56, 57, 58, 67, 68, 69, 73, 80], "dword": [4, 6, 68], "size": [4, 6, 11, 16, 32, 53, 54, 56, 60, 69], "burst": [4, 6, 16, 53], "alwai": [4, 6, 11, 53, 56, 58, 60, 66], "width": [4, 6, 11, 16, 19, 33, 38, 53, 68, 69, 82], "bu": [4, 6, 9, 24, 27, 32, 48, 50, 53, 60, 68, 69, 82], "even": [4, 6, 11, 53, 56, 67], "receiv": [4, 6, 18, 50, 60, 69, 87], "shorter": [4, 6], "s_axi_wstrb": 4, "can": [4, 6, 8, 9, 11, 16, 19, 32, 33, 38, 48, 50, 53, 54, 56, 60, 67, 68, 69, 77, 81, 86], "us": [4, 5, 6, 9, 10, 11, 13, 14, 16, 19, 20, 24, 25, 26, 27, 29, 32, 33, 34, 38, 48, 49, 50, 53, 54, 55, 56, 60, 64, 68, 69, 71, 75, 76, 80, 81, 82, 83, 87], "facilit": 4, "align": [4, 53, 68], "address": [4, 6, 8, 10, 11, 25, 26, 32, 53, 60, 63, 68], "boundari": [4, 53, 54], "0": [4, 7, 10, 28, 29, 32, 48, 50, 53, 54, 56, 57, 63], "begin": 4, "valid": [4, 48, 53, 69], "cycl": [4, 11, 18, 32, 69], "appropri": [4, 67], "calcul": 4, "offset": [4, 8, 10, 67], "given": [4, 11, 18, 56, 66], "howev": [4, 16, 50, 68], "identifi": [4, 10, 19, 33, 60, 67], "continu": [4, 16, 32, 60], "first": [4, 8, 19, 32, 33, 54, 56, 60, 66, 67, 87], "byte": [4, 10, 11, 16, 53, 54, 56, 68], "enabl": [4, 8, 11, 14, 16, 18, 19, 32, 33, 48, 50, 53, 56, 58, 60, 63, 64, 67, 68, 72, 75, 81, 82, 86], "last": [4, 11, 54, 63, 69], "The": [4, 6, 8, 9, 10, 11, 14, 16, 18, 19, 29, 32, 33, 38, 48, 50, 53, 54, 56, 60, 61, 67, 68, 69, 75, 77, 81, 82, 86], "core": [4, 14, 19, 24, 26, 27, 29, 33, 53, 67, 69, 78, 85], "conform": 4, "order": [4, 8, 32, 53, 56], "rule": [4, 8, 19, 33], "pci": [4, 7, 9, 15, 16, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 32, 33, 36, 48, 50, 51, 57, 66, 67, 68, 72, 73, 75, 78, 81, 82, 85], "sig": [4, 29], "specif": [4, 5, 9, 19, 33, 48, 53, 83, 87], "behavior": [4, 20, 34, 87], "ar": [4, 8, 9, 10, 11, 14, 16, 18, 19, 28, 32, 33, 48, 50, 53, 54, 56, 60, 63, 64, 66, 67, 68, 69, 75, 77, 81], "implement": [4, 11, 20, 29, 34, 53, 60, 87], "enforc": 4, "highli": 4, "parallel": 4, "bresp": [4, 8, 60], "remot": 4, "until": [4, 18, 67, 69], "memwr": 4, "tlp": [4, 6, 68, 69, 87], "transmiss": [4, 19, 33], "guarante": 4, "sent": [4, 11, 56, 60], "subsequ": 4, "tx": [4, 19, 33, 53, 66], "relax": [4, 32, 53], "within": [4, 10, 11, 16, 18, 19, 32, 33, 50, 67, 69], "header": 4, "permit": 4, "pass": [4, 29, 54], "previou": [4, 8, 19, 33, 81], "phase": [4, 19, 33, 60, 66, 75], "held": [4, 18], "have": [4, 8, 16, 19, 32, 33, 38, 50, 53, 54, 56, 60, 75], "ha": [4, 8, 9, 10, 11, 14, 18, 19, 32, 33, 48, 50, 53, 56, 60, 67, 68, 69], "been": [4, 6, 9, 11, 14, 19, 32, 33, 48, 54, 56, 67, 75], "attribut": [4, 68], "prior": [4, 8, 28, 60], "": [4, 6, 11, 15, 16, 19, 25, 26, 32, 33, 48, 50, 53, 54, 57, 60, 80], "present": 4, "channel": [4, 10, 16, 19, 33, 81], "integr": [4, 14, 16, 18, 19, 22, 24, 25, 26, 27, 28, 32, 33, 36, 38, 53, 60, 66, 67, 68, 69, 72, 73, 75, 81, 85, 87], "block": [4, 11, 18, 19, 22, 24, 25, 26, 27, 28, 33, 36, 50, 54, 56, 60, 66, 67, 68, 69, 72, 73, 75, 81, 85, 86, 87], "express": [4, 7, 9, 15, 16, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 33, 36, 38, 48, 51, 57, 66, 67, 68, 72, 73, 75, 78, 81, 85], "detect": [4, 11, 14, 32, 50, 54, 56, 60, 68, 75, 77, 81, 87], "malform": 4, "configur": [4, 9, 11, 16, 18, 20, 24, 25, 27, 29, 34, 48, 53, 56, 58, 60, 66, 67, 68, 69, 75, 77, 82, 87], "result": [4, 6, 53, 60], "fatal": [4, 50, 54], "messag": [4, 25, 67], "upstream": [4, 68], "report": [4, 48, 50, 53, 54, 56, 57], "monitor": [4, 25, 54], "ensur": [4, 8, 11, 16, 18, 19, 32, 33, 50, 60, 66], "onli": [4, 6, 10, 11, 16, 18, 19, 25, 33, 38, 50, 54, 56, 58, 60, 63, 68, 69, 80, 81], "incr": 4, "increment": [4, 60], "other": [4, 8, 19, 33, 50, 53, 66], "treat": [4, 69], "condit": 4, "illeg": 4, "sib": 4, "In": [4, 6, 19, 24, 25, 27, 33, 38, 50, 53, 54, 56, 60, 68, 77, 81], "case": [4, 19, 26, 33, 38, 53, 54, 56, 60, 68], "slverr": 4, "beat": [4, 11, 69], "arbitrari": 4, "place": [4, 19, 32, 33, 67], "s_axi_rdata": 4, "respons": [4, 6, 10, 14, 25, 56, 60, 64], "discard": 4, "normal": [4, 60], "depend": [4, 6, 8, 11, 53, 60, 69], "establish": [4, 6, 48], "maintain": [4, 60, 63, 67], "point": [4, 19, 33, 53, 54], "extern": [4, 77, 86], "lost": [4, 32, 60], "re": [4, 32, 67, 68, 75, 81], "return": [4, 6, 32, 75], "hot": [4, 18, 50], "goe": [4, 50, 60, 68, 75, 81], "down": [4, 14, 19, 32, 33, 50, 53, 56, 60], "space": [4, 10, 18, 19, 25, 32, 33, 48, 51, 60, 63, 68, 78, 82], "reconfigur": [4, 24, 27, 67], "yet": 4, "associ": [4, 50, 53, 54, 60], "start": [4, 50, 60, 67, 69, 75], "bar": [4, 8, 9, 16, 19, 32, 33, 48, 53, 64, 75], "support": [4, 7, 10, 11, 15, 16, 18, 19, 22, 24, 27, 30, 33, 36, 38, 48, 50, 51, 53, 54, 56, 57, 66, 68, 73, 75, 78, 80, 81, 85], "filter": [4, 67], "forward": [4, 8], "translat": [4, 8, 9, 25, 48], "disabl": [4, 6, 9, 11, 16, 18, 19, 32, 33, 48, 50, 53, 60, 64, 68, 82], "custom": [4, 16, 19, 25, 33, 53, 54, 56, 67, 81], "design": [4, 9, 10, 11, 15, 16, 20, 22, 24, 25, 26, 27, 28, 29, 30, 32, 34, 36, 48, 51, 53, 56, 57, 60, 67, 68, 73, 75, 76, 81, 86, 87], "suit": [4, 28, 66], "rp": [4, 19, 33, 50], "applic": [4, 11, 16, 31, 32, 53, 56, 60, 67, 68, 69, 87], "without": [4, 6, 50], "default": [4, 6, 15, 19, 22, 25, 33, 36, 60, 68], "0x0000_0000": 4, "program": [4, 9, 24, 25, 27, 29, 32, 48, 50, 53, 54, 58, 60, 63, 67, 77], "separ": [4, 19, 33, 60, 67], "hit": [4, 56], "accord": [4, 19, 33], "outsid": [4, 56, 81], "rang": [4, 9, 48], "cannot": [4, 53, 67], "recommend": [4, 9, 48, 53, 60], "do": [4, 8, 14, 16, 19, 32, 33, 38, 48, 50, 54, 56, 67, 68, 75, 81], "set_finite_credit": 4, "fals": [4, 67, 81], "infinit": [4, 69], "credit": [4, 14, 16, 19, 25, 32, 33, 53, 54, 56, 58, 60, 63, 64, 69], "advertis": [4, 48], "complex": [4, 26, 29, 51, 80], "finit": 4, "requir": [4, 18, 19, 25, 32, 33, 48, 50, 53, 54, 56, 60, 67, 81], "most": [4, 19, 33], "obei": 4, "caution": [4, 53], "verifi": [4, 19, 25, 33, 58], "function": [4, 14, 48, 53, 54, 64, 68, 82], "output": [4, 14, 19, 24, 27, 33, 53, 56, 58, 67, 77, 82], "s_axi_arreadi": 4, "s_axi_rvalid": 4, "unrespons": 4, "met": [4, 24, 27], "older": 4, "axi_ctl_aclk": 4, "axi_ctl_aclk_out": 4, "puls": 4, "out": [4, 10, 19, 25, 32, 33, 54, 61, 77, 86], "activ": [4, 56, 67, 69], "low": [4, 53, 60], "main": [4, 16], "toggl": 4, "simul": [4, 19, 24, 25, 26, 27, 29, 33, 53, 80, 87], "run": [4, 9, 19, 25, 29, 32, 33, 48, 50, 53, 56, 60, 68, 75, 81], "featur": [4, 14, 19, 22, 25, 26, 33, 36, 54, 60, 64, 67, 68, 73, 75, 81], "captur": [4, 10, 19, 33, 68, 75], "waveform": 4, "access": [4, 6, 14, 48, 53, 67], "abov": [4, 11, 19, 50, 60, 68, 69, 75], "taken": [4, 11, 19, 33, 53, 60, 69], "qdma": [4, 15, 25, 26, 29, 38, 54, 56, 57, 60, 61, 66, 69, 80, 86], "product": [4, 7, 11, 16, 18, 60, 68, 69, 73, 78, 85], "guid": [4, 11, 15, 16, 18, 19, 22, 25, 26, 33, 36, 48, 51, 57, 60, 68, 69, 73, 75, 78, 81, 85], "pg195": [4, 10, 11, 12, 15], "document": [4, 5, 11, 13, 19, 20, 24, 27, 30, 33, 34, 55, 56, 60, 68, 69, 71, 75, 76, 81, 83, 87], "gotcha": [5, 13, 55, 58, 71, 83, 87], "gener": [5, 11, 13, 14, 20, 25, 26, 29, 34, 49, 51, 55, 57, 58, 60, 71, 76, 83], "checklist": [5, 13, 20, 34, 49, 55, 58, 71, 76, 83, 87], "tip": [5, 13, 31, 49, 55, 58, 71, 76, 87], "question": [5, 13, 20, 34, 49, 55, 58, 71, 76, 87], "collater": [5, 13, 20, 34, 49, 55, 71, 76, 83, 87], "between": [6, 10, 19, 33], "d0": 6, "uniniti": 6, "state": [6, 8, 19, 32, 33, 50, 60, 68, 72, 75, 81, 82], "mean": [6, 32, 56], "physic": [6, 64, 67], "hasn": [6, 54], "t": [6, 19, 33, 50, 54, 67], "exchang": [6, 32], "initfc": 6, "enumer": [6, 9, 14, 19, 33, 48, 75, 87], "thu": [6, 60, 67, 69], "get": [6, 14, 16, 53, 56, 58, 67, 72, 75], "through": [6, 8, 10, 24, 25, 27, 32, 50, 53, 54, 60, 63, 68], "essenti": 6, "user_reset": 6, "releas": [6, 7, 15, 31, 48, 51, 57, 73, 85, 87], "layer": 6, "should": [6, 9, 10, 16, 19, 32, 33, 48, 50, 53, 54, 56, 60, 63, 67, 68, 69], "therefor": 6, "indic": [6, 11, 14, 18, 19, 32, 33, 60, 82], "send": [6, 16, 54, 56, 60, 66], "over": [6, 11, 69], "usabl": 6, "host": [6, 11, 16, 19, 25, 32, 33, 53, 56, 60, 63, 68, 75, 77, 81], "testbench": 6, "hang": [6, 14, 53, 56], "memori": [6, 10, 15, 16, 19, 24, 25, 26, 27, 32, 33, 48, 53, 56, 58, 60, 68, 75, 82], "whether": [6, 19, 32, 33, 38], "non": [6, 9, 19, 33, 48, 50, 67, 69], "exist": [6, 19, 32, 33, 81], "These": [6, 56, 67], "attempt": [6, 19, 33], "would": [6, 16, 50, 53], "readi": [6, 69], "mechan": [6, 11, 25], "unlik": [6, 48], "A": [6, 11, 19, 25, 33, 51, 60, 66, 78], "possibl": [6, 10, 16, 19, 33, 38, 53, 60, 81], "workaround": 6, "firewal": 6, "outstand": [6, 60, 69], "number": [6, 9, 16, 28, 48, 53, 54, 56, 60, 64, 69], "8": [6, 10, 25, 26, 50, 80], "c_s_axi_num_read": 6, "one": [6, 11, 18, 32, 66], "instead": [6, 16, 19, 32, 33, 60, 68, 81], "narow": 6, "event": [6, 53], "though": [6, 56], "limit": [6, 16, 50, 81], "masteraxi": 6, "descript": [7, 15, 18, 19, 22, 33, 36, 51, 57, 58, 66, 68, 73, 78, 85], "url": [7, 15, 18, 22, 36, 51, 57, 66, 73, 78, 85], "v3": [7, 57], "http": [7, 15, 16, 18, 19, 22, 24, 27, 29, 30, 33, 36, 38, 48, 50, 51, 53, 54, 56, 57, 66, 68, 73, 75, 78, 80, 81, 85], "www": [7, 15, 18, 19, 22, 24, 27, 29, 30, 33, 36, 38, 48, 50, 51, 53, 57, 66, 68, 73, 75, 78, 81, 85], "xilinx": [7, 9, 15, 16, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 33, 36, 38, 48, 50, 51, 53, 54, 56, 57, 60, 66, 68, 73, 75, 78, 80, 81, 85], "com": [7, 15, 16, 18, 19, 22, 24, 27, 29, 30, 33, 36, 38, 48, 50, 51, 53, 54, 57, 66, 68, 73, 75, 78, 80, 81, 85], "ip_document": [7, 15, 73], "axi_pcie3": 7, "v3_0": 7, "pdf": [7, 15, 19, 22, 24, 27, 30, 33, 36, 66, 73, 78, 85], "xdma": [7, 9, 10, 11, 14, 15, 25, 26, 29, 48, 57, 61], "jtag": [7, 15, 19, 26, 32, 33], "answer": [7, 9, 15, 16, 18, 19, 22, 28, 31, 33, 34, 36, 38, 48, 50, 51, 53, 57, 68, 73, 75, 81, 85, 87], "71322": [7, 15], "html": [7, 15, 18, 19, 22, 29, 33, 36, 38, 48, 50, 51, 53, 56, 57, 68, 73, 75, 81, 85], "note": [7, 15, 31, 48, 50, 51, 53, 56, 57, 73, 85, 87], "known": [7, 15, 19, 33, 50, 57, 73, 85], "2013": 7, "newer": [7, 15, 57], "tool": [7, 15, 57, 67], "54646": [7, 28], "gen": 7, "3": [7, 10, 15, 19, 25, 26, 33, 50, 54, 58, 66, 73, 75, 80], "intellectu": 7, "properti": [7, 77, 81], "axi_pcie_gen3": 7, "trasfer": 8, "probe": [8, 14, 19, 33, 50], "m_axi": 8, "s_axi": 8, "direct": [8, 19, 32, 33, 53, 54, 56, 60, 63, 77, 81], "flow": [8, 9, 10, 25, 38, 48, 50, 55, 56, 81, 87], "trigger": [8, 25, 64, 82], "catch": 8, "made": [8, 29], "show": [8, 19, 33, 50, 54, 61, 87], "here": 8, "field": [8, 54, 64, 68], "araddr": 8, "awaddr": 8, "expect": [8, 19, 33, 53, 66], "vector": 8, "c_pciebar2axibar_": 8, "c_axibar_": 8, "anyth": [8, 54], "failur": [8, 19, 32, 33, 50], "make": [8, 9, 19, 32, 33, 38, 48, 50, 53, 56, 60, 67, 68, 77, 86], "sure": [8, 9, 19, 32, 33, 48, 50, 53, 56, 68, 77], "thei": [8, 53, 56], "bvalid": 8, "breadi": 8, "each": [8, 10, 32, 53, 56, 60, 64, 82], "rresp": 8, "rvalid": 8, "rreadi": 8, "both": [8, 53, 54, 56, 66, 69, 75, 81, 86], "investig": [8, 48], "those": [8, 54, 56, 67], "move": [8, 67], "strict": 8, "might": [8, 19, 32, 33, 53, 56, 66], "halt": 8, "pipelin": [8, 19, 33], "0x148": 8, "s_axil_": 8, "axis_tx": 8, "rx": [8, 66], "spot": 8, "visibl": [8, 32], "problem": [8, 50, 60], "mm": [8, 58, 60, 63, 64, 80], "gen2": [8, 16, 19, 24, 27, 33, 66], "machin": [8, 16, 19, 32, 33, 50, 53, 68, 75, 81], "seen": [8, 50, 60, 66], "axis_": 8, "datapath": [8, 11], "p": [9, 15, 19, 22, 26, 29, 33, 36, 38, 48, 50, 51, 68, 73, 75, 77, 81], "driver": [9, 10, 14, 15, 16, 18, 19, 24, 25, 26, 27, 29, 32, 33, 48, 50, 51, 53, 54, 56, 57, 58, 60, 61, 63, 67, 78, 87], "model": [9, 26, 48, 66], "section": [9, 14, 48, 75, 81], "ug1085": [9, 48], "summar": [9, 48], "review": [9, 10, 19, 33, 48, 53, 56, 58, 75, 81], "gt": [9, 14, 19, 32, 33, 48, 50, 67, 72, 81], "transceiv": [9, 19, 33, 48], "iou": [9, 48], "correctli": [9, 32, 48, 56], "try": [9, 16, 19, 32, 33, 48, 50, 56, 72], "petalinux": [9, 26, 48, 51], "bsp": [9, 48], "particular": [9, 14, 48], "board": [9, 16, 19, 25, 29, 32, 33, 48, 50, 57, 77], "silicon": [9, 16, 48], "revis": [9, 19, 33, 48], "base": [9, 14, 16, 25, 30, 48, 53, 54, 60, 63, 75, 80, 81], "templat": [9, 48], "build": [9, 48], "project": [9, 38, 48], "hdf": [9, 48], "file": [9, 14, 19, 22, 33, 36, 38, 48, 53, 56, 57], "dt": [9, 48], "test": [9, 24, 25, 26, 27, 29, 48, 50, 53, 54, 56], "off": [9, 19, 33, 48, 53, 60, 77], "shelf": [9, 48], "card": [9, 11, 19, 32, 33, 48, 50], "exampl": [9, 10, 11, 15, 16, 19, 24, 25, 26, 27, 29, 33, 48, 51, 53, 57, 67, 68, 75, 76, 81, 86, 87], "nic": [9, 48, 50], "help": [9, 14, 48, 50, 53, 56, 60], "compar": [9, 19, 33, 48, 56, 60], "develop": [9, 19, 25, 29, 33, 48, 60], "zcu102": [9, 26, 48, 50, 51], "below": [9, 19, 33, 38, 48, 50, 53, 54, 56, 61, 68, 75, 81, 86], "xsct": [9, 48], "mrd": [9, 48], "0xfd480000": [9, 48], "100": [9, 48, 50], "pl": [9, 25, 26, 38, 48, 50, 51, 53, 54, 57, 81], "zynq": [9, 29, 48, 50, 51], "mpsoc": [9, 48, 51], "experi": [9, 48], "seamless": [9, 48], "interoper": [9, 48], "70854": [9, 48], "provid": [9, 16, 19, 33, 38, 48, 53, 54, 60, 67, 75, 81], "topic": [9, 48], "prefetch": [9, 16, 48, 53, 54, 56, 58, 60, 63, 64], "top": [10, 66, 86], "level": [10, 16, 56, 60, 66, 67, 86], "h2c": [10, 15, 25, 53, 56, 58, 60, 63], "c2h": [10, 11, 14, 16, 53, 54, 56, 58, 60, 63, 64], "setup": [10, 19, 33], "summari": 10, "stream": [10, 11, 14, 16, 53, 56, 58, 60, 63, 64], "track": [10, 19, 33], "bypass": [10, 19, 25, 33, 53, 54, 56, 58, 60, 64, 66, 75], "descriptor": [10, 11, 14, 16, 25, 53, 54, 56, 58, 60, 63, 64, 68], "defin": [10, 19, 25, 33], "0x00": 10, "0x04": 10, "etc": [10, 19, 33, 54, 56, 63, 82], "how": [10, 16, 19, 25, 29, 33, 53, 54, 56, 63, 86, 87], "find": [10, 54], "differ": [10, 11, 19, 33, 53, 54, 81], "format": 10, "tabl": [10, 25, 73], "e": [10, 16, 38, 54, 66, 82], "g": [10, 16, 38, 54, 82], "0x00000104": 10, "7": [10, 22, 24, 25, 26, 27, 28, 29, 30, 36, 50, 67, 80], "11": [10, 25, 26, 80], "id": [10, 19, 32, 33, 86], "15": [10, 25, 26, 80], "12": [10, 25, 26, 80], "submodul": 10, "31": [10, 25], "16": [10, 25, 26, 50, 53, 56, 80], "reserv": [10, 60], "arm": [10, 50, 63], "processor": [10, 53], "No": [10, 25, 26, 54, 64], "what": [10, 14, 16, 19, 33, 53, 54, 56, 68, 81], "xdma0_bypass_h2c_0": 10, "xdma0_bypass_c2h_0": 10, "xdma0_bypass": 10, "xdma0_bypass_h2c": 10, "xdma0_bypass_c2h_": 10, "so": [10, 16, 18, 19, 32, 33, 53, 54, 56, 60, 67, 69, 81], "ignor": 10, "combin": [10, 67], "xdma0_c2h_0": 10, "xdma0_c2h_1": 10, "xdma0_c2h_2": 10, "xdma0_c2h_3": 10, "singl": [10, 19, 33, 53, 68], "select": [10, 19, 33, 64, 67, 69, 73, 78, 85, 86], "individu": [10, 60, 64], "its": [10, 50, 60, 67], "wai": [10, 11, 53, 54, 60], "specifi": [11, 19, 33], "time": [11, 16, 19, 33, 53, 54, 60, 67, 68, 75, 81], "take": 11, "preced": 11, "legaci": [11, 16, 18], "softwar": [11, 54, 56, 58, 60, 63, 64], "switch": [11, 19, 33, 53], "either": [11, 50, 60, 69], "while": [11, 19, 33, 53, 54, 81], "user_irq_ack": 11, "remain": [11, 67], "queri": [11, 48], "servic": [11, 53, 60], "routin": 11, "isr": [11, 16], "determin": 11, "sourc": [11, 14, 38, 60], "know": [11, 54], "mani": [11, 16, 53, 56, 68], "your": [11, 16, 19, 32, 33], "involv": 11, "arrai": 11, "modifi": [11, 14, 25, 81], "destin": [11, 60], "unus": 11, "span": 11, "multipl": [11, 19, 32, 33, 54, 68, 75, 81], "eop": 11, "tlast": [11, 32, 54], "tkeep": 11, "except": [11, 58], "On": [11, 50], "full": [11, 16, 38, 53, 56, 60], "pack": 11, "lsb": 11, "contigu": [11, 19, 33], "buffer": [11, 53, 60, 64, 67], "It": [11, 54, 56, 60, 67], "64": [11, 32, 53, 56, 68, 69], "irq": [11, 50], "usr_irq_exd": 11, "faq": [13, 55, 71, 83, 87], "perform": [13, 24, 25, 27, 30, 55, 57, 60, 64, 68, 80, 87], "similar": [14, 19, 32, 33, 61, 81], "boot": [14, 32, 50, 53, 67], "strategi": 14, "fail": [14, 18, 20, 34, 48, 50, 56, 67, 68, 77, 87], "load": [14, 56, 61, 67], "dmesg": [14, 25, 50, 58], "narrow": [14, 16], "where": [14, 38, 48, 53], "onc": [14, 16, 53, 63], "call": [14, 16, 66], "pio": [14, 25, 26, 68, 80, 81], "primari": [14, 60], "look": [14, 16, 54, 56, 61], "insid": [14, 16, 67], "c": 14, "insert": [14, 19, 29, 33, 64, 67], "kernel": [14, 16, 18, 25, 26, 29, 32, 48, 50, 53, 56, 57], "variou": [14, 38], "insmod": 14, "load_driv": 14, "sh": 14, "ko": 14, "enable_credit_mp": 14, "download": [15, 16, 53, 56, 57], "github": [15, 16, 53, 54, 56, 57, 66, 80], "dma_ip_driv": [15, 16, 54, 56, 57], "v4": [15, 29, 57], "v4_1": 15, "2015": 15, "65443": [15, 28], "71435": [15, 16], "articl": [15, 53, 57, 80], "000034166": 15, "languag": [15, 53, 57, 66, 80], "en_u": [15, 53, 57, 80], "v": [15, 19, 29, 33, 57, 67], "forum": [15, 19, 22, 29, 33, 36, 38, 68, 73, 75, 81], "t5": [15, 19, 22, 29, 33, 36, 38, 68, 73, 75, 81], "cpm": [15, 25, 28, 53, 54, 75, 78, 87], "td": 15, "944098": 15, "measur": [16, 19, 33], "lspci": [16, 25, 38, 48, 50, 56, 68, 75, 81, 87], "come": [16, 19, 33, 81], "speed": [16, 19, 33, 38, 53, 68, 82], "video": [16, 31, 51, 87], "best": [16, 53], "ar71435": 16, "record": [16, 28, 31, 53, 68, 75, 81, 87], "ar68049": 16, "did": [16, 19, 32, 33, 50, 53], "65444": 16, "tree": [16, 66, 80], "linux": [16, 25, 26, 29, 48, 50, 53, 56, 57, 78, 87], "tri": [16, 19, 33], "improv": [16, 53, 60], "One": 16, "factor": 16, "affect": [16, 60], "throughput": 16, "process": [16, 32, 50, 60], "wait": [16, 60], "predict": 16, "overal": 16, "total": [16, 54, 69], "slow": [16, 53, 77], "unpredict": 16, "There": [16, 19, 33, 54, 56, 60], "coupl": [16, 19, 33], "work": [16, 53, 54, 66, 67, 68, 75], "around": 16, "With": 16, "rate": [16, 19, 33, 53, 60], "better": [16, 68], "we": [16, 54], "explain": 16, "some": [16, 18, 33, 50, 53], "lower": [16, 53], "poll": [16, 60], "give": [16, 50, 54, 56], "mp": [16, 53], "mrr": [16, 53], "128byte": 16, "wp350": [16, 30], "x58": 16, "256": [16, 56, 68, 69], "maximum": [16, 53, 60, 69], "payload": [16, 68, 69, 87], "x38": 16, "128": 16, "high": [16, 19, 33, 53, 67, 69, 77], "end": [16, 38, 69, 86], "effici": [16, 53], "comparison": 16, "stabl": [16, 32], "ltssm": [16, 19, 33, 50, 68, 72, 75, 81, 82, 87], "go": [16, 19, 32, 33, 53, 54], "recoveri": [16, 19, 32, 33, 60, 68, 75, 81], "intermitt": 16, "ar71355": 16, "analyz": [16, 19, 33], "nak": 16, "could": [16, 19, 33, 38, 53, 56, 75], "pipe": [16, 19, 22, 24, 25, 27, 29, 33, 36, 66, 73], "descrambl": [16, 19, 22, 25, 33, 36, 73], "modul": [16, 19, 22, 25, 33, 36, 67, 73, 78], "blog": [16, 19, 22, 29, 31, 33, 36, 38, 68, 73, 75, 81, 87], "lane": [16, 19, 25, 33, 38, 68], "gen3x8": 16, "larger": 16, "higher": [16, 38], "tradeoff": 16, "consum": [16, 53, 67], "inform": [16, 32, 53, 57, 60, 63, 81], "enough": [16, 50, 53, 60, 68, 75, 81], "partner": [16, 19, 33, 68], "bram": [16, 53], "ddr": [16, 53], "prone": 16, "robust": 16, "reduc": [16, 53, 60], "kick": 16, "happen": [16, 19, 33, 56, 82], "increas": [16, 67], "side": [16, 56, 60, 66], "frequenc": [16, 19, 33, 53, 66], "smart": 16, "replac": 16, "interconnect": 16, "synchron": [16, 19, 33, 66], "same": [16, 19, 33, 53, 54, 56], "boost": 16, "due": [16, 56, 60], "hardwar": [16, 19, 29, 33, 43, 53, 58, 60, 63, 87], "log": [16, 48, 54, 56, 58, 60], "repeat": 16, "cfg_interrupt_int": 18, "cfg_interrupt_don": 18, "certain": [18, 56, 60, 82, 87], "steadi": 18, "respond": 18, "encod": [18, 82], "58495": 18, "72702": [18, 73], "howto": 18, "org": 18, "doc": [18, 53, 75, 78, 81, 85], "unabl": [19, 33], "retain": [19, 33], "l0": [19, 32, 33, 68, 75, 81], "incorrect": [19, 33, 48], "pinout": [19, 33], "revers": [19, 25, 33, 68], "neither": [19, 33], "ep": [19, 25, 32, 33, 50], "too": [19, 33, 53, 67], "big": [19, 33], "wrong": [19, 33], "mayb": [19, 33], "miss": [19, 33, 87], "surpris": [19, 33], "vm": [19, 33], "assign": [19, 32, 33, 48, 50, 54, 67, 81], "proper": [19, 33], "iommu": [19, 33], "bifurc": [19, 33], "doesn": [19, 33, 50, 54, 67], "match": [19, 33, 53, 54, 60], "vice": [19, 33], "versa": [19, 33], "slot": [19, 32, 33, 50, 53, 64], "power": [19, 29, 32, 33, 53, 75, 81], "vendor": [19, 25, 32, 33], "invalid": [19, 33, 56, 58, 60], "pointer": [19, 33], "extend": [19, 33, 53], "bad": [19, 33], "tandem": [19, 24, 25, 27, 29, 33, 80], "imag": [19, 26, 33, 51], "constraint": [19, 33, 67, 81], "stall": [19, 33, 60], "throttl": [19, 33, 53], "cfg_space": [19, 33], "errata": [19, 33], "bio": [19, 33, 48, 50, 53, 77], "occur": [19, 33, 54, 56, 60, 68], "gen1x1": [19, 33, 38], "motherboard": [19, 33], "pc": [19, 33], "who": [19, 33, 54], "manufactur": [19, 33], "chipset": [19, 33], "gen1": [19, 33], "describ": [19, 33, 75, 86], "fpga": [19, 22, 24, 26, 27, 28, 29, 30, 33, 36, 51, 73, 87], "estim": [19, 33], "loss": [19, 33], "desir": [19, 33, 53, 67], "passiv": [19, 33], "interpos": [19, 33], "retim": [19, 33], "part": [19, 32, 33, 80], "chip": [19, 33], "add": [19, 33, 53, 67], "backplan": [19, 33], "cabl": [19, 33], "lock": [19, 33, 72], "asynchron": [19, 33], "ssc": [19, 33, 77], "were": [19, 33, 56, 67], "synthesi": [19, 33], "rout": [19, 33], "xdc": [19, 33], "immedi": [19, 33, 60, 64], "hour": [19, 33], "back": [19, 32, 33], "observ": [19, 33, 53], "chang": [19, 33, 69, 81, 82], "long": [19, 31, 33, 87], "success": [19, 33], "wa": [19, 32, 33, 50, 54, 56, 60, 64, 87], "protocol": [19, 22, 33, 36], "analysi": [19, 25, 26, 33], "oscilloscop": [19, 33], "free": [19, 33], "ti": [19, 33], "abil": [19, 33, 60], "clean": [19, 33], "graph": [19, 33], "debugg": [19, 33], "gui": [19, 33, 72, 86], "ey": [19, 24, 27, 33, 68, 75, 81], "scan": [19, 24, 27, 32, 33], "ibert": [19, 33], "jitter": [19, 33, 75, 81], "nois": [19, 33, 75, 81], "refclk": [19, 33], "plot": [19, 33], "dfe": [19, 33], "lpm": [19, 33], "autorxeq": [19, 33], "regener": [19, 33], "tape": [19, 33], "38988": [19, 33], "eou": [19, 33], "techniqu": [19, 22, 31, 33, 36, 68, 73, 75, 81, 87], "ba": [19, 22, 29, 33, 36, 38, 68, 73, 75, 81], "1097525": [19, 33, 68], "versal": [19, 25, 28, 29, 33, 38, 53, 54, 57, 75, 78, 81, 85], "acap": [19, 25, 28, 29, 33, 38, 53, 57, 75, 78, 81, 85], "1203707": [19, 33, 38, 75, 81], "guidelin": [19, 25, 33], "gth": [19, 33], "gty": [19, 33], "user_guid": [19, 33], "ug576": [19, 33], "ug578": [19, 33], "56616": [19, 22, 33, 36], "73361": [19, 22, 33, 36, 38, 68, 73, 75, 81], "transit": [19, 33], "store_ltssm": [19, 33], "71355": [19, 33], "erron": [19, 33], "consult": [19, 33], "understand": [19, 25, 30, 33, 38, 81], "why": [19, 33], "As": [19, 33, 53, 60], "put": [19, 33, 53, 66], "ac": [19, 33], "capacitor": [19, 33], "transmitt": [19, 33], "differenti": [19, 33], "pair": [19, 33], "75": [19, 33], "nf": [19, 33], "200": [19, 33], "close": [19, 33, 38], "proxim": [19, 33], "crack": [19, 33], "sheet": [19, 33], "target": [19, 30, 33, 66], "care": [19, 33], "respect": [19, 33, 48], "schemat": [19, 33, 75, 81], "per": [19, 33, 56, 60, 63, 64, 67, 69, 75, 81], "io": [19, 33, 56, 57, 67, 77], "standard": [19, 33, 67], "suppli": [19, 33], "decoupl": [19, 33, 67], "mention": [19, 33, 54], "peak": [19, 33], "resistor": [19, 33], "calibr": [19, 33], "circuit": [19, 33], "layout": [19, 33], "fulfil": [19, 33], "oscil": [19, 33], "regard": [19, 33], "dedic": [19, 33, 53, 67], "meet": [19, 33, 50, 54, 67], "exce": [19, 33, 53], "characterist": [19, 33], "datasheet": [19, 33], "keep": [19, 33, 69], "imped": [19, 33], "discontinu": [19, 33, 69], "auto": [19, 33], "rxeq": [19, 33], "sometim": [19, 33], "cpll": [19, 33], "qpll": [19, 33], "pll": [19, 33], "preset": [19, 33], "5": [19, 24, 25, 26, 27, 33, 50, 80], "4": [19, 25, 26, 29, 33, 50, 53, 54, 56, 57, 80], "2": [19, 25, 26, 29, 33, 53, 54, 56, 57, 58, 66, 67, 69, 75, 80], "phase2": [19, 33], "mac": [19, 33], "skew": [19, 33], "demystifi": [19, 22, 25, 33, 36, 73], "built": [19, 22, 25, 29, 33, 36, 51, 54, 73], "980246": [19, 22, 33, 36, 73], "third": [19, 33, 50, 66], "parti": [19, 33, 50, 66], "mandatori": [19, 33], "pg239": [19, 33], "drive": [19, 29, 33, 54, 67, 69, 77], "persist": [19, 33, 67, 68, 75, 81], "bitstream": [19, 33, 50, 67], "spi": [19, 33], "bp": [19, 33], "flash": [19, 33, 67], "across": [19, 67], "common": [20, 34, 48, 81, 87], "reason": [20, 34, 56, 60, 87], "regress": [20, 34, 87], "capabl": [20, 24, 27, 34, 50, 64, 67, 68, 87], "si": [20, 34, 87], "info": [20, 34, 87], "train": [22, 25, 26, 36, 68, 73, 87], "2019": [22, 26, 29, 36, 73], "usag": [22, 25, 26, 29, 36, 73, 77], "72471": [22, 36, 38, 73], "seri": [22, 24, 26, 27, 28, 29, 30, 36, 67, 78, 85], "troubleshoot": [22, 25, 36], "pcisig": [22, 36], "site": [22, 36, 67], "02_01_troubleshooting_pci_express_link_training_and_protocol_issues_frozen": [22, 36], "xapp1177": [24, 27], "sr": [24, 27], "iov": [24, 27], "virtex": [24, 26, 27, 28, 29], "application_not": [24, 27, 66], "sriov": [24, 26, 27, 64], "xapp1179": [24, 27], "kintex": [24, 27, 29], "trd": [24, 27], "xapp1184": [24, 27, 66], "x8": [24, 27, 29, 50, 66], "xapp1171": [24, 27], "central": [24, 27], "xapp1201": [24, 27], "xt": [24, 27], "ht": [24, 27], "xapp1198": [24, 27], "xapp859": [24, 27], "ddr2": [24, 27], "sdram": [24, 27], "demonstr": [24, 27], "platform": [24, 27, 48, 50], "xapp1002": [24, 27], "chipscop": [24, 27], "pro": [24, 27], "plu": [24, 26, 27, 28, 73], "wrapper": [24, 26, 27, 28], "xapp": [24, 27], "1022": [24, 27], "xapp1022": [24, 27], "1052": [24, 27], "solut": [24, 27, 67], "xapp1052": [24, 27], "xapp518": [24, 27], "bpi": [24, 27], "prom": [24, 27, 67], "6": [24, 25, 26, 27, 28, 29, 30, 50, 53, 80], "technologi": [24, 27], "isp": [24, 27], "xapp883": [24, 27], "fast": [24, 27, 29, 66], "partial": [24, 27, 67], "xapp883_fast_config_pci": [24, 27], "xapp1286": [24, 27], "titl": [25, 26, 28], "setpci": [25, 32, 38, 48, 50, 68, 75, 81], "python": 25, "9": [25, 26, 80], "10": [25, 26, 80], "advanc": 25, "bdf": 25, "manag": [25, 56, 58, 60, 64, 67], "13": [25, 26, 80], "14": [25, 26, 50, 80], "cpm4": [25, 57, 80, 81, 87], "gen4x8": [25, 80], "ced": [25, 66, 80], "17": [25, 26, 50, 80], "18": [25, 26, 80], "aer": [25, 32], "19": [25, 26, 80], "20": [25, 26, 53], "vpk120": 25, "21": [25, 26], "modular": 25, "22": [25, 26], "cpm5": [25, 80, 87], "23": [25, 26], "questa": 25, "24": 25, "queue": [25, 26, 28, 53, 54, 56, 57, 58, 60, 63, 64], "tune": [25, 53], "25": 25, "compil": 25, "dpdk": [25, 29, 53, 54, 56], "app": [25, 53], "step": [25, 38], "screenshot": [25, 61], "26": [25, 50], "pcie4": [25, 73, 81], "pcie5": [25, 57], "27": 25, "adapt": [25, 53, 76, 78, 85, 87], "soc": [25, 76, 78, 85, 87], "logicor": [25, 85], "28": [25, 50], "29": [25, 29], "deep": 25, "dive": 25, "loopback": [25, 68], "30": [25, 29], "profil": [25, 63], "context": [25, 53, 54, 56, 58, 60, 63, 64], "32": [25, 32, 53, 68], "2023": [25, 80], "33": 25, "deciph": 25, "pidx": [25, 53, 56, 58, 60], "34": 25, "flr": [25, 60, 64], "35": 25, "36": 25, "illustr": 25, "37": 25, "marker": [25, 54, 60, 64], "38": 25, "39": 25, "st": [25, 58, 80], "2024": 25, "40": 25, "downstream": 26, "quick": 26, "serial": [26, 66], "rapidio": 26, "verilog": [26, 66], "zc706": [26, 51], "kc705": [26, 51], "zcu106": 26, "ultraz": 26, "intel": 26, "ssd": 26, "750": 26, "nvme": 26, "remark": [28, 64], "75397": 28, "75396": 28, "75350": 28, "73083": [28, 85], "72289": 28, "70927": [28, 57], "66988": 28, "71399": 28, "4c": 28, "65751": [28, 73], "57945": 28, "61898": 28, "54645": 28, "v2": 28, "onward": 28, "47441": 28, "ISE": 28, "54643": 28, "40469": 28, "44969": 28, "edk": 28, "65178": 28, "65177": 28, "spartan": [28, 30], "xilnx": 28, "51597": 28, "x16": 29, "harden": 29, "complianc": 29, "now": [29, 32, 81], "100gbp": 29, "xcell": 29, "daili": 29, "694911": 29, "mig": [29, 51, 67], "kcu105": 29, "windriv": 29, "jungo": 29, "ipi": [29, 38, 51, 66, 80], "ddr4": 29, "creat": [29, 38, 56, 67], "youtub": [29, 57], "watch": [29, 57], "1ygviynflyi": 29, "g8n86wvh2ig": 29, "mentor": 29, "bfm": 29, "vwnkg01rjei": 29, "0knvw_6bgu0": 29, "simpl": [29, 53, 54, 58, 64], "d1vofbsuwac": 29, "demo": 29, "iohgltr11qi": 29, "wxd71xdmmke": 29, "maw7ao6p6zu": 29, "bu8bspuiyoo": 29, "index": [29, 63], "pl35626fef3d5cb8f2": 29, "i8axs4hw2f4": 29, "startup": [29, 67], "dt3ytlwfehw": 29, "104": 29, "n5ovptstwua": 29, "youtu": 29, "c2j89lixhya": 29, "ryozp": 29, "dmwsk": 29, "vcu118": 29, "hjuarbawyqw": 29, "x0njx": 29, "zzg4k": 29, "u200": [29, 57], "2020": [29, 57], "esjc6twgafi": [29, 57], "live": 29, "premium": [29, 78, 85], "gen5": 29, "wp464": 30, "white_pap": 30, "wp384": 30, "wp384_pcie_7seri": 30, "wp363": 30, "lfar": [31, 87], "form": [31, 53, 87], "white": [31, 87], "paper": [31, 87], "cfg_ltssm_state": [32, 82], "h10": 32, "consist": [32, 38], "stai": 32, "repeatedli": 32, "100m": [32, 50, 67], "good": [32, 53, 56], "warm": [32, 68, 75, 81], "reboot": [32, 68, 75, 81], "violat": 32, "server": 32, "anoth": 32, "discoveri": 32, "cold": 32, "recov": 32, "00": [32, 48, 50], "indefinit": 32, "cfg_link_training_en": 32, "b1": [32, 56], "fsm": 32, "phy_status_rst": 32, "reset_don": 32, "cross": 32, "against": [32, 60], "max": [32, 53, 64], "chanc": [32, 50], "rescan": [32, 48, 50], "properli": [32, 50], "treadi": 32, "tvalid": 32, "vvv": 32, "d": [32, 75, 81], "someth": 32, "region": [32, 67], "word": 32, "virtual": 32, "previous": 32, "unexpect": 32, "them": [32, 53, 56, 66, 67, 86], "util": [32, 48, 53, 69], "alloc": [32, 50, 53], "larg": [32, 60, 67], "realloc": 32, "mmio": 32, "rxof": 32, "suffici": 32, "item": 33, "reproduc": [38, 56], "u": [38, 53, 75, 78, 81, 85], "1148199": [38, 68, 75, 81], "37406": 38, "instruct": 38, "isol": [38, 53], "introduc": 38, "concept": 38, "split": 38, "compon": [38, 81], "1215986": [38, 81], "wish": 38, "extract": 38, "project_1": 38, "name": [38, 63, 67], "catalog": 38, "right": 38, "click": [38, 86], "two": [38, 56, 60, 86], "_rp": 38, "export": 38, "_ep": 38, "shown": [38, 48, 53, 86], "snapshot": [38, 86], "creation": [43, 87], "class": 48, "code": [48, 50, 68], "pcw": 48, "70702": [48, 51], "71210": [48, 51], "x86": [48, 50], "memen": 48, "embed": [48, 67], "relev": [48, 60, 75], "api": [48, 50, 54], "via": [48, 50, 66], "devmem": [48, 50], "01": [48, 50], "0x7": [48, 50], "successfulli": [48, 87], "proceed": 48, "further": [48, 60], "detec": 48, "echo": [48, 50], "sy": [48, 50], "0000": [48, 50], "remov": [48, 50, 67], "mellanox": 50, "connect4": 50, "lx": 50, "recogn": [50, 54], "mlx5": 50, "encount": [50, 60], "excerpt": 50, "940428": 50, "0002": 50, "946132": 50, "mellanox_check_broken_intx_mask": 50, "0x0": 50, "0x1b8": 50, "took": 50, "11111": 50, "usec": 50, "954572": 50, "mlx5_core": 50, "got": 50, "51": 50, "954852": 50, "954929": 50, "firmwar": 50, "1040": 50, "960966": 50, "000": 50, "gb": 50, "bandwidth": [50, 53], "x4": 50, "63": 50, "008": 50, "278293": 50, "mlx5_load": 50, "1068": 50, "pid": 50, "003727": 50, "init_on": 50, "1349": 50, "mlx5_load_on": 50, "012869": 50, "012981": 50, "019199": 50, "025095": 50, "52": 50, "025685": 50, "025765": 50, "031808": 50, "349033": 50, "072889": 50, "082038": 50, "082160": 50, "zu": 50, "fsbl": 50, "abl": [50, 60, 77], "gtr": 50, "includ": [50, 60], "ref": [50, 68, 75, 81], "ug1137": 50, "fit": 50, "0xfd480238": 50, "prompt": [50, 81], "0x3": 50, "html_doc": [50, 75], "ug1087": 50, "pcie_attrib___attr_101": 50, "0xfd480228": 50, "pg054": 50, "found": [50, 60], "just": [50, 67, 68], "0xfd1a0100": 50, "pcie_ctrl_reset": 50, "like": [50, 53, 56], "perst": 50, "ultrascaleregist": 50, "crf_apb___rst_fpd_top": 50, "nwl": 50, "fd0e0000": 50, "unsupport": [50, 87], "gpu": 50, "3130": 50, "483591": 50, "490863": 50, "0x4": 50, "structur": [50, 53, 63, 64], "execut": [50, 60], "invok": 50, "pci_enable_device_mem": 50, "manual": [50, 67, 78, 81], "land": 51, "page": [51, 53, 60, 78], "wiki": [51, 78], "atlassian": [51, 78], "net": [51, 78], "85983409": 51, "71493": 51, "71494": 51, "000033516": [53, 57], "000033539": [53, 57], "72813": 53, "pf0": [53, 54, 64], "bar2": 53, "ring": [53, 54, 56, 60, 63], "cmpt": [53, 54, 56, 60, 63, 64], "4k": [53, 54, 56], "fmap": 53, "fetch": [53, 54, 56, 58, 60, 64], "cidx": [53, 56, 60, 63], "drop": [53, 54, 56, 60], "c2h_byp_in_st_csh_pfch_tag": 53, "mdma_c2h_pfch_byp_tag": 53, "0x140c": 53, "dump": [53, 56, 63], "r": [53, 72, 75, 78, 81, 85], "en": [53, 75, 78, 81, 85], "pg347": 53, "tocid": 53, "agbmxdqps_4dpkxb2mlg": 53, "traffic": [53, 56, 58, 60, 64], "pattern": 53, "appli": [53, 75, 81], "achiev": 53, "gen3x16": 53, "512": [53, 69], "2048": [53, 63], "chapter": 53, "ug1388": 53, "2021": [53, 57], "english": 53, "methodologi": 53, "pg344": 53, "resourc": [53, 60, 87], "6qfbehqfba9swgguwrx89a": 53, "accept": [53, 56, 69], "tag": [53, 64], "71453": [53, 57], "network": 53, "optim": [53, 60], "small": 53, "satur": [53, 60], "ethernet": 53, "comput": 53, "storag": [53, 60], "4kb": 53, "fewer": 53, "suggest": 53, "thread": 53, "easili": 53, "workload": [53, 60], "obtain": 53, "concurr": 53, "bank": [53, 67], "greatli": 53, "avoid": [53, 67, 69], "bi": 53, "uni": 53, "rq": [53, 60], "share": [53, 60], "multi": 53, "socket": 53, "numa": 53, "latenc": [53, 60], "prohibit": 53, "far": 53, "awai": 53, "cpu": 53, "directli": 53, "depth": [53, 64], "4096": 53, "default_hugepagesz": 53, "1gb": 53, "hugepagesz": 53, "1g": 53, "hugepag": 53, "addit": 53, "practic": 53, "asid": 53, "ad": [53, 67], "grub": 53, "isolcpu": 53, "n": 53, "nohz_ful": 53, "rcu_nocb": 53, "schedul": 53, "task": 53, "tick": 53, "fenc": 53, "random": 53, "softirq": 53, "rcu": 53, "callback": 53, "iptabl": 53, "ip6tabl": 53, "irqbal": 53, "cpuspe": 53, "scale": 53, "governor": 53, "save": 53, "alon": 53, "hors": 53, "max_cstat": 53, "intel_idl": 53, "intel_pst": 53, "doubl": [53, 86], "cat": 53, "proc": 53, "cpuinfo": 53, "grep": 53, "mhz": 53, "intend": [53, 54], "guidanc": 53, "excess": 53, "writeback": [53, 58, 60, 63, 64], "sever": [53, 60], "128b": [53, 60], "restrict": [53, 60, 67, 69], "unit": [53, 60], "h2c_req_throt": [53, 60], "shallow": 53, "bett": 53, "erperform": 53, "completi": 53, "largest": 53, "applicati": 53, "performac": 53, "h2c_byp_in_st_sdi": 53, "everi": 53, "impact": 53, "along": 53, "seper": 54, "metadata": 54, "let": 54, "entri": [54, 56, 60, 63], "actual": 54, "ye": [54, 81], "rc_tlast": 54, "figur": 54, "choos": 54, "s_axis_c2h_mti": 54, "empti": [54, 56], "mty": 54, "qdma_c2h_err_stat": [54, 56, 62], "0xaf0": 54, "erorr": 54, "qdma_hw_error_handl": [54, 56], "mismatch": 54, "s_axis_c2h_ctrl": 54, "len": 54, "pg": 54, "h2c_byp_in_st_at": 54, "enable_at_port": 54, "consol": [54, 56, 81], "de": 54, "thoroughli": 54, "pg302": [54, 59, 60], "sai": 54, "don": 54, "qid": [54, 56, 63], "0x844": 54, "pf": [54, 60, 86], "252": 54, "vf": [54, 60], "4pf": 54, "Then": 54, "belong": 54, "pf1": 54, "jumbo": 54, "want": 54, "10k": 54, "upto": 54, "64k": 54, "break": 54, "chunk": 54, "cater": 54, "hard": [54, 57], "debugf": [56, 57], "qdma_usecas": 56, "qdma_design": 56, "ctl": [56, 63], "dmactl": [56, 63], "distribut": 56, "usecas": 56, "qdma_device_onlin": 56, "qdma_init": 56, "st_rx_msg_rdy": 56, "tm_dsc_sts_rdy": 56, "soft_reset_n": 56, "tm_dsc_sts_error": 56, "seem": 56, "tear": 56, "modif": 56, "local": [56, 68, 82], "feasibl": 56, "still": [56, 68, 75, 81], "propag": 56, "aggreg": [56, 60, 63], "determinist": 56, "tm_dsc_sts_vld": 56, "counter": 56, "count": [56, 68], "qdma_c2h_stat_s_axis_c2h_accept": [56, 62], "0xa88": 56, "qdma_c2h_stat_s_axis_cmpt_accept": 56, "0xa8c": 56, "qdma_c2h_stat_desc_rsp_pkt_accept": [56, 62], "0xa90": 56, "s_axis_c2h_ctrl_has_cmpt": 56, "s_axis_c2h_cmpt_ctrl_cmpt_typ": 56, "bounderi": 56, "s_axis_c2h_treadi": 56, "s_axis_c2h_cmpt_treadi": 56, "bigger": 56, "tell": 56, "post": [56, 60, 69], "axis_c2h_status_error": 56, "axis_c2h_status_drop": 56, "0xa80": 56, "0xbf4": 56, "lack": 56, "axi_st": 56, "tm_dsc_sts_": 56, "q": 56, "0xb10": 56, "qdma_c2h_stat_desc_rsp_drop_accept": [56, 62], "smaller": 56, "64byte": 56, "0xa94": 56, "userappl": 56, "qdma_c2h_stat_axis_pkg_cmp": 56, "feed": 56, "user_link_up": 56, "phy_readi": 56, "desc_rsp_err": 56, "qdma_c2h_drop_len_mismatch": 56, "0xbb4": 56, "qdma_c2h_drop_desc_rsp_len": 56, "0xbb8": 56, "qdma_c2h_drop_qid_fifo_len": 56, "0xbbc": 56, "qdma_c2h_drop_payload_cnt": 56, "0xbb0": 56, "0xe38": 56, "c2h_packets_drop": 56, "0x088": 56, "tm_dsc_sts_avl": 56, "2018": 57, "migrat": 57, "75234": 57, "000033502": 57, "000033503": 57, "soft": 57, "33054": 57, "collect": 58, "handl": [58, 60, 67], "reiview": 58, "tm": 58, "cach": [58, 60, 64], "desc": 58, "turn": [60, 77], "priorit": 60, "tm_dsc_st": 60, "pre": 60, "basi": [60, 63], "opportunist": 60, "significantli": 60, "almost": 60, "color": [60, 63], "portion": 60, "qdma_dmap_sel_h2c_dsc_pidx": [60, 63], "qdma_dmap_sel_c2h_dsc_pidx": [60, 63], "irq_arm": 60, "tm_dsc_sts_valid": 60, "deassert": [60, 69], "alreadi": 60, "reassert": 60, "quiesc": 60, "categori": 60, "proce": 60, "second": [60, 67], "itself": 60, "functio": 60, "ram": 60, "ecc": 60, "abort": 60, "pull": [60, 67, 77], "pariti": 60, "awar": [60, 67], "gone": 60, "potenti": [60, 67], "head": 60, "sink": 60, "qualiti": 60, "rc": [60, 69], "amount": 60, "sw": [60, 63], "threshold": 60, "0xe24": 60, "deliv": 60, "stop": 60, "much": 60, "faster": 60, "suffer": 60, "soon": 60, "written": [60, 75], "situat": 60, "screenshost": 61, "qdma_glbl_err_stat": 62, "qdma_glbl_trq_err_st": 62, "qdma_ram_sbe_sts_a": 62, "qdma_ram_dbe_sts_a": 62, "qdma_glbl_dsc_err_st": 62, "qdma_glbl_dsc_err_log0": 62, "qdma_glbl_dsc_err_log1": 62, "qdma_glbl_dsc_dbg_dat0": 62, "qdma_glbl_dsc_dbg_dat1": 62, "qdma_glbl_dsc_dbg_ctl": 62, "qdma_glbl_dsc_err_log2": 62, "qdma_glbl_trq_err_log": 62, "qdma_qdma_h2c_mm_statu": 62, "qdma_h2c_mm_error_cod": 62, "qdma_h2c_mm_error_info": 62, "qdma_h2c_mm_debug": 62, "qdma_c2h_mm_statu": 62, "c2h_channel_completed_descriptor_count": 62, "qdma_c2h_mm_error_cod": 62, "qdma_c2h_mm_error_info": 62, "qdma_c2h_mm_debug": 62, "qdma_c2h_fatal_err_stat": 62, "qdma_c2h_first_err_qid": 62, "qdma_c2h_stat_s_axis_wrb_accept": 62, "qdma_c2h_stat_debug_dma_eng_0": 62, "qdma_c2h_stat_debug_dma_eng_1": 62, "qdma_c2h_stat_debug_dma_eng_2": 62, "qdma_c2h_stat_debug_dma_eng_3": 62, "qdma_c2h_stat_desc_rsp_err_accept": 62, "qdma_h2c_err_stat": 62, "qdma_h2c_dbg_reg0": 62, "qdma_h2c_dbg_reg1": 62, "qdma_h2c_dbg_reg2": 62, "qdma_h2c_dbg_reg3": 62, "qdma_h2c_dbg_reg4": 62, "qdma_c2h_intr_h2c_req": 62, "qdma_c2h_intr_c2h_mm_req": 62, "qdma_c2h_intr_err_int_req": 62, "qdma_c2h_intr_c2h_st_req": 62, "qdma_c2h_intr_h2c_err_c2h_mm_msix_ack": 62, "qdma_c2h_intr_h2c_err_c2h_mm_msix_fail": 62, "qdma_c2h_intr_h2c_err_c2h_mm_msix_no_msix": 62, "qdma_c2h_intr_h2c_err_c2h_mm_ctxt_inv": 62, "qdma_c2h_intr_c2h_st_msix_ack": 62, "qdma_c2h_intr_c2h_st_msix_fail": 62, "qdma_c2h_intr_c2h_st_no_msix": 62, "qdma_c2h_intr_c2h_st_ctxt_inv": 62, "kei": [63, 67, 75, 81], "locat": [63, 67, 81], "contain": 63, "containx": 63, "copi": 63, "dynam": 63, "0x18004": 63, "0x18008": 63, "store": 63, "multip": 63, "aggregatoin": 63, "aggretatoin": 63, "informaton": 63, "vdm": 64, "csr": 64, "mailbox": 64, "among": 64, "exted": 64, "none": 64, "coalesc": 64, "protect": 64, "user_trig": 64, "regular": 64, "zero": 64, "eq": 66, "pl_eq_bypass_phase23": 66, "vhdl": 66, "polar": 66, "unisim_v": 66, "librari": 66, "launch": 66, "script": [66, 67], "txp": 66, "txn": 66, "pipe_txdata": 66, "xilinxcedstor": [66, 80], "2022": 66, "versal_cpm5_qdma_simulation_design": 66, "me": 66, "blob": 66, "readm": 66, "txt": 66, "veral": 66, "bmd": [66, 80, 81], "versal_cpm5_pcie_bmd_simulation_design": 66, "tutori": 66, "sw_manual": 66, "xilinx2020_2": 66, "ug937": 66, "stage": 67, "becom": 67, "aliv": 67, "float": 67, "obuft": 67, "mux": 67, "z": 67, "constant": 67, "unconfigur": 67, "pudc_b": 67, "pullup": [67, 77], "quad": [67, 81], "x2": 67, "x1": 67, "granular": [67, 81], "dual": [67, 80], "icap": 67, "mutual": 67, "exclus": 67, "65": 67, "especi": 67, "partit": 67, "NOT": 67, "design_switch": 67, "signifi": 67, "stage2": 67, "multiplex": 67, "bank65": 67, "stage1": 67, "cell": 67, "hd": 67, "get_cel": 67, "stage1cel": 67, "tandem_ip_pblock": 67, "stage1_main": 67, "term": 67, "stage1_config_io": 67, "stage1_io": 67, "pblock": 67, "create_pblock": 67, "stage1pblocknam": 67, "resize_pblock": 67, "get_pblock": 67, "stage1siterang": 67, "contain_rout": 67, "exclude_plac": 67, "add_cells_to_pblock": 67, "compress": 67, "current_design": 67, "override_persist": 67, "tandem_bitstream": 67, "cellnam": 67, "refclk_ibuf": 67, "sys_reset_n_ibuf": 67, "primit": 67, "special": 67, "attent": 67, "bscan": 67, "Be": 67, "hwicap": 67, "microblaz": 67, "mdm": 67, "opt_design": 67, "straddl": [67, 69], "instanti": 67, "inadvert": 67, "conflict": 67, "entireti": 67, "dbg_hub": 67, "opt_deisgn": 67, "opt_design_post": 67, "quiet": 67, "hierarch": 67, "primitive_typ": 67, "mcap": 67, "window": 67, "64761": 67, "350h": 67, "oppos": 67, "340h": 67, "recompil": 67, "discuss": [68, 75, 81], "wide": [68, 75, 81], "phy_link": 68, "negoti": 68, "pg213": [68, 69, 70, 73], "critic": 68, "dw": 68, "o": [68, 82], "completiontlp": 68, "By": 68, "disable_lane_revers": 68, "signific": 69, "ineffici": 69, "lead": 69, "overflow": [69, 87], "advert": 69, "less": 69, "s_axis_cc_tvalid": 69, "nullifi": 69, "transmit": 69, "corrupt": 69, "s_axis_cc_tlast": 69, "s_axis_cc_treadi": 69, "cc": 69, "sampl": 69, "whenev": 69, "s_axis_cc_tdata": 69, "pace": 69, "transciev": 72, "coinfigur": 72, "expos": 72, "stuck": 72, "v1": 73, "pcie4_uscale_plu": 73, "v1_3": 73, "pcb": [75, 81], "ug863": [75, 81], "xtp546": [75, 81], "cgi": [75, 81], "bin": [75, 81], "ctdoc": [75, 81], "cid": [75, 81], "90f995d8": [75, 81], "c517": [75, 81], "4adc": [75, 81], "a95c": [75, 81], "13a8994d6618": [75, 81], "zip": [75, 81], "pg346": [75, 78], "theori": [75, 81], "thing": [75, 81, 87], "spec": [75, 81], "1218411": 75, "phy_rdi": 75, "am012": [75, 78], "cpm4_pcie0_attr___phy_rdi": 75, "cpm4_pcie0_attr___pl_eq_bypass_phase23": 75, "cpm4_pcie0_attr___pfx_bar0_control_0": 75, "cpm4_pcie0_attr___pfx_bar0_control_1": 75, "cpm4_pcie0_attr___pfx_bar0_control_2": 75, "cpm4_pcie0_attr___cfg_interrupt": 75, "xsdb": 75, "1221922": 75, "vmk180": 77, "vck190": 77, "es1": 77, "pdi": 77, "pmc": 77, "pmc_mio_37": 77, "gpio": 77, "strength": 77, "8ma": 77, "slew": 77, "ccix": 78, "184287255": 78, "technic": 78, "am011": 78, "trm": 78, "prime": [78, 85], "psg": [78, 85], "ai": [78, 85], "versal_cpm_qdma_ep_simulation_design": 80, "cpm5_qdma": 80, "cpm4_qdma": 80, "versal_cpm_pcie_bmd_ep_simulation_design": 80, "cpm5_bmd": 80, "cpm4_bmd": 80, "versal_cpm_pcie_debug": 80, "versal_cpm_tandem_pci": 80, "versal_cpm_bridge_rp_design": 80, "versal_cpm_qdma_ep_design": 80, "cpm4_qdma_perf": 80, "ctrl": 80, "cpm5_qdma_dual_ctrl": 80, "gen5x8": 80, "cpm5_qdma_g5x8_mm_perf": 80, "cpm5_qdma_mm_st": 80, "cpm5_qdma_st_onli": 80, "versal_cpm_pcie_pio_ep_design": 80, "cpm5_pcie_pio": 80, "000035901": 80, "cpm4_pcie_pio": 80, "versal_cpm_pcie_bmd_ep_design": 80, "cpm5_bmd_ep": 80, "cpm4_bmd_ep": 80, "versal_cpm_qdma_ep_design_partbas": 80, "cpm5_qdma_g5x8_dual_perf": 80, "cpm5_qdma_g5x8_st_perf": 80, "pg343": [81, 82, 85], "enter": 81, "thevers": 81, "bmd_pio_mod": 81, "pcie_versal_0": 81, "mio38": 81, "open": 81, "sue": 81, "insert_cip": 81, "major": 81, "went": 81, "wizard": 81, "cfg_function_statu": 82, "intx": 82, "cfg_negotiated_width": 82, "cfg_current_spe": 82, "cfg_local_error_out": 82, "replai": 82, "repli": 82, "rollov": 82, "sign": 86, "_support": 86, "tab": 86, "brought": 86, "pciexpress": 87}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"global": [1, 59, 62], "signal": [1, 12, 59], "axi": [1, 59], "slave": [1, 12, 59], "interfac": [1, 12, 59, 70], "master": [1, 12, 59], "axi4": [1, 12, 59], "lite": [1, 12, 59], "control": 1, "bridg": [1, 5, 13, 59, 87], "pcie": [1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 43, 67, 87], "gen3": 1, "msi": 1, "x": 1, "dma_bridg": 1, "subsystem": [1, 5, 13, 55, 87], "mode": [1, 59, 76], "interrupt": [1, 12, 18, 59, 62], "decod": 1, "regist": [1, 62], "phy": [1, 70], "status_control": 1, "root": [1, 43], "port": [1, 12, 43, 59, 70], "error": [1, 62, 70], "fifo": 1, "read": [1, 12, 32, 59], "clock": [1, 19, 33], "diagram": 1, "ultrascal": [1, 71, 87], "devic": [1, 32, 40, 71], "endpoint": [1, 5, 38], "system": [1, 19, 33, 46], "reset": 1, "connect": 1, "gener": [3, 9, 10, 18, 19, 33, 38, 44, 48, 53, 54, 66, 67, 68, 75, 81, 87], "debug": [3, 4, 6, 7, 9, 10, 11, 14, 15, 16, 18, 19, 22, 25, 33, 36, 38, 39, 48, 49, 50, 51, 53, 56, 57, 58, 60, 66, 67, 68, 69, 72, 73, 75, 77, 78, 81, 82, 85, 87], "checklist": [3, 9, 10, 18, 19, 33, 48, 53, 66, 67, 68, 75, 81], "gotcha": [4, 11, 60, 69, 82], "dma": [5, 12, 13, 32, 59], "pci": [5, 13, 76, 83, 87], "express": [5, 13, 76, 83, 87], "ip": [5, 13, 38, 55, 64], "issu": [6, 8, 14, 18, 19, 20, 21, 32, 33, 35, 38, 50, 56, 66, 67, 72, 77, 86], "tip": [6, 14, 25, 50, 56, 67, 72, 77], "question": [6, 14, 19, 33, 50, 53, 56, 67, 72, 77], "document": [7, 15, 18, 22, 36, 45, 49, 51, 57, 66, 67, 73, 78, 85], "collater": [7, 15, 18, 22, 31, 36, 51, 57, 66, 67, 73, 78, 85], "us": [7, 15, 18, 22, 36, 51, 57, 66, 67, 73, 78, 85], "link": [7, 15, 18, 19, 20, 22, 33, 34, 36, 38, 51, 57, 66, 67, 70, 73, 78, 85], "specif": [8, 67, 86], "faq": [10, 54, 67, 68, 81], "top": 12, "level": 12, "h2c": [12, 59, 62], "channel": 12, "0": 12, "3": 12, "stream": [12, 59], "c2h": [12, 59, 62], "memori": [12, 59], "map": [12, 41, 59, 87], "address": [12, 41, 59], "write": [12, 59], "respons": [12, 59], "bypass": [12, 59], "config": [12, 59], "statu": [12, 38, 59, 70], "configur": [12, 19, 33, 38, 59, 64, 70], "extend": [12, 59], "descript": [12, 59, 70], "manag": 12, "descriptor": [12, 59, 62, 70], "exampl": [12, 38, 66, 80], "flow": [12, 58, 59], "initi": 12, "setup": [12, 46], "For": 12, "transfer": 12, "summari": 12, "xdma": [13, 16, 87], "driver": [13, 55], "perform": [16, 53], "common": [19, 32, 33], "train": [19, 20, 33, 34, 38, 70], "reason": [19, 33], "regress": [19, 33], "design": [19, 33, 38, 42, 43, 66, 80], "implement": [19, 33], "fail": [19, 33], "behavior": [19, 33], "capabl": [19, 33], "si": [19, 33], "info": [19, 33], "answer": [21, 26, 35, 67], "applic": [24, 27], "note": [24, 27, 28], "techniqu": [25, 38], "blog": 25, "lfar": 26, "long": 26, "form": 26, "record": 26, "releas": 28, "video": 29, "white": 30, "paper": 30, "enumer": [32, 38], "show": 32, "lspci": 32, "miss": 32, "data": [32, 59], "certain": 32, "request": [32, 70], "payload": 32, "tlp": 32, "unsupport": 32, "complet": [32, 59, 70], "timeout": 32, "receiv": 32, "overflow": 32, "first": 38, "thing": 38, "check": [38, 63], "how": 38, "ltssm": [38, 70], "wa": 38, "successfulli": 38, "detect": 38, "when": 38, "fpga": 38, "i": 38, "after": 38, "block": [38, 71, 83], "from": 38, "tree": 40, "structur": [40, 59], "ecam": 41, "hardwar": [42, 59], "creation": 42, "versal": [43, 66, 76, 80, 83, 87], "cpm4": 43, "linux": 43, "petalinux": 44, "imag": 44, "support": 45, "testabl": 46, "tactic": 47, "patch": 47, "requir": 47, "resourc": 49, "qdma": [53, 55, 58, 59, 87], "pciexpress": [55, 71], "st": [59, 62], "cmp": 59, "vdm": 59, "flr": 59, "input": 59, "mm": [59, 62], "cach": 59, "output": 59, "credit": 59, "tm": 59, "user": 59, "queue": 59, "context": 59, "program": 59, "fetch": 59, "softwar": 59, "definit": 59, "prefetch": 59, "intern": 59, "handl": 59, "except": 59, "event": 59, "simpl": 59, "writeback": 59, "dmesg": 61, "log": 61, "ram": 62, "singl": 62, "bit": 62, "doubl": 62, "engin": 62, "target": 62, "access": 62, "In": 62, "direct": 62, "pidx": 63, "updat": 63, "paramet": 64, "simul": 66, "acap": [66, 76, 83, 87], "cpm5": 66, "tandem": 67, "miscellan": 67, "negoti": 70, "width": 70, "speed": 70, "function": 70, "local": 70, "field": 70, "byte": 70, "count": 70, "dword": 70, "code": 70, "integr": [71, 83], "cpm": [76, 80], "adapt": 80, "soc": 80, "k": 87, "embed": 87}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file diff --git a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst new file mode 100644 index 0000000..759fa98 --- /dev/null +++ b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/debugging.rst @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Debugging +======================= + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst new file mode 100644 index 0000000..daeb3a6 --- /dev/null +++ b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/device_tree_structure.rst @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Device Tree Structure +===================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst new file mode 100644 index 0000000..dcd3250 --- /dev/null +++ b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/ecam_mapping_and_addressing.rst @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +ECAM Mapping and Addressing +=========================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst index e21fda7..bfdb401 100644 --- a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst +++ b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/index.rst @@ -7,3 +7,12 @@ Versal CPM4 PCIe Root Port Design (Linux) .. toctree:: hardware_design_creation.rst + petalinux_image_generation.rst + device_tree_structure.rst + ecam_mapping_and_addressing.rst + tactical_patch_requirement.rst + system_testability_and_setup.rst + supporting_documentation.rst + debugging.rst + + diff --git a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst new file mode 100644 index 0000000..593d59c --- /dev/null +++ b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/petalinux_image_generation.rst @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Petalinux Image Generation +========================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst new file mode 100644 index 0000000..bc84834 --- /dev/null +++ b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/supporting_documentation.rst @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Supporting Documentation +======================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst new file mode 100644 index 0000000..9fd80c8 --- /dev/null +++ b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/system_testability_and_setup.rst @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +System Testability and Setup +============================ + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. + diff --git a/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst new file mode 100644 index 0000000..2117c8f --- /dev/null +++ b/pciedebug/source/docs/PS_PCIe_PL_PCIe_Root_Port_Driver/Versal_CPM4_PCIe_Root_Port_Design_Linux/tactical_patch_requirement.rst @@ -0,0 +1,8 @@ +.. _ps_pcie_pl_pcie_driver_debug_checklist: + +Tactical Patch Requirement +========================== + +.. * PS-PCIe Driver Debug Checklist +.. * The PCI Express Controller Programing Model section in UG1085 summarizes programming of the PCI Express controller for Endpoint and Root Port mode operations. Review that section to make sure programming of the PS-GT Transceiver Interface, IOU for Reset Pin, PCI Express Controller and Bridge initialization has been done correctly. +