From fd752a2f3529e01c2aa97b93835ab61f7504316e Mon Sep 17 00:00:00 2001 From: Appa Rao Nali Date: Mon, 11 Aug 2014 17:28:07 +0530 Subject: [PATCH] Clearing break points for ZPE configuration Wall Data: Originally submitted from RDI_apparao_0611 Build Type: full Test Types: pre-commits, gui pre-commits [git-p4: depot-paths = "//Rodin/HEAD/data/embeddedsw/": change = 981161] --- .../ZPE_ZC_702_HwPlatform/.project | 69 - .../atgconfigs/Default.conifg | 1 - .../atgconfigs/None.conifg | 1 - .../executables/beebs_benchmarks.elf | Bin 223063 -> 0 bytes .../ZPE_ZC_702_HwPlatform/ps7_init.c | 12999 -- .../ZPE_ZC_702_HwPlatform/ps7_init.h | 137 - .../ZPE_ZC_702_HwPlatform/ps7_init.html | 148445 --------------- .../ZPE_ZC_702_HwPlatform/ps7_init.tcl | 896 - .../ZPE_ZC_702_HwPlatform/ps7_init_gpl.c | 12991 -- .../ZPE_ZC_702_HwPlatform/ps7_init_gpl.h | 132 - .../ZPE_ZC_702_HwPlatform/sysdef.xml | 17 - .../ZPE_ZC_702_HwPlatform/system.hdf | Bin 1450087 -> 0 bytes .../zpe_without_controller.hwh | 20004 -- .../zpe_without_controller_bd.tcl | 305 - .../zpe_without_controller_wrapper.bit | Bin 4045675 -> 0 bytes 15 files changed, 195997 deletions(-) delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/.project delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/atgconfigs/Default.conifg delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/atgconfigs/None.conifg delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/executables/beebs_benchmarks.elf delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.c delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.h delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.html delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.tcl delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init_gpl.c delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init_gpl.h delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/sysdef.xml delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/system.hdf delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller.hwh delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller_bd.tcl delete mode 100755 lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller_wrapper.bit diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/.project b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/.project deleted file mode 100755 index 55b472e3..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/.project +++ /dev/null @@ -1,69 +0,0 @@ - - - ZPE_ZC_702_HwPlatform - Created by SDK v2014.3 - - - - - - com.xilinx.sdk.hw.HwProject - com.xilinx.sdk.profile.PrebuiltAppProject - - - - 0 - - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-*.xml - - - - 0 - - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-*.svd - - - - 0 - - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-*.hwh - - - - 0 - - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-*.bit - - - - 0 - - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-*.bmm - - - - 0 - - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-*.mmi - - - - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/atgconfigs/Default.conifg b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/atgconfigs/Default.conifg deleted file mode 100755 index f10c1322..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/atgconfigs/Default.conifg +++ /dev/null @@ -1 +0,0 @@ -["{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_acp\",\"beats_per_tranx\":\"16\",\"operation\":\"RD\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_acp\",\"beats_per_tranx\":\"16\",\"operation\":\"WR\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_hp0\",\"beats_per_tranx\":\"16\",\"operation\":\"RD\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_hp0\",\"beats_per_tranx\":\"16\",\"operation\":\"WR\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_hp1\",\"beats_per_tranx\":\"16\",\"operation\":\"RD\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_hp1\",\"beats_per_tranx\":\"16\",\"operation\":\"WR\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_hp2\",\"beats_per_tranx\":\"16\",\"operation\":\"RD\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_hp2\",\"beats_per_tranx\":\"16\",\"operation\":\"WR\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_hp3\",\"beats_per_tranx\":\"16\",\"operation\":\"RD\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}","{\"addr_next\":\"increment\",\"addr_start\":\"ddr\",\"atg_id\":\"atg_hp3\",\"beats_per_tranx\":\"16\",\"operation\":\"WR\",\"template_id\":\"\",\"tranx_intvl\":\"50\"}"] \ No newline at end of file diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/atgconfigs/None.conifg b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/atgconfigs/None.conifg deleted file mode 100755 index 1c4253e5..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/atgconfigs/None.conifg +++ /dev/null @@ -1 +0,0 @@ -["{\"template_id\":\"\",\"atg_id\":\"atg_acp\"}","{\"template_id\":\"\",\"atg_id\":\"atg_acp\"}","{\"template_id\":\"\",\"atg_id\":\"atg_hp0\"}","{\"template_id\":\"\",\"atg_id\":\"atg_hp0\"}","{\"template_id\":\"\",\"atg_id\":\"atg_hp1\"}","{\"template_id\":\"\",\"atg_id\":\"atg_hp1\"}","{\"template_id\":\"\",\"atg_id\":\"atg_hp2\"}","{\"template_id\":\"\",\"atg_id\":\"atg_hp2\"}","{\"template_id\":\"\",\"atg_id\":\"atg_hp3\"}","{\"template_id\":\"\",\"atg_id\":\"atg_hp3\"}"] \ No newline at end of file diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/executables/beebs_benchmarks.elf b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/executables/beebs_benchmarks.elf deleted file mode 100755 index 3dc378a660ec8dc9b1964d407d3000c34ab5aa25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223063 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

wna<}Da zCQkAcN}1$lWCv zGfJALOKPShBka>98L|1g{_}K6bJOY|VjM(J|3h_EyVB+&F^7rJ-*6Rw+Nns4K+lXb z*!JN@Uy&eXKE{+in4+m4a(&cYNWn(aaG{S;f-V$vxSif0n-i#2R zt<%OrW$i8Kr=;VeB3b7v+0Wr@dxl9l3`(|_7|uN%!F=0giEyE9WdP}Y{(|&@lAYNM ziaQk+J^r~F&z7_cSEF#=1xQIh6+w9jt7SSp1D{F3B1)0=xjiIF^<&0;|buna0C@6RL#VG4F z*XcF89IfoiI%Z(A=y>`##!T0?Sk^&iP7$SC7~9{J(w2~Np)RF4Q`GA=>SeCLkjNL) z{+QF516bXN`K8?TjBbgI$Ge$PKr40cVbJUkkpP}T0k!>(mv@4 zFTD)H20QVfWr9AfPTWJ1ZYV>$zvj-hmzUDt60Z3OR5M(YLDMy9H`6s4HeK^&gyEV@ zV$gI=#y>FQ3D=|n({HD_tY-gUE@2=m4FtD5PPdSi7Q(&!<1&QP+9^xj)Q!Qs86ib_ zR#iJd6nwBqVS=!Y( zf7)tqRZC~vqNSbl{Vg5*VQc*Qc8j-hX=D59&bH3^^;NarQddcNaoPN%{4L&QQP#Vl z(?8$eIo8{>tfQ-CRpWkM*ZlUj1)UvD^EktMZL4M zxU{TzG(JWJt`kbXCzMw9!aLxh@Hk73v|!n?uHT-v4?|mv^sUhLZI0ISIFuYMN%P^9 zoRqr_#u(g(M5V%osBzcN@*2xlUV#*|pxn)vwg>9Um485x|E$9ptscr?!&#QuXIZQx z5-Hdb+WctdkH|d>*kzA`J5y;JjWi>UJ+gRygxU#b+S3umUD6oV*F`ti#2VLcSeD|T z@xX^MHpo}z;SLx+-3kTM?DB-m5lue>Ir0Jglpv))%I+S>Iu^w#G&8WqJWnLWKYgimRP_NQtrhJ zcU+I~I8nM0rTd)6#4dJwcaV1{4q=wYKlzya*Ldz5#lfml$mW7SF-7Xfa_=Ic5NEmj zWJv1E9N8lZ%QO43raVi^T|@adeUG9rIf}kS6-Cc(V$WnxAw?zfZ{EI1L$D)}nC*HlDajSe4|NY@E`tC53*rztAuB7y&#UrQ+GIpn~!N%jB?@ zI7qo)GxeRG1Y-etB8%fObSS>@0Ws3V9I45_+}pOa?KgN?Ta5W+k=_y-3lH*R2}r zvN)?ER8w4mU2I2bvN?$MRi}*lq)j$kzSYkG0W+4|H@!K?ZJ9N?k8VD zA7Liekn%X@Q;;b>IDeWo7*XB=>1(DHj6$p(6pY7#i$4DK8$pFEax*I8f{R|B0&NO~ zbuGHPc=`+TT7*wrk80_n(^e7RjmB;@RZ5o)6B`DH{6i>zknBehy|+U#Id%DiQsnEg zrxNn_5V-@`t1eU)m#RHw4YftrSg@~|A-eW=q=>HZo*XVS9OP3?%?8W*(AFCR4Tt0e zJRA9Xwo`?~T>w-|*DRaxWTEa?NJsZtW%-duRo9#$|)vZjnCjQS328vA;pF3CKM0*H+B( z2{k$s2T2njz>WJO*4L=mhz_KiZOh%yB4&F?WKd%jerJD)(PHLk>MCpo?9Vb`6caEj zHF4cadz)#4StspF28S>x%>)){d2V7DencLJq39WX!ekADZnk4lVV`LzYbMLxjHwIp z6%3I+1bX0hhS<|fyJLhc(tSNb??rtIbwMasg~=59FOIDx2w_T2E5sPz$Fremu`K5Vdv`zXIRf;cu&g7vhK(5URx2)vF^dJ>q><4tWK0*ysz>{s*i9lLRl!)iZL=Mn4CFcr{0ro4%mm3w&=THjT>&{`(JM(C$WpbG9ZAS$ zj*u<0!f*($7tFvy9!mBhgKf`-;)cvFzqo?B+no zS%zMvk23S|gR|YKtmH|w%UYscJ>6=WcPiUG5>ef}BKJ&0Y2IlR z5k@4f-E4QG5om!pqurp{ZpLJqz9>`JUfO`w!y-MUDX)uPT0Bh7XM z)KuqeU{E?9!MRM8?7TuoKpGD!Kb`SjLb_d@^&t`*PqJ16Ta+9}F+6V*f)>g0BxM}( z2qP~B5Imfh#|(>Q;99ib*8xKrAM`R`M#(~Lgs@!~bBh_2vb;y&3k#wzj<--m58EAW zEF#h~97_`EIa%IS_zomLKjq`gv)okLalMg_210dgLpzSgB}^;dh9t+E&`BGk>+NB9 ztlrWG43A^j?sx(H(e`6F!%@ms_h&fA@d4y$;~CC(oE$)S0>g!l43;^7;en1Y(+_0W zDdiNRf?d`QDp%0*+02>3pyZg#8Z`_Davx%PEp?XU+`HJsbVhIw#Qp=)s!&LDWDhAv zLD8VB9kLc_4q>uG8I&B=Yf)`JTeUdWppbU>Mx@&vR6z5x;~QZdin5=N12JS~TP{JQ zPv%wK^G;9OJRBYh6MzB+w}`?_Y~WUb}l6E&y3xe3$edQ8LThA!+xD zf?3{`l6D`1cE{BytVOuj$#B$C?)?mBWqB7Yl(Yvnqm3NLk+k=NEMMq2fMp(M#|JvN zE^1HC(O^plC$aYQ2?!5y457^EbqE(ZxZBj8eF)(ZS>ELfB<%&tbRi7QUZiH@5Qb_m z4Ta1JjvHC`&yS7nIhKNdFh`Hr3%&^?A{hm47Hbf7athL!Gh4~Sa+6PLcaISzHwAX{AldjLbhd?VC=AVxB^g>ohf4UD zZ8;uUg{+lrISj|VqmX(X0!hW0WRANs%L2X%KKsr3&e~aDZ*00XqGCLhoTuvK>^J)O6Ex0(G2^YZK2Hm7UX1U z2g&Ue@B_^nNZ`M63nlDPXEx0cjbMou@UZU}(5oR9mbZgCQvJQ9!#g1^H6J zXN)Wn17#_=l>(NEQucy-Xz*nU*U%vaGg-_p26sxqG8Q{hIT-al1z)mQhcXr|%`I5T zVx7u|$Z0J&m60wH@fS>Go#i63s-Tf|Rw$=In?ON`k(J8Dh-@sV3?Q;fv=b`0kOEeV zI#(3z&B#$Aa(%(OtaG%8+*)uxMXwQ&y9=&o&M_kLP=Sqgjuq0L#64n|l1&PO^w;BT zRm5$2{01}LPueZ6ty7*wyx=n`b%F>>1x<{csJxAgRg#@+3xh(&AjwXn($9_ffVkEw zrr|)&aP2sS12S+u)!L}AExpyjaB5MbP#VMuDBKN$&-82yXW^h~Ceu%lP%D!6$I(vr zXhcBNR;1mzWwsWsK#IAgkh`EQ*S{%?gGQui10?u z)%##C(fiJA>h0PoDE9Mj*P8cfja^OZ?ON_nP^F6$_GVT;j)=MrqNd<58?e^jQ10meXm6;YJdJI;(6-$D5subpsMj75B}jQT=9i?_CsLiC*wdGao8

N+K?Np>8u6-eU218gnM^awIYRnyhv)nxf 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 DL}qLu diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.c b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.c deleted file mode 100755 index c6934b9c..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.c +++ /dev/null @@ -1,12999 +0,0 @@ -/****************************************************************************** -* -* (c) Copyright 2010-2014 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy of this -* software and associated documentation files (the "Software"), to deal in the Software -* without restriction, including without limitation the rights to use, copy, modify, merge, -* publish, distribute, sublicense, and/or sell copies of the Software, and to permit -* persons to whom the Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in all copies or -* substantial portions of the Software. -* -* Use of the Software is limited solely to applications: (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING -* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used in advertising or -* otherwise to promote the sale, use or other dealings in this Software without prior written -* authorization from Xilinx. -* -******************************************************************************/ -/****************************************************************************/ -/** -* -* @file ps7_init.c -* -* This file is automatically generated -* -*****************************************************************************/ - -#include "ps7_init.h" - -unsigned long ps7_pll_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x2 - // .. ==> 0XF800014C[5:4] = 0x00000002U - // .. ==> MASK : 0x00000030U VAL : 0x00000020U - // .. DIVISOR = 0x7 - // .. ==> 0XF800014C[13:8] = 0x00000007U - // .. ==> MASK : 0x00003F00U VAL : 0x00000700U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000721U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xa - // .. ==> 0XF8000170[13:8] = 0x0000000AU - // .. ==> MASK : 0x00003F00U VAL : 0x00000A00U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00100A00U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_3_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reserved_reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x0007FFFFU ,0x00001081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_en_dfi_dram_clk_disable = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0x7FDFFFFCU ,0x27087290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFC3U ,0x00000000U), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00000003U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x0003F000U ,0x0003C000U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x00010000U ,0x00000000U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. reg_ddrc_dfi_t_ctrl_delay = 0x1 - // .. .. ==> 0XF8006078[3:0] = 0x00000001U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000001U - // .. .. reg_ddrc_dfi_t_dram_clk_disable = 0x1 - // .. .. ==> 0XF8006078[7:4] = 0x00000001U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000010U - // .. .. reg_ddrc_dfi_t_dram_clk_enable = 0x1 - // .. .. ==> 0XF8006078[11:8] = 0x00000001U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000100U - // .. .. reg_ddrc_t_cksre = 0x6 - // .. .. ==> 0XF8006078[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_t_cksrx = 0x6 - // .. .. ==> 0XF8006078[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_t_ckesr = 0x4 - // .. .. ==> 0XF8006078[25:20] = 0x00000004U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U - // .. .. - EMIT_MASKWRITE(0XF8006078, 0x03FFFFFFU ,0x00466111U), - // .. .. reg_ddrc_t_ckpde = 0x2 - // .. .. ==> 0XF800607C[3:0] = 0x00000002U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000002U - // .. .. reg_ddrc_t_ckpdx = 0x2 - // .. .. ==> 0XF800607C[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. reg_ddrc_t_ckdpde = 0x2 - // .. .. ==> 0XF800607C[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_ckdpdx = 0x2 - // .. .. ==> 0XF800607C[15:12] = 0x00000002U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00002000U - // .. .. reg_ddrc_t_ckcsx = 0x3 - // .. .. ==> 0XF800607C[19:16] = 0x00000003U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF800607C, 0x000FFFFFU ,0x00032222U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x00000200U ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0x6FFFFEFEU ,0x00040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF5U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x0 - // .. ==> 0XF8000B00[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000071U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. reserved_SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. reserved_VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. reserved_REFIO_TEST = 0x3 - // .. ==> 0XF8000B6C[11:10] = 0x00000003U - // .. ==> MASK : 0x00000C00U VAL : 0x00000C00U - // .. reserved_REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. reserved_DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. reserved_CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x00007FFFU ,0x00000E09U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000001U ,0x00000001U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reserved_VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reserved_VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reserved_VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reserved_VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reserved_VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[15:14] = 0x00000000U - // .. .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reserved_INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reserved_TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reserved_TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reserved_TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. reserved_TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reserved_INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FEFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF8000700[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000704[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000708[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800070C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000710[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000714[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000718[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF800073C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000740[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000740[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000744[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000744[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000748[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000748[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800074C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800074C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000750[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000750[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000754[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000754[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000758[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000758[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800075C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800075C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000760[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000760[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000764[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000764[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000768[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000768[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800076C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800076C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000770[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000770[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000774[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000774[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000778[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000778[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800077C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800077C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000780[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000780[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000784[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000784[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000788[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000788[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800078C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800078C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000790[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000790[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000794[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000794[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000798[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000798[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800079C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800079C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A8[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007AC[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007AC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000012E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000012E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00001280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00001280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0XC5ACCE55 - // .. ==> 0XF8803FB0[31:0] = 0xC5ACCE55U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: TRACE CURRENT PORT SIZE - // .. a = 2 - // .. ==> 0XF8803004[31:0] = 0x00000002U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000002U - // .. - EMIT_MASKWRITE(0XF8803004, 0xFFFFFFFFU ,0x00000002U), - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0X0 - // .. ==> 0XF8803FB0[31:0] = 0x00000000U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x000003FFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_LVL_INP_EN_0 = 1 - // .. ==> 0XF8000900[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. USER_LVL_OUT_EN_0 = 1 - // .. ==> 0XF8000900[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USER_LVL_INP_EN_1 = 1 - // .. ==> 0XF8000900[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. USER_LVL_OUT_EN_1 = 1 - // .. ==> 0XF8000900[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. reserved_FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. reserved_FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. reserved_FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. reserved_FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. reserved_FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. reserved_FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. reserved_FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. reserved_FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. reserved_FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_debug_3_0[] = { - // START: top - // .. START: CROSS TRIGGER CONFIGURATIONS - // .. .. START: UNLOCKING CTI REGISTERS - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8898FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8898FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8899FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8899FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8809FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8809FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. FINISH: UNLOCKING CTI REGISTERS - // .. .. START: ENABLING CTI MODULES AND CHANNELS - // .. .. FINISH: ENABLING CTI MODULES AND CHANNELS - // .. .. START: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. .. FINISH: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. FINISH: CROSS TRIGGER CONFIGURATIONS - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_pll_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x2 - // .. ==> 0XF800014C[5:4] = 0x00000002U - // .. ==> MASK : 0x00000030U VAL : 0x00000020U - // .. DIVISOR = 0x7 - // .. ==> 0XF800014C[13:8] = 0x00000007U - // .. ==> MASK : 0x00003F00U VAL : 0x00000700U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000721U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xa - // .. ==> 0XF8000170[13:8] = 0x0000000AU - // .. ==> MASK : 0x00003F00U VAL : 0x00000A00U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00100A00U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_2_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_block = 0x1 - // .. .. ==> 0XF8006004[20:19] = 0x00000001U - // .. .. ==> MASK : 0x00180000U VAL : 0x00080000U - // .. .. reg_ddrc_diff_rank_rd_2cycle_gap = 0x0 - // .. .. ==> 0XF8006004[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_cs_bit1 = 0x0 - // .. .. ==> 0XF8006004[26:22] = 0x00000000U - // .. .. ==> MASK : 0x07C00000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_open_bank = 0x0 - // .. .. ==> 0XF8006004[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_4bank_ram = 0x0 - // .. .. ==> 0XF8006004[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x1FFFFFFFU ,0x00081081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_sdram = 0x1 - // .. .. ==> 0XF8006020[21:21] = 0x00000001U - // .. .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_clock_stop_en = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_ddrc_loopback = 0x0 - // .. .. ==> 0XF8006020[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0xFFFFFFFCU ,0x27287290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_max_rank_rd = 0xf - // .. .. ==> 0XF8006024[5:2] = 0x0000000FU - // .. .. ==> MASK : 0x0000003CU VAL : 0x0000003CU - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFFFU ,0x0000003CU), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_debug_mode = 0x0 - // .. .. ==> 0XF8006038[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_phy_wr_level_start = 0x0 - // .. .. ==> 0XF8006038[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_phy_rd_level_start = 0x0 - // .. .. ==> 0XF8006038[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_dq0_wait_t = 0x0 - // .. .. ==> 0XF8006038[12:9] = 0x00000000U - // .. .. ==> MASK : 0x00001E00U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00001FC3U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_ddrc_rank0_rd_odt = 0x0 - // .. .. ==> 0XF8006048[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_rank0_wr_odt = 0x1 - // .. .. ==> 0XF8006048[5:3] = 0x00000001U - // .. .. ==> MASK : 0x00000038U VAL : 0x00000008U - // .. .. reg_ddrc_rank1_rd_odt = 0x1 - // .. .. ==> 0XF8006048[8:6] = 0x00000001U - // .. .. ==> MASK : 0x000001C0U VAL : 0x00000040U - // .. .. reg_ddrc_rank1_wr_odt = 0x1 - // .. .. ==> 0XF8006048[11:9] = 0x00000001U - // .. .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. reg_ddrc_rank2_rd_odt = 0x0 - // .. .. ==> 0XF8006048[20:18] = 0x00000000U - // .. .. ==> MASK : 0x001C0000U VAL : 0x00000000U - // .. .. reg_ddrc_rank2_wr_odt = 0x0 - // .. .. ==> 0XF8006048[23:21] = 0x00000000U - // .. .. ==> MASK : 0x00E00000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_rd_odt = 0x0 - // .. .. ==> 0XF8006048[26:24] = 0x00000000U - // .. .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_wr_odt = 0x0 - // .. .. ==> 0XF8006048[29:27] = 0x00000000U - // .. .. ==> MASK : 0x38000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x3FFFFFFFU ,0x0003C248U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dll_calib_to_min_x1024 = 0x1 - // .. .. ==> 0XF8006058[7:0] = 0x00000001U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000001U - // .. .. reg_ddrc_dll_calib_to_max_x1024 = 0x1 - // .. .. ==> 0XF8006058[15:8] = 0x00000001U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000100U - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x0001FFFFU ,0x00000101U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. reg_ddrc_dfi_t_ctrl_delay = 0x1 - // .. .. ==> 0XF8006078[3:0] = 0x00000001U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000001U - // .. .. reg_ddrc_dfi_t_dram_clk_disable = 0x1 - // .. .. ==> 0XF8006078[7:4] = 0x00000001U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000010U - // .. .. reg_ddrc_dfi_t_dram_clk_enable = 0x1 - // .. .. ==> 0XF8006078[11:8] = 0x00000001U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000100U - // .. .. reg_ddrc_t_cksre = 0x6 - // .. .. ==> 0XF8006078[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_t_cksrx = 0x6 - // .. .. ==> 0XF8006078[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_t_ckesr = 0x4 - // .. .. ==> 0XF8006078[25:20] = 0x00000004U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U - // .. .. - EMIT_MASKWRITE(0XF8006078, 0x03FFFFFFU ,0x00466111U), - // .. .. reg_ddrc_t_ckpde = 0x2 - // .. .. ==> 0XF800607C[3:0] = 0x00000002U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000002U - // .. .. reg_ddrc_t_ckpdx = 0x2 - // .. .. ==> 0XF800607C[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. reg_ddrc_t_ckdpde = 0x2 - // .. .. ==> 0XF800607C[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_ckdpdx = 0x2 - // .. .. ==> 0XF800607C[15:12] = 0x00000002U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00002000U - // .. .. reg_ddrc_t_ckcsx = 0x3 - // .. .. ==> 0XF800607C[19:16] = 0x00000003U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF800607C, 0x000FFFFFU ,0x00032222U), - // .. .. refresh_timer0_start_value_x32 = 0x0 - // .. .. ==> 0XF80060A0[11:0] = 0x00000000U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000000U - // .. .. refresh_timer1_start_value_x32 = 0x8 - // .. .. ==> 0XF80060A0[23:12] = 0x00000008U - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00008000U - // .. .. - EMIT_MASKWRITE(0XF80060A0, 0x00FFFFFFU ,0x00008000U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_2t_delay = 0x0 - // .. .. ==> 0XF80060B4[8:0] = 0x00000000U - // .. .. ==> MASK : 0x000001FFU VAL : 0x00000000U - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. reg_ddrc_dis_pre_bypass = 0x0 - // .. .. ==> 0XF80060B4[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x000007FFU ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006118[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006118[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF800611C[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF800611C[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006124[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006124[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_loopback = 0x0 - // .. .. ==> 0XF8006190[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_all_dq_mpr_rd_resp = 0x0 - // .. .. ==> 0XF8006190[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_use_rank0_delays = 0x1 - // .. .. ==> 0XF8006190[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_phy_int_lpbk = 0x0 - // .. .. ==> 0XF8006190[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0xFFFFFFFFU ,0x10040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006208[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF800620C[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006210[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006214[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_per_bank_refresh = 0x0 - // .. .. ==> 0XF80062A8[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF7U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. CLK_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. SRSTN_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000303U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. REFIO_TEST = 0x3 - // .. ==> 0XF8000B6C[11:10] = 0x00000003U - // .. ==> MASK : 0x00000C00U VAL : 0x00000C00U - // .. REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x00007FFFU ,0x00000E09U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000021U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[16:14] = 0x00000000U - // .. .. ==> MASK : 0x0001C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FFFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF8000700[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000704[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000708[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800070C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000710[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000714[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000718[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF800073C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000740[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000740[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000744[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000744[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000748[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000748[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800074C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800074C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000750[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000750[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000754[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000754[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000758[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000758[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800075C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800075C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000760[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000760[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000764[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000764[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000768[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000768[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800076C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800076C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000770[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000770[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000774[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000774[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000778[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000778[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800077C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800077C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000780[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000780[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000784[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000784[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000788[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000788[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800078C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800078C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000790[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000790[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000794[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000794[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000798[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000798[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800079C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800079C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A8[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007AC[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007AC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000012E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000012E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00001280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00001280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0XC5ACCE55 - // .. ==> 0XF8803FB0[31:0] = 0xC5ACCE55U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: TRACE CURRENT PORT SIZE - // .. a = 2 - // .. ==> 0XF8803004[31:0] = 0x00000002U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000002U - // .. - EMIT_MASKWRITE(0XF8803004, 0xFFFFFFFFU ,0x00000002U), - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0X0 - // .. ==> 0XF8803FB0[31:0] = 0x00000000U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. IRMODE = 0x0 - // .. ==> 0XE0001004[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. UCLKEN = 0x0 - // .. ==> 0XE0001004[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x00000FFFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_INP_ICT_EN_0 = 3 - // .. ==> 0XF8000900[1:0] = 0x00000003U - // .. ==> MASK : 0x00000003U VAL : 0x00000003U - // .. USER_INP_ICT_EN_1 = 3 - // .. ==> 0XF8000900[3:2] = 0x00000003U - // .. ==> MASK : 0x0000000CU VAL : 0x0000000CU - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_debug_2_0[] = { - // START: top - // .. START: CROSS TRIGGER CONFIGURATIONS - // .. .. START: UNLOCKING CTI REGISTERS - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8898FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8898FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8899FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8899FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8809FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8809FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. FINISH: UNLOCKING CTI REGISTERS - // .. .. START: ENABLING CTI MODULES AND CHANNELS - // .. .. FINISH: ENABLING CTI MODULES AND CHANNELS - // .. .. START: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. .. FINISH: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. FINISH: CROSS TRIGGER CONFIGURATIONS - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_pll_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x2 - // .. ==> 0XF800014C[5:4] = 0x00000002U - // .. ==> MASK : 0x00000030U VAL : 0x00000020U - // .. DIVISOR = 0x7 - // .. ==> 0XF800014C[13:8] = 0x00000007U - // .. ==> MASK : 0x00003F00U VAL : 0x00000700U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000721U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xa - // .. ==> 0XF8000170[13:8] = 0x0000000AU - // .. ==> MASK : 0x00003F00U VAL : 0x00000A00U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00100A00U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_1_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_block = 0x1 - // .. .. ==> 0XF8006004[20:19] = 0x00000001U - // .. .. ==> MASK : 0x00180000U VAL : 0x00080000U - // .. .. reg_ddrc_diff_rank_rd_2cycle_gap = 0x0 - // .. .. ==> 0XF8006004[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_cs_bit1 = 0x0 - // .. .. ==> 0XF8006004[26:22] = 0x00000000U - // .. .. ==> MASK : 0x07C00000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_open_bank = 0x0 - // .. .. ==> 0XF8006004[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_4bank_ram = 0x0 - // .. .. ==> 0XF8006004[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x1FFFFFFFU ,0x00081081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_sdram = 0x1 - // .. .. ==> 0XF8006020[21:21] = 0x00000001U - // .. .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_clock_stop_en = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_ddrc_loopback = 0x0 - // .. .. ==> 0XF8006020[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0xFFFFFFFCU ,0x27287290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_max_rank_rd = 0xf - // .. .. ==> 0XF8006024[5:2] = 0x0000000FU - // .. .. ==> MASK : 0x0000003CU VAL : 0x0000003CU - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFFFU ,0x0000003CU), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_debug_mode = 0x0 - // .. .. ==> 0XF8006038[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_phy_wr_level_start = 0x0 - // .. .. ==> 0XF8006038[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_phy_rd_level_start = 0x0 - // .. .. ==> 0XF8006038[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_dq0_wait_t = 0x0 - // .. .. ==> 0XF8006038[12:9] = 0x00000000U - // .. .. ==> MASK : 0x00001E00U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00001FC3U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_ddrc_rank0_rd_odt = 0x0 - // .. .. ==> 0XF8006048[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_rank0_wr_odt = 0x1 - // .. .. ==> 0XF8006048[5:3] = 0x00000001U - // .. .. ==> MASK : 0x00000038U VAL : 0x00000008U - // .. .. reg_ddrc_rank1_rd_odt = 0x1 - // .. .. ==> 0XF8006048[8:6] = 0x00000001U - // .. .. ==> MASK : 0x000001C0U VAL : 0x00000040U - // .. .. reg_ddrc_rank1_wr_odt = 0x1 - // .. .. ==> 0XF8006048[11:9] = 0x00000001U - // .. .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. reg_ddrc_rank2_rd_odt = 0x0 - // .. .. ==> 0XF8006048[20:18] = 0x00000000U - // .. .. ==> MASK : 0x001C0000U VAL : 0x00000000U - // .. .. reg_ddrc_rank2_wr_odt = 0x0 - // .. .. ==> 0XF8006048[23:21] = 0x00000000U - // .. .. ==> MASK : 0x00E00000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_rd_odt = 0x0 - // .. .. ==> 0XF8006048[26:24] = 0x00000000U - // .. .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_wr_odt = 0x0 - // .. .. ==> 0XF8006048[29:27] = 0x00000000U - // .. .. ==> MASK : 0x38000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x3FFFFFFFU ,0x0003C248U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dll_calib_to_min_x1024 = 0x1 - // .. .. ==> 0XF8006058[7:0] = 0x00000001U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000001U - // .. .. reg_ddrc_dll_calib_to_max_x1024 = 0x1 - // .. .. ==> 0XF8006058[15:8] = 0x00000001U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000100U - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x0001FFFFU ,0x00000101U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. refresh_timer0_start_value_x32 = 0x0 - // .. .. ==> 0XF80060A0[11:0] = 0x00000000U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000000U - // .. .. refresh_timer1_start_value_x32 = 0x8 - // .. .. ==> 0XF80060A0[23:12] = 0x00000008U - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00008000U - // .. .. - EMIT_MASKWRITE(0XF80060A0, 0x00FFFFFFU ,0x00008000U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_2t_delay = 0x0 - // .. .. ==> 0XF80060B4[8:0] = 0x00000000U - // .. .. ==> MASK : 0x000001FFU VAL : 0x00000000U - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. reg_ddrc_dis_pre_bypass = 0x0 - // .. .. ==> 0XF80060B4[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x000007FFU ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006118[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006118[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF800611C[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF800611C[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006124[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006124[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_loopback = 0x0 - // .. .. ==> 0XF8006190[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_all_dq_mpr_rd_resp = 0x0 - // .. .. ==> 0XF8006190[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_use_rank0_delays = 0x1 - // .. .. ==> 0XF8006190[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_phy_int_lpbk = 0x0 - // .. .. ==> 0XF8006190[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0xFFFFFFFFU ,0x10040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006208[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF800620C[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006210[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006214[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_per_bank_refresh = 0x0 - // .. .. ==> 0XF80062A8[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF7U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. CLK_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. SRSTN_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000303U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x000073FFU ,0x00000209U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000021U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[16:14] = 0x00000000U - // .. .. ==> MASK : 0x0001C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FFFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF8000700[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000704[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000708[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800070C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000710[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000714[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000718[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF800073C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000740[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000740[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000744[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000744[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000748[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000748[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800074C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800074C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000750[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000750[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000754[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000754[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000758[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000758[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800075C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800075C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000760[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000760[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000764[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000764[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000768[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000768[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800076C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800076C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000770[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000770[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000774[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000774[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000778[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000778[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800077C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800077C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000780[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000780[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000784[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000784[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000788[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000788[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800078C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800078C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000790[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000790[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000794[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000794[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000798[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000798[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800079C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800079C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A8[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007AC[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007AC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000012E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000012E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00001280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00001280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0XC5ACCE55 - // .. ==> 0XF8803FB0[31:0] = 0xC5ACCE55U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: TRACE CURRENT PORT SIZE - // .. a = 2 - // .. ==> 0XF8803004[31:0] = 0x00000002U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000002U - // .. - EMIT_MASKWRITE(0XF8803004, 0xFFFFFFFFU ,0x00000002U), - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0X0 - // .. ==> 0XF8803FB0[31:0] = 0x00000000U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. IRMODE = 0x0 - // .. ==> 0XE0001004[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. UCLKEN = 0x0 - // .. ==> 0XE0001004[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x00000FFFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_INP_ICT_EN_0 = 3 - // .. ==> 0XF8000900[1:0] = 0x00000003U - // .. ==> MASK : 0x00000003U VAL : 0x00000003U - // .. USER_INP_ICT_EN_1 = 3 - // .. ==> 0XF8000900[3:2] = 0x00000003U - // .. ==> MASK : 0x0000000CU VAL : 0x0000000CU - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_debug_1_0[] = { - // START: top - // .. START: CROSS TRIGGER CONFIGURATIONS - // .. .. START: UNLOCKING CTI REGISTERS - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8898FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8898FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8899FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8899FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8809FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8809FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. FINISH: UNLOCKING CTI REGISTERS - // .. .. START: ENABLING CTI MODULES AND CHANNELS - // .. .. FINISH: ENABLING CTI MODULES AND CHANNELS - // .. .. START: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. .. FINISH: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. FINISH: CROSS TRIGGER CONFIGURATIONS - // FINISH: top - // - EMIT_EXIT(), - - // -}; - - -#include "xil_io.h" -#define PS7_MASK_POLL_TIME 100000000 - -char* -getPS7MessageInfo(unsigned key) { - - char* err_msg = ""; - switch (key) { - case PS7_INIT_SUCCESS: err_msg = "PS7 initialization successful"; break; - case PS7_INIT_CORRUPT: err_msg = "PS7 init Data Corrupted"; break; - case PS7_INIT_TIMEOUT: err_msg = "PS7 init mask poll timeout"; break; - case PS7_POLL_FAILED_DDR_INIT: err_msg = "Mask Poll failed for DDR Init"; break; - case PS7_POLL_FAILED_DMA: err_msg = "Mask Poll failed for PLL Init"; break; - case PS7_POLL_FAILED_PLL: err_msg = "Mask Poll failed for DMA done bit"; break; - default: err_msg = "Undefined error status"; break; - } - - return err_msg; -} - -unsigned long -ps7GetSiliconVersion () { - // Read PS version from MCTRL register [31:28] - unsigned long mask = 0xF0000000; - unsigned long *addr = (unsigned long*) 0XF8007080; - unsigned long ps_version = (*addr & mask) >> 28; - return ps_version; -} - -void mask_write (unsigned long add , unsigned long mask, unsigned long val ) { - unsigned long *addr = (unsigned long*) add; - *addr = ( val & mask ) | ( *addr & ~mask); - //xil_printf("MaskWrite : 0x%x--> 0x%x \n \r" ,add, *addr); -} - - -int mask_poll(unsigned long add , unsigned long mask ) { - volatile unsigned long *addr = (volatile unsigned long*) add; - int i = 0; - while (!(*addr & mask)) { - if (i == PS7_MASK_POLL_TIME) { - return -1; - } - i++; - } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); -} - -unsigned long mask_read(unsigned long add , unsigned long mask ) { - unsigned long *addr = (unsigned long*) add; - unsigned long val = (*addr & mask); - //xil_printf("MaskRead : 0x%x --> 0x%x \n \r" , add, val); - return val; -} - - - -int -ps7_config(unsigned long * ps7_config_init) -{ - unsigned long *ptr = ps7_config_init; - - unsigned long opcode; // current instruction .. - unsigned long args[16]; // no opcode has so many args ... - int numargs; // number of arguments of this instruction - int j; // general purpose index - - volatile unsigned long *addr; // some variable to make code readable - unsigned long val,mask; // some variable to make code readable - - int finish = -1 ; // loop while this is negative ! - int i = 0; // Timeout variable - - while( finish < 0 ) { - numargs = ptr[0] & 0xF; - opcode = ptr[0] >> 4; - - for( j = 0 ; j < numargs ; j ++ ) - args[j] = ptr[j+1]; - ptr += numargs + 1; - - - switch ( opcode ) { - - case OPCODE_EXIT: - finish = PS7_INIT_SUCCESS; - break; - - case OPCODE_CLEAR: - addr = (unsigned long*) args[0]; - *addr = 0; - break; - - case OPCODE_WRITE: - addr = (unsigned long*) args[0]; - val = args[1]; - *addr = val; - break; - - case OPCODE_MASKWRITE: - addr = (unsigned long*) args[0]; - mask = args[1]; - val = args[2]; - *addr = ( val & mask ) | ( *addr & ~mask); - break; - - case OPCODE_MASKPOLL: - addr = (unsigned long*) args[0]; - mask = args[1]; - i = 0; - while (!(*addr & mask)) { - if (i == PS7_MASK_POLL_TIME) { - finish = PS7_INIT_TIMEOUT; - break; - } - i++; - } - break; - case OPCODE_MASKDELAY: - addr = (unsigned long*) args[0]; - mask = args[1]; - int delay = get_number_of_cycles_for_delay(mask); - perf_reset_and_start_timer(); - while ((*addr < delay)) { - } - break; - default: - finish = PS7_INIT_CORRUPT; - break; - } - } - return finish; -} - -unsigned long *ps7_mio_init_data = ps7_mio_init_data_3_0; -unsigned long *ps7_pll_init_data = ps7_pll_init_data_3_0; -unsigned long *ps7_clock_init_data = ps7_clock_init_data_3_0; -unsigned long *ps7_ddr_init_data = ps7_ddr_init_data_3_0; -unsigned long *ps7_peripherals_init_data = ps7_peripherals_init_data_3_0; - -int -ps7_post_config() -{ - // Get the PS_VERSION on run time - unsigned long si_ver = ps7GetSiliconVersion (); - int ret = -1; - if (si_ver == PCW_SILICON_VERSION_1) { - ret = ps7_config (ps7_post_config_1_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else if (si_ver == PCW_SILICON_VERSION_2) { - ret = ps7_config (ps7_post_config_2_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else { - ret = ps7_config (ps7_post_config_3_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } - return PS7_INIT_SUCCESS; -} - -int -ps7_debug() -{ - // Get the PS_VERSION on run time - unsigned long si_ver = ps7GetSiliconVersion (); - int ret = -1; - if (si_ver == PCW_SILICON_VERSION_1) { - ret = ps7_config (ps7_debug_1_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else if (si_ver == PCW_SILICON_VERSION_2) { - ret = ps7_config (ps7_debug_2_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else { - ret = ps7_config (ps7_debug_3_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } - return PS7_INIT_SUCCESS; -} - -int -ps7_init() -{ - // Get the PS_VERSION on run time - unsigned long si_ver = ps7GetSiliconVersion (); - int ret; - //int pcw_ver = 0; - - if (si_ver == PCW_SILICON_VERSION_1) { - ps7_mio_init_data = ps7_mio_init_data_1_0; - ps7_pll_init_data = ps7_pll_init_data_1_0; - ps7_clock_init_data = ps7_clock_init_data_1_0; - ps7_ddr_init_data = ps7_ddr_init_data_1_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_1_0; - //pcw_ver = 1; - - } else if (si_ver == PCW_SILICON_VERSION_2) { - ps7_mio_init_data = ps7_mio_init_data_2_0; - ps7_pll_init_data = ps7_pll_init_data_2_0; - ps7_clock_init_data = ps7_clock_init_data_2_0; - ps7_ddr_init_data = ps7_ddr_init_data_2_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_2_0; - //pcw_ver = 2; - - } else { - ps7_mio_init_data = ps7_mio_init_data_3_0; - ps7_pll_init_data = ps7_pll_init_data_3_0; - ps7_clock_init_data = ps7_clock_init_data_3_0; - ps7_ddr_init_data = ps7_ddr_init_data_3_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_3_0; - //pcw_ver = 3; - } - - // MIO init - ret = ps7_config (ps7_mio_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // PLL init - ret = ps7_config (ps7_pll_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // Clock init - ret = ps7_config (ps7_clock_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // DDR init - ret = ps7_config (ps7_ddr_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - - - // Peripherals init - ret = ps7_config (ps7_peripherals_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - //xil_printf ("\n PCW Silicon Version : %d.0", pcw_ver); - return PS7_INIT_SUCCESS; -} - - - - -/* For delay calculation using global timer */ - -/* start timer */ - void perf_start_clock(void) -{ - *(volatile unsigned int*)SCU_GLOBAL_TIMER_CONTROL = ((1 << 0) | // Timer Enable - (1 << 3) | // Auto-increment - (0 << 8) // Pre-scale - ); -} - -/* stop timer and reset timer count regs */ - void perf_reset_clock(void) -{ - perf_disable_clock(); - *(volatile unsigned int*)SCU_GLOBAL_TIMER_COUNT_L32 = 0; - *(volatile unsigned int*)SCU_GLOBAL_TIMER_COUNT_U32 = 0; -} - -/* Compute mask for given delay in miliseconds*/ -int get_number_of_cycles_for_delay(unsigned int delay) -{ - // GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) - return (APU_FREQ*delay/(2*1000)); - -} - -/* stop timer */ - void perf_disable_clock(void) -{ - *(volatile unsigned int*)SCU_GLOBAL_TIMER_CONTROL = 0; -} - -void perf_reset_and_start_timer() -{ - perf_reset_clock(); - perf_start_clock(); -} - - - - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.h b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.h deleted file mode 100755 index d9183d4b..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.h +++ /dev/null @@ -1,137 +0,0 @@ - -/****************************************************************************** -* -* (c) Copyright 2010-2014 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy of this -* software and associated documentation files (the "Software"), to deal in the Software -* without restriction, including without limitation the rights to use, copy, modify, merge, -* publish, distribute, sublicense, and/or sell copies of the Software, and to permit -* persons to whom the Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in all copies or -* substantial portions of the Software. -* -* Use of the Software is limited solely to applications: (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING -* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used in advertising or -* otherwise to promote the sale, use or other dealings in this Software without prior written -* authorization from Xilinx. -* -*******************************************************************************/ -/****************************************************************************/ -/** -* -* @file ps7_init.h -* -* This file can be included in FSBL code -* to get prototype of ps7_init() function -* and error codes -* -*****************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - - -//typedef unsigned int u32; - - -/** do we need to make this name more unique ? **/ -//extern u32 ps7_init_data[]; -extern unsigned long * ps7_ddr_init_data; -extern unsigned long * ps7_mio_init_data; -extern unsigned long * ps7_pll_init_data; -extern unsigned long * ps7_clock_init_data; -extern unsigned long * ps7_peripherals_init_data; - - - -#define OPCODE_EXIT 0U -#define OPCODE_CLEAR 1U -#define OPCODE_WRITE 2U -#define OPCODE_MASKWRITE 3U -#define OPCODE_MASKPOLL 4U -#define OPCODE_MASKDELAY 5U -#define NEW_PS7_ERR_CODE 1 - -/* Encode number of arguments in last nibble */ -#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) -#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr -#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val -#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val -#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask -#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask - -/* Returns codes of PS7_Init */ -#define PS7_INIT_SUCCESS (0) // 0 is success in good old C -#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now -#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out -#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init -#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit -#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init - - -/* Silicon Versions */ -#define PCW_SILICON_VERSION_1 0 -#define PCW_SILICON_VERSION_2 1 -#define PCW_SILICON_VERSION_3 2 - -/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ -#define PS7_POST_CONFIG - -/* Freq of all peripherals */ - -#define APU_FREQ 666666687 -#define DDR_FREQ 533333374 -#define DCI_FREQ 10158731 -#define QSPI_FREQ 190476196 -#define SMC_FREQ 10000000 -#define ENET0_FREQ 25000000 -#define ENET1_FREQ 10000000 -#define USB0_FREQ 60000000 -#define USB1_FREQ 60000000 -#define SDIO_FREQ 50000000 -#define UART_FREQ 50000000 -#define SPI_FREQ 10000000 -#define I2C_FREQ 111111115 -#define WDT_FREQ 111111115 -#define TTC_FREQ 50000000 -#define CAN_FREQ 23809523 -#define PCAP_FREQ 200000000 -#define TPIU_FREQ 10000000 -#define FPGA0_FREQ 100000000 -#define FPGA1_FREQ 50000000 -#define FPGA2_FREQ 50000000 -#define FPGA3_FREQ 50000000 - - -/* For delay calculation using global registers*/ -#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 -#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 -#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 -#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 - -int ps7_config( unsigned long*); -int ps7_init(); -int ps7_post_config(); -int ps7_debug(); -char* getPS7MessageInfo(unsigned key); - -void perf_start_clock(void); -void perf_disable_clock(void); -void perf_reset_clock(void); -void perf_reset_and_start_timer(); -int get_number_of_cycles_for_delay(unsigned int delay); -#ifdef __cplusplus -} -#endif - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.html b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.html deleted file mode 100755 index cfb2b0bd..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.html +++ /dev/null @@ -1,148445 +0,0 @@ - - - - -Zynq PS configuration detail - - - -

-
- -
Zynq PS7 Summary Report -
-
-
User Configurations -
- -
-
Select Version: - -
-
-
Zynq Register View -
- -
This design is targeted for xc7z020 board (part number: xc7z020clg484-1) - -
-

Zynq Design Summary

- - - - - - - - - - - - - - - - - - - - - -
-Device - -xc7z020 -
-SpeedGrade - --1 -
-Part - -xc7z020clg484-1 -
-Description - -Zynq PS Configuration Report with register details -
-Vendor - -Xilinx -
-

MIO Table View

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-MIO Pin - -Peripheral - -Signal - -IO Type - -Speed - -Pullup - -Direction -
-MIO 0 - -SD 0 - -cd - -LVCMOS 1.8V - -fast - -enabled - -in -
-MIO 1 - -Quad SPI Flash - -qspi0_ss_b - -LVCMOS 1.8V - -fast - -enabled - -out -
-MIO 2 - -Quad SPI Flash - -qspi0_io[0] - -LVCMOS 1.8V - -fast - -disabled - -inout -
-MIO 3 - -Quad SPI Flash - -qspi0_io[1] - -LVCMOS 1.8V - -fast - -disabled - -inout -
-MIO 4 - -Quad SPI Flash - -qspi0_io[2] - -LVCMOS 1.8V - -fast - -disabled - -inout -
-MIO 5 - -Quad SPI Flash - -qspi0_io[3] - -LVCMOS 1.8V - -fast - -disabled - -inout -
-MIO 6 - -Quad SPI Flash - -qspi0_sclk - -LVCMOS 1.8V - -fast - -disabled - -out -
-MIO 7 - -USB Reset - -reset - -LVCMOS 1.8V - -slow - -disabled - -out -
-MIO 8 - -Quad SPI Flash - -qspi_fbclk - -LVCMOS 1.8V - -slow - -disabled - -out -
-MIO 9 - -GPIO - -gpio[9] - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 10 - -GPIO - -gpio[10] - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 11 - -ENET Reset - -reset - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 12 - -GPIO - -gpio[12] - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 13 - -I2C Reset - -reset - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 14 - -GPIO - -gpio[14] - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 15 - -SD 0 - -wp - -LVCMOS 1.8V - -fast - -enabled - -in -
-MIO 16 - -Enet 0 - -tx_clk - -HSTL 1.8V - -fast - -enabled - -out -
-MIO 17 - -Enet 0 - -txd[0] - -HSTL 1.8V - -fast - -enabled - -out -
-MIO 18 - -Enet 0 - -txd[1] - -HSTL 1.8V - -fast - -enabled - -out -
-MIO 19 - -Enet 0 - -txd[2] - -HSTL 1.8V - -fast - -enabled - -out -
-MIO 20 - -Enet 0 - -txd[3] - -HSTL 1.8V - -fast - -enabled - -out -
-MIO 21 - -Enet 0 - -tx_ctl - -HSTL 1.8V - -fast - -enabled - -out -
-MIO 22 - -Enet 0 - -rx_clk - -HSTL 1.8V - -fast - -enabled - -in -
-MIO 23 - -Enet 0 - -rxd[0] - -HSTL 1.8V - -fast - -enabled - -in -
-MIO 24 - -Enet 0 - -rxd[1] - -HSTL 1.8V - -fast - -enabled - -in -
-MIO 25 - -Enet 0 - -rxd[2] - -HSTL 1.8V - -fast - -enabled - -in -
-MIO 26 - -Enet 0 - -rxd[3] - -HSTL 1.8V - -fast - -enabled - -in -
-MIO 27 - -Enet 0 - -rx_ctl - -HSTL 1.8V - -fast - -enabled - -in -
-MIO 28 - -USB 0 - -data[4] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 29 - -USB 0 - -dir - -LVCMOS 1.8V - -fast - -enabled - -in -
-MIO 30 - -USB 0 - -stp - -LVCMOS 1.8V - -fast - -enabled - -out -
-MIO 31 - -USB 0 - -nxt - -LVCMOS 1.8V - -fast - -enabled - -in -
-MIO 32 - -USB 0 - -data[0] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 33 - -USB 0 - -data[1] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 34 - -USB 0 - -data[2] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 35 - -USB 0 - -data[3] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 36 - -USB 0 - -clk - -LVCMOS 1.8V - -fast - -enabled - -in -
-MIO 37 - -USB 0 - -data[5] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 38 - -USB 0 - -data[6] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 39 - -USB 0 - -data[7] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 40 - -SD 0 - -clk - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 41 - -SD 0 - -cmd - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 42 - -SD 0 - -data[0] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 43 - -SD 0 - -data[1] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 44 - -SD 0 - -data[2] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 45 - -SD 0 - -data[3] - -LVCMOS 1.8V - -fast - -enabled - -inout -
-MIO 46 - -CAN 0 - -rx - -LVCMOS 1.8V - -slow - -enabled - -in -
-MIO 47 - -CAN 0 - -tx - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 48 - -UART 1 - -tx - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 49 - -UART 1 - -rx - -LVCMOS 1.8V - -slow - -enabled - -in -
-MIO 50 - -I2C 0 - -scl - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 51 - -I2C 0 - -sda - -LVCMOS 1.8V - -slow - -enabled - -inout -
-MIO 52 - -Enet 0 - -mdc - -LVCMOS 1.8V - -slow - -enabled - -out -
-MIO 53 - -Enet 0 - -mdio - -LVCMOS 1.8V - -slow - -enabled - -inout -
-

DDR Memory information

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Parameter name - -Value - -Description -
-Enable DDR - -1 - -Enable DDR Controller of Zynq PS -
-Enable DDR - -1 - -Enable DDR Controller of Zynq PS -
-Memory Part - -MT41J256M8 HX-15E - - -
-DRAM bus width - -32 Bit - -Select the desired data width. Refer to the Thechnical Reference Manual(TRM) for a detailed list of supported DDR data widths -
-ECC - -Disabled - -ECC is supported only for data width of 16-bit -
-BURST Length (lppdr only) - -8 - -Select the burst Length. It refers to the amount of data read/written after a read/write command is presented to the controller -
-Internal Vref - -1 - - -
-Operating Frequency (MHz) - -533.333333 - -Chose the clock period for the desired frequency. The allowed freq range (200 - 667 MHz) is a function of FPGA part and FPGA speed grade -
-HIGH temperature - -Normal (0-85) - -Select the operating temparature -
-DRAM IC bus width - -8 Bits - -Provide the width of the DRAM chip -
-DRAM Device Capacity - -2048 MBits - - -
-Speed Bin - -DDR3_1066F - -Provide the Speed Bin -
-BANK Address Count - -3 - -Defines the bank to which an active an ACTIVE, READ, WRITE, or Precharge Command is being applied -
-ROW Address Count - -15 - -Provide the Row address for ACTIVE commands -
-COLUMN Address Count - -10 - -Provide the Row address for READ/WRITE commands -
-CAS Latency - -7 - -Select the Column Access Strobe (CAS) Latency. It refers to the amount of time it takes for data to appear on the pins of the memory module -
-CAS Write Latency - -6 - -Select the CAS Write Latency -
-RAS to CAS Delay - -7 - -Provide the row address to column address delay time. tRCD is t he time required between the memory controller asserting a row address strobe (RAS), and then asserting the column address strobe (CAS) -
-RECHARGE Time - -7 - -Precharge Time (tRP) is the number of clock cycles needed o terminate acces s to an open row of memory, and open access to the next row -
-tRC (ns ) - -49.5 - -Provide the Row cycle time tRC (ns) -
-tRASmin ( ns ) - -36.0 - -tRASmin (ns) is the minimum number of clock cycles required between an Active command and issuing the Precharge command -
-tFAW - -30.0 - -It restricts the number of activates that can be done within a certain window of time -
-ADDITIVE Latency - -0 - -Provide the Additive Latency (ns). Increases the efficiency of the command and data bus for sustainable bandwidths -
-Write levelling - -1 - - -
-Read gate - -1 - - -
-Read gate - -1 - - -
-DQS to Clock delay [0] (ns) - -0.217 - -The daly difference of each DQS path delay subtracted from the clock path delay -
-DQS to Clock delay [1] (ns) - -0.133 - -The daly difference of each DQS path delay subtracted from the clock path delay -
-DQS to Clock delay [2] (ns) - -0.089 - -The daly difference of each DQS path delay subtracted from the clock path delay -
-DQS to Clock delay [3] (ns) - -0.248 - -The daly difference of each DQS path delay subtracted from the clock path delay -
-Board delay [0] (ns) - -0.537 - -The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) -
-Board delay [1] (ns) - -0.442 - -The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) -
-Board delay [2] (ns) - -0.464 - -The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) -
-Board delay [3] (ns) - -0.521 - -The average of the data midpoint delay, of the data delays associated with a byte lane (DDR_DQ, DDR_DM) averaged with the midpoint of the cloc kdelays (DDR_CK, DR_CK_N) -
-

PS Clocks information

-

PS Reference Clock : 33.333333

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Peripheral - -PLL source - -Frequency (MHz) -
-CPU 6x Freq (MHz) - -ARM PLL - -666.666687 -
-QSPI Flash Freq (MHz) - -ARM PLL - -190.476196 -
-ENET0 Freq (MHz) - -IO PLL - -25.000000 -
-SDIO Freq (MHz) - -IO PLL - -50.000000 -
-UART Freq (MHz) - -IO PLL - -50.000000 -
-CAN Freq (MHz) - -IO PLL - -23.809523 -
-FPGA0 Freq (MHz) - -IO PLL - -100.000000 -
-FPGA1 Freq (MHz) - -IO PLL - -50.000000 -
-FPGA2 Freq (MHz) - -IO PLL - -50.000000 -
-FPGA3 Freq (MHz) - -IO PLL - -50.000000 -
-

ps7_pll_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -ARM_PLL_CFG - - -0XF8000110 - -32 - -RW - -0x000000 - -ARM PLL Configuration -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_CLK_CTRL - - -0XF8000120 - -32 - -RW - -0x000000 - -CPU Clock Control -
- -DDR_PLL_CFG - - -0XF8000114 - -32 - -RW - -0x000000 - -DDR PLL Configuration -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_CLK_CTRL - - -0XF8000124 - -32 - -RW - -0x000000 - -DDR Clock Control -
- -IO_PLL_CFG - - -0XF8000118 - -32 - -RW - -0x000000 - -IO PLL Configuration -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_pll_init_data_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

PLL SLCR REGISTERS

-

ARM PLL INIT

-

Register ( slcr )ARM_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CFG - -0XF8000110 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -fa - -fa000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before syaing locked. -
-ARM_PLL_CFG@0XF8000110 - -31:0 - -3ffff0 - - - -fa220 - -ARM PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -28 - -28000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -7f000 - - - -28000 - -ARM PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -10 - -ARM PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -1 - -ARM PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -0 - -ARM PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ARM_PLL_LOCK - -0:0 - -1 - -1 - -1 - -ARM PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -1 - - - -1 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value): 0: PLL mode is set based on pin strap setting. 1: PLL bypassed regardless of the pin strapping. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -0 - -ARM PLL Control -
-

-

Register ( slcr )ARM_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_CLK_CTRL - -0XF8000120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the CPU clock: 0x: ARM PLL 10: DDR PLL 11: IO PLL This field is reset by POR only. -
-DIVISOR - -13:8 - -3f00 - -2 - -200 - -Frequency divisor for the CPU clock source. -
-CPU_6OR4XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -CPU_6x4x Clock control: 0: disable, 1: enable -
-CPU_3OR2XCLKACT - -25:25 - -2000000 - -1 - -2000000 - -CPU_3x2x Clock control: 0: disable, 1: enable -
-CPU_2XCLKACT - -26:26 - -4000000 - -1 - -4000000 - -CPU_2x Clock control: 0: disable, 1: enable -
-CPU_1XCLKACT - -27:27 - -8000000 - -1 - -8000000 - -CPU_1x Clock control: 0: disable, 1: enable -
-CPU_PERI_CLKACT - -28:28 - -10000000 - -1 - -10000000 - -Clock active: 0: Clock is disabled 1: Clock is enabled -
-ARM_CLK_CTRL@0XF8000120 - -31:0 - -1f003f30 - - - -1f000200 - -CPU Clock Control -
-

-

DDR PLL INIT

-

Register ( slcr )DDR_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CFG - -0XF8000114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. -
-LOCK_CNT - -21:12 - -3ff000 - -12c - -12c000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. -
-DDR_PLL_CFG@0XF8000114 - -31:0 - -3ffff0 - - - -12c220 - -DDR PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -20 - -20000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for the PLL. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -7f000 - - - -20000 - -DDR PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -10 - -DDR PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -1 - -DDR PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -PLL reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -0 - -DDR PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_PLL_LOCK - -1:1 - -2 - -1 - -2 - -DDR PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -2 - - - -2 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -DDR PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -0 - -DDR PLL Control -
-

-

Register ( slcr )DDR_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_CLK_CTRL - -0XF8000124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_3XCLKACT - -0:0 - -1 - -1 - -1 - -DDR_3x Clock control: 0: disable, 1: enable -
-DDR_2XCLKACT - -1:1 - -2 - -1 - -2 - -DDR_2x Clock control: 0: disable, 1: enable -
-DDR_3XCLK_DIVISOR - -25:20 - -3f00000 - -2 - -200000 - -Frequency divisor for the ddr_3x clock -
-DDR_2XCLK_DIVISOR - -31:26 - -fc000000 - -3 - -c000000 - -Frequency divisor for the ddr_2x clock -
-DDR_CLK_CTRL@0XF8000124 - -31:0 - -fff00003 - - - -c200003 - -DDR Clock Control -
-

-

IO PLL INIT

-

Register ( slcr )IO_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CFG - -0XF8000118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -c - -c0 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. -
-LOCK_CNT - -21:12 - -3ff000 - -145 - -145000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned with a certain window before staying locked. -
-IO_PLL_CFG@0XF8000118 - -31:0 - -3ffff0 - - - -1452c0 - -IO PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -1e - -1e000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into reset mode. Refer to the Zynq-7000 TRM, UG585, Clocks chapter for CP/RES/CNT values for programming the PLL. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -7f000 - - - -1e000 - -IO PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -10 - -IO PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -1 - -IO PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -PLL Reset control: 0: de-assert (PLL operating) 1: assert (PLL held in reset) -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -0 - -IO PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IO_PLL_LOCK - -2:2 - -4 - -1 - -4 - -IO PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -4 - - - -4 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -IO PLL Bypass override control: PLL_BYPASS_QUAL = 0 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL = 1 (QUAL bit default value) 0: PLL mode is set based on pin strap setting. 1: PLL bypass is enabled regardless of the pin strapping. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -0 - -IO PLL Control -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_clock_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DCI_CLK_CTRL - - -0XF8000128 - -32 - -RW - -0x000000 - -DCI clock control -
- -GEM0_RCLK_CTRL - - -0XF8000138 - -32 - -RW - -0x000000 - -GigE 0 Rx Clock and Rx Signals Select -
- -GEM0_CLK_CTRL - - -0XF8000140 - -32 - -RW - -0x000000 - -GigE 0 Ref Clock Control -
- -LQSPI_CLK_CTRL - - -0XF800014C - -32 - -RW - -0x000000 - -Quad SPI Ref Clock Control -
- -SDIO_CLK_CTRL - - -0XF8000150 - -32 - -RW - -0x000000 - -SDIO Ref Clock Control -
- -UART_CLK_CTRL - - -0XF8000154 - -32 - -RW - -0x000000 - -UART Ref Clock Control -
- -CAN_CLK_CTRL - - -0XF800015C - -32 - -RW - -0x000000 - -CAN Ref Clock Control -
- -CAN_MIOCLK_CTRL - - -0XF8000160 - -32 - -RW - -0x000000 - -CAN MIO Clock Control -
- -PCAP_CLK_CTRL - - -0XF8000168 - -32 - -RW - -0x000000 - -PCAP Clock Control -
- -FPGA0_CLK_CTRL - - -0XF8000170 - -32 - -RW - -0x000000 - -PL Clock 0 Output control -
- -FPGA1_CLK_CTRL - - -0XF8000180 - -32 - -RW - -0x000000 - -PL Clock 1 Output control -
- -FPGA2_CLK_CTRL - - -0XF8000190 - -32 - -RW - -0x000000 - -PL Clock 2 output control -
- -FPGA3_CLK_CTRL - - -0XF80001A0 - -32 - -RW - -0x000000 - -PL Clock 3 output control -
- -CLK_621_TRUE - - -0XF80001C4 - -32 - -RW - -0x000000 - -CPU Clock Ratio Mode select -
- -APER_CLK_CTRL - - -0XF800012C - -32 - -RW - -0x000000 - -AMBA Peripheral Clock Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_clock_init_data_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

CLOCK CONTROL SLCR REGISTERS

-

Register ( slcr )DCI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DCI_CLK_CTRL - -0XF8000128 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -DCI clock control - 0: disable, 1: enable -
-DIVISOR0 - -13:8 - -3f00 - -23 - -2300 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-DCI_CLK_CTRL@0XF8000128 - -31:0 - -3f03f01 - - - -302301 - -DCI clock control -
-

-

Register ( slcr )GEM0_RCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_RCLK_CTRL - -0XF8000138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Ethernet Controler 0 Rx Clock control 0: disable, 1: enable -
-SRCSEL - -4:4 - -10 - -0 - -0 - -Select the source of the Rx clock, control and data signals: 0: MIO 1: EMIO -
-GEM0_RCLK_CTRL@0XF8000138 - -31:0 - -11 - - - -1 - -GigE 0 Rx Clock and Rx Signals Select -
-

-

Register ( slcr )GEM0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_CLK_CTRL - -0XF8000140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Ethernet Controller 0 Reference Clock control 0: disable, 1: enable -
-SRCSEL - -6:4 - -70 - -0 - -0 - -Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock -
-DIVISOR - -13:8 - -3f00 - -8 - -800 - -First divisor for Ethernet controller 0 source clock. -
-DIVISOR1 - -25:20 - -3f00000 - -5 - -500000 - -Second divisor for Ethernet controller 0 source clock. -
-GEM0_CLK_CTRL@0XF8000140 - -31:0 - -3f03f71 - - - -500801 - -GigE 0 Ref Clock Control -
-

-

Register ( slcr )LQSPI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LQSPI_CLK_CTRL - -0XF800014C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Quad SPI Controller Reference Clock control 0: disable, 1: enable -
-SRCSEL - -5:4 - -30 - -2 - -20 - -Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL -
-DIVISOR - -13:8 - -3f00 - -7 - -700 - -Divisor for Quad SPI Controller source clock. -
-LQSPI_CLK_CTRL@0XF800014C - -31:0 - -3f31 - - - -721 - -Quad SPI Ref Clock Control -
-

-

Register ( slcr )SDIO_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SDIO_CLK_CTRL - -0XF8000150 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -SDIO Controller 0 Clock control. 0: disable, 1: enable -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -SDIO Controller 1 Clock control. 0: disable, 1: enable -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-SDIO_CLK_CTRL@0XF8000150 - -31:0 - -3f33 - - - -1401 - -SDIO Ref Clock Control -
-

-

Register ( slcr )UART_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-UART_CLK_CTRL - -0XF8000154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -0 - -0 - -UART 0 Reference clock control. 0: disable, 1: enable -
-CLKACT1 - -1:1 - -2 - -1 - -2 - -UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Divisor for UART Controller source clock. -
-UART_CLK_CTRL@0XF8000154 - -31:0 - -3f33 - - - -1402 - -UART Ref Clock Control -
-

-

Register ( slcr )CAN_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_CLK_CTRL - -0XF800015C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -CAN 0 Reference Clock active: 0: Clock is disabled 1: Clock is enabled -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -CAN 1 Reference Clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -e - -e00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider. -
-CAN_CLK_CTRL@0XF800015C - -31:0 - -3f03f33 - - - -300e01 - -CAN Ref Clock Control -
-

-

Register ( slcr )CAN_MIOCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_MIOCLK_CTRL - -0XF8000160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CAN0_MUX - -5:0 - -3f - -0 - -0 - -CAN 0 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN0_REF_SEL - -6:6 - -40 - -0 - -0 - -CAN 0 Reference Clock selection: 0: From internal PLL 1: From MIO based on the next field -
-CAN1_MUX - -21:16 - -3f0000 - -0 - -0 - -CAN 1 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN1_REF_SEL - -22:22 - -400000 - -0 - -0 - -CAN 1 Reference Clock selection: 0: From internal PLL. 1: From MIO based on the next field -
-CAN_MIOCLK_CTRL@0XF8000160 - -31:0 - -7f007f - - - -0 - -CAN MIO Clock Control -
-

-

Register ( slcr )PCAP_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PCAP_CLK_CTRL - -0XF8000168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-PCAP_CLK_CTRL@0XF8000168 - -31:0 - -3f31 - - - -501 - -PCAP Clock Control -
-

-

Register ( slcr )FPGA0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA0_CLK_CTRL - -0XF8000170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -a - -a00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA0_CLK_CTRL@0XF8000170 - -31:0 - -3f03f30 - - - -100a00 - -PL Clock 0 Output control -
-

-

Register ( slcr )FPGA1_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 1 Output control -
-

-

Register ( slcr )FPGA2_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 2 output control -
-

-

Register ( slcr )FPGA3_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 3 output control -
-

-

Register ( slcr )CLK_621_TRUE

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CLK_621_TRUE - -0XF80001C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLK_621_TRUE - -0:0 - -1 - -1 - -1 - -Select the CPU clock ratio: (When this register changes, no access are allowed to OCM.) 0: 4:2:1 1: 6:2:1 -
-CLK_621_TRUE@0XF80001C4 - -31:0 - -1 - - - -1 - -CPU Clock Ratio Mode select -
-

-

Register ( slcr )APER_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-APER_CLK_CTRL - -0XF800012C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DMA_CPU_2XCLKACT - -0:0 - -1 - -1 - -1 - -DMA controller AMBA Clock control 0: disable, 1: enable -
-USB0_CPU_1XCLKACT - -2:2 - -4 - -1 - -4 - -USB controller 0 AMBA Clock control 0: disable, 1: enable -
-USB1_CPU_1XCLKACT - -3:3 - -8 - -1 - -8 - -USB controller 1 AMBA Clock control 0: disable, 1: enable -
-GEM0_CPU_1XCLKACT - -6:6 - -40 - -1 - -40 - -Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable -
-GEM1_CPU_1XCLKACT - -7:7 - -80 - -0 - -0 - -Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable -
-SDI0_CPU_1XCLKACT - -10:10 - -400 - -1 - -400 - -SDIO controller 0 AMBA Clock 0: disable, 1: enable -
-SDI1_CPU_1XCLKACT - -11:11 - -800 - -0 - -0 - -SDIO controller 1 AMBA Clock control 0: disable, 1: enable -
-SPI0_CPU_1XCLKACT - -14:14 - -4000 - -0 - -0 - -SPI 0 AMBA Clock control 0: disable, 1: enable -
-SPI1_CPU_1XCLKACT - -15:15 - -8000 - -0 - -0 - -SPI 1 AMBA Clock control 0: disable, 1: enable -
-CAN0_CPU_1XCLKACT - -16:16 - -10000 - -1 - -10000 - -CAN 0 AMBA Clock control 0: disable, 1: enable -
-CAN1_CPU_1XCLKACT - -17:17 - -20000 - -0 - -0 - -CAN 1 AMBA Clock control 0: disable, 1: enable -
-I2C0_CPU_1XCLKACT - -18:18 - -40000 - -1 - -40000 - -I2C 0 AMBA Clock control 0: disable, 1: enable -
-I2C1_CPU_1XCLKACT - -19:19 - -80000 - -1 - -80000 - -I2C 1 AMBA Clock control 0: disable, 1: enable -
-UART0_CPU_1XCLKACT - -20:20 - -100000 - -0 - -0 - -UART 0 AMBA Clock control 0: disable, 1: enable -
-UART1_CPU_1XCLKACT - -21:21 - -200000 - -1 - -200000 - -UART 1 AMBA Clock control 0: disable, 1: enable -
-GPIO_CPU_1XCLKACT - -22:22 - -400000 - -1 - -400000 - -GPIO AMBA Clock control 0: disable, 1: enable -
-LQSPI_CPU_1XCLKACT - -23:23 - -800000 - -1 - -800000 - -Quad SPI AMBA Clock control 0: disable, 1: enable -
-SMC_CPU_1XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -SMC AMBA Clock control 0: disable, 1: enable -
-APER_CLK_CTRL@0XF800012C - -31:0 - -1ffcccd - - - -1ed044d - -AMBA Peripheral Clock Control -
-

-

THIS SHOULD BE BLANK

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_ddr_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control -
- -Two_rank_cfg - - -0XF8006004 - -32 - -RW - -0x000000 - -Two Rank Configuration -
- -HPR_reg - - -0XF8006008 - -32 - -RW - -0x000000 - -HPR Queue control -
- -LPR_reg - - -0XF800600C - -32 - -RW - -0x000000 - -LPR Queue control -
- -WR_reg - - -0XF8006010 - -32 - -RW - -0x000000 - -WR Queue control -
- -DRAM_param_reg0 - - -0XF8006014 - -32 - -RW - -0x000000 - -DRAM Parameters 0 -
- -DRAM_param_reg1 - - -0XF8006018 - -32 - -RW - -0x000000 - -DRAM Parameters 1 -
- -DRAM_param_reg2 - - -0XF800601C - -32 - -RW - -0x000000 - -DRAM Parameters 2 -
- -DRAM_param_reg3 - - -0XF8006020 - -32 - -RW - -0x000000 - -DRAM Parameters 3 -
- -DRAM_param_reg4 - - -0XF8006024 - -32 - -RW - -0x000000 - -DRAM Parameters 4 -
- -DRAM_init_param - - -0XF8006028 - -32 - -RW - -0x000000 - -DRAM Initialization Parameters -
- -DRAM_EMR_reg - - -0XF800602C - -32 - -RW - -0x000000 - -DRAM EMR2, EMR3 access -
- -DRAM_EMR_MR_reg - - -0XF8006030 - -32 - -RW - -0x000000 - -DRAM EMR, MR access -
- -DRAM_burst8_rdwr - - -0XF8006034 - -32 - -RW - -0x000000 - -DRAM Burst 8 read/write -
- -DRAM_disable_DQ - - -0XF8006038 - -32 - -RW - -0x000000 - -DRAM Disable DQ -
- -DRAM_addr_map_bank - - -0XF800603C - -32 - -RW - -0x000000 - -Row/Column address bits -
- -DRAM_addr_map_col - - -0XF8006040 - -32 - -RW - -0x000000 - -Column address bits -
- -DRAM_addr_map_row - - -0XF8006044 - -32 - -RW - -0x000000 - -Select DRAM row address bits -
- -DRAM_ODT_reg - - -0XF8006048 - -32 - -RW - -0x000000 - -DRAM ODT control -
- -phy_cmd_timeout_rddata_cpt - - -0XF8006050 - -32 - -RW - -0x000000 - -PHY command time out and read data capture FIFO -
- -DLL_calib - - -0XF8006058 - -32 - -RW - -0x000000 - -DLL calibration -
- -ODT_delay_hold - - -0XF800605C - -32 - -RW - -0x000000 - -ODT delay and ODT hold -
- -ctrl_reg1 - - -0XF8006060 - -32 - -RW - -0x000000 - -Controller 1 -
- -ctrl_reg2 - - -0XF8006064 - -32 - -RW - -0x000000 - -Controller 2 -
- -ctrl_reg3 - - -0XF8006068 - -32 - -RW - -0x000000 - -Controller 3 -
- -ctrl_reg4 - - -0XF800606C - -32 - -RW - -0x000000 - -Controller 4 -
- -ctrl_reg5 - - -0XF8006078 - -32 - -RW - -0x000000 - -Controller register 5 -
- -ctrl_reg6 - - -0XF800607C - -32 - -RW - -0x000000 - -Controller register 6 -
- -CHE_T_ZQ - - -0XF80060A4 - -32 - -RW - -0x000000 - -ZQ parameters -
- -CHE_T_ZQ_Short_Interval_Reg - - -0XF80060A8 - -32 - -RW - -0x000000 - -Misc parameters -
- -deep_pwrdwn_reg - - -0XF80060AC - -32 - -RW - -0x000000 - -Deep powerdown (LPDDR2) -
- -reg_2c - - -0XF80060B0 - -32 - -RW - -0x000000 - -Training control -
- -reg_2d - - -0XF80060B4 - -32 - -RW - -0x000000 - -Misc Debug -
- -dfi_timing - - -0XF80060B8 - -32 - -RW - -0x000000 - -DFI timing -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
- -CHE_CORR_ECC_LOG_REG_OFFSET - - -0XF80060C8 - -32 - -RW - -0x000000 - -ECC error correction -
- -CHE_UNCORR_ECC_LOG_REG_OFFSET - - -0XF80060DC - -32 - -RW - -0x000000 - -ECC unrecoverable error status -
- -CHE_ECC_STATS_REG_OFFSET - - -0XF80060F0 - -32 - -RW - -0x000000 - -ECC error count -
- -ECC_scrub - - -0XF80060F4 - -32 - -RW - -0x000000 - -ECC mode/scrub -
- -phy_rcvr_enable - - -0XF8006114 - -32 - -RW - -0x000000 - -Phy receiver enable register -
- -PHY_Config - - -0XF8006118 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF800611C - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF8006120 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF8006124 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -phy_init_ratio - - -0XF800612C - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006130 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006134 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006138 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006140 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006144 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006148 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF800614C - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006154 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006158 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF800615C - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006160 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_we_cfg - - -0XF8006168 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -phy_we_cfg - - -0XF800616C - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -phy_we_cfg - - -0XF8006170 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -phy_we_cfg - - -0XF8006174 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -wr_data_slv - - -0XF800617C - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -wr_data_slv - - -0XF8006180 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -wr_data_slv - - -0XF8006184 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -wr_data_slv - - -0XF8006188 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -reg_64 - - -0XF8006190 - -32 - -RW - -0x000000 - -Training control 2 -
- -reg_65 - - -0XF8006194 - -32 - -RW - -0x000000 - -Training control 3 -
- -page_mask - - -0XF8006204 - -32 - -RW - -0x000000 - -Page mask -
- -axi_priority_wr_port - - -0XF8006208 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF800620C - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF8006210 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF8006214 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_rd_port - - -0XF8006218 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF800621C - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF8006220 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF8006224 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -lpddr_ctrl0 - - -0XF80062A8 - -32 - -RW - -0x000000 - -LPDDR2 Control 0 -
- -lpddr_ctrl1 - - -0XF80062AC - -32 - -RW - -0x000000 - -LPDDR2 Control 1 -
- -lpddr_ctrl2 - - -0XF80062B0 - -32 - -RW - -0x000000 - -LPDDR2 Control 2 -
- -lpddr_ctrl3 - - -0XF80062B4 - -32 - -RW - -0x000000 - -LPDDR2 Control 3 -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control -
-

-

ps7_ddr_init_data_3_0

- - - - - - - - - -

DDR INITIALIZATION

-

LOCK DDR

-

Register ( slcr )ddrc_ctrl

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -0 - -0 - -Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -80 - -DDRC Control -
-

-

Register ( slcr )Two_rank_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Two_rank_cfg - -0XF8006004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rfc_nom_x32 - -11:0 - -fff - -81 - -81 - -tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. -
-reserved_reg_ddrc_active_ranks - -13:12 - -3000 - -1 - -1000 - -Reserved. Do not modify. -
-reg_ddrc_addrmap_cs_bit0 - -18:14 - -7c000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. -
-Two_rank_cfg@0XF8006004 - -31:0 - -7ffff - - - -1081 - -Two Rank Configuration -
-

-

Register ( slcr )HPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-HPR_reg - -0XF8006008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_hpr_min_non_critical_x32 - -10:0 - -7ff - -f - -f - -Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). -
-reg_ddrc_hpr_max_starve_x32 - -21:11 - -3ff800 - -f - -7800 - -Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_hpr_xact_run_length - -25:22 - -3c00000 - -f - -3c00000 - -Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. -
-HPR_reg@0XF8006008 - -31:0 - -3ffffff - - - -3c0780f - -HPR Queue control -
-

-

Register ( slcr )LPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LPR_reg - -0XF800600C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpr_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks -
-reg_ddrc_lpr_max_starve_x32 - -21:11 - -3ff800 - -2 - -1000 - -Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_lpr_xact_run_length - -25:22 - -3c00000 - -8 - -2000000 - -Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available -
-LPR_reg@0XF800600C - -31:0 - -3ffffff - - - -2001001 - -LPR Queue control -
-

-

Register ( slcr )WR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-WR_reg - -0XF8006010 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_w_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clock cycles that the WR queue is guaranteed to be non-critical. -
-reg_ddrc_w_xact_run_length - -14:11 - -7800 - -8 - -4000 - -Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available -
-reg_ddrc_w_max_starve_x32 - -25:15 - -3ff8000 - -2 - -10000 - -Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. -
-WR_reg@0XF8006010 - -31:0 - -3ffffff - - - -14001 - -WR Queue control -
-

-

Register ( slcr )DRAM_param_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg0 - -0XF8006014 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rc - -5:0 - -3f - -1b - -1b - -tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. -
-reg_ddrc_t_rfc_min - -13:6 - -3fc0 - -56 - -1580 - -tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. -
-reg_ddrc_post_selfref_gap_x32 - -20:14 - -1fc000 - -10 - -40000 - -Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related -
-DRAM_param_reg0@0XF8006014 - -31:0 - -1fffff - - - -4159b - -DRAM Parameters 0 -
-

-

Register ( slcr )DRAM_param_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg1 - -0XF8006018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wr2pre - -4:0 - -1f - -12 - -12 - -Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. -
-reg_ddrc_powerdown_to_x32 - -9:5 - -3e0 - -6 - -c0 - -After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. -
-reg_ddrc_t_faw - -15:10 - -fc00 - -10 - -4000 - -tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. -
-reg_ddrc_t_ras_max - -21:16 - -3f0000 - -24 - -240000 - -tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. -
-reg_ddrc_t_ras_min - -26:22 - -7c00000 - -14 - -5000000 - -tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. -
-reg_ddrc_t_cke - -31:28 - -f0000000 - -4 - -40000000 - -Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. -
-DRAM_param_reg1@0XF8006018 - -31:0 - -f7ffffff - - - -452440d2 - -DRAM Parameters 1 -
-

-

Register ( slcr )DRAM_param_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg2 - -0XF800601C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_write_latency - -4:0 - -1f - -5 - -5 - -Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. In non-LPDDR mode, the minimum DRAM Write Latency (DDR2) supported is 3. In LPDDR mode, the required DRAM Write Latency of 1 is supported. Since write latency (CWL) min is 3, and DDR2 CWL is CL-1, the min (DDR2) CL supported is 4 -
-reg_ddrc_rd2wr - -9:5 - -3e0 - -7 - -e0 - -Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. -
-reg_ddrc_wr2rd - -14:10 - -7c00 - -e - -3800 - -Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. -
-reg_ddrc_t_xp - -19:15 - -f8000 - -4 - -20000 - -tXP: Minimum time after power down exit to any operation. DRAM related. -
-reg_ddrc_pad_pd - -22:20 - -700000 - -0 - -0 - -If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. -
-reg_ddrc_rd2pre - -27:23 - -f800000 - -4 - -2000000 - -Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. -
-reg_ddrc_t_rcd - -31:28 - -f0000000 - -7 - -70000000 - -tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. -
-DRAM_param_reg2@0XF800601C - -31:0 - -ffffffff - - - -720238e5 - -DRAM Parameters 2 -
-

-

Register ( slcr )DRAM_param_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg3 - -0XF8006020 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ccd - -4:2 - -1c - -4 - -10 - -tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. -
-reg_ddrc_t_rrd - -7:5 - -e0 - -4 - -80 - -tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED -
-reg_ddrc_refresh_margin - -11:8 - -f00 - -2 - -200 - -Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. -
-reg_ddrc_t_rp - -15:12 - -f000 - -7 - -7000 - -tRP - Minimum time from precharge to activate of same bank. DRAM RELATED -
-reg_ddrc_refresh_to_x32 - -20:16 - -1f0000 - -8 - -80000 - -If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. -
-reg_ddrc_mobile - -22:22 - -400000 - -0 - -0 - -0: DDR2 or DDR3 device. 1: LPDDR2 device. -
-reg_ddrc_en_dfi_dram_clk_disable - -23:23 - -800000 - -0 - -0 - -Enables the assertion of ddrc_dfi_dram_clk_disable. In DDR2/DDR3, only asserted in Self Refresh. In mDDR/LPDDR2, can be asserted in following: - during normal operation (Clock Stop), - in Power Down - in Self Refresh - In Deep Power Down -
-reg_ddrc_read_latency - -28:24 - -1f000000 - -7 - -7000000 - -Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. -
-reg_phy_mode_ddr1_ddr2 - -29:29 - -20000000 - -1 - -20000000 - -unused -
-reg_ddrc_dis_pad_pd - -30:30 - -40000000 - -0 - -0 - -1: disable the pad power down feature 0: Enable the pad power down feature. -
-DRAM_param_reg3@0XF8006020 - -31:0 - -7fdffffc - - - -27087290 - -DRAM Parameters 3 -
-

-

Register ( slcr )DRAM_param_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg4 - -0XF8006024 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_en_2t_timing_mode - -0:0 - -1 - -0 - -0 - -1: DDRC will use 2T timing 0: DDRC will use 1T timing -
-reg_ddrc_prefer_write - -1:1 - -2 - -0 - -0 - -1: Bank selector prefers writes over reads -
-reg_ddrc_mr_wr - -6:6 - -40 - -0 - -0 - -A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. -
-reg_ddrc_mr_addr - -8:7 - -180 - -0 - -0 - -DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 -
-reg_ddrc_mr_data - -24:9 - -1fffe00 - -0 - -0 - -DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. -
-ddrc_reg_mr_wr_busy - -25:25 - -2000000 - -0 - -0 - -Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. -
-reg_ddrc_mr_type - -26:26 - -4000000 - -0 - -0 - -Indicates whether the Mode register operation is read or write 0: write 1: read -
-reg_ddrc_mr_rdata_valid - -27:27 - -8000000 - -0 - -0 - -This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. -
-DRAM_param_reg4@0XF8006024 - -31:0 - -fffffc3 - - - -0 - -DRAM Parameters 4 -
-

-

Register ( slcr )DRAM_init_param

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_init_param - -0XF8006028 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_final_wait_x32 - -6:0 - -7f - -7 - -7 - -Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. -
-reg_ddrc_pre_ocd_x32 - -10:7 - -780 - -0 - -0 - -Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. -
-reg_ddrc_t_mrd - -13:11 - -3800 - -4 - -2000 - -tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. -
-DRAM_init_param@0XF8006028 - -31:0 - -3fff - - - -2007 - -DRAM Initialization Parameters -
-

-

Register ( slcr )DRAM_EMR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_reg - -0XF800602C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_emr2 - -15:0 - -ffff - -8 - -8 - -DDR2: Value loaded into EMR2 register DDR3: Value loaded into MR2 register LPDDR2: Value loaded into MR3 register -
-reg_ddrc_emr3 - -31:16 - -ffff0000 - -0 - -0 - -DDR2: Value loaded into EMR3 register DDR3: Value loaded into MR3 register. Set Bit[2:0] to 3'b000. These bits are set appropriately by the Controller during Read Data eye training and Read DQS gate leveling. LPDDR2: Unused -
-DRAM_EMR_reg@0XF800602C - -31:0 - -ffffffff - - - -8 - -DRAM EMR2, EMR3 access -
-

-

Register ( slcr )DRAM_EMR_MR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_MR_reg - -0XF8006030 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr - -15:0 - -ffff - -930 - -930 - -DDR2: Value loaded into MR register. (Bit[8] is for DLL and the setting here is ignored. Controller sets this bit appropriately DDR3: Value loaded into MR0 register. LPDDR2: Value loaded into MR1 register -
-reg_ddrc_emr - -31:16 - -ffff0000 - -4 - -40000 - -DDR2: Value loaded into EMR1register. (Bits[9:7] are for OCD and the setting in this reg is ignored. Controller sets this bits appropriately during initialization DDR3: Value loaded into MR1 register. Set Bit[7] to 0. This bit is set appropriately by the Controller during Write Leveling LPDDR2: Value loaded into MR2 register -
-DRAM_EMR_MR_reg@0XF8006030 - -31:0 - -ffffffff - - - -40930 - -DRAM EMR, MR access -
-

-

Register ( slcr )DRAM_burst8_rdwr

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_burst8_rdwr - -0XF8006034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_burst_rdwr - -3:0 - -f - -4 - -4 - -Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved -
-reg_ddrc_pre_cke_x1024 - -13:4 - -3ff0 - -105 - -1050 - -Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) -
-reg_ddrc_post_cke_x1024 - -25:16 - -3ff0000 - -1 - -10000 - -Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. -
-reg_ddrc_burstchop - -28:28 - -10000000 - -0 - -0 - -Feature not supported. When 1, Controller is out in burstchop mode. -
-DRAM_burst8_rdwr@0XF8006034 - -31:0 - -13ff3fff - - - -11054 - -DRAM Burst 8 read/write -
-

-

Register ( slcr )DRAM_disable_DQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_disable_DQ - -0XF8006038 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_force_low_pri_n - -0:0 - -1 - -0 - -0 - -Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. -
-reg_ddrc_dis_dq - -1:1 - -2 - -0 - -0 - -When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. -
-DRAM_disable_DQ@0XF8006038 - -31:0 - -3 - - - -0 - -DRAM Disable DQ -
-

-

Register ( slcr )DRAM_addr_map_bank

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_bank - -0XF800603C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_bank_b0 - -3:0 - -f - -7 - -7 - -Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b1 - -7:4 - -f0 - -7 - -70 - -Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b2 - -11:8 - -f00 - -7 - -700 - -Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. -
-reg_ddrc_addrmap_col_b5 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b6 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-DRAM_addr_map_bank@0XF800603C - -31:0 - -fffff - - - -777 - -Row/Column address bits -
-

-

Register ( slcr )DRAM_addr_map_col

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_col - -0XF8006040 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_col_b2 - -3:0 - -f - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b3 - -7:4 - -f0 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b4 - -11:8 - -f00 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b7 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b8 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b9 - -23:20 - -f00000 - -f - -f00000 - -Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b10 - -27:24 - -f000000 - -f - -f000000 - -Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b11 - -31:28 - -f0000000 - -f - -f0000000 - -Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-DRAM_addr_map_col@0XF8006040 - -31:0 - -ffffffff - - - -fff00000 - -Column address bits -
-

-

Register ( slcr )DRAM_addr_map_row

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_row - -0XF8006044 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_row_b0 - -3:0 - -f - -6 - -6 - -Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field -
-reg_ddrc_addrmap_row_b1 - -7:4 - -f0 - -6 - -60 - -Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b2_11 - -11:8 - -f00 - -6 - -600 - -Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b12 - -15:12 - -f000 - -6 - -6000 - -Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 8, Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. -
-reg_ddrc_addrmap_row_b13 - -19:16 - -f0000 - -6 - -60000 - -Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 7, Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. -
-reg_ddrc_addrmap_row_b14 - -23:20 - -f00000 - -6 - -600000 - -Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 6, Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. -
-reg_ddrc_addrmap_row_b15 - -27:24 - -f000000 - -f - -f000000 - -Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 5, Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. -
-DRAM_addr_map_row@0XF8006044 - -31:0 - -fffffff - - - -f666666 - -Select DRAM row address bits -
-

-

Register ( slcr )DRAM_ODT_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_ODT_reg - -0XF8006048 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_local_odt - -13:12 - -3000 - -0 - -0 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. -
-reg_phy_wr_local_odt - -15:14 - -c000 - -3 - -c000 - -Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. -
-reg_phy_idle_local_odt - -17:16 - -30000 - -3 - -30000 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. -
-DRAM_ODT_reg@0XF8006048 - -31:0 - -3f000 - - - -3c000 - -DRAM ODT control -
-

-

Register ( slcr )phy_cmd_timeout_rddata_cpt

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_cmd_timeout_rddata_cpt - -0XF8006050 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_cmd_to_data - -3:0 - -f - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_wr_cmd_to_data - -7:4 - -f0 - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_rdc_we_to_re_delay - -11:8 - -f00 - -8 - -800 - -This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. -
-reg_phy_rdc_fifo_rst_disable - -15:15 - -8000 - -0 - -0 - -When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. -
-reg_phy_use_fixed_re - -16:16 - -10000 - -1 - -10000 - -When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. -
-reg_phy_rdc_fifo_rst_err_cnt_clr - -17:17 - -20000 - -0 - -0 - -Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. -
-reg_phy_dis_phy_ctrl_rstn - -18:18 - -40000 - -0 - -0 - -Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. -
-reg_phy_clk_stall_level - -19:19 - -80000 - -0 - -0 - -1: stall clock, for DLL aging control -
-reg_phy_gatelvl_num_of_dq0 - -27:24 - -f000000 - -7 - -7000000 - -This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-reg_phy_wrlvl_num_of_dq0 - -31:28 - -f0000000 - -7 - -70000000 - -This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-phy_cmd_timeout_rddata_cpt@0XF8006050 - -31:0 - -ff0f8fff - - - -77010800 - -PHY command time out and read data capture FIFO -
-

-

Register ( slcr )DLL_calib

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DLL_calib - -0XF8006058 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dis_dll_calib - -16:16 - -10000 - -0 - -0 - -When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically -
-DLL_calib@0XF8006058 - -31:0 - -10000 - - - -0 - -DLL calibration -
-

-

Register ( slcr )ODT_delay_hold

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ODT_delay_hold - -0XF800605C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rd_odt_delay - -3:0 - -f - -3 - -3 - -UNUSED -
-reg_ddrc_wr_odt_delay - -7:4 - -f0 - -0 - -0 - -The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. -
-reg_ddrc_rd_odt_hold - -11:8 - -f00 - -0 - -0 - -Unused -
-reg_ddrc_wr_odt_hold - -15:12 - -f000 - -5 - -5000 - -Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 -
-ODT_delay_hold@0XF800605C - -31:0 - -ffff - - - -5003 - -ODT delay and ODT hold -
-

-

Register ( slcr )ctrl_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg1 - -0XF8006060 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_pageclose - -0:0 - -1 - -0 - -0 - -If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. -
-reg_ddrc_lpr_num_entries - -6:1 - -7e - -1f - -3e - -Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. -
-reg_ddrc_auto_pre_en - -7:7 - -80 - -0 - -0 - -When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) -
-reg_ddrc_refresh_update_level - -8:8 - -100 - -0 - -0 - -Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. -
-reg_ddrc_dis_wc - -9:9 - -200 - -0 - -0 - -Disable Write Combine: 0: enable 1: disable -
-reg_ddrc_dis_collision_page_opt - -10:10 - -400 - -0 - -0 - -When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). -
-reg_ddrc_selfref_en - -12:12 - -1000 - -0 - -0 - -If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. -
-ctrl_reg1@0XF8006060 - -31:0 - -17ff - - - -3e - -Controller 1 -
-

-

Register ( slcr )ctrl_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg2 - -0XF8006064 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_go2critical_hysteresis - -12:5 - -1fe0 - -0 - -0 - -Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. -
-reg_arb_go2critical_en - -17:17 - -20000 - -1 - -20000 - -0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. -
-ctrl_reg2@0XF8006064 - -31:0 - -21fe0 - - - -20000 - -Controller 2 -
-

-

Register ( slcr )ctrl_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg3 - -0XF8006068 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wrlvl_ww - -7:0 - -ff - -41 - -41 - -DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) -
-reg_ddrc_rdlvl_rr - -15:8 - -ff00 - -41 - -4100 - -DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. -
-reg_ddrc_dfi_t_wlmrd - -25:16 - -3ff0000 - -28 - -280000 - -DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. -
-ctrl_reg3@0XF8006068 - -31:0 - -3ffffff - - - -284141 - -Controller 3 -
-

-

Register ( slcr )ctrl_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg4 - -0XF800606C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_t_ctrlupd_interval_min_x1024 - -7:0 - -ff - -10 - -10 - -This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks -
-dfi_t_ctrlupd_interval_max_x1024 - -15:8 - -ff00 - -16 - -1600 - -This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks -
-ctrl_reg4@0XF800606C - -31:0 - -ffff - - - -1610 - -Controller 4 -
-

-

Register ( slcr )ctrl_reg5

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg5 - -0XF8006078 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_ctrl_delay - -3:0 - -f - -1 - -1 - -Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_dfi_t_dram_clk_disable - -7:4 - -f0 - -1 - -10 - -Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_dfi_t_dram_clk_enable - -11:8 - -f00 - -1 - -100 - -Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_t_cksre - -15:12 - -f000 - -6 - -6000 - -This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE -
-reg_ddrc_t_cksrx - -19:16 - -f0000 - -6 - -60000 - -This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX -
-reg_ddrc_t_ckesr - -25:20 - -3f00000 - -4 - -400000 - -Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 -
-ctrl_reg5@0XF8006078 - -31:0 - -3ffffff - - - -466111 - -Controller register 5 -
-

-

Register ( slcr )ctrl_reg6

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg6 - -0XF800607C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ckpde - -3:0 - -f - -2 - -2 - -This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckpdx - -7:4 - -f0 - -2 - -20 - -This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckdpde - -11:8 - -f00 - -2 - -200 - -This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckdpdx - -15:12 - -f000 - -2 - -2000 - -This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckcsx - -19:16 - -f0000 - -3 - -30000 - -This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. -
-ctrl_reg6@0XF800607C - -31:0 - -fffff - - - -32222 - -Controller register 6 -
-

-

Register ( slcr )CHE_T_ZQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ - -0XF80060A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dis_auto_zq - -0:0 - -1 - -0 - -0 - -1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-reg_ddrc_ddr3 - -1:1 - -2 - -1 - -2 - -Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. -
-reg_ddrc_t_mod - -11:2 - -ffc - -200 - -800 - -Mode register set command update delay (minimum d'128) -
-reg_ddrc_t_zq_long_nop - -21:12 - -3ff000 - -200 - -200000 - -DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. -
-reg_ddrc_t_zq_short_nop - -31:22 - -ffc00000 - -40 - -10000000 - -DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. -
-CHE_T_ZQ@0XF80060A4 - -31:0 - -ffffffff - - - -10200802 - -ZQ parameters -
-

-

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ_Short_Interval_Reg - -0XF80060A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-t_zq_short_interval_x1024 - -19:0 - -fffff - -cb73 - -cb73 - -DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. -
-dram_rstn_x1024 - -27:20 - -ff00000 - -69 - -6900000 - -Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. -
-CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 - -31:0 - -fffffff - - - -690cb73 - -Misc parameters -
-

-

Register ( slcr )deep_pwrdwn_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-deep_pwrdwn_reg - -0XF80060AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-deeppowerdown_en - -0:0 - -1 - -0 - -0 - -DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. -
-deeppowerdown_to_x1024 - -8:1 - -1fe - -ff - -1fe - -DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. -
-deep_pwrdwn_reg@0XF80060AC - -31:0 - -1ff - - - -1fe - -Deep powerdown (LPDDR2) -
-

-

Register ( slcr )reg_2c

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2c - -0XF80060B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_wrlvl_max_x1024 - -11:0 - -fff - -fff - -fff - -Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-dfi_rdlvl_max_x1024 - -23:12 - -fff000 - -fff - -fff000 - -Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-ddrc_reg_twrlvl_max_error - -24:24 - -1000000 - -0 - -0 - -When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. -
-ddrc_reg_trdlvl_max_error - -25:25 - -2000000 - -0 - -0 - -DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. -
-reg_ddrc_dfi_wr_level_en - -26:26 - -4000000 - -1 - -4000000 - -0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs -
-reg_ddrc_dfi_rd_dqs_gate_level - -27:27 - -8000000 - -1 - -8000000 - -0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs -
-reg_ddrc_dfi_rd_data_eye_train - -28:28 - -10000000 - -1 - -10000000 - -DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. -
-reg_2c@0XF80060B0 - -31:0 - -1fffffff - - - -1cffffff - -Training control -
-

-

Register ( slcr )reg_2d

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2d - -0XF80060B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_skip_ocd - -9:9 - -200 - -1 - -200 - -This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. -
-reg_2d@0XF80060B4 - -31:0 - -200 - - - -200 - -Misc Debug -
-

-

Register ( slcr )dfi_timing

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-dfi_timing - -0XF80060B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_rddata_en - -4:0 - -1f - -6 - -6 - -Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. -
-reg_ddrc_dfi_t_ctrlup_min - -14:5 - -7fe0 - -3 - -60 - -Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. -
-reg_ddrc_dfi_t_ctrlup_max - -24:15 - -1ff8000 - -40 - -200000 - -Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. -
-dfi_timing@0XF80060B8 - -31:0 - -1ffffff - - - -200066 - -DFI timing -
-

-

RESET ECC ERROR

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear -
-

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -0 - -0 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -0 - -0 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -0 - -ECC error clear -
-

-

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_CORR_ECC_LOG_REG_OFFSET - -0XF80060C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) -
-ECC_CORRECTED_BIT_NUM - -7:1 - -fe - -0 - -0 - -Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. -
-CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 - -31:0 - -ff - - - -0 - -ECC error correction -
-

-

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_UNCORR_ECC_LOG_REG_OFFSET - -0XF80060DC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNCORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). -
-CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC - -31:0 - -1 - - - -0 - -ECC unrecoverable error status -
-

-

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_STATS_REG_OFFSET - -0XF80060F0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STAT_NUM_CORR_ERR - -15:8 - -ff00 - -0 - -0 - -Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). -
-STAT_NUM_UNCORR_ERR - -7:0 - -ff - -0 - -0 - -Returns the number of uncorrectable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). -
-CHE_ECC_STATS_REG_OFFSET@0XF80060F0 - -31:0 - -ffff - - - -0 - -ECC error count -
-

-

Register ( slcr )ECC_scrub

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ECC_scrub - -0XF80060F4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_ecc_mode - -2:0 - -7 - -0 - -0 - -DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved -
-reg_ddrc_dis_scrub - -3:3 - -8 - -1 - -8 - -0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs -
-ECC_scrub@0XF80060F4 - -31:0 - -f - - - -8 - -ECC mode/scrub -
-

-

Register ( slcr )phy_rcvr_enable

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rcvr_enable - -0XF8006114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_dif_on - -3:0 - -f - -0 - -0 - -Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. -
-reg_phy_dif_off - -7:4 - -f0 - -0 - -0 - -Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. -
-phy_rcvr_enable@0XF8006114 - -31:0 - -ff - - - -0 - -Phy receiver enable register -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006118 - -31:0 - -7fffffcf - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF800611C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF800611C - -31:0 - -7fffffcf - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006120 - -31:0 - -7fffffcf - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006124 - -31:0 - -7fffffcf - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF800612C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -1d - -1d - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -f2 - -3c800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF800612C - -31:0 - -fffff - - - -3c81d - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006130 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -12 - -12 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -d8 - -36000 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006130 - -31:0 - -fffff - - - -36012 - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006134 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -c - -c - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -de - -37800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006134 - -31:0 - -fffff - - - -3780c - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -21 - -21 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -ee - -3b800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006138 - -31:0 - -fffff - - - -3b821 - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006140 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006144 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006144 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006148 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006148 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF800614C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_rd_dqs_slave_ratio for the read DQS slave DLL 1: overwrite the delay/tap value for read DQS slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF800614C - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -9d - -9d - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006154 - -31:0 - -fffff - - - -9d - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006158 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -92 - -92 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006158 - -31:0 - -fffff - - - -92 - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF800615C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -8c - -8c - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF800615C - -31:0 - -fffff - - - -8c - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -a1 - -a1 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. (Used to program the manual training ratio value) -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: Use reg_phy_wr_dqs_slave_ratio for the write DQS slave DLL 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006160 - -31:0 - -fffff - - - -a1 - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -147 - -147 - -Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when reg_phy_fifo_we_in_force is set to 1. -
-phy_we_cfg@0XF8006168 - -31:0 - -1fffff - - - -147 - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF800616C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -12d - -12d - -Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when reg_phy_fifo_we_in_force is set to 1. -
-phy_we_cfg@0XF800616C - -31:0 - -1fffff - - - -12d - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -133 - -133 - -Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when reg_phy_fifo_we_in_force is set to 1. -
-phy_we_cfg@0XF8006170 - -31:0 - -1fffff - - - -133 - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006174 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -143 - -143 - -Ratio value to be used when reg_phy_fifo_we_in_force is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -0: Use reg_phy_fifo_we_slave_ratio as ratio value for fifo_we_X slave DLL 1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the reg_phy_fifo_we_in_delay bus. i.e. The 'force' bit selects between specifying the delay in 'ratio' units or tap delay units -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when reg_phy_fifo_we_in_force is set to 1. -
-phy_we_cfg@0XF8006174 - -31:0 - -1fffff - - - -143 - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF800617C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -dd - -dd - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF800617C - -31:0 - -fffff - - - -dd - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -d2 - -d2 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006180 - -31:0 - -fffff - - - -d2 - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006184 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -cc - -cc - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006184 - -31:0 - -fffff - - - -cc - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006188 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -e1 - -e1 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: Selects reg_phy_wr_data_slave_ratio for write data slave DLL 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006188 - -31:0 - -fffff - - - -e1 - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )reg_64

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_64 - -0XF8006190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_bl2 - -1:1 - -2 - -0 - -0 - -Reserved for future Use. -
-reg_phy_at_spd_atpg - -2:2 - -4 - -0 - -0 - -0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. -
-reg_phy_bist_enable - -3:3 - -8 - -0 - -0 - -Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. -
-reg_phy_bist_force_err - -4:4 - -10 - -0 - -0 - -This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. -
-reg_phy_bist_mode - -6:5 - -60 - -0 - -0 - -The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved -
-reg_phy_invert_clkout - -7:7 - -80 - -1 - -80 - -Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on board topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. -
-reg_phy_sel_logic - -9:9 - -200 - -0 - -0 - -Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms -
-reg_phy_ctrl_slave_ratio - -19:10 - -ffc00 - -100 - -40000 - -Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_ctrl_slave_force - -20:20 - -100000 - -0 - -0 - -0: Use reg_phy_ctrl_slave_ratio for address/command timing slave DLL 1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_ctrl_slave_delay - -27:21 - -fe00000 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. -
-reg_phy_lpddr - -29:29 - -20000000 - -0 - -0 - -0: DDR2 or DDR3. 1: LPDDR2. -
-reg_phy_cmd_latency - -30:30 - -40000000 - -0 - -0 - -If set to 1, command comes to phy_ctrl through a flop. -
-reg_64@0XF8006190 - -31:0 - -6ffffefe - - - -40080 - -Training control 2 -
-

-

Register ( slcr )reg_65

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_65 - -0XF8006194 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_rl_delay - -4:0 - -1f - -2 - -2 - -This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. -
-reg_phy_rd_rl_delay - -9:5 - -3e0 - -4 - -80 - -This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. -
-reg_phy_dll_lock_diff - -13:10 - -3c00 - -f - -3c00 - -The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted -
-reg_phy_use_wr_level - -14:14 - -4000 - -1 - -4000 - -Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_dqs_gate_level - -15:15 - -8000 - -1 - -8000 - -Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_data_eye_level - -16:16 - -10000 - -1 - -10000 - -Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure -
-reg_phy_dis_calib_rst - -17:17 - -20000 - -0 - -0 - -Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs -
-reg_phy_ctrl_slave_delay - -19:18 - -c0000 - -0 - -0 - -If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value -
-reg_65@0XF8006194 - -31:0 - -fffff - - - -1fc82 - -Training control 3 -
-

-

Register ( slcr )page_mask

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-page_mask - -0XF8006204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_page_addr_mask - -31:0 - -ffffffff - -0 - -0 - -Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. -
-page_mask@0XF8006204 - -31:0 - -ffffffff - - - -0 - -Page mask -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-axi_priority_wr_port@0XF8006208 - -31:0 - -703ff - - - -3ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF800620C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-axi_priority_wr_port@0XF800620C - -31:0 - -703ff - - - -3ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006210 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-axi_priority_wr_port@0XF8006210 - -31:0 - -703ff - - - -3ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006214 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-axi_priority_wr_port@0XF8006214 - -31:0 - -703ff - - - -3ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006218 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006218 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF800621C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF800621C - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006220 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006220 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006224 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006224 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )lpddr_ctrl0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl0 - -0XF80062A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpddr2 - -0:0 - -1 - -0 - -0 - -0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. -
-reg_ddrc_derate_enable - -2:2 - -4 - -0 - -0 - -0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. This feature should only be enabled after LPDDR2 initialization is completed -
-reg_ddrc_mr4_margin - -11:4 - -ff0 - -0 - -0 - -UNUSED -
-lpddr_ctrl0@0XF80062A8 - -31:0 - -ff5 - - - -0 - -LPDDR2 Control 0 -
-

-

Register ( slcr )lpddr_ctrl1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl1 - -0XF80062AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr4_read_interval - -31:0 - -ffffffff - -0 - -0 - -Interval between two MR4 reads, USED to derate the timing parameters. -
-lpddr_ctrl1@0XF80062AC - -31:0 - -ffffffff - - - -0 - -LPDDR2 Control 1 -
-

-

Register ( slcr )lpddr_ctrl2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl2 - -0XF80062B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_min_stable_clock_x1 - -3:0 - -f - -5 - -5 - -Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. -
-reg_ddrc_idle_after_reset_x32 - -11:4 - -ff0 - -12 - -120 - -Idle time after the reset command, tINIT4. Units: 32 clock cycles. -
-reg_ddrc_t_mrw - -21:12 - -3ff000 - -5 - -5000 - -Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. -
-lpddr_ctrl2@0XF80062B0 - -31:0 - -3fffff - - - -5125 - -LPDDR2 Control 2 -
-

-

Register ( slcr )lpddr_ctrl3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl3 - -0XF80062B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_max_auto_init_x1024 - -7:0 - -ff - -a8 - -a8 - -Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. -
-reg_ddrc_dev_zqinit_x32 - -17:8 - -3ff00 - -12 - -1200 - -ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. -
-lpddr_ctrl3@0XF80062B4 - -31:0 - -3ffff - - - -12a8 - -LPDDR2 Control 3 -
-

-

POLL ON DCI STATUS

-

Register ( slcr )DDRIOB_DCI_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_STATUS - -0XF8000B74 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DONE - -13:13 - -2000 - -1 - -2000 - -DCI done signal -
-DDRIOB_DCI_STATUS@0XF8000B74 - -31:0 - -2000 - - - -2000 - -tobe -
-

-

UNLOCK DDR

-

Register ( slcr )ddrc_ctrl

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -1 - -1 - -Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -81 - -DDRC Control -
-

-

CHECK DDR STATUS

-

Register ( slcr )mode_sts_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_sts_reg - -0XF8006054 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ddrc_reg_operating_mode - -2:0 - -7 - -1 - -1 - -Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Powerdown mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) -
-mode_sts_reg@0XF8006054 - -31:0 - -7 - - - -1 - -tobe -
-

- -

-

ps7_mio_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -GPIOB_CTRL - - -0XF8000B00 - -32 - -RW - -0x000000 - -PS IO Buffer Control -
- -DDRIOB_ADDR0 - - -0XF8000B40 - -32 - -RW - -0x000000 - -DDR IOB Config for A[14:0], CKE and DRST_B -
- -DDRIOB_ADDR1 - - -0XF8000B44 - -32 - -RW - -0x000000 - -DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDR IOB Config for Data 15:0 -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDR IOB Config for Data 31:16 -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 1:0 -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 3:2 -
- -DDRIOB_CLOCK - - -0XF8000B58 - -32 - -RW - -0x000000 - -DDR IOB Config for Clock Output -
- -DDRIOB_DRIVE_SLEW_ADDR - - -0XF8000B5C - -32 - -RW - -0x000000 - -Drive and Slew controls for Address and Command pins of the DDR Interface -
- -DDRIOB_DRIVE_SLEW_DATA - - -0XF8000B60 - -32 - -RW - -0x000000 - -Drive and Slew controls for DQ pins of the DDR Interface -
- -DDRIOB_DRIVE_SLEW_DIFF - - -0XF8000B64 - -32 - -RW - -0x000000 - -Drive and Slew controls for DQS pins of the DDR Interface -
- -DDRIOB_DRIVE_SLEW_CLOCK - - -0XF8000B68 - -32 - -RW - -0x000000 - -Drive and Slew controls for Clock pins of the DDR Interface -
- -DDRIOB_DDR_CTRL - - -0XF8000B6C - -32 - -RW - -0x000000 - -DDR IOB Buffer Control -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDR IOB DCI Config -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDR IOB DCI Config -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDR IOB DCI Config -
- -MIO_PIN_00 - - -0XF8000700 - -32 - -RW - -0x000000 - -MIO Pin 0 Control -
- -MIO_PIN_01 - - -0XF8000704 - -32 - -RW - -0x000000 - -MIO Pin 1 Control -
- -MIO_PIN_02 - - -0XF8000708 - -32 - -RW - -0x000000 - -MIO Pin 2 Control -
- -MIO_PIN_03 - - -0XF800070C - -32 - -RW - -0x000000 - -MIO Pin 3 Control -
- -MIO_PIN_04 - - -0XF8000710 - -32 - -RW - -0x000000 - -MIO Pin 4 Control -
- -MIO_PIN_05 - - -0XF8000714 - -32 - -RW - -0x000000 - -MIO Pin 5 Control -
- -MIO_PIN_06 - - -0XF8000718 - -32 - -RW - -0x000000 - -MIO Pin 6 Control -
- -MIO_PIN_07 - - -0XF800071C - -32 - -RW - -0x000000 - -MIO Pin 7 Control -
- -MIO_PIN_08 - - -0XF8000720 - -32 - -RW - -0x000000 - -MIO Pin 8 Control -
- -MIO_PIN_09 - - -0XF8000724 - -32 - -RW - -0x000000 - -MIO Pin 9 Control -
- -MIO_PIN_10 - - -0XF8000728 - -32 - -RW - -0x000000 - -MIO Pin 10 Control -
- -MIO_PIN_11 - - -0XF800072C - -32 - -RW - -0x000000 - -MIO Pin 11 Control -
- -MIO_PIN_12 - - -0XF8000730 - -32 - -RW - -0x000000 - -MIO Pin 12 Control -
- -MIO_PIN_13 - - -0XF8000734 - -32 - -RW - -0x000000 - -MIO Pin 13 Control -
- -MIO_PIN_14 - - -0XF8000738 - -32 - -RW - -0x000000 - -MIO Pin 14 Control -
- -MIO_PIN_15 - - -0XF800073C - -32 - -RW - -0x000000 - -MIO Pin 15 Control -
- -MIO_PIN_16 - - -0XF8000740 - -32 - -RW - -0x000000 - -MIO Pin 16 Control -
- -MIO_PIN_17 - - -0XF8000744 - -32 - -RW - -0x000000 - -MIO Pin 17 Control -
- -MIO_PIN_18 - - -0XF8000748 - -32 - -RW - -0x000000 - -MIO Pin 18 Control -
- -MIO_PIN_19 - - -0XF800074C - -32 - -RW - -0x000000 - -MIO Pin 19 Control -
- -MIO_PIN_20 - - -0XF8000750 - -32 - -RW - -0x000000 - -MIO Pin 20 Control -
- -MIO_PIN_21 - - -0XF8000754 - -32 - -RW - -0x000000 - -MIO Pin 21 Control -
- -MIO_PIN_22 - - -0XF8000758 - -32 - -RW - -0x000000 - -MIO Pin 22 Control -
- -MIO_PIN_23 - - -0XF800075C - -32 - -RW - -0x000000 - -MIO Pin 23 Control -
- -MIO_PIN_24 - - -0XF8000760 - -32 - -RW - -0x000000 - -MIO Pin 24 Control -
- -MIO_PIN_25 - - -0XF8000764 - -32 - -RW - -0x000000 - -MIO Pin 25 Control -
- -MIO_PIN_26 - - -0XF8000768 - -32 - -RW - -0x000000 - -MIO Pin 26 Control -
- -MIO_PIN_27 - - -0XF800076C - -32 - -RW - -0x000000 - -MIO Pin 27 Control -
- -MIO_PIN_28 - - -0XF8000770 - -32 - -RW - -0x000000 - -MIO Pin 28 Control -
- -MIO_PIN_29 - - -0XF8000774 - -32 - -RW - -0x000000 - -MIO Pin 29 Control -
- -MIO_PIN_30 - - -0XF8000778 - -32 - -RW - -0x000000 - -MIO Pin 30 Control -
- -MIO_PIN_31 - - -0XF800077C - -32 - -RW - -0x000000 - -MIO Pin 31 Control -
- -MIO_PIN_32 - - -0XF8000780 - -32 - -RW - -0x000000 - -MIO Pin 32 Control -
- -MIO_PIN_33 - - -0XF8000784 - -32 - -RW - -0x000000 - -MIO Pin 33 Control -
- -MIO_PIN_34 - - -0XF8000788 - -32 - -RW - -0x000000 - -MIO Pin 34 Control -
- -MIO_PIN_35 - - -0XF800078C - -32 - -RW - -0x000000 - -MIO Pin 35 Control -
- -MIO_PIN_36 - - -0XF8000790 - -32 - -RW - -0x000000 - -MIO Pin 36 Control -
- -MIO_PIN_37 - - -0XF8000794 - -32 - -RW - -0x000000 - -MIO Pin 37 Control -
- -MIO_PIN_38 - - -0XF8000798 - -32 - -RW - -0x000000 - -MIO Pin 38 Control -
- -MIO_PIN_39 - - -0XF800079C - -32 - -RW - -0x000000 - -MIO Pin 39 Control -
- -MIO_PIN_40 - - -0XF80007A0 - -32 - -RW - -0x000000 - -MIO Pin 40 Control -
- -MIO_PIN_41 - - -0XF80007A4 - -32 - -RW - -0x000000 - -MIO Pin 41 Control -
- -MIO_PIN_42 - - -0XF80007A8 - -32 - -RW - -0x000000 - -MIO Pin 42 Control -
- -MIO_PIN_43 - - -0XF80007AC - -32 - -RW - -0x000000 - -MIO Pin 43 Control -
- -MIO_PIN_44 - - -0XF80007B0 - -32 - -RW - -0x000000 - -MIO Pin 44 Control -
- -MIO_PIN_45 - - -0XF80007B4 - -32 - -RW - -0x000000 - -MIO Pin 45 Control -
- -MIO_PIN_46 - - -0XF80007B8 - -32 - -RW - -0x000000 - -MIO Pin 46 Control -
- -MIO_PIN_47 - - -0XF80007BC - -32 - -RW - -0x000000 - -MIO Pin 47 Control -
- -MIO_PIN_48 - - -0XF80007C0 - -32 - -RW - -0x000000 - -MIO Pin 48 Control -
- -MIO_PIN_49 - - -0XF80007C4 - -32 - -RW - -0x000000 - -MIO Pin 49 Control -
- -MIO_PIN_50 - - -0XF80007C8 - -32 - -RW - -0x000000 - -MIO Pin 50 Control -
- -MIO_PIN_51 - - -0XF80007CC - -32 - -RW - -0x000000 - -MIO Pin 51 Control -
- -MIO_PIN_52 - - -0XF80007D0 - -32 - -RW - -0x000000 - -MIO Pin 52 Control -
- -MIO_PIN_53 - - -0XF80007D4 - -32 - -RW - -0x000000 - -MIO Pin 53 Control -
- -SD0_WP_CD_SEL - - -0XF8000830 - -32 - -RW - -0x000000 - -SDIO 0 WP CD select -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_mio_init_data_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

OCM REMAPPING

-

Register ( slcr )GPIOB_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GPIOB_CTRL - -0XF8000B00 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_SEL - -6:4 - -70 - -0 - -0 - -Specifies GPIO VREF Selection 000 - VREF = Disabled 001 - VREF = 0.9V 010 - VREF = test only - 1.8V 100 - VREF = test only - 1.25V Other values reserved -
-GPIOB_CTRL@0XF8000B00 - -31:0 - -71 - - - -1 - -PS IO Buffer Control -
-

-

DDRIOB SETTINGS

-

Register ( slcr )DDRIOB_ADDR0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR0 - -0XF8000B40 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -0 - -0 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_ADDR0@0XF8000B40 - -31:0 - -fff - - - -600 - -DDR IOB Config for A[14:0], CKE and DRST_B -
-

-

Register ( slcr )DDRIOB_ADDR1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR1 - -0XF8000B44 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -0 - -0 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_ADDR1@0XF8000B44 - -31:0 - -fff - - - -600 - -DDR IOB Config for BA[2:0], ODT, CS_B, WE_B, RAS_B and CAS_B -
-

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -3 - -60 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -fff - - - -672 - -DDR IOB Config for Data 15:0 -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -3 - -60 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -fff - - - -672 - -DDR IOB Config for Data 31:16 -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -3 - -60 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -fff - - - -674 - -DDR IOB Config for DQS 1:0 -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -3 - -60 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -fff - - - -674 - -DDR IOB Config for DQS 3:2 -
-

-

Register ( slcr )DDRIOB_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_CLOCK - -0XF8000B58 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_INP_POWER - -0:0 - -1 - -0 - -0 - -Reserved. Do not modify. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer control: 00: Input off (input signal to selected controller is driven Low). 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE_B - -3:3 - -8 - -0 - -0 - -DCI Update Enable: 0: disable 1: enable -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enable: 0: disable 1: enable -
-DCI_TYPE - -6:5 - -60 - -0 - -0 - -DCI Mode Selection: 00: DCI Disabled (DDR2/3 ADDR and CLOCK) 01: DCI Drive (LPDDR2) 10: reserved 11: DCI Termination (DDR2/3 DATA and DIFF) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_CLOCK@0XF8000B58 - -31:0 - -fff - - - -600 - -DDR IOB Config for Clock Output -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_ADDR - -0XF8000B5C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_DRIVE_P - -6:0 - -7f - -1c - -1c - -Reserved. Do not modify. -
-reserved_DRIVE_N - -13:7 - -3f80 - -c - -600 - -Reserved. Do not modify. -
-reserved_SLEW_P - -18:14 - -7c000 - -3 - -c000 - -Reserved. Do not modify. -
-reserved_SLEW_N - -23:19 - -f80000 - -3 - -180000 - -Reserved. Do not modify. -
-reserved_GTL - -26:24 - -7000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_RTERM - -31:27 - -f8000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C - -31:0 - -ffffffff - - - -18c61c - -Drive and Slew controls for Address and Command pins of the DDR Interface -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DATA - -0XF8000B60 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_DRIVE_P - -6:0 - -7f - -1c - -1c - -Reserved. Do not modify. -
-reserved_DRIVE_N - -13:7 - -3f80 - -c - -600 - -Reserved. Do not modify. -
-reserved_SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Reserved. Do not modify. -
-reserved_SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Reserved. Do not modify. -
-reserved_GTL - -26:24 - -7000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_RTERM - -31:27 - -f8000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 - -31:0 - -ffffffff - - - -f9861c - -Drive and Slew controls for DQ pins of the DDR Interface -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DIFF - -0XF8000B64 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_DRIVE_P - -6:0 - -7f - -1c - -1c - -Reserved. Do not modify. -
-reserved_DRIVE_N - -13:7 - -3f80 - -c - -600 - -Reserved. Do not modify. -
-reserved_SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Reserved. Do not modify. -
-reserved_SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Reserved. Do not modify. -
-reserved_GTL - -26:24 - -7000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_RTERM - -31:27 - -f8000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 - -31:0 - -ffffffff - - - -f9861c - -Drive and Slew controls for DQS pins of the DDR Interface -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_CLOCK - -0XF8000B68 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_DRIVE_P - -6:0 - -7f - -1c - -1c - -Reserved. Do not modify. -
-reserved_DRIVE_N - -13:7 - -3f80 - -c - -600 - -Reserved. Do not modify. -
-reserved_SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Reserved. Do not modify. -
-reserved_SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Reserved. Do not modify. -
-reserved_GTL - -26:24 - -7000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_RTERM - -31:27 - -f8000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 - -31:0 - -ffffffff - - - -f9861c - -Drive and Slew controls for Clock pins of the DDR Interface -
-

-

Register ( slcr )DDRIOB_DDR_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DDR_CTRL - -0XF8000B6C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_INT_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_SEL - -4:1 - -1e - -4 - -8 - -Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO -
-VREF_EXT_EN - -6:5 - -60 - -0 - -0 - -Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1x: Enable External VREF for upper 16 bits -
-reserved_VREF_PULLUP_EN - -8:7 - -180 - -0 - -0 - -Reserved. Do not modify. -
-REFIO_EN - -9:9 - -200 - -1 - -200 - -Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio -
-reserved_REFIO_TEST - -11:10 - -c00 - -3 - -c00 - -Reserved. Do not modify. -
-reserved_REFIO_PULLUP_EN - -12:12 - -1000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_DRST_B_PULLUP_EN - -13:13 - -2000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_CKE_PULLUP_EN - -14:14 - -4000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DDR_CTRL@0XF8000B6C - -31:0 - -7fff - - - -e09 - -DDR IOB Buffer Control -
-

-

ASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialize flops in DCI system -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -1 - - - -1 - -DDR IOB DCI Config -
-

-

DEASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -0 - -0 - -At least toggle once to initialize flops in DCI system -
-reserved_VRN_OUT - -5:5 - -20 - -1 - -20 - -Reserved. Do not modify. -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -20 - -DDR IOB DCI Config -
-

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialize flops in DCI system -
-ENABLE - -1:1 - -2 - -1 - -2 - -DCI System Enable. Set to 1 if any IOs in DDR IO Bank use DCI Termination. DDR2, DDR3 and LPDDR2 (Silicon Revision 2.0+) configurations require this bit set to 1 -
-reserved_VRP_TRI - -2:2 - -4 - -0 - -0 - -Reserved. Do not modify. -
-reserved_VRN_TRI - -3:3 - -8 - -0 - -0 - -Reserved. Do not modify. -
-reserved_VRP_OUT - -4:4 - -10 - -0 - -0 - -Reserved. Do not modify. -
-reserved_VRN_OUT - -5:5 - -20 - -1 - -20 - -Reserved. Do not modify. -
-NREF_OPT1 - -7:6 - -c0 - -0 - -0 - -DCI Calibration. Use the values in the Calibration Table. -
-NREF_OPT2 - -10:8 - -700 - -0 - -0 - -DCI Calibration. Use the values in the Calibration Table. -
-NREF_OPT4 - -13:11 - -3800 - -1 - -800 - -DCI Calibration. Use the values in the Calibration Table. -
-PREF_OPT1 - -15:14 - -c000 - -0 - -0 - -DCI Calibration. Use the values in the Calibration Table. -
-PREF_OPT2 - -19:17 - -e0000 - -0 - -0 - -DCI Calibration. Use the values in the Calibration Table. -
-UPDATE_CONTROL - -20:20 - -100000 - -0 - -0 - -DCI Update Mode. Use the values in the Calibration Table. -
-reserved_INIT_COMPLETE - -21:21 - -200000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_TST_CLK - -22:22 - -400000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_TST_HLN - -23:23 - -800000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_TST_HLP - -24:24 - -1000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_TST_RST - -25:25 - -2000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_INT_DCI_EN - -26:26 - -4000000 - -0 - -0 - -Reserved. Do not modify. -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -7feffff - - - -823 - -DDR IOB DCI Config -
-

-

MIO PROGRAMMING

-

Register ( slcr )MIO_PIN_00

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_00 - -0XF8000700 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. 0: disable 1: enable -
-Speed - -8:8 - -100 - -1 - -100 - -Select IO Buffer Edge Rate, applicable when IO_Type is LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Select the IO Buffer Type. 000: Reserved 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Enables Pullup on IO Buffer pin 0: disable 1: enable -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable -
-MIO_PIN_00@0XF8000700 - -31:0 - -3f01 - - - -1301 - -MIO Pin 0 Control -
-

-

Register ( slcr )MIO_PIN_01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_01 - -0XF8000704 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25, Output 10: SRAM/NOR Chip Select 1, Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 1 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_01@0XF8000704 - -31:0 - -3fff - - - -1302 - -MIO Pin 1 Control -
-

-

Register ( slcr )MIO_PIN_02

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_02 - -0XF8000708 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn, Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 2 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_02@0XF8000708 - -31:0 - -3fff - - - -302 - -MIO Pin 2 Control -
-

-

Register ( slcr )MIO_PIN_03

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_03 - -0XF800070C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0, Input/Output 10: NAND WE_B, Output 11: SDIO 1 Card Power, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 3 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_03@0XF800070C - -31:0 - -3fff - - - -302 - -MIO Pin 3 Control -
-

-

Register ( slcr )MIO_PIN_04

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_04 - -0XF8000710 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1, Input/Output 10: NAND Flash IO Bit 2, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 4 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_04@0XF8000710 - -31:0 - -3fff - - - -302 - -MIO Pin 4 Control -
-

-

Register ( slcr )MIO_PIN_05

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_05 - -0XF8000714 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2, Input/Output 10: NAND Flash IO Bit 0, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 5 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_05@0XF8000714 - -31:0 - -3fff - - - -302 - -MIO Pin 5 Control -
-

-

Register ( slcr )MIO_PIN_06

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_06 - -0XF8000718 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3, Input/Output 10: NAND Flash IO Bit 1, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 6 (bank 0), Input/Output others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_06@0XF8000718 - -31:0 - -3fff - - - -302 - -MIO Pin 6 Control -
-

-

Register ( slcr )MIO_PIN_07

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_07 - -0XF800071C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 13, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR OE_B, Output 10: NAND Flash CLE_B, Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 7 (bank 0), Output-only others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_07@0XF800071C - -31:0 - -3fff - - - -200 - -MIO Pin 7 Control -
-

-

Register ( slcr )MIO_PIN_08

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_08 - -0XF8000720 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Clock, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash RD_B, Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 8 (bank 0), Output-only 001: CAN 1 Tx, Output 010: SRAM/NOR BLS_B, Output 011 to 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_08@0XF8000720 - -31:0 - -3fff - - - -202 - -MIO Pin 8 Control -
-

-

Register ( slcr )MIO_PIN_09

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_09 - -0XF8000724 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 Flash Memory Clock, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 15, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 6, Input/Output 10: NAND Flash IO Bit 4, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 9 (bank 0), Input/Output 001: CAN 1 Rx, Input 010 to 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_09@0XF8000724 - -31:0 - -3fff - - - -1200 - -MIO Pin 9 Control -
-

-

Register ( slcr )MIO_PIN_10

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_10 - -0XF8000728 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7, Input/Output 10: NAND Flash IO Bit 5, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 10 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_10@0XF8000728 - -31:0 - -3fff - - - -1200 - -MIO Pin 10 Control -
-

-

Register ( slcr )MIO_PIN_11

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_11 - -0XF800072C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4, Input/Output 10: NAND Flash IO Bit 6, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 11 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_11@0XF800072C - -31:0 - -3fff - - - -1200 - -MIO Pin 11 Control -
-

-

Register ( slcr )MIO_PIN_12

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_12 - -0XF8000730 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait, Input 10: NAND Flash IO Bit 7, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 12 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_12@0XF8000730 - -31:0 - -3fff - - - -1200 - -MIO Pin 12 Control -
-

-

Register ( slcr )MIO_PIN_13

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_13 - -0XF8000734 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3, Input/Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5, Input/Output 10: NAND Flash IO Bit 3, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 13 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_13@0XF8000734 - -31:0 - -3fff - - - -1200 - -MIO Pin 13 Control -
-

-

Register ( slcr )MIO_PIN_14

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_14 - -0XF8000738 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy, Input 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 14 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 slave select 1, Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_14@0XF8000738 - -31:0 - -3fff - - - -1200 - -MIO Pin 14 Control -
-

-

Register ( slcr )MIO_PIN_15

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_15 - -0XF800073C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_15@0XF800073C - -31:0 - -3f01 - - - -1301 - -MIO Pin 15 Control -
-

-

Register ( slcr )MIO_PIN_16

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_16 - -0XF8000740 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1, Output 10: NAND Flash IO Bit 8, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 16 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_16@0XF8000740 - -31:0 - -3fff - - - -3902 - -MIO Pin 16 Control -
-

-

Register ( slcr )MIO_PIN_17

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_17 - -0XF8000744 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2, Output 10: NAND Flash IO Bit 9, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 17 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110 TTC 1 Clock, Input 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_17@0XF8000744 - -31:0 - -3fff - - - -3902 - -MIO Pin 17 Control -
-

-

Register ( slcr )MIO_PIN_18

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_18 - -0XF8000748 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3, Output 10: NAND Flash IO Bit 10, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 18 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_18@0XF8000748 - -31:0 - -3fff - - - -3902 - -MIO Pin 18 Control -
-

-

Register ( slcr )MIO_PIN_19

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_19 - -0XF800074C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4, Output 10: NAND Flash IO Bit 11, Input/Output 111: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 19 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_19@0XF800074C - -31:0 - -3fff - - - -3902 - -MIO Pin 19 Control -
-

-

Register ( slcr )MIO_PIN_20

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_20 - -0XF8000750 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5, Output 10: NAND Flash IO Bit 12, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 20 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_20@0XF8000750 - -31:0 - -3fff - - - -3902 - -MIO Pin 20 Control -
-

-

Register ( slcr )MIO_PIN_21

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_21 - -0XF8000754 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control, Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6, Output 10: NAND Flash IO Bit 13, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 21 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_21@0XF8000754 - -31:0 - -3fff - - - -3902 - -MIO Pin 21 Control -
-

-

Register ( slcr )MIO_PIN_22

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_22 - -0XF8000758 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7, Output 10: NAND Flash IO Bit 14, Input/Output 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 22 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_22@0XF8000758 - -31:0 - -3fff - - - -1903 - -MIO Pin 22 Control -
-

-

Register ( slcr )MIO_PIN_23

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_23 - -0XF800075C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8, Output 10: NAND Flash IO Bit 15, Input/Output 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 23 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_23@0XF800075C - -31:0 - -3fff - - - -1903 - -MIO Pin 23 Control -
-

-

Register ( slcr )MIO_PIN_24

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_24 - -0XF8000760 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 24 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_24@0XF8000760 - -31:0 - -3fff - - - -1903 - -MIO Pin 24 Control -
-

-

Register ( slcr )MIO_PIN_25

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_25 - -0XF8000764 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 25 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_25@0XF8000764 - -31:0 - -3fff - - - -1903 - -MIO Pin 25 Control -
-

-

Register ( slcr )MIO_PIN_26

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_26 - -0XF8000768 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 26 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_26@0XF8000768 - -31:0 - -3fff - - - -1903 - -MIO Pin 26 Control -
-

-

Register ( slcr )MIO_PIN_27

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_27 - -0XF800076C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control, Input -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 27 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_27@0XF800076C - -31:0 - -3fff - - - -1903 - -MIO Pin 27 Control -
-

-

Register ( slcr )MIO_PIN_28

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_28 - -0XF8000770 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Tx Clock, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 4, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 13, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 28 (bank 0), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_28@0XF8000770 - -31:0 - -3fff - - - -1304 - -MIO Pin 28 Control -
-

-

Register ( slcr )MIO_PIN_29

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_29 - -0XF8000774 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 0, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Direction, Input -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 14, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 29 (bank 0), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_29@0XF8000774 - -31:0 - -3fff - - - -1305 - -MIO Pin 29 Control -
-

-

Register ( slcr )MIO_PIN_30

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_30 - -0XF8000778 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 1, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Stop, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 15, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 30 (bank 0), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_30@0XF8000778 - -31:0 - -3fff - - - -1304 - -MIO Pin 30 Control -
-

-

Register ( slcr )MIO_PIN_31

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_31 - -0XF800077C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 2, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Next, Input -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 16, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 31 (bank 0), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_31@0XF800077C - -31:0 - -3fff - - - -1305 - -MIO Pin 31 Control -
-

-

Register ( slcr )MIO_PIN_32

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_32 - -0XF8000780 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 3, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 0, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 17, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 32 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_32@0XF8000780 - -31:0 - -3fff - - - -1304 - -MIO Pin 32 Control -
-

-

Register ( slcr )MIO_PIN_33

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_33 - -0XF8000784 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Tx Control, Output -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 1, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 18, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 33 (Bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_33@0XF8000784 - -31:0 - -3fff - - - -1304 - -MIO Pin 33 Control -
-

-

Register ( slcr )MIO_PIN_34

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_34 - -0XF8000788 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Rx Clock, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 2, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 19, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 34 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_34@0XF8000788 - -31:0 - -3fff - - - -1304 - -MIO Pin 34 Control -
-

-

Register ( slcr )MIO_PIN_35

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_35 - -0XF800078C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD data Bit 0, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 3, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 20, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 35 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_35@0XF800078C - -31:0 - -3fff - - - -1304 - -MIO Pin 35 Control -
-

-

Register ( slcr )MIO_PIN_36

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_36 - -0XF8000790 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Data Bit 1 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Clock, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 21, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 36 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Clock, Input/Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_36@0XF8000790 - -31:0 - -3fff - - - -1305 - -MIO Pin 36 Control -
-

-

Register ( slcr )MIO_PIN_37

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_37 - -0XF8000794 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD Data Bit 2, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 5, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 22, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 37 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Slave Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_37@0XF8000794 - -31:0 - -3fff - - - -1304 - -MIO Pin 37 Control -
-

-

Register ( slcr )MIO_PIN_38

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_38 - -0XF8000798 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD Data Bit 3, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 6, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 23, Output 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 38 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_38@0XF8000798 - -31:0 - -3fff - - - -1304 - -MIO Pin 38 Control -
-

-

Register ( slcr )MIO_PIN_39

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_39 - -0XF800079C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Rx Control, Input -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 7, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 24, Output 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 39 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_39@0XF800079C - -31:0 - -3fff - - - -1304 - -MIO Pin 39 Control -
-

-

Register ( slcr )MIO_PIN_40

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_40 - -0XF80007A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 40 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 Clock, Input/Output 101: SPI 0 Serial Clock, Input/Output 110: TTC 1 Wave, Output 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_40@0XF80007A0 - -31:0 - -3fff - - - -1380 - -MIO Pin 40 Control -
-

-

Register ( slcr )MIO_PIN_41

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_41 - -0XF80007A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction, Input -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 41 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 Command, Input/Output 101: SPI 0 MISO, Input/Output 110: TTC 1 Clock, Input 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_41@0XF80007A4 - -31:0 - -3fff - - - -1380 - -MIO Pin 41 Control -
-

-

Register ( slcr )MIO_PIN_42

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_42 - -0XF80007A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop, Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 42 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: reserved 100: SDIO 0 IO Bit 0, Input/Output 101: SPI 0 Slave Select 0, Input/Output 110: TTC 0 Wave, Output 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_42@0XF80007A8 - -31:0 - -3fff - - - -1380 - -MIO Pin 42 Control -
-

-

Register ( slcr )MIO_PIN_43

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_43 - -0XF80007AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next, Input -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 43 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 1, Input/Output 101: SPI 0 Slave Select 1, Output 110: TTC 0 Clock, Input 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_43@0XF80007AC - -31:0 - -3fff - - - -1380 - -MIO Pin 43 Control -
-

-

Register ( slcr )MIO_PIN_44

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_44 - -0XF80007B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 44 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: reserved 100: SDIO 0 IO Bit 2, Input/Output 101: SPI 0 Slave Select 2, Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_44@0XF80007B0 - -31:0 - -3fff - - - -1380 - -MIO Pin 44 Control -
-

-

Register ( slcr )MIO_PIN_45

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_45 - -0XF80007B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 45 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: reserved 100: SDIO 0 IO Bit 3, Input/Output 101: SPI 0 MOSI, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_45@0XF80007B4 - -31:0 - -3fff - - - -1380 - -MIO Pin 45 Control -
-

-

Register ( slcr )MIO_PIN_46

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_46 - -0XF80007B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 2, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 000: GPIO 46 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: PJTAG TDI, Input 100: SDIO 1 IO Bit 0, Input/Output 101: SPI 1 MOSI, Input/Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_46@0XF80007B8 - -31:0 - -3fff - - - -1221 - -MIO Pin 46 Control -
-

-

Register ( slcr )MIO_PIN_47

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_47 - -0XF80007BC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 3, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 000: GPIO 47 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: PJTAG TDO, Output 100: SDIO 1 Command, Input/Output 101: SPI 1 MISO, Input/Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_47@0XF80007BC - -31:0 - -3fff - - - -1220 - -MIO Pin 47 Control -
-

-

Register ( slcr )MIO_PIN_48

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_48 - -0XF80007C0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 000: GPIO 48 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: PJTAG TCK, Input 100: SDIO 1 Clock, Input/Output 101: SPI 1 Serial Clock, Input/Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_48@0XF80007C0 - -31:0 - -3fff - - - -12e0 - -MIO Pin 48 Control -
-

-

Register ( slcr )MIO_PIN_49

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_49 - -0XF80007C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 000: GPIO 49 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: PJTAG TMS, Input 100: SDIO 1 IO Bit 1, Input/Output 101: SPI 1 Select 0, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_49@0XF80007C4 - -31:0 - -3fff - - - -12e1 - -MIO Pin 49 Control -
-

-

Register ( slcr )MIO_PIN_50

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_50 - -0XF80007C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 6, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 000: GPIO 50 (bank 1), Input/Output 001: CAN 0 Rx, Input 010: I2C 0 Serial Clock, Input/Ouput 011: SWDT Clock, Input 100: SDIO 1 IO Bit 2, Input/Output 101: SPI 1 Slave Select 1, Output 110: reserved 111: UART 0 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_50@0XF80007C8 - -31:0 - -3fff - - - -1240 - -MIO Pin 50 Control -
-

-

Register ( slcr )MIO_PIN_51

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_51 - -0XF80007CC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 7, Input/Output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 000: GPIO 51 (bank 1), Input/Output 001: CAN 0 Tx, Output 010: I2C 0 Serial Data, Input/Output 011: SWDT Reset, Output 100: SDIO 1 IO Bit 3, Input/Output 101: SPI 1 Slave Select 2, Output 110: reserved 111: UART 0 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_51@0XF80007CC - -31:0 - -3fff - - - -1240 - -MIO Pin 51 Control -
-

-

Register ( slcr )MIO_PIN_52

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_52 - -0XF80007D0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 52 (bank 1), Input/Output 001: CAN 1 Tx, Output 010: I2C 1 Serial Clock, Input/Output 011: SWDT Clock, Input 100: MDIO 0 Clock, Output 101: MDIO 1 Clock, Output 110: reserved 111: UART 1 TxD, Output -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_52@0XF80007D0 - -31:0 - -3fff - - - -1280 - -MIO Pin 52 Control -
-

-

Register ( slcr )MIO_PIN_53

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_53 - -0XF80007D4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control, Output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 53 (bank 1), Input/Output 001: CAN 1 Rx, Input 010: I2C 1 Serial Data, Input/Output 011: SWDT Reset, Output 100: MDIO 0 Data, Input/Output 101: MDIO 1 Data, Input/Output 110: reserved 111: UART 1 RxD, Input -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULLUP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_53@0XF80007D4 - -31:0 - -3fff - - - -1280 - -MIO Pin 53 Control -
-

-

Register ( slcr )SD0_WP_CD_SEL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SD0_WP_CD_SEL - -0XF8000830 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SDIO0_WP_SEL - -5:0 - -3f - -f - -f - -SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input -
-SDIO0_CD_SEL - -21:16 - -3f0000 - -0 - -0 - -SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input -
-SD0_WP_CD_SEL@0XF8000830 - -31:0 - -3f003f - - - -f - -SDIO 0 WP CD select -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_peripherals_init_data_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDR IOB Config for Data 15:0 -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDR IOB Config for Data 31:16 -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 1:0 -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 3:2 -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
- -LAR - - -0XF8803FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -CurrentSize - - -0XF8803004 - -32 - -RW - -0x000000 - -Current Port Size Register -
- -LAR - - -0XF8803FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -Baud_rate_divider_reg0 - - -0XE0001034 - -32 - -RW - -0x000000 - -Baud Rate Divider Register -
- -Baud_rate_gen_reg0 - - -0XE0001018 - -32 - -RW - -0x000000 - -Baud Rate Generator Register. -
- -Control_reg0 - - -0XE0001000 - -32 - -RW - -0x000000 - -UART Control Register -
- -mode_reg0 - - -0XE0001004 - -32 - -RW - -0x000000 - -UART Mode Register -
- -Config_reg - - -0XE000D000 - -32 - -RW - -0x000000 - -SPI configuration register -
- -CTRL - - -0XF8007000 - -32 - -RW - -0x000000 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

ps7_peripherals_init_data_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

DDR TERM/IBUF_DISABLE_MODE SETTINGS

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -180 - - - -180 - -DDR IOB Config for Data 15:0 -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -180 - - - -180 - -DDR IOB Config for Data 31:16 -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -180 - - - -180 - -DDR IOB Config for DQS 1:0 -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable NOTE: This must be 0 during DRAM init/training and can only be set to 1 after init/training completes. -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Termination is used during read transactions and may be disabled (automatically by hardware) when there are no reads taking place through the DDR Interface. Disabling termination reduces power consumption. 0: termination always enabled 1: use 'dynamic_dci_ts' to disable termination when not in use NOTE: This bit must be 0 during DRAM init/training. It may be set to 1 after init/training completes. -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -180 - - - -180 - -DDR IOB Config for DQS 3:2 -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

-

SRAM/NOR SET OPMODE

-

TRACE LOCK ACCESS REGISTER

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8803FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), TPIU is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): TPIU is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8803FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

TRACE CURRENT PORT SIZE

-

Register ( slcr )CurrentSize

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CurrentSize - -0XF8803004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -2 - -2 - -The Current Port Size Register has the same format as the Supported Port Sizes register but only one bit is set, and all others must be zero. Writing values with more than one bit set or setting a bit that is not indicated as supported is not supported and causes unpredictable behavior. -
-CurrentSize@0XF8803004 - -31:0 - -ffffffff - - - -2 - -Current Port Size Register -
-

-

TRACE LOCK ACCESS REGISTER

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8803FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -0 - -0 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), TPIU is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): TPIU is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8803FB0 - -31:0 - -ffffffff - - - -0 - -Lock Access Register -
-

-

UART REGISTERS

-

Register ( slcr )Baud_rate_divider_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_divider_reg0 - -0XE0001034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-BDIV - -7:0 - -ff - -6 - -6 - -Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate -
-Baud_rate_divider_reg0@0XE0001034 - -31:0 - -ff - - - -6 - -Baud Rate Divider Register -
-

-

Register ( slcr )Baud_rate_gen_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_gen_reg0 - -0XE0001018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CD - -15:0 - -ffff - -3e - -3e - -Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample -
-Baud_rate_gen_reg0@0XE0001018 - -31:0 - -ffff - - - -3e - -Baud Rate Generator Register. -
-

-

Register ( slcr )Control_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Control_reg0 - -0XE0001000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STPBRK - -8:8 - -100 - -0 - -0 - -Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a high level during 12 bit periods. It can be set regardless of the value of STTBRK. -
-STTBRK - -7:7 - -80 - -0 - -0 - -Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. -
-RSTTO - -6:6 - -40 - -0 - -0 - -Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has completed. -
-TXDIS - -5:5 - -20 - -0 - -0 - -Transmit disable: 0: enable transmitter 1: disable transmitter -
-TXEN - -4:4 - -10 - -1 - -10 - -Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. -
-RXDIS - -3:3 - -8 - -0 - -0 - -Receive disable: 0: enable 1: disable, regardless of the value of RXEN -
-RXEN - -2:2 - -4 - -1 - -4 - -Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. -
-TXRES - -1:1 - -2 - -1 - -2 - -Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded This bit is self clearing once the reset has completed. -
-RXRES - -0:0 - -1 - -1 - -1 - -Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit is self clearing once the reset has completed. -
-Control_reg0@0XE0001000 - -31:0 - -1ff - - - -17 - -UART Control Register -
-

-

Register ( slcr )mode_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_reg0 - -0XE0001004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CHMODE - -9:8 - -300 - -0 - -0 - -Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback -
-NBSTOP - -7:6 - -c0 - -0 - -0 - -Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved -
-PAR - -5:3 - -38 - -4 - -20 - -Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity -
-CHRL - -2:1 - -6 - -0 - -0 - -Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits -
-CLKS - -0:0 - -1 - -0 - -0 - -Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock source is uart_ref_clk 1: clock source is uart_ref_clk/8 -
-mode_reg0@0XE0001004 - -31:0 - -3ff - - - -20 - -UART Mode Register -
-

-

QSPI REGISTERS

-

Register ( slcr )Config_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Config_reg - -0XE000D000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Holdb_dr - -19:19 - -80000 - -1 - -80000 - -If set, Holdb and WPn pins are actively driven by the qspi controller in 1-bit and 2-bit modes . If not set, then external pull up is required on HOLDb and WPn pins . Note that this bit doesn't affect the quad(4-bit) mode as Controller always drives these pins in quad mode. It is highly recommended to set this bit always(irrespective of mode of operation) while using QSPI -
-Config_reg@0XE000D000 - -31:0 - -80000 - - - -80000 - -SPI configuration register -
-

-

PL POWER ON RESET REGISTERS

-

Register ( slcr )CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CTRL - -0XF8007000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PCFG_POR_CNT_4K - -29:29 - -20000000 - -0 - -0 - -This register controls which POR timer the PL will use for power-up. 0 - Use 64k timer 1 - Use 4k timer -
-CTRL@0XF8007000 - -31:0 - -20000000 - - - -0 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
-

-

SMC TIMING CALCULATION REGISTER UPDATE

-

NAND SET CYCLE

-

OPMODE

-

DIRECT COMMAND

-

SRAM/NOR CS0 SET CYCLE

-

DIRECT COMMAND

-

NOR CS0 BASE ADDRESS

-

SRAM/NOR CS1 SET CYCLE

-

DIRECT COMMAND

-

NOR CS1 BASE ADDRESS

-

USB RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

ENET RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

I2C RESET

-

DIR MODE GPIO BANK0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE GPIO BANK1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

- -

-

ps7_post_config_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -LVL_SHFTR_EN - - -0XF8000900 - -32 - -RW - -0x000000 - -Level Shifters Enable -
- -FPGA_RST_CTRL - - -0XF8000240 - -32 - -RW - -0x000000 - -FPGA Software Reset Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_post_config_3_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -Write the unlock key, 0xDF0D, to enable writes to the slcr registers. All slcr registers, 0xF800_0000 to 0xF800_0B74, are writeable until locked using the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

ENABLING LEVEL SHIFTER

-

Register ( slcr )LVL_SHFTR_EN

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LVL_SHFTR_EN - -0XF8000900 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-USER_LVL_INP_EN_0 - -3:3 - -8 - -1 - -8 - -Level shifter enable to drive signals from PL to PS -
-USER_LVL_OUT_EN_0 - -2:2 - -4 - -1 - -4 - -Level shifter enable to drive signals from PS to PL -
-USER_LVL_INP_EN_1 - -1:1 - -2 - -1 - -2 - -Level shifter enable to drive signals from PL to PS -
-USER_LVL_OUT_EN_1 - -0:0 - -1 - -1 - -1 - -Level shifter enable to drive signals from PS to PL -
-LVL_SHFTR_EN@0XF8000900 - -31:0 - -f - - - -f - -Level Shifters Enable -
-

-

FPGA RESETS TO 0

-

Register ( slcr )FPGA_RST_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA_RST_CTRL - -0XF8000240 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_3 - -31:25 - -fe000000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-reserved_FPGA_ACP_RST - -24:24 - -1000000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_AXDS3_RST - -23:23 - -800000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_AXDS2_RST - -22:22 - -400000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_AXDS1_RST - -21:21 - -200000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_AXDS0_RST - -20:20 - -100000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_2 - -19:18 - -c0000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-reserved_FSSW1_FPGA_RST - -17:17 - -20000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FSSW0_FPGA_RST - -16:16 - -10000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_1 - -15:14 - -c000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-reserved_FPGA_FMSW1_RST - -13:13 - -2000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_FMSW0_RST - -12:12 - -1000 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_DMA3_RST - -11:11 - -800 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_DMA2_RST - -10:10 - -400 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_DMA1_RST - -9:9 - -200 - -0 - -0 - -Reserved. Do not modify. -
-reserved_FPGA_DMA0_RST - -8:8 - -100 - -0 - -0 - -Reserved. Do not modify. -
-reserved - -7:4 - -f0 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FPGA3_OUT_RST - -3:3 - -8 - -0 - -0 - -PL Reset 3 (FCLKRESETN3 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN3 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) -
-FPGA2_OUT_RST - -2:2 - -4 - -0 - -0 - -PL Reset 2 (FCLKRESETN2 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN2 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) -
-FPGA1_OUT_RST - -1:1 - -2 - -0 - -0 - -PL Reset 1 (FCLKRESETN1 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN1 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) -
-FPGA0_OUT_RST - -0:0 - -1 - -0 - -0 - -PL Reset 0 (FCLKRESETN0 output signal). Refer to the PS7 wrapper in EDK for possible signal inversion. Logic level on the FCLKRESETN0 signal: 0: De-assert reset (High logic level). 1: Assert Reset (Low logic state) -
-FPGA_RST_CTRL@0XF8000240 - -31:0 - -ffffffff - - - -0 - -FPGA Software Reset Control -
-

-

AFI REGISTERS

-

AFI0 REGISTERS

-

AFI1 REGISTERS

-

AFI2 REGISTERS

-

AFI3 REGISTERS

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -Write the lock key, 0x767B, to write protect the slcr registers: all slcr registers, 0xF800_0000 to 0xF800_0B74, are write protected until the unlock key is written to the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_debug_3_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -LAR - - -0XF8898FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -LAR - - -0XF8899FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -LAR - - -0XF8809FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
-

-

ps7_debug_3_0

- - - - - - - - - -

CROSS TRIGGER CONFIGURATIONS

-

UNLOCKING CTI REGISTERS

-

Register ( slcr )LAR

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8898FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8898FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8899FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8899FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8809FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8809FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

ENABLING CTI MODULES AND CHANNELS

-

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

- -

- - - - -

ps7_pll_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -ARM_PLL_CFG - - -0XF8000110 - -32 - -RW - -0x000000 - -ARM PLL Configuration -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_CLK_CTRL - - -0XF8000120 - -32 - -RW - -0x000000 - -CPU Clock Control -
- -DDR_PLL_CFG - - -0XF8000114 - -32 - -RW - -0x000000 - -DDR PLL Configuration -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_CLK_CTRL - - -0XF8000124 - -32 - -RW - -0x000000 - -DDR Clock Control -
- -IO_PLL_CFG - - -0XF8000118 - -32 - -RW - -0x000000 - -IO PLL Configuration -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_pll_init_data_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

PLL SLCR REGISTERS

-

ARM PLL INIT

-

Register ( slcr )ARM_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CFG - -0XF8000110 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -fa - -fa000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. -
-ARM_PLL_CFG@0XF8000110 - -31:0 - -3ffff0 - - - -fa220 - -ARM PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -28 - -28000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -7f000 - - - -28000 - -ARM PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -10 - -ARM PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -1 - -ARM PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset. After reset, program the PLLs and ensure that the serviced bit is asserted before using. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -0 - -ARM PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ARM_PLL_LOCK - -0:0 - -1 - -1 - -1 - -ARM PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -1 - - - -1 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -ARM PLL Bypass override control: PLL_BYPASS_QUAL = 0: 0: enabled, not bypassed. 1: bypassed. PLL_BYPASS_QUAL =1: 0: 1: bypass mode regardless of the pin strapping. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -0 - -ARM PLL Control -
-

-

Register ( slcr )ARM_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_CLK_CTRL - -0XF8000120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the CPU clock: 0x: CPU PLL 10: divided DDR PLL 11: IO PLL -
-DIVISOR - -13:8 - -3f00 - -2 - -200 - -Frequency divisor for the CPU clock source. -
-CPU_6OR4XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -CPU_6x4x Clock control: 0: disable, 1: enable -
-CPU_3OR2XCLKACT - -25:25 - -2000000 - -1 - -2000000 - -CPU_3x2x Clock control: 0: disable, 1: enable -
-CPU_2XCLKACT - -26:26 - -4000000 - -1 - -4000000 - -CPU_2x Clock control: 0: disable, 1: enable -
-CPU_1XCLKACT - -27:27 - -8000000 - -1 - -8000000 - -CPU_1x Clock control: 0: disable, 1: enable -
-CPU_PERI_CLKACT - -28:28 - -10000000 - -1 - -10000000 - -Clock active: 0: Clock is disabled 1: Clock is enabled -
-ARM_CLK_CTRL@0XF8000120 - -31:0 - -1f003f30 - - - -1f000200 - -CPU Clock Control -
-

-

DDR PLL INIT

-

Register ( slcr )DDR_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CFG - -0XF8000114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. -
-LOCK_CNT - -21:12 - -3ff000 - -12c - -12c000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. -
-DDR_PLL_CFG@0XF8000114 - -31:0 - -3ffff0 - - - -12c220 - -DDR PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -20 - -20000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -7f000 - - - -20000 - -DDR PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -10 - -DDR PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -1 - -DDR PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drive the RESET input of the PLL: 0: PLL out of reset 1: PLL held in reset Remember that after reset, program the PLLs and ensure that the serviced bit below is asserted before using. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -0 - -DDR PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_PLL_LOCK - -1:1 - -2 - -1 - -2 - -DDR PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -2 - - - -2 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -0 - -DDR PLL Control -
-

-

Register ( slcr )DDR_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_CLK_CTRL - -0XF8000124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_3XCLKACT - -0:0 - -1 - -1 - -1 - -DDR_3x Clock control: 0: disable, 1: enable -
-DDR_2XCLKACT - -1:1 - -2 - -1 - -2 - -DDR_2x Clock control: 0: disable, 1: enable -
-DDR_3XCLK_DIVISOR - -25:20 - -3f00000 - -2 - -200000 - -Frequency divisor for the ddr_3x clock -
-DDR_2XCLK_DIVISOR - -31:26 - -fc000000 - -3 - -c000000 - -Frequency divisor for the ddr_2x clock -
-DDR_CLK_CTRL@0XF8000124 - -31:0 - -fff00003 - - - -c200003 - -DDR Clock Control -
-

-

IO PLL INIT

-

Register ( slcr )IO_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CFG - -0XF8000118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -c - -c0 - -Drive the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control. -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drive the PLL_CP[3:0] input of the PLL to set the PLL charge pump control. -
-LOCK_CNT - -21:12 - -3ff000 - -145 - -145000 - -Drive the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before staying locked. -
-IO_PLL_CFG@0XF8000118 - -31:0 - -3ffff0 - - - -1452c0 - -IO PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -1e - -1e000 - -Provide the feedback divisor for the PLL. Note: Before changing this value, the PLL must first be bypassed and then put into powerdown or reset state. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -7f000 - - - -1e000 - -IO PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -10 - -IO PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -1 - -IO PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drive the RESET input of the PLL: 0: PLL out of reset. 1: PLL held in reset. Remember that after a reset, program the PLLs and ensure that the serviced bit below is asserted before using. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -0 - -IO PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IO_PLL_LOCK - -2:2 - -4 - -1 - -4 - -IO PLL lock status: 0: not locked, 1: locked -
-PLL_STATUS@0XF800010C - -31:0 - -4 - - - -4 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overide control of the PLL bypass function within the clock controller to force into bypass state: 0: PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1: PLL forced to be bypassed -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -0 - -IO PLL Control -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_clock_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DCI_CLK_CTRL - - -0XF8000128 - -32 - -RW - -0x000000 - -DCI clock control -
- -GEM0_RCLK_CTRL - - -0XF8000138 - -32 - -RW - -0x000000 - -GigE 0 Rx Clock Control -
- -GEM0_CLK_CTRL - - -0XF8000140 - -32 - -RW - -0x000000 - -GigE 0 Ref Clock Control -
- -LQSPI_CLK_CTRL - - -0XF800014C - -32 - -RW - -0x000000 - -Quad SPI Ref Clock Control -
- -SDIO_CLK_CTRL - - -0XF8000150 - -32 - -RW - -0x000000 - -SDIO Ref Clock Control -
- -UART_CLK_CTRL - - -0XF8000154 - -32 - -RW - -0x000000 - -UART Ref Clock Control -
- -CAN_CLK_CTRL - - -0XF800015C - -32 - -RW - -0x000000 - -CAN Ref Clock Control -
- -CAN_MIOCLK_CTRL - - -0XF8000160 - -32 - -RW - -0x000000 - -CAN MIO Clock Control -
- -PCAP_CLK_CTRL - - -0XF8000168 - -32 - -RW - -0x000000 - -PCAP Clock Control -
- -FPGA0_CLK_CTRL - - -0XF8000170 - -32 - -RW - -0x000000 - -PL Clock 0 Output control -
- -FPGA1_CLK_CTRL - - -0XF8000180 - -32 - -RW - -0x000000 - -PL Clock 1 Output control -
- -FPGA2_CLK_CTRL - - -0XF8000190 - -32 - -RW - -0x000000 - -PL Clock 2 output control -
- -FPGA3_CLK_CTRL - - -0XF80001A0 - -32 - -RW - -0x000000 - -PL Clock 3 output control -
- -CLK_621_TRUE - - -0XF80001C4 - -32 - -RW - -0x000000 - -CPU Clock Ratio Mode select -
- -APER_CLK_CTRL - - -0XF800012C - -32 - -RW - -0x000000 - -AMBA Peripheral Clock Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_clock_init_data_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

CLOCK CONTROL SLCR REGISTERS

-

Register ( slcr )DCI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DCI_CLK_CTRL - -0XF8000128 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -DCI clock control - 0: disable, 1: enable -
-DIVISOR0 - -13:8 - -3f00 - -23 - -2300 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-DCI_CLK_CTRL@0XF8000128 - -31:0 - -3f03f01 - - - -302301 - -DCI clock control -
-

-

Register ( slcr )GEM0_RCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_RCLK_CTRL - -0XF8000138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Ethernet Controler 0 Rx Clock control 0: disable, 1: enable -
-SRCSEL - -4:4 - -10 - -0 - -0 - -Select the source to generate the Rx clock: 0: MIO Rx clock, 1: EMIO Rx clock -
-GEM0_RCLK_CTRL@0XF8000138 - -31:0 - -11 - - - -1 - -GigE 0 Rx Clock Control -
-

-

Register ( slcr )GEM0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_CLK_CTRL - -0XF8000140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Ethernet Controller 0 Reference Clock control 0: disable, 1: enable -
-SRCSEL - -6:4 - -70 - -0 - -0 - -Selects the source to generate the reference clock 00x: IO PLL. 010: ARM PLL. 011: DDR PLL 1xx: Ethernet controller 0 EMIO clock -
-DIVISOR - -13:8 - -3f00 - -8 - -800 - -First divisor for Ethernet controller 0 source clock. -
-DIVISOR1 - -25:20 - -3f00000 - -5 - -500000 - -Second divisor for Ethernet controller 0 source clock. -
-GEM0_CLK_CTRL@0XF8000140 - -31:0 - -3f03f71 - - - -500801 - -GigE 0 Ref Clock Control -
-

-

Register ( slcr )LQSPI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LQSPI_CLK_CTRL - -0XF800014C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Quad SPI Controller Reference Clock control 0: disable, 1: enable -
-SRCSEL - -5:4 - -30 - -2 - -20 - -Select clock source generate Quad SPI clock: 0x: IO PLL, 10: ARM PLL, 11: DDR PLL -
-DIVISOR - -13:8 - -3f00 - -7 - -700 - -Divisor for Quad SPI Controller source clock. -
-LQSPI_CLK_CTRL@0XF800014C - -31:0 - -3f31 - - - -721 - -Quad SPI Ref Clock Control -
-

-

Register ( slcr )SDIO_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SDIO_CLK_CTRL - -0XF8000150 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -SDIO Controller 0 Clock control. 0: disable, 1: enable -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -SDIO Controller 1 Clock control. 0: disable, 1: enable -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock. 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-SDIO_CLK_CTRL@0XF8000150 - -31:0 - -3f33 - - - -1401 - -SDIO Ref Clock Control -
-

-

Register ( slcr )UART_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-UART_CLK_CTRL - -0XF8000154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -0 - -0 - -UART 0 Reference clock control. 0: disable, 1: enable -
-CLKACT1 - -1:1 - -2 - -1 - -2 - -UART 1 reference clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the PLL source to generate the clock. 0x: IO PLL 10: ARM PLL 11: DDR PLL -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Divisor for UART Controller source clock. -
-UART_CLK_CTRL@0XF8000154 - -31:0 - -3f33 - - - -1402 - -UART Ref Clock Control -
-

-

Register ( slcr )CAN_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_CLK_CTRL - -0XF800015C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -CAN 0 Reference Clock active: 0: Clock is disabled 1: Clock is enabled -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -CAN 1 Reference Clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -e - -e00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider. -
-CAN_CLK_CTRL@0XF800015C - -31:0 - -3f03f33 - - - -300e01 - -CAN Ref Clock Control -
-

-

Register ( slcr )CAN_MIOCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_MIOCLK_CTRL - -0XF8000160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CAN0_MUX - -5:0 - -3f - -0 - -0 - -CAN 0 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN0_REF_SEL - -6:6 - -40 - -0 - -0 - -CAN 0 Reference Clock selection: 0: From internal PLL 1: From MIO based on the next field -
-CAN1_MUX - -21:16 - -3f0000 - -0 - -0 - -CAN 1 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN1_REF_SEL - -22:22 - -400000 - -0 - -0 - -CAN 1 Reference Clock selection: 0: From internal PLL. 1: From MIO based on the next field -
-CAN_MIOCLK_CTRL@0XF8000160 - -31:0 - -7f007f - - - -0 - -CAN MIO Clock Control -
-

-

Register ( slcr )PCAP_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PCAP_CLK_CTRL - -0XF8000168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active: 0: Clock is disabled 1: Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-PCAP_CLK_CTRL@0XF8000168 - -31:0 - -3f31 - - - -501 - -PCAP Clock Control -
-

-

Register ( slcr )FPGA0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA0_CLK_CTRL - -0XF8000170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -a - -a00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA0_CLK_CTRL@0XF8000170 - -31:0 - -3f03f30 - - - -100a00 - -PL Clock 0 Output control -
-

-

Register ( slcr )FPGA1_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 1 Output control -
-

-

Register ( slcr )FPGA2_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 2 output control -
-

-

Register ( slcr )FPGA3_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
-FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -101400 - -PL Clock 3 output control -
-

-

Register ( slcr )CLK_621_TRUE

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CLK_621_TRUE - -0XF80001C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLK_621_TRUE - -0:0 - -1 - -1 - -1 - -Select the CPU clock ration: 0: 4:2:1 1: 6:2:1 -
-CLK_621_TRUE@0XF80001C4 - -31:0 - -1 - - - -1 - -CPU Clock Ratio Mode select -
-

-

Register ( slcr )APER_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-APER_CLK_CTRL - -0XF800012C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DMA_CPU_2XCLKACT - -0:0 - -1 - -1 - -1 - -DMA controller AMBA Clock control 0: disable, 1: enable -
-USB0_CPU_1XCLKACT - -2:2 - -4 - -1 - -4 - -USB controller 0 AMBA Clock control 0: disable, 1: enable -
-USB1_CPU_1XCLKACT - -3:3 - -8 - -1 - -8 - -USB controller 1 AMBA Clock control 0: disable, 1: enable -
-GEM0_CPU_1XCLKACT - -6:6 - -40 - -1 - -40 - -Gigabit Ethernet 0 AMBA Clock control 0: disable, 1: enable -
-GEM1_CPU_1XCLKACT - -7:7 - -80 - -0 - -0 - -Gigabit Ethernet 1 AMBA Clock control 0: disable, 1: enable -
-SDI0_CPU_1XCLKACT - -10:10 - -400 - -1 - -400 - -SDIO controller 0 AMBA Clock 0: disable, 1: enable -
-SDI1_CPU_1XCLKACT - -11:11 - -800 - -0 - -0 - -SDIO controller 1 AMBA Clock control 0: disable, 1: enable -
-SPI0_CPU_1XCLKACT - -14:14 - -4000 - -0 - -0 - -SPI 0 AMBA Clock control 0: disable, 1: enable -
-SPI1_CPU_1XCLKACT - -15:15 - -8000 - -0 - -0 - -SPI 1 AMBA Clock control 0: disable, 1: enable -
-CAN0_CPU_1XCLKACT - -16:16 - -10000 - -1 - -10000 - -CAN 0 AMBA Clock control 0: disable, 1: enable -
-CAN1_CPU_1XCLKACT - -17:17 - -20000 - -0 - -0 - -CAN 1 AMBA Clock control 0: disable, 1: enable -
-I2C0_CPU_1XCLKACT - -18:18 - -40000 - -1 - -40000 - -I2C 0 AMBA Clock control 0: disable, 1: enable -
-I2C1_CPU_1XCLKACT - -19:19 - -80000 - -1 - -80000 - -I2C 1 AMBA Clock control 0: disable, 1: enable -
-UART0_CPU_1XCLKACT - -20:20 - -100000 - -0 - -0 - -UART 0 AMBA Clock control 0: disable, 1: enable -
-UART1_CPU_1XCLKACT - -21:21 - -200000 - -1 - -200000 - -UART 1 AMBA Clock control 0: disable, 1: enable -
-GPIO_CPU_1XCLKACT - -22:22 - -400000 - -1 - -400000 - -GPIO AMBA Clock control 0: disable, 1: enable -
-LQSPI_CPU_1XCLKACT - -23:23 - -800000 - -1 - -800000 - -Quad SPI AMBA Clock control 0: disable, 1: enable -
-SMC_CPU_1XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -SMC AMBA Clock control 0: disable, 1: enable -
-APER_CLK_CTRL@0XF800012C - -31:0 - -1ffcccd - - - -1ed044d - -AMBA Peripheral Clock Control -
-

-

THIS SHOULD BE BLANK

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_ddr_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control -
- -Two_rank_cfg - - -0XF8006004 - -32 - -RW - -0x000000 - -Two Rank Configuration -
- -HPR_reg - - -0XF8006008 - -32 - -RW - -0x000000 - -HPR Queue control -
- -LPR_reg - - -0XF800600C - -32 - -RW - -0x000000 - -LPR Queue control -
- -WR_reg - - -0XF8006010 - -32 - -RW - -0x000000 - -WR Queue control -
- -DRAM_param_reg0 - - -0XF8006014 - -32 - -RW - -0x000000 - -DRAM Parameters 0 -
- -DRAM_param_reg1 - - -0XF8006018 - -32 - -RW - -0x000000 - -DRAM Parameters 1 -
- -DRAM_param_reg2 - - -0XF800601C - -32 - -RW - -0x000000 - -DRAM Parameters 2 -
- -DRAM_param_reg3 - - -0XF8006020 - -32 - -RW - -0x000000 - -DRAM Parameters 3 -
- -DRAM_param_reg4 - - -0XF8006024 - -32 - -RW - -0x000000 - -DRAM Parameters 4 -
- -DRAM_init_param - - -0XF8006028 - -32 - -RW - -0x000000 - -DRAM Initialization Parameters -
- -DRAM_EMR_reg - - -0XF800602C - -32 - -RW - -0x000000 - -DRAM EMR2, EMR3 access -
- -DRAM_EMR_MR_reg - - -0XF8006030 - -32 - -RW - -0x000000 - -DRAM EMR, MR access -
- -DRAM_burst8_rdwr - - -0XF8006034 - -32 - -RW - -0x000000 - -DRAM Burst 8 read/write -
- -DRAM_disable_DQ - - -0XF8006038 - -32 - -RW - -0x000000 - -DRAM Disable DQ -
- -DRAM_addr_map_bank - - -0XF800603C - -32 - -RW - -0x000000 - -Row/Column address bits -
- -DRAM_addr_map_col - - -0XF8006040 - -32 - -RW - -0x000000 - -Column address bits -
- -DRAM_addr_map_row - - -0XF8006044 - -32 - -RW - -0x000000 - -Select DRAM row address bits -
- -DRAM_ODT_reg - - -0XF8006048 - -32 - -RW - -0x000000 - -DRAM ODT control -
- -phy_cmd_timeout_rddata_cpt - - -0XF8006050 - -32 - -RW - -0x000000 - -PHY command time out and read data capture FIFO -
- -DLL_calib - - -0XF8006058 - -32 - -RW - -0x000000 - -DLL calibration -
- -ODT_delay_hold - - -0XF800605C - -32 - -RW - -0x000000 - -ODT delay and ODT hold -
- -ctrl_reg1 - - -0XF8006060 - -32 - -RW - -0x000000 - -Controller 1 -
- -ctrl_reg2 - - -0XF8006064 - -32 - -RW - -0x000000 - -Controller 2 -
- -ctrl_reg3 - - -0XF8006068 - -32 - -RW - -0x000000 - -Controller 3 -
- -ctrl_reg4 - - -0XF800606C - -32 - -RW - -0x000000 - -Controller 4 -
- -ctrl_reg5 - - -0XF8006078 - -32 - -RW - -0x000000 - -Controller register 5 -
- -ctrl_reg6 - - -0XF800607C - -32 - -RW - -0x000000 - -Controller register 6 -
- -CHE_REFRESH_TIMER01 - - -0XF80060A0 - -32 - -RW - -0x000000 - -CHE_REFRESH_TIMER01 -
- -CHE_T_ZQ - - -0XF80060A4 - -32 - -RW - -0x000000 - -ZQ parameters -
- -CHE_T_ZQ_Short_Interval_Reg - - -0XF80060A8 - -32 - -RW - -0x000000 - -Misc parameters -
- -deep_pwrdwn_reg - - -0XF80060AC - -32 - -RW - -0x000000 - -Deep powerdown (LPDDR2) -
- -reg_2c - - -0XF80060B0 - -32 - -RW - -0x000000 - -Training control -
- -reg_2d - - -0XF80060B4 - -32 - -RW - -0x000000 - -Misc Debug -
- -dfi_timing - - -0XF80060B8 - -32 - -RW - -0x000000 - -DFI timing -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
- -CHE_CORR_ECC_LOG_REG_OFFSET - - -0XF80060C8 - -32 - -RW - -0x000000 - -ECC error correction -
- -CHE_UNCORR_ECC_LOG_REG_OFFSET - - -0XF80060DC - -32 - -RW - -0x000000 - -ECC unrecoverable error status -
- -CHE_ECC_STATS_REG_OFFSET - - -0XF80060F0 - -32 - -RW - -0x000000 - -ECC error count -
- -ECC_scrub - - -0XF80060F4 - -32 - -RW - -0x000000 - -ECC mode/scrub -
- -phy_rcvr_enable - - -0XF8006114 - -32 - -RW - -0x000000 - -Phy receiver enable register -
- -PHY_Config0 - - -0XF8006118 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config1 - - -0XF800611C - -32 - -RW - -0x000000 - -PHY configuration register for data slice 1. -
- -PHY_Config2 - - -0XF8006120 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 2. -
- -PHY_Config3 - - -0XF8006124 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 3. -
- -phy_init_ratio0 - - -0XF800612C - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio1 - - -0XF8006130 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 1. -
- -phy_init_ratio2 - - -0XF8006134 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 2. -
- -phy_init_ratio3 - - -0XF8006138 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 3. -
- -phy_rd_dqs_cfg0 - - -0XF8006140 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg1 - - -0XF8006144 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 1. -
- -phy_rd_dqs_cfg2 - - -0XF8006148 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 2. -
- -phy_rd_dqs_cfg3 - - -0XF800614C - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 3. -
- -phy_wr_dqs_cfg0 - - -0XF8006154 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg1 - - -0XF8006158 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 1. -
- -phy_wr_dqs_cfg2 - - -0XF800615C - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 2. -
- -phy_wr_dqs_cfg3 - - -0XF8006160 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 3. -
- -phy_we_cfg0 - - -0XF8006168 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 0. -
- -phy_we_cfg1 - - -0XF800616C - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 1. -
- -phy_we_cfg2 - - -0XF8006170 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 2. -
- -phy_we_cfg3 - - -0XF8006174 - -32 - -RW - -0x000000 - -PHY FIFO write enable configuration for data slice 3. -
- -wr_data_slv0 - - -0XF800617C - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 0. -
- -wr_data_slv1 - - -0XF8006180 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 1. -
- -wr_data_slv2 - - -0XF8006184 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 2. -
- -wr_data_slv3 - - -0XF8006188 - -32 - -RW - -0x000000 - -PHY write data slave ratio config for data slice 3. -
- -reg_64 - - -0XF8006190 - -32 - -RW - -0x000000 - -Training control 2 -
- -reg_65 - - -0XF8006194 - -32 - -RW - -0x000000 - -Training control 3 -
- -page_mask - - -0XF8006204 - -32 - -RW - -0x000000 - -Page mask -
- -axi_priority_wr_port0 - - -0XF8006208 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port1 - - -0XF800620C - -32 - -RW - -0x000000 - -AXI Priority control for write port 1. -
- -axi_priority_wr_port2 - - -0XF8006210 - -32 - -RW - -0x000000 - -AXI Priority control for write port 2. -
- -axi_priority_wr_port3 - - -0XF8006214 - -32 - -RW - -0x000000 - -AXI Priority control for write port 3. -
- -axi_priority_rd_port0 - - -0XF8006218 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port1 - - -0XF800621C - -32 - -RW - -0x000000 - -AXI Priority control for read port 1. -
- -axi_priority_rd_port2 - - -0XF8006220 - -32 - -RW - -0x000000 - -AXI Priority control for read port 2. -
- -axi_priority_rd_port3 - - -0XF8006224 - -32 - -RW - -0x000000 - -AXI Priority control for read port 3. -
- -lpddr_ctrl0 - - -0XF80062A8 - -32 - -RW - -0x000000 - -LPDDR2 Control 0 -
- -lpddr_ctrl1 - - -0XF80062AC - -32 - -RW - -0x000000 - -LPDDR2 Control 1 -
- -lpddr_ctrl2 - - -0XF80062B0 - -32 - -RW - -0x000000 - -LPDDR2 Control 2 -
- -lpddr_ctrl3 - - -0XF80062B4 - -32 - -RW - -0x000000 - -LPDDR2 Control 3 -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control -
-

-

ps7_ddr_init_data_2_0

- - - - - - - - - -

DDR INITIALIZATION

-

LOCK DDR

-

Register ( slcr )ddrc_ctrl

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -0 - -0 - -Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -80 - -DDRC Control -
-

-

Register ( slcr )Two_rank_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Two_rank_cfg - -0XF8006004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rfc_nom_x32 - -11:0 - -fff - -81 - -81 - -tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM related. Default value is set for DDR3. Dynamic Bit Field. -
-reg_ddrc_active_ranks - -13:12 - -3000 - -1 - -1000 - -Rank configuration: 01: One Rank of DDR 11: Two Ranks of DDR Others: reserved -
-reg_ddrc_addrmap_cs_bit0 - -18:14 - -7c000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. -
-reg_ddrc_wr_odt_block - -20:19 - -180000 - -1 - -80000 - -Block read/write scheduling cycle count when Write requires changing ODT settings 00: 1 cycle 01: 2 cycles 10: 3 cycles others: reserved -
-reg_ddrc_diff_rank_rd_2cycle_gap - -21:21 - -200000 - -0 - -0 - -Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0: schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1: schedule 2 cycle gap for the same -
-reg_ddrc_addrmap_cs_bit1 - -26:22 - -7c00000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. -
-reg_ddrc_addrmap_open_bank - -27:27 - -8000000 - -0 - -0 - -Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map to Open Bank mode -
-reg_ddrc_addrmap_4bank_ram - -28:28 - -10000000 - -0 - -0 - -Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1: Set the address map for 4 Bank RAMs -
-Two_rank_cfg@0XF8006004 - -31:0 - -1fffffff - - - -81081 - -Two Rank Configuration -
-

-

Register ( slcr )HPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-HPR_reg - -0XF8006008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_hpr_min_non_critical_x32 - -10:0 - -7ff - -f - -f - -Number of counts that the HPR queue is guaranteed to be non-critical (1 count = 32 DDR clocks). -
-reg_ddrc_hpr_max_starve_x32 - -21:11 - -3ff800 - -f - -7800 - -Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_hpr_xact_run_length - -25:22 - -3c00000 - -f - -3c00000 - -Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. -
-HPR_reg@0XF8006008 - -31:0 - -3ffffff - - - -3c0780f - -HPR Queue control -
-

-

Register ( slcr )LPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LPR_reg - -0XF800600C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpr_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks -
-reg_ddrc_lpr_max_starve_x32 - -21:11 - -3ff800 - -2 - -1000 - -Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_lpr_xact_run_length - -25:22 - -3c00000 - -8 - -2000000 - -Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available -
-LPR_reg@0XF800600C - -31:0 - -3ffffff - - - -2001001 - -LPR Queue control -
-

-

Register ( slcr )WR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-WR_reg - -0XF8006010 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_w_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clock cycles that the WR queue is guaranteed to be non-critical. -
-reg_ddrc_w_xact_run_length - -14:11 - -7800 - -8 - -4000 - -Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available -
-reg_ddrc_w_max_starve_x32 - -25:15 - -3ff8000 - -2 - -10000 - -Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. -
-WR_reg@0XF8006010 - -31:0 - -3ffffff - - - -14001 - -WR Queue control -
-

-

Register ( slcr )DRAM_param_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg0 - -0XF8006014 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rc - -5:0 - -3f - -1b - -1b - -tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM Related. Default value is set for DDR3. -
-reg_ddrc_t_rfc_min - -13:6 - -3fc0 - -56 - -1580 - -tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75nS to 195nS). DRAM Related. Default value is set for DDR3. Dynamic Bit Field. -
-reg_ddrc_post_selfref_gap_x32 - -20:14 - -1fc000 - -10 - -40000 - -Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks. DRAM Related -
-DRAM_param_reg0@0XF8006014 - -31:0 - -1fffff - - - -4159b - -DRAM Parameters 0 -
-

-

Register ( slcr )DRAM_param_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg1 - -0XF8006018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wr2pre - -4:0 - -1f - -12 - -12 - -Minimum time between write and precharge to same bank DDR and DDR3: WL + BL/2 + tWR LPDDR2: WL + BL/2 + tWR + 1 Unit: Clocks where, WL: write latency. BL: burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR: write recovery time. This comes directly from the DRAM specs. -
-reg_ddrc_powerdown_to_x32 - -9:5 - -3e0 - -6 - -c0 - -After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. -
-reg_ddrc_t_faw - -15:10 - -fc00 - -10 - -4000 - -tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks. DRAM Related. -
-reg_ddrc_t_ras_max - -21:16 - -3f0000 - -24 - -240000 - -tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec is 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM related. -
-reg_ddrc_t_ras_min - -26:22 - -7c00000 - -14 - -5000000 - -tRAS(min) - Minimum time between activate and precharge to the same bank (spec is 45 ns). Unit: clocks DRAM related. Default value is set for DDR3. -
-reg_ddrc_t_cke - -31:28 - -f0000000 - -4 - -40000000 - -Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. DDR2 and DDR3: Set this to tCKE value. LPDDR2: Set this to the larger of tCKE or tCKESR. Unit: clocks. -
-DRAM_param_reg1@0XF8006018 - -31:0 - -f7ffffff - - - -452440d2 - -DRAM Parameters 1 -
-

-

Register ( slcr )DRAM_param_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg2 - -0XF800601C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_write_latency - -4:0 - -1f - -5 - -5 - -Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2 and DDR3: WL -1 LPDDR2: WL Where WL: Write Latency of DRAM DRAM related. -
-reg_ddrc_rd2wr - -9:5 - -3e0 - -7 - -e0 - -Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. DDR2 and DDR3: RL + BL/2 + 2 - WL LPDDR2: RL + BL/2 + RU (tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. -
-reg_ddrc_wr2rd - -14:10 - -7c00 - -e - -3800 - -Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. DDR2 and DDR3: WL + tWTR + BL/2 LPDDR2: WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL: Write latency, BL: burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR: internal WRITE to READ command delay. This comes directly from the DRAM specs. -
-reg_ddrc_t_xp - -19:15 - -f8000 - -4 - -20000 - -tXP: Minimum time after power down exit to any operation. DRAM related. -
-reg_ddrc_pad_pd - -22:20 - -700000 - -0 - -0 - -If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. -
-reg_ddrc_rd2pre - -27:23 - -f800000 - -4 - -2000000 - -Minimum time from read to precharge of same bank DDR2: AL + BL/2 + max(tRTP, 2) - 2 DDR3: AL + max (tRTP, 4) LPDDR2: BL/2 + tRTP - 1 AL: Additive Latency; BL: DRAM Burst Length; tRTP: value from spec. DRAM related. -
-reg_ddrc_t_rcd - -31:28 - -f0000000 - -7 - -70000000 - -tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency. DRAM Related. -
-DRAM_param_reg2@0XF800601C - -31:0 - -ffffffff - - - -720238e5 - -DRAM Parameters 2 -
-

-

Register ( slcr )DRAM_param_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg3 - -0XF8006020 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ccd - -4:2 - -1c - -4 - -10 - -tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1. DRAM related. -
-reg_ddrc_t_rrd - -7:5 - -e0 - -4 - -80 - -tRRD - Minimum time between activates from bank A to bank B. (spec: 10ns or less) DRAM RELATED -
-reg_ddrc_refresh_margin - -11:8 - -f00 - -2 - -200 - -Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. -
-reg_ddrc_t_rp - -15:12 - -f000 - -7 - -7000 - -tRP - Minimum time from precharge to activate of same bank. DRAM RELATED -
-reg_ddrc_refresh_to_x32 - -20:16 - -1f0000 - -8 - -80000 - -If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. Dynamic Bit Field. -
-reg_ddrc_sdram - -21:21 - -200000 - -1 - -200000 - -1: sdram device 0: non-sdram device -
-reg_ddrc_mobile - -22:22 - -400000 - -0 - -0 - -0: DDR2 or DDR3 device. 1: LPDDR2 device. -
-reg_ddrc_clock_stop_en - -23:23 - -800000 - -0 - -0 - -DDR2 and DDR3: not used. LPDDR2: 0: stop_clk will never be asserted. 1: enable the assertion of stop_clk to the PHY whenever a clock is not required -
-reg_ddrc_read_latency - -28:24 - -1f000000 - -7 - -7000000 - -Non-LPDDR2: not used. DDR2 and DDR3: Set to Read Latency, RL. Time from Read command to Read data on DRAM interface. It is used to calculate when DRAM clock may be stopped. Unit: DDR clock. -
-reg_phy_mode_ddr1_ddr2 - -29:29 - -20000000 - -1 - -20000000 - -unused -
-reg_ddrc_dis_pad_pd - -30:30 - -40000000 - -0 - -0 - -1: disable the pad power down feature 0: Enable the pad power down feature. -
-reg_ddrc_loopback - -31:31 - -80000000 - -0 - -0 - -unused -
-DRAM_param_reg3@0XF8006020 - -31:0 - -fffffffc - - - -27287290 - -DRAM Parameters 3 -
-

-

Register ( slcr )DRAM_param_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg4 - -0XF8006024 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_en_2t_timing_mode - -0:0 - -1 - -0 - -0 - -1: DDRC will use 2T timing 0: DDRC will use 1T timing -
-reg_ddrc_prefer_write - -1:1 - -2 - -0 - -0 - -1: Bank selector prefers writes over reads -
-reg_ddrc_max_rank_rd - -5:2 - -3c - -f - -3c - -Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. -
-reg_ddrc_mr_wr - -6:6 - -40 - -0 - -0 - -A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and "ddrc_reg_mr_wr_busy" is detected low. -
-reg_ddrc_mr_addr - -8:7 - -180 - -0 - -0 - -DDR2 and DDR3: Mode register address. LPDDR2: not used. 00: MR0 01: MR1 10: MR2 11: MR3 -
-reg_ddrc_mr_data - -24:9 - -1fffe00 - -0 - -0 - -DDR2 and DDR3: Mode register write data. LPDDR2: The 16 bits are interpreted for reads and writes: Reads: MR Addr[7:0], Don't Care[7:0]. Writes: MR Addf[7:0], MR Data[7:0]. -
-ddrc_reg_mr_wr_busy - -25:25 - -2000000 - -0 - -0 - -Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 0: Indicates that the core can initiate a mode register write / read operation. 1: Indicates that mode register write / read operation is in progress. -
-reg_ddrc_mr_type - -26:26 - -4000000 - -0 - -0 - -Indicates whether the Mode register operation is read or write 0: write 1: read -
-reg_ddrc_mr_rdata_valid - -27:27 - -8000000 - -0 - -0 - -This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 0 by default. This bit will be cleared (0), whenever a Mode Register Read command is issued. This bit will be set to 1, when the Mode Register Read Data is written to register 0xA9. -
-DRAM_param_reg4@0XF8006024 - -31:0 - -fffffff - - - -3c - -DRAM Parameters 4 -
-

-

Register ( slcr )DRAM_init_param

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_init_param - -0XF8006028 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_final_wait_x32 - -6:0 - -7f - -7 - -7 - -Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. -
-reg_ddrc_pre_ocd_x32 - -10:7 - -780 - -0 - -0 - -Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. -
-reg_ddrc_t_mrd - -13:11 - -3800 - -4 - -2000 - -tMRD - Cycles between Load Mode commands. DRAM related. Default value is set for DDR3. -
-DRAM_init_param@0XF8006028 - -31:0 - -3fff - - - -2007 - -DRAM Initialization Parameters -
-

-

Register ( slcr )DRAM_EMR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_reg - -0XF800602C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_emr2 - -15:0 - -ffff - -8 - -8 - -DDR2 and DDR3: Value written into the DRAM EMR2 register. LPDDR2: Value written into the DRAM MR3 register. -
-reg_ddrc_emr3 - -31:16 - -ffff0000 - -0 - -0 - -DDR2 and DDR3: Value written into the DRAM EMR3 register. LPDDR2: not used. -
-DRAM_EMR_reg@0XF800602C - -31:0 - -ffffffff - - - -8 - -DRAM EMR2, EMR3 access -
-

-

Register ( slcr )DRAM_EMR_MR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_MR_reg - -0XF8006030 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr - -15:0 - -ffff - -930 - -930 - -DDR2 and DDR3: Value written into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. LPDDR2: Value written into the DRAM MR1 register -
-reg_ddrc_emr - -31:16 - -ffff0000 - -4 - -40000 - -DDR2 and DDR3: Value written into the DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. LPDDR2: Value written into the DRAM MR2 register. -
-DRAM_EMR_MR_reg@0XF8006030 - -31:0 - -ffffffff - - - -40930 - -DRAM EMR, MR access -
-

-

Register ( slcr )DRAM_burst8_rdwr

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_burst8_rdwr - -0XF8006034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_burst_rdwr - -3:0 - -f - -4 - -4 - -Controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. 0010: Burst length of 4 0100: Burst length of 8 1000: Burst length of 16 (LPDDR2 with ___-bit data) All other values are reserved -
-reg_ddrc_pre_cke_x1024 - -13:4 - -3ff0 - -105 - -1050 - -Clock cycles to wait after a DDR software reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 uS. LPDDR2 - tINIT0 of 20 mS (max) + tINIT1 of 100 nS (min) -
-reg_ddrc_post_cke_x1024 - -25:16 - -3ff0000 - -1 - -10000 - -Clock cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. -
-reg_ddrc_burstchop - -28:28 - -10000000 - -0 - -0 - -Feature not supported. When 1, Controller is out in burstchop mode. -
-DRAM_burst8_rdwr@0XF8006034 - -31:0 - -13ff3fff - - - -11054 - -DRAM Burst 8 read/write -
-

-

Register ( slcr )DRAM_disable_DQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_disable_DQ - -0XF8006038 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_force_low_pri_n - -0:0 - -1 - -0 - -0 - -Read Transaction Priority disable. 0: read transactions forced to low priority (turns off Bypass). 1: HPR reads allowed if enabled in the AXI priority read registers. -
-reg_ddrc_dis_dq - -1:1 - -2 - -0 - -0 - -When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. Dynamic Bit Field. -
-reg_phy_debug_mode - -6:6 - -40 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_wr_level_start - -7:7 - -80 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_rd_level_start - -8:8 - -100 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_dq0_wait_t - -12:9 - -1e00 - -0 - -0 - -Not Applicable in this PHY. -
-DRAM_disable_DQ@0XF8006038 - -31:0 - -1fc3 - - - -0 - -DRAM Disable DQ -
-

-

Register ( slcr )DRAM_addr_map_bank

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_bank - -0XF800603C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_bank_b0 - -3:0 - -f - -7 - -7 - -Selects the address bits used as bank address bit 0. Valid Range: 0 to 14. Internal Base: 5. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b1 - -7:4 - -f0 - -7 - -70 - -Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b2 - -11:8 - -f00 - -7 - -700 - -Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. -
-reg_ddrc_addrmap_col_b5 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 -
-reg_ddrc_addrmap_col_b6 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 -
-DRAM_addr_map_bank@0XF800603C - -31:0 - -fffff - - - -777 - -Row/Column address bits -
-

-

Register ( slcr )DRAM_addr_map_col

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_col - -0XF8006040 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_col_b2 - -3:0 - -f - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b3 - -7:4 - -f0 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b4 - -11:8 - -f00 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b7 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b8 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b9 - -23:20 - -f00000 - -f - -f00000 - -Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b10 - -27:24 - -f000000 - -f - -f000000 - -Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b11 - -31:28 - -f0000000 - -f - -f0000000 - -Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-DRAM_addr_map_col@0XF8006040 - -31:0 - -ffffffff - - - -fff00000 - -Column address bits -
-

-

Register ( slcr )DRAM_addr_map_row

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_row - -0XF8006044 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_row_b0 - -3:0 - -f - -6 - -6 - -Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field -
-reg_ddrc_addrmap_row_b1 - -7:4 - -f0 - -6 - -60 - -Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b2_11 - -11:8 - -f00 - -6 - -600 - -Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b12 - -15:12 - -f000 - -6 - -6000 - -Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. -
-reg_ddrc_addrmap_row_b13 - -19:16 - -f0000 - -6 - -60000 - -Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. -
-reg_ddrc_addrmap_row_b14 - -23:20 - -f00000 - -6 - -600000 - -Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. -
-reg_ddrc_addrmap_row_b15 - -27:24 - -f000000 - -f - -f000000 - -Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. -
-DRAM_addr_map_row@0XF8006044 - -31:0 - -fffffff - - - -f666666 - -Select DRAM row address bits -
-

-

Register ( slcr )DRAM_ODT_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_ODT_reg - -0XF8006048 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rank0_rd_odt - -2:0 - -7 - -0 - -0 - -Unused. [1:0] - Indicates which remote ODTs must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during reads to rank 0. -
-reg_ddrc_rank0_wr_odt - -5:3 - -38 - -1 - -8 - -[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2]: If 1 then local ODT is enabled during writes to rank 0. -
-reg_ddrc_rank1_rd_odt - -8:6 - -1c0 - -1 - -40 - -Unused -
-reg_ddrc_rank1_wr_odt - -11:9 - -e00 - -1 - -200 - -Unused -
-reg_phy_rd_local_odt - -13:12 - -3000 - -0 - -0 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. -
-reg_phy_wr_local_odt - -15:14 - -c000 - -3 - -c000 - -Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. -
-reg_phy_idle_local_odt - -17:16 - -30000 - -3 - -30000 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. -
-reg_ddrc_rank2_rd_odt - -20:18 - -1c0000 - -0 - -0 - -Unused -
-reg_ddrc_rank2_wr_odt - -23:21 - -e00000 - -0 - -0 - -Unused -
-reg_ddrc_rank3_rd_odt - -26:24 - -7000000 - -0 - -0 - -Unused -
-reg_ddrc_rank3_wr_odt - -29:27 - -38000000 - -0 - -0 - -Unused -
-DRAM_ODT_reg@0XF8006048 - -31:0 - -3fffffff - - - -3c248 - -DRAM ODT control -
-

-

Register ( slcr )phy_cmd_timeout_rddata_cpt

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_cmd_timeout_rddata_cpt - -0XF8006050 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_cmd_to_data - -3:0 - -f - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_wr_cmd_to_data - -7:4 - -f0 - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_rdc_we_to_re_delay - -11:8 - -f00 - -8 - -800 - -This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. -
-reg_phy_rdc_fifo_rst_disable - -15:15 - -8000 - -0 - -0 - -When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. -
-reg_phy_use_fixed_re - -16:16 - -10000 - -1 - -10000 - -When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. -
-reg_phy_rdc_fifo_rst_err_cnt_clr - -17:17 - -20000 - -0 - -0 - -Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. -
-reg_phy_dis_phy_ctrl_rstn - -18:18 - -40000 - -0 - -0 - -Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. -
-reg_phy_clk_stall_level - -19:19 - -80000 - -0 - -0 - -1: stall clock, for DLL aging control -
-reg_phy_gatelvl_num_of_dq0 - -27:24 - -f000000 - -7 - -7000000 - -This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-reg_phy_wrlvl_num_of_dq0 - -31:28 - -f0000000 - -7 - -70000000 - -This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-phy_cmd_timeout_rddata_cpt@0XF8006050 - -31:0 - -ff0f8fff - - - -77010800 - -PHY command time out and read data capture FIFO -
-

-

Register ( slcr )DLL_calib

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DLL_calib - -0XF8006058 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dll_calib_to_min_x1024 - -7:0 - -ff - -1 - -1 - -Unused in DFI Controller. -
-reg_ddrc_dll_calib_to_max_x1024 - -15:8 - -ff00 - -1 - -100 - -Unused in DFI Controller. -
-reg_ddrc_dis_dll_calib - -16:16 - -10000 - -0 - -0 - -When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically -
-DLL_calib@0XF8006058 - -31:0 - -1ffff - - - -101 - -DLL calibration -
-

-

Register ( slcr )ODT_delay_hold

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ODT_delay_hold - -0XF800605C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rd_odt_delay - -3:0 - -f - -3 - -3 - -UNUSED -
-reg_ddrc_wr_odt_delay - -7:4 - -f0 - -0 - -0 - -The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable to LPDDR2. -
-reg_ddrc_rd_odt_hold - -11:8 - -f00 - -0 - -0 - -Unused -
-reg_ddrc_wr_odt_hold - -15:12 - -f000 - -5 - -5000 - -Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 -
-ODT_delay_hold@0XF800605C - -31:0 - -ffff - - - -5003 - -ODT delay and ODT hold -
-

-

Register ( slcr )ctrl_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg1 - -0XF8006060 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_pageclose - -0:0 - -1 - -0 - -0 - -If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. -
-reg_ddrc_lpr_num_entries - -6:1 - -7e - -1f - -3e - -Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. -
-reg_ddrc_auto_pre_en - -7:7 - -80 - -0 - -0 - -When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) -
-reg_ddrc_refresh_update_level - -8:8 - -100 - -0 - -0 - -Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. Dynamic Bit Field. -
-reg_ddrc_dis_wc - -9:9 - -200 - -0 - -0 - -Disable Write Combine: 0: enable 1: disable -
-reg_ddrc_dis_collision_page_opt - -10:10 - -400 - -0 - -0 - -When this is set to 0, auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). -
-reg_ddrc_selfref_en - -12:12 - -1000 - -0 - -0 - -If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. Dynamic Bit Field. -
-ctrl_reg1@0XF8006060 - -31:0 - -17ff - - - -3e - -Controller 1 -
-

-

Register ( slcr )ctrl_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg2 - -0XF8006064 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_go2critical_hysteresis - -12:5 - -1fe0 - -0 - -0 - -Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. -
-reg_arb_go2critical_en - -17:17 - -20000 - -1 - -20000 - -0: Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 0. 1: Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on Urgent input coming from AXI master. -
-ctrl_reg2@0XF8006064 - -31:0 - -21fe0 - - - -20000 - -Controller 2 -
-

-

Register ( slcr )ctrl_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg3 - -0XF8006068 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wrlvl_ww - -7:0 - -ff - -41 - -41 - -DDR2: not applicable. LPDDR2 and DDR3: Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) -
-reg_ddrc_rdlvl_rr - -15:8 - -ff00 - -41 - -4100 - -DDR2 and LPDDR2: not applicable. DDR3: Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHYs operating in PHY RdLvl Evaluation mode. -
-reg_ddrc_dfi_t_wlmrd - -25:16 - -3ff0000 - -28 - -280000 - -DDR2 and LPDDR2: not applicable. DDR3: First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. -
-ctrl_reg3@0XF8006068 - -31:0 - -3ffffff - - - -284141 - -Controller 3 -
-

-

Register ( slcr )ctrl_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg4 - -0XF800606C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_t_ctrlupd_interval_min_x1024 - -7:0 - -ff - -10 - -10 - -This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks -
-dfi_t_ctrlupd_interval_max_x1024 - -15:8 - -ff00 - -16 - -1600 - -This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks -
-ctrl_reg4@0XF800606C - -31:0 - -ffff - - - -1610 - -Controller 4 -
-

-

Register ( slcr )ctrl_reg5

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg5 - -0XF8006078 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_ctrl_delay - -3:0 - -f - -1 - -1 - -Specifies the number of DFI clock cycles after an assertion or deassertion of the DFI control signals that the control signals at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_dfi_t_dram_clk_disable - -7:4 - -f0 - -1 - -10 - -Specifies the number of DFI clock cycles from the assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the clock to the DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_dfi_t_dram_clk_enable - -11:8 - -f00 - -1 - -100 - -Specifies the number of DFI clock cycles from the de-assertion of the ddrc_dfi_dram_clk_disable signal on the DFI until the first valid rising edge of the clock to the DRAM memory devices at the PHY-DRAM boundary. If the DFI clock and the memory clock are not phase aligned, this timing parameter should be rounded up to the next integer value. -
-reg_ddrc_t_cksre - -15:12 - -f000 - -6 - -6000 - -This is the time after Self Refresh Entry that CK is maintained as a valid clock. Specifies the clock disable delay after SRE. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRE -
-reg_ddrc_t_cksrx - -19:16 - -f0000 - -6 - -60000 - -This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stable time before SRX. Recommended settings: LPDDR2: 2 DDR2: 1 DDR3: tCKSRX -
-reg_ddrc_t_ckesr - -25:20 - -3f00000 - -4 - -400000 - -Minimum CKE low width for Self Refresh entry to exit Timing in memory clock cycles. Recommended settings: LPDDR2: tCKESR DDR2: tCKE DDR3: tCKE+1 -
-ctrl_reg5@0XF8006078 - -31:0 - -3ffffff - - - -466111 - -Controller register 5 -
-

-

Register ( slcr )ctrl_reg6

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg6 - -0XF800607C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ckpde - -3:0 - -f - -2 - -2 - -This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckpdx - -7:4 - -f0 - -2 - -20 - -This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable time before PDX. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckdpde - -11:8 - -f00 - -2 - -200 - -This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after DPDE. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckdpdx - -15:12 - -f000 - -2 - -2000 - -This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before DPDX. Recommended setting for LPDDR2: 2. -
-reg_ddrc_t_ckcsx - -19:16 - -f0000 - -3 - -30000 - -This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock stable time before next command after Clock Stop Exit. Recommended setting for LPDDR2: tXP + 2. -
-ctrl_reg6@0XF800607C - -31:0 - -fffff - - - -32222 - -Controller register 6 -
-

-

Register ( slcr )CHE_REFRESH_TIMER01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_REFRESH_TIMER01 - -0XF80060A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-refresh_timer0_start_value_x32 - -11:0 - -fff - -0 - -0 - -Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. -
-refresh_timer1_start_value_x32 - -23:12 - -fff000 - -8 - -8000 - -Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. -
-CHE_REFRESH_TIMER01@0XF80060A0 - -31:0 - -ffffff - - - -8000 - -CHE_REFRESH_TIMER01 -
-

-

Register ( slcr )CHE_T_ZQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ - -0XF80060A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dis_auto_zq - -0:0 - -1 - -0 - -0 - -1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-reg_ddrc_ddr3 - -1:1 - -2 - -1 - -2 - -Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. -
-reg_ddrc_t_mod - -11:2 - -ffc - -200 - -800 - -Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) -
-reg_ddrc_t_zq_long_nop - -21:12 - -3ff000 - -200 - -200000 - -DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles. -
-reg_ddrc_t_zq_short_nop - -31:22 - -ffc00000 - -40 - -10000000 - -DDR2: not applicable. LPDDR2 and DDR3: Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles. -
-CHE_T_ZQ@0XF80060A4 - -31:0 - -ffffffff - - - -10200802 - -ZQ parameters -
-

-

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ_Short_Interval_Reg - -0XF80060A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-t_zq_short_interval_x1024 - -19:0 - -fffff - -cb73 - -cb73 - -DDR2: not used. LPDDR2 and DDR3: Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. -
-dram_rstn_x1024 - -27:20 - -ff00000 - -69 - -6900000 - -Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. -
-CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 - -31:0 - -fffffff - - - -690cb73 - -Misc parameters -
-

-

Register ( slcr )deep_pwrdwn_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-deep_pwrdwn_reg - -0XF80060AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-deeppowerdown_en - -0:0 - -1 - -0 - -0 - -DDR2 and DDR3: not used. LPDDR2: 0: Brings Controller out of Deep Powerdown mode. 1: Puts DRAM into Deep Powerdown mode when the transaction store is empty. For performance only. Dynamic Bit Field. -
-deeppowerdown_to_x1024 - -8:1 - -1fe - -ff - -1fe - -DDR2 and DDR3: not sued. LPDDR2: Minimum deep power down time. DDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. Value from the spec is 500us. Units are in 1024 clock cycles. For performance only. -
-deep_pwrdwn_reg@0XF80060AC - -31:0 - -1ff - - - -1fe - -Deep powerdown (LPDDR2) -
-

-

Register ( slcr )reg_2c

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2c - -0XF80060B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_wrlvl_max_x1024 - -11:0 - -fff - -fff - -fff - -Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-dfi_rdlvl_max_x1024 - -23:12 - -fff000 - -fff - -fff000 - -Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-ddrc_reg_twrlvl_max_error - -24:24 - -1000000 - -0 - -0 - -When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. -
-ddrc_reg_trdlvl_max_error - -25:25 - -2000000 - -0 - -0 - -DDR2: not applicable. LPDDR2 and DDR3: When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. -
-reg_ddrc_dfi_wr_level_en - -26:26 - -4000000 - -1 - -4000000 - -0: Write leveling disabled. 1: Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs -
-reg_ddrc_dfi_rd_dqs_gate_level - -27:27 - -8000000 - -1 - -8000000 - -0: Read DQS gate leveling is disabled. 1: Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs -
-reg_ddrc_dfi_rd_data_eye_train - -28:28 - -10000000 - -1 - -10000000 - -DDR2: not applicable. LPDDR2 and DDR3: 0: 1: Read Data Eye training mode has been enabled as part of init sequence. -
-reg_2c@0XF80060B0 - -31:0 - -1fffffff - - - -1cffffff - -Training control -
-

-

Register ( slcr )reg_2d

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2d - -0XF80060B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_2t_delay - -8:0 - -1ff - -0 - -0 - -Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. -
-reg_ddrc_skip_ocd - -9:9 - -200 - -1 - -200 - -This register must be kept at 1'b1. 1'b0 is NOT supported. 1: Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0: Not supported. -
-reg_ddrc_dis_pre_bypass - -10:10 - -400 - -0 - -0 - -Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. -
-reg_2d@0XF80060B4 - -31:0 - -7ff - - - -200 - -Misc Debug -
-

-

Register ( slcr )dfi_timing

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-dfi_timing - -0XF80060B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_rddata_en - -4:0 - -1f - -6 - -6 - -Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. DDR2 and DDR3: RL - 1 LPDDR: RL Where RL is read latency of DRAM. -
-reg_ddrc_dfi_t_ctrlup_min - -14:5 - -7fe0 - -3 - -60 - -Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. -
-reg_ddrc_dfi_t_ctrlup_max - -24:15 - -1ff8000 - -40 - -200000 - -Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. -
-dfi_timing@0XF80060B8 - -31:0 - -1ffffff - - - -200066 - -DFI timing -
-

-

RESET ECC ERROR

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear -
-

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -0 - -0 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -0 - -0 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -0 - -ECC error clear -
-

-

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_CORR_ECC_LOG_REG_OFFSET - -0XF80060C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to 1 when a correctable ECC error is captured. As long as this is 1 no further ECC errors will be captured. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x31) -
-ECC_CORRECTED_BIT_NUM - -7:1 - -fe - -0 - -0 - -Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. -
-CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 - -31:0 - -ff - - - -0 - -ECC error correction -
-

-

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_UNCORR_ECC_LOG_REG_OFFSET - -0XF80060DC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNCORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to 1 when an uncorrectable ECC error is captured. As long as this is a 1, no further ECC errors will be captured. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x31). -
-CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC - -31:0 - -1 - - - -0 - -ECC unrecoverable error status -
-

-

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_STATS_REG_OFFSET - -0XF80060F0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STAT_NUM_CORR_ERR - -15:8 - -ff00 - -0 - -0 - -Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[1] of ECC CONTROL REGISTER (0x58). -
-STAT_NUM_UNCORR_ERR - -7:0 - -ff - -0 - -0 - -Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a 1 is written to register bit[0] of ECC CONTROL REGISTER (0x58). -
-CHE_ECC_STATS_REG_OFFSET@0XF80060F0 - -31:0 - -ffff - - - -0 - -ECC error count -
-

-

Register ( slcr )ECC_scrub

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ECC_scrub - -0XF80060F4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_ecc_mode - -2:0 - -7 - -0 - -0 - -DRAM ECC Mode. The only valid values that works for this project are 000 (No ECC) and 100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 : No ECC, 001: Reserved 010: Parity 011: Reserved 100: SEC/DED over 1-beat 101: SEC/DED over multiple beats 110: Device Correction 111: Reserved -
-reg_ddrc_dis_scrub - -3:3 - -8 - -1 - -8 - -0: Enable ECC scrubs (valid only when reg_ddrc_ecc_mode = 100). 1: Disable ECC scrubs -
-ECC_scrub@0XF80060F4 - -31:0 - -f - - - -8 - -ECC mode/scrub -
-

-

Register ( slcr )phy_rcvr_enable

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rcvr_enable - -0XF8006114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_dif_on - -3:0 - -f - -0 - -0 - -Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. -
-reg_phy_dif_off - -7:4 - -f0 - -0 - -0 - -Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. -
-phy_rcvr_enable@0XF8006114 - -31:0 - -ff - - - -0 - -Phy receiver enable register -
-

-

Register ( slcr )PHY_Config0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config0 - -0XF8006118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config0@0XF8006118 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config1 - -0XF800611C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config1@0XF800611C - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 1. -
-

-

Register ( slcr )PHY_Config2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config2 - -0XF8006120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config2@0XF8006120 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 2. -
-

-

Register ( slcr )PHY_Config3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config3 - -0XF8006124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 0: read data responses are ignored. 1: data slice is valid. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -reserved -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -reserved -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -reserved -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Transmitter for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 0: disable 1: This Slice behaves as Receiver for board loopback. This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 10. 0: PRBS pattern without any shift. 1: PRBS pattern shifted early by 1 bit. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 0: No effect 1: sticky error flag is cleared -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config3@0XF8006124 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 3. -
-

-

Register ( slcr )phy_init_ratio0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio0 - -0XF800612C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -1d - -1d - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -f2 - -3c800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio0@0XF800612C - -31:0 - -fffff - - - -3c81d - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio1 - -0XF8006130 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -12 - -12 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -d8 - -36000 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio1@0XF8006130 - -31:0 - -fffff - - - -36012 - -PHY init ratio register for data slice 1. -
-

-

Register ( slcr )phy_init_ratio2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio2 - -0XF8006134 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -c - -c - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -de - -37800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio2@0XF8006134 - -31:0 - -fffff - - - -3780c - -PHY init ratio register for data slice 2. -
-

-

Register ( slcr )phy_init_ratio3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio3 - -0XF8006138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -21 - -21 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -ee - -3b800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio3@0XF8006138 - -31:0 - -fffff - - - -3b821 - -PHY init ratio register for data slice 3. -
-

-

Register ( slcr )phy_rd_dqs_cfg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg0 - -0XF8006140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg0@0XF8006140 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg1 - -0XF8006144 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg1@0XF8006144 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 1. -
-

-

Register ( slcr )phy_rd_dqs_cfg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg2 - -0XF8006148 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg2@0XF8006148 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 2. -
-

-

Register ( slcr )phy_rd_dqs_cfg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg3 - -0XF800614C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg3@0XF800614C - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 3. -
-

-

Register ( slcr )phy_wr_dqs_cfg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg0 - -0XF8006154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -9d - -9d - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg0@0XF8006154 - -31:0 - -fffff - - - -9d - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg1 - -0XF8006158 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -92 - -92 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg1@0XF8006158 - -31:0 - -fffff - - - -92 - -PHY write DQS configuration register for data slice 1. -
-

-

Register ( slcr )phy_wr_dqs_cfg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg2 - -0XF800615C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -8c - -8c - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg2@0XF800615C - -31:0 - -fffff - - - -8c - -PHY write DQS configuration register for data slice 2. -
-

-

Register ( slcr )phy_wr_dqs_cfg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg3 - -0XF8006160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -a1 - -a1 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg3@0XF8006160 - -31:0 - -fffff - - - -a1 - -PHY write DQS configuration register for data slice 3. -
-

-

Register ( slcr )phy_we_cfg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg0 - -0XF8006168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -147 - -147 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg0@0XF8006168 - -31:0 - -1fffff - - - -147 - -PHY FIFO write enable configuration for data slice 0. -
-

-

Register ( slcr )phy_we_cfg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg1 - -0XF800616C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -12d - -12d - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg1@0XF800616C - -31:0 - -1fffff - - - -12d - -PHY FIFO write enable configuration for data slice 1. -
-

-

Register ( slcr )phy_we_cfg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg2 - -0XF8006170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -133 - -133 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg2@0XF8006170 - -31:0 - -1fffff - - - -133 - -PHY FIFO write enable configuration for data slice 2. -
-

-

Register ( slcr )phy_we_cfg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg3 - -0XF8006174 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -143 - -143 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg3@0XF8006174 - -31:0 - -1fffff - - - -143 - -PHY FIFO write enable configuration for data slice 3. -
-

-

Register ( slcr )wr_data_slv0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv0 - -0XF800617C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -dd - -dd - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv0@0XF800617C - -31:0 - -fffff - - - -dd - -PHY write data slave ratio config for data slice 0. -
-

-

Register ( slcr )wr_data_slv1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv1 - -0XF8006180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -d2 - -d2 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv1@0XF8006180 - -31:0 - -fffff - - - -d2 - -PHY write data slave ratio config for data slice 1. -
-

-

Register ( slcr )wr_data_slv2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv2 - -0XF8006184 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -cc - -cc - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv2@0XF8006184 - -31:0 - -fffff - - - -cc - -PHY write data slave ratio config for data slice 2. -
-

-

Register ( slcr )wr_data_slv3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv3 - -0XF8006188 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -e1 - -e1 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -0: 1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv3@0XF8006188 - -31:0 - -fffff - - - -e1 - -PHY write data slave ratio config for data slice 3. -
-

-

Register ( slcr )reg_64

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_64 - -0XF8006190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_loopback - -0:0 - -1 - -0 - -0 - -Loopback testing. 1: enable, 0: disable -
-reg_phy_bl2 - -1:1 - -2 - -0 - -0 - -Reserved for future Use. -
-reg_phy_at_spd_atpg - -2:2 - -4 - -0 - -0 - -0: run scan test at slow clock speed but with high coverage 1: run scan test at full clock speed but with less coverage During normal function mode, this port must be set 0. -
-reg_phy_bist_enable - -3:3 - -8 - -0 - -0 - -Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. -
-reg_phy_bist_force_err - -4:4 - -10 - -0 - -0 - -This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. -
-reg_phy_bist_mode - -6:5 - -60 - -0 - -0 - -The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 00: constant pattern (0 repeated on each DQ bit) 01: low freq pattern (00001111 repeated on each DQ bit) 10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested 11: reserved -
-reg_phy_invert_clkout - -7:7 - -80 - -1 - -80 - -Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. -
-reg_phy_all_dq_mpr_rd_resp - -8:8 - -100 - -0 - -0 - -0: (default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) 1: assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) -
-reg_phy_sel_logic - -9:9 - -200 - -0 - -0 - -Selects one of the two read leveling algorithms.'b0: Select algorithm # 1'b1: Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms -
-reg_phy_ctrl_slave_ratio - -19:10 - -ffc00 - -100 - -40000 - -Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_ctrl_slave_force - -20:20 - -100000 - -0 - -0 - -1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_ctrl_slave_delay - -27:21 - -fe00000 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. -
-reg_phy_use_rank0_delays - -28:28 - -10000000 - -1 - -10000000 - -Delay selection 0: Each Rank uses its own delay 1: Rank 0 delays are used for all ranks -
-reg_phy_lpddr - -29:29 - -20000000 - -0 - -0 - -0: DDR2 or DDR3. 1: LPDDR2. -
-reg_phy_cmd_latency - -30:30 - -40000000 - -0 - -0 - -If set to 1, command comes to phy_ctrl through a flop. -
-reg_phy_int_lpbk - -31:31 - -80000000 - -0 - -0 - -1: enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. -
-reg_64@0XF8006190 - -31:0 - -ffffffff - - - -10040080 - -Training control 2 -
-

-

Register ( slcr )reg_65

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_65 - -0XF8006194 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_rl_delay - -4:0 - -1f - -2 - -2 - -This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. -
-reg_phy_rd_rl_delay - -9:5 - -3e0 - -4 - -80 - -This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. -
-reg_phy_dll_lock_diff - -13:10 - -3c00 - -f - -3c00 - -The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted -
-reg_phy_use_wr_level - -14:14 - -4000 - -1 - -4000 - -Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_dqs_gate_level - -15:15 - -8000 - -1 - -8000 - -Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_data_eye_level - -16:16 - -10000 - -1 - -10000 - -Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure -
-reg_phy_dis_calib_rst - -17:17 - -20000 - -0 - -0 - -Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs -
-reg_phy_ctrl_slave_delay - -19:18 - -c0000 - -0 - -0 - -If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value -
-reg_65@0XF8006194 - -31:0 - -fffff - - - -1fc82 - -Training control 3 -
-

-

Register ( slcr )page_mask

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-page_mask - -0XF8006204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_page_addr_mask - -31:0 - -ffffffff - -0 - -0 - -Set this register based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. -
-page_mask@0XF8006204 - -31:0 - -ffffffff - - - -0 - -Page mask -
-

-

Register ( slcr )axi_priority_wr_port0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port0 - -0XF8006208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port0@0XF8006208 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port1 - -0XF800620C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port1@0XF800620C - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 1. -
-

-

Register ( slcr )axi_priority_wr_port2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port2 - -0XF8006210 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port2@0XF8006210 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 2. -
-

-

Register ( slcr )axi_priority_wr_port3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port3 - -0XF8006214 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port3@0XF8006214 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 3. -
-

-

Register ( slcr )axi_priority_rd_port0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port0 - -0XF8006218 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port0@0XF8006218 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port1 - -0XF800621C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port1@0XF800621C - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 1. -
-

-

Register ( slcr )axi_priority_rd_port2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port2 - -0XF8006220 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port2@0XF8006220 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 2. -
-

-

Register ( slcr )axi_priority_rd_port3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port3 - -0XF8006224 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port3@0XF8006224 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 3. -
-

-

Register ( slcr )lpddr_ctrl0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl0 - -0XF80062A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpddr2 - -0:0 - -1 - -0 - -0 - -0: DDR2 or DDR3 in use. 1: LPDDR2 in Use. -
-reg_ddrc_per_bank_refresh - -1:1 - -2 - -0 - -0 - -0:All bank refresh Per bank refresh allows traffic to flow to other banks. 1:Per bank refresh Per bank refresh is not supported on all LPDDR2 devices. -
-reg_ddrc_derate_enable - -2:2 - -4 - -0 - -0 - -0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. -
-reg_ddrc_mr4_margin - -11:4 - -ff0 - -0 - -0 - -UNUSED -
-lpddr_ctrl0@0XF80062A8 - -31:0 - -ff7 - - - -0 - -LPDDR2 Control 0 -
-

-

Register ( slcr )lpddr_ctrl1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl1 - -0XF80062AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr4_read_interval - -31:0 - -ffffffff - -0 - -0 - -Interval between two MR4 reads, USED to derate the timing parameters. -
-lpddr_ctrl1@0XF80062AC - -31:0 - -ffffffff - - - -0 - -LPDDR2 Control 1 -
-

-

Register ( slcr )lpddr_ctrl2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl2 - -0XF80062B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_min_stable_clock_x1 - -3:0 - -f - -5 - -5 - -Time to wait after the first CKE high, tINIT2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. -
-reg_ddrc_idle_after_reset_x32 - -11:4 - -ff0 - -12 - -120 - -Idle time after the reset command, tINIT4. Units: 32 clock cycles. -
-reg_ddrc_t_mrw - -21:12 - -3ff000 - -5 - -5000 - -Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. -
-lpddr_ctrl2@0XF80062B0 - -31:0 - -3fffff - - - -5125 - -LPDDR2 Control 2 -
-

-

Register ( slcr )lpddr_ctrl3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl3 - -0XF80062B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_max_auto_init_x1024 - -7:0 - -ff - -a8 - -a8 - -Maximum duration of the auto initialization, tINIT5. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. -
-reg_ddrc_dev_zqinit_x32 - -17:8 - -3ff00 - -12 - -1200 - -ZQ initial calibration, tZQINIT. Units: 32 clock cycles. LPDDR2 typically requires 1 us. -
-lpddr_ctrl3@0XF80062B4 - -31:0 - -3ffff - - - -12a8 - -LPDDR2 Control 3 -
-

-

POLL ON DCI STATUS

-

Register ( slcr )DDRIOB_DCI_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_STATUS - -0XF8000B74 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DONE - -13:13 - -2000 - -1 - -2000 - -DCI done signal -
-DDRIOB_DCI_STATUS@0XF8000B74 - -31:0 - -2000 - - - -2000 - -tobe -
-

-

UNLOCK DDR

-

Register ( slcr )ddrc_ctrl

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -1 - -1 - -Active low soft reset. Update during normal operation. 0: Resets the controller 1: Takes the controller out of reset. Dynamic Bit Field. Note: Software changes DRAM controller register values only when the controller is in the reset state, except for bit fields that can be dymanically updated. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. Update during normal operation. Enable the controller to powerdown after it becomes idle. Dynamic Bit Field. 0: disable 1: enable -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00: 32-bit 01: 16-bit 1x: reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0: single refresh 1: burst-of-2 ... 7: burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0: Do not disable bypass path for high priority read page hits. 1: disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0: Do not disable bypass path for high priority read activates. 1: disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0: do not disable auto-refresh. 1: disable auto-refresh. Dynamic Bit Field. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -81 - -DDRC Control -
-

-

CHECK DDR STATUS

-

Register ( slcr )mode_sts_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_sts_reg - -0XF8006054 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ddrc_reg_operating_mode - -2:0 - -7 - -1 - -1 - -Gives the status of the controller. 0: DDRC Init 1: Normal operation 2: Power-down mode 3: Self-refresh mode 4 and above: deep power down mode (LPDDR2 only) -
-mode_sts_reg@0XF8006054 - -31:0 - -7 - - - -1 - -tobe -
-

- -

-

ps7_mio_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -GPIOB_CTRL - - -0XF8000B00 - -32 - -RW - -0x000000 - -PS IO Buffer Control -
- -DDRIOB_ADDR0 - - -0XF8000B40 - -32 - -RW - -0x000000 - -DDR IOB Config for Address 0 -
- -DDRIOB_ADDR1 - - -0XF8000B44 - -32 - -RW - -0x000000 - -DDR IOB Config for Address 1 -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDR IOB Config for Data 15:0 -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDR IOB Config for Data 31:16 -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 1:0 -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 3:2 -
- -DDRIOB_CLOCK - - -0XF8000B58 - -32 - -RW - -0x000000 - -DDR IOB Config for Clock Output -
- -DDRIOB_DRIVE_SLEW_ADDR - - -0XF8000B5C - -32 - -RW - -0x000000 - -DDR IOB Slew for Address -
- -DDRIOB_DRIVE_SLEW_DATA - - -0XF8000B60 - -32 - -RW - -0x000000 - -DDR IOB Slew for Data -
- -DDRIOB_DRIVE_SLEW_DIFF - - -0XF8000B64 - -32 - -RW - -0x000000 - -DDR IOB Slew for Diff -
- -DDRIOB_DRIVE_SLEW_CLOCK - - -0XF8000B68 - -32 - -RW - -0x000000 - -DDR IOB Slew for Clock -
- -DDRIOB_DDR_CTRL - - -0XF8000B6C - -32 - -RW - -0x000000 - -DDR IOB Buffer Control -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -MIO_PIN_00 - - -0XF8000700 - -32 - -RW - -0x000000 - -MIO Pin 0 Control -
- -MIO_PIN_01 - - -0XF8000704 - -32 - -RW - -0x000000 - -MIO Pin 1 Control -
- -MIO_PIN_02 - - -0XF8000708 - -32 - -RW - -0x000000 - -MIO Pin 2 Control -
- -MIO_PIN_03 - - -0XF800070C - -32 - -RW - -0x000000 - -MIO Pin 3 Control -
- -MIO_PIN_04 - - -0XF8000710 - -32 - -RW - -0x000000 - -MIO Pin 4 Control -
- -MIO_PIN_05 - - -0XF8000714 - -32 - -RW - -0x000000 - -MIO Pin 5 Control -
- -MIO_PIN_06 - - -0XF8000718 - -32 - -RW - -0x000000 - -MIO Pin 6 Control -
- -MIO_PIN_07 - - -0XF800071C - -32 - -RW - -0x000000 - -MIO Pin 7 Control -
- -MIO_PIN_08 - - -0XF8000720 - -32 - -RW - -0x000000 - -MIO Pin 8 Control -
- -MIO_PIN_09 - - -0XF8000724 - -32 - -RW - -0x000000 - -MIO Pin 9 Control -
- -MIO_PIN_10 - - -0XF8000728 - -32 - -RW - -0x000000 - -MIO Pin 10 Control -
- -MIO_PIN_11 - - -0XF800072C - -32 - -RW - -0x000000 - -MIO Pin 11 Control -
- -MIO_PIN_12 - - -0XF8000730 - -32 - -RW - -0x000000 - -MIO Pin 12 Control -
- -MIO_PIN_13 - - -0XF8000734 - -32 - -RW - -0x000000 - -MIO Pin 13 Control -
- -MIO_PIN_14 - - -0XF8000738 - -32 - -RW - -0x000000 - -MIO Pin 14 Control -
- -MIO_PIN_15 - - -0XF800073C - -32 - -RW - -0x000000 - -MIO Pin 15 Control -
- -MIO_PIN_16 - - -0XF8000740 - -32 - -RW - -0x000000 - -MIO Pin 16 Control -
- -MIO_PIN_17 - - -0XF8000744 - -32 - -RW - -0x000000 - -MIO Pin 17 Control -
- -MIO_PIN_18 - - -0XF8000748 - -32 - -RW - -0x000000 - -MIO Pin 18 Control -
- -MIO_PIN_19 - - -0XF800074C - -32 - -RW - -0x000000 - -MIO Pin 19 Control -
- -MIO_PIN_20 - - -0XF8000750 - -32 - -RW - -0x000000 - -MIO Pin 20 Control -
- -MIO_PIN_21 - - -0XF8000754 - -32 - -RW - -0x000000 - -MIO Pin 21 Control -
- -MIO_PIN_22 - - -0XF8000758 - -32 - -RW - -0x000000 - -MIO Pin 22 Control -
- -MIO_PIN_23 - - -0XF800075C - -32 - -RW - -0x000000 - -MIO Pin 23 Control -
- -MIO_PIN_24 - - -0XF8000760 - -32 - -RW - -0x000000 - -MIO Pin 24 Control -
- -MIO_PIN_25 - - -0XF8000764 - -32 - -RW - -0x000000 - -MIO Pin 25 Control -
- -MIO_PIN_26 - - -0XF8000768 - -32 - -RW - -0x000000 - -MIO Pin 26 Control -
- -MIO_PIN_27 - - -0XF800076C - -32 - -RW - -0x000000 - -MIO Pin 27 Control -
- -MIO_PIN_28 - - -0XF8000770 - -32 - -RW - -0x000000 - -MIO Pin 28 Control -
- -MIO_PIN_29 - - -0XF8000774 - -32 - -RW - -0x000000 - -MIO Pin 29 Control -
- -MIO_PIN_30 - - -0XF8000778 - -32 - -RW - -0x000000 - -MIO Pin 30 Control -
- -MIO_PIN_31 - - -0XF800077C - -32 - -RW - -0x000000 - -MIO Pin 31 Control -
- -MIO_PIN_32 - - -0XF8000780 - -32 - -RW - -0x000000 - -MIO Pin 32 Control -
- -MIO_PIN_33 - - -0XF8000784 - -32 - -RW - -0x000000 - -MIO Pin 33 Control -
- -MIO_PIN_34 - - -0XF8000788 - -32 - -RW - -0x000000 - -MIO Pin 34 Control -
- -MIO_PIN_35 - - -0XF800078C - -32 - -RW - -0x000000 - -MIO Pin 35 Control -
- -MIO_PIN_36 - - -0XF8000790 - -32 - -RW - -0x000000 - -MIO Pin 36 Control -
- -MIO_PIN_37 - - -0XF8000794 - -32 - -RW - -0x000000 - -MIO Pin 37 Control -
- -MIO_PIN_38 - - -0XF8000798 - -32 - -RW - -0x000000 - -MIO Pin 38 Control -
- -MIO_PIN_39 - - -0XF800079C - -32 - -RW - -0x000000 - -MIO Pin 39 Control -
- -MIO_PIN_40 - - -0XF80007A0 - -32 - -RW - -0x000000 - -MIO Pin 40 Control -
- -MIO_PIN_41 - - -0XF80007A4 - -32 - -RW - -0x000000 - -MIO Pin 41 Control -
- -MIO_PIN_42 - - -0XF80007A8 - -32 - -RW - -0x000000 - -MIO Pin 42 Control -
- -MIO_PIN_43 - - -0XF80007AC - -32 - -RW - -0x000000 - -MIO Pin 43 Control -
- -MIO_PIN_44 - - -0XF80007B0 - -32 - -RW - -0x000000 - -MIO Pin 44 Control -
- -MIO_PIN_45 - - -0XF80007B4 - -32 - -RW - -0x000000 - -MIO Pin 45 Control -
- -MIO_PIN_46 - - -0XF80007B8 - -32 - -RW - -0x000000 - -MIO Pin 46 Control -
- -MIO_PIN_47 - - -0XF80007BC - -32 - -RW - -0x000000 - -MIO Pin 47 Control -
- -MIO_PIN_48 - - -0XF80007C0 - -32 - -RW - -0x000000 - -MIO Pin 48 Control -
- -MIO_PIN_49 - - -0XF80007C4 - -32 - -RW - -0x000000 - -MIO Pin 49 Control -
- -MIO_PIN_50 - - -0XF80007C8 - -32 - -RW - -0x000000 - -MIO Pin 50 Control -
- -MIO_PIN_51 - - -0XF80007CC - -32 - -RW - -0x000000 - -MIO Pin 51 Control -
- -MIO_PIN_52 - - -0XF80007D0 - -32 - -RW - -0x000000 - -MIO Pin 52 Control -
- -MIO_PIN_53 - - -0XF80007D4 - -32 - -RW - -0x000000 - -MIO Pin 53 Control -
- -SD0_WP_CD_SEL - - -0XF8000830 - -32 - -RW - -0x000000 - -SDIO 0 WP CD select -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_mio_init_data_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

OCM REMAPPING

-

Register ( slcr )GPIOB_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GPIOB_CTRL - -0XF8000B00 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_PULLUP_EN - -1:1 - -2 - -0 - -0 - -Enables internal pullup. 0 - no pullup. 1 - pullup. -
-CLK_PULLUP_EN - -8:8 - -100 - -0 - -0 - -Enables internal pullup. 0: no pullup. 1: pullup. -
-SRSTN_PULLUP_EN - -9:9 - -200 - -0 - -0 - -Enables internal pullup. 0: no pullup. 1: pullup. -
-GPIOB_CTRL@0XF8000B00 - -31:0 - -303 - - - -1 - -PS IO Buffer Control -
-

-

DDRIOB SETTINGS

-

Register ( slcr )DDRIOB_ADDR0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR0 - -0XF8000B40 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_ADDR0@0XF8000B40 - -31:0 - -fff - - - -600 - -DDR IOB Config for Address 0 -
-

-

Register ( slcr )DDRIOB_ADDR1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR1 - -0XF8000B44 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_ADDR1@0XF8000B44 - -31:0 - -fff - - - -600 - -DDR IOB Config for Address 1 -
-

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -fff - - - -672 - -DDR IOB Config for Data 15:0 -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -fff - - - -672 - -DDR IOB Config for Data 31:16 -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -fff - - - -674 - -DDR IOB Config for DQS 1:0 -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -fff - - - -674 - -DDR IOB Config for DQS 3:2 -
-

-

Register ( slcr )DDRIOB_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_CLOCK - -0XF8000B58 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0: low power mode. 1: high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00: Input off, reads 0. 01: Vref based differential receiver for SSTL, HSTL. 10: Differential input receiver. 11: LVCMOS receiver. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00: DCI Disabled 01: DCI Drive (HSTL12_DCI) 10: reserved 11: DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00: ibuf 01 and 10: reserved 11: obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0: no pullup 1: pullup enabled -
-DDRIOB_CLOCK@0XF8000B58 - -31:0 - -fff - - - -600 - -DDR IOB Config for Clock Output -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_ADDR - -0XF8000B5C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -3 - -c000 - -DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -3 - -180000 - -DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000: Normal Operation 001 to 111: Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C - -31:0 - -ffffffff - - - -18c61c - -DDR IOB Slew for Address -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DATA - -0XF8000B60 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000: Normal Operation 001 to 111: Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 - -31:0 - -ffffffff - - - -f9861c - -DDR IOB Slew for Data -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DIFF - -0XF8000B64 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000: Normal Operation 001 to 111: Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 - -31:0 - -ffffffff - - - -f9861c - -DDR IOB Slew for Diff -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_CLOCK - -0XF8000B68 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000: Normal Operation 001 to 111: Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 - -31:0 - -ffffffff - - - -f9861c - -DDR IOB Slew for Clock -
-

-

Register ( slcr )DDRIOB_DDR_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DDR_CTRL - -0XF8000B6C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_INT_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_SEL - -4:1 - -1e - -4 - -8 - -Specifies DDR IOB Vref generator output: 0001: VREF = 0.6V for LPDDR2 with 1.2V IO 0100: VREF = 0.75V for DDR3 with 1.5V IO 1000: VREF = 0.90V for DDR2 with 1.8V IO -
-VREF_EXT_EN - -6:5 - -60 - -0 - -0 - -Enables External VREF input x0: Disable External VREF for lower 16 bits x1: Enable External VREF for lower 16 bits 0x: Disable External VREF for upper 16 bits 1X: Enable External VREF for upper 16 bits -
-VREF_PULLUP_EN - -8:7 - -180 - -0 - -0 - -Enables VREF pull-up resistors x0: Disable VREF pull-up for lower 16 bits x1: Enable VREF pull-up for lower 16 bits 0x: Disable VREF pull-up for upper 16 bits 1x: Enable VREF pull-up for upper 16 bits -
-REFIO_EN - -9:9 - -200 - -1 - -200 - -Enables VRP,VRN 0: VRP/VRN not used 1: VRP/VRN used as refio -
-REFIO_TEST - -11:10 - -c00 - -3 - -c00 - -Enable test mode for VRP and VRN: 00: VRP/VRN test mode not used 11: VRP/VRN test mode enabled using vref based receiver. VRP/VRN control is set using the VRN_OUT, VRP_OUT, VRN_TRI, VRP_TRI fields in the DDRIOB_DCI_CTRL register -
-REFIO_PULLUP_EN - -12:12 - -1000 - -0 - -0 - -Enables VRP,VRN pull-up resistors 0: no pull-up 1: enable pull-up -
-DRST_B_PULLUP_EN - -13:13 - -2000 - -0 - -0 - -Enables pull-up resistors 0: no pull-up 1: enable pull-up -
-CKE_PULLUP_EN - -14:14 - -4000 - -0 - -0 - -Enables pull-up resistors 0: no pull-up 1: enable pull-up -
-DDRIOB_DDR_CTRL@0XF8000B6C - -31:0 - -7fff - - - -e09 - -DDR IOB Buffer Control -
-

-

ASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialise flops in DCI system -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -21 - -DDRIOB DCI configuration -
-

-

DEASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -0 - -0 - -At least toggle once to initialise flops in DCI system -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -20 - -DDRIOB DCI configuration -
-

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialise flops in DCI system -
-ENABLE - -1:1 - -2 - -1 - -2 - -1 if any iob's use a terminate type, or if dci test block used -
-VRP_TRI - -2:2 - -4 - -0 - -0 - -VRP tristate value -
-VRN_TRI - -3:3 - -8 - -0 - -0 - -VRN tristate value -
-VRP_OUT - -4:4 - -10 - -0 - -0 - -VRP output value -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-NREF_OPT1 - -7:6 - -c0 - -0 - -0 - -Reserved -
-NREF_OPT2 - -10:8 - -700 - -0 - -0 - -Reserved -
-NREF_OPT4 - -13:11 - -3800 - -1 - -800 - -Reserved -
-PREF_OPT1 - -16:14 - -1c000 - -0 - -0 - -Reserved -
-PREF_OPT2 - -19:17 - -e0000 - -0 - -0 - -Reserved -
-UPDATE_CONTROL - -20:20 - -100000 - -0 - -0 - -DCI Update -
-INIT_COMPLETE - -21:21 - -200000 - -0 - -0 - -test Internal to IO bank -
-TST_CLK - -22:22 - -400000 - -0 - -0 - -Emulate DCI clock -
-TST_HLN - -23:23 - -800000 - -0 - -0 - -Emulate comparator output (VRN) -
-TST_HLP - -24:24 - -1000000 - -0 - -0 - -Emulate comparator output (VRP) -
-TST_RST - -25:25 - -2000000 - -0 - -0 - -Emulate Reset -
-INT_DCI_EN - -26:26 - -4000000 - -0 - -0 - -Need explanation here -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -7ffffff - - - -823 - -DDRIOB DCI configuration -
-

-

MIO PROGRAMMING

-

Register ( slcr )MIO_PIN_00

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_00 - -0XF8000700 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. 0: disable 1: enable -
-Speed - -8:8 - -100 - -1 - -100 - -Select IO Buffer Edge Rate, applicable when IO_Type= LVCMOS18, LVCMOS25 or LVCMOS33. 0: Slow CMOS edge 1: Fast CMOS edge -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Select the IO Buffer Type. 000: LVTTL 001: LVCMOS18 010: LVCMOS25 011, 101, 110, 111: LVCMOS33 100: HSTL -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Enables pull-up on IO Buffer pin 0: disable 1: enable -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Disable HSTL Input Buffer to save power when it is an output-only (IO_Type must be HSTL). 0: enable 1: disable -
-MIO_PIN_00@0XF8000700 - -31:0 - -3f01 - - - -1301 - -MIO Pin 0 Control -
-

-

Register ( slcr )MIO_PIN_01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_01 - -0XF8000704 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Chip Select -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM Address Bit 25 10: SRAM/NOR Chip Select 1 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 1 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_01@0XF8000704 - -31:0 - -3fff - - - -1302 - -MIO Pin 1 Control -
-

-

Register ( slcr )MIO_PIN_02

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_02 - -0XF8000708 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 0 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 8 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash ALEn 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 2 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_02@0XF8000708 - -31:0 - -3fff - - - -302 - -MIO Pin 2 Control -
-

-

Register ( slcr )MIO_PIN_03

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_03 - -0XF800070C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 1 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 9 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data bit 0 10: NAND WE_B output 11: SDIO 1 Card Power output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 3 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_03@0XF800070C - -31:0 - -3fff - - - -302 - -MIO Pin 3 Control -
-

-

Register ( slcr )MIO_PIN_04

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_04 - -0XF8000710 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 2 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 10 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 1 10: NAND Flash IO Bit 2 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 4 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_04@0XF8000710 - -31:0 - -3fff - - - -302 - -MIO Pin 4 Control -
-

-

Register ( slcr )MIO_PIN_05

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_05 - -0XF8000714 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 IO Bit 3 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 11 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 2 10: NAND Flash IO Bit 0 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 5 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_05@0XF8000714 - -31:0 - -3fff - - - -302 - -MIO Pin 5 Control -
-

-

Register ( slcr )MIO_PIN_06

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_06 - -0XF8000718 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 0 Clock Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 12 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 3 10: NAND Flash IO Bit 1 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 6 (bank 0) others: reserved -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_06@0XF8000718 - -31:0 - -3fff - - - -302 - -MIO Pin 6 Control -
-

-

Register ( slcr )MIO_PIN_07

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_07 - -0XF800071C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 13 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR OE_B 10: NAND Flash CLE_B 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 7 Output-only (bank 0) others: reserved -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_07@0XF800071C - -31:0 - -3fff - - - -200 - -MIO Pin 7 Control -
-

-

Register ( slcr )MIO_PIN_08

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_08 - -0XF8000720 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI Feedback Output Clock -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 14 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR WE_B 10: NAND Flash RD_B 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 8 Output-only (bank 0) 001: CAN 1 Tx 010: sram, Output, smc_sram_bls_b 011 to 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_08@0XF8000720 - -31:0 - -3fff - - - -202 - -MIO Pin 8 Control -
-

-

Register ( slcr )MIO_PIN_09

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_09 - -0XF8000724 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 Flash Memory Clock Output -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 15 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 6 10: NAND Flash IO Bit 4 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 9 (bank 0) 001: CAN 1 Rx 010 to 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_09@0XF8000724 - -31:0 - -3fff - - - -1200 - -MIO Pin 9 Control -
-

-

Register ( slcr )MIO_PIN_10

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_10 - -0XF8000728 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 0 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 7 10: NAND Flash IO Bit 5 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 10 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_10@0XF8000728 - -31:0 - -3fff - - - -1200 - -MIO Pin 10 Control -
-

-

Register ( slcr )MIO_PIN_11

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_11 - -0XF800072C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 1 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 4 10: NAND Flash IO Bit 6 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 11 (bank 0) 001: CAN 0 Tx 010: I2C Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_11@0XF800072C - -31:0 - -3fff - - - -1200 - -MIO Pin 11 Control -
-

-

Register ( slcr )MIO_PIN_12

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_12 - -0XF8000730 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 2 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Wait 10: NAND Flash IO Bit 7 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 12 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_12@0XF8000730 - -31:0 - -3fff - - - -1200 - -MIO Pin 12 Control -
-

-

Register ( slcr )MIO_PIN_13

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_13 - -0XF8000734 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Quad SPI 1 IO Bit 3 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Data Bit 5 10: NAND Flash IO Bit 3 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 13 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_13@0XF8000734 - -31:0 - -3fff - - - -1200 - -MIO Pin 13 Control -
-

-

Register ( slcr )MIO_PIN_14

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_14 - -0XF8000738 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: NAND Flash Busy 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 14 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 slave select 1 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_14@0XF8000738 - -31:0 - -3fff - - - -1200 - -MIO Pin 14 Control -
-

-

Register ( slcr )MIO_PIN_15

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_15 - -0XF800073C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_15@0XF800073C - -31:0 - -3f01 - - - -1301 - -MIO Pin 15 Control -
-

-

Register ( slcr )MIO_PIN_16

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_16 - -0XF8000740 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Clock -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 4 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 1 10: NAND Flash IO Bit 8 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 16 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Output 111: UART 1 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_16@0XF8000740 - -31:0 - -3fff - - - -3902 - -MIO Pin 16 Control -
-

-

Register ( slcr )MIO_PIN_17

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_17 - -0XF8000744 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 0 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 5 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 2 10: NAND Flash IO Bit 9 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 17 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110 TTC 1 Clock Input 111: UART 1 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_17@0XF8000744 - -31:0 - -3fff - - - -3902 - -MIO Pin 17 Control -
-

-

Register ( slcr )MIO_PIN_18

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_18 - -0XF8000748 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 1 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 6 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 3 10: NAND Flash IO Bit 10 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 18 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_18@0XF8000748 - -31:0 - -3fff - - - -3902 - -MIO Pin 18 Control -
-

-

Register ( slcr )MIO_PIN_19

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_19 - -0XF800074C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 2 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 7 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 4 10: NAND Flash IO Bit 11 111: SDIO 1 Power Control Output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 19 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 Output 110: TTC 0 Clock Input 111: UART 0 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_19@0XF800074C - -31:0 - -3fff - - - -3902 - -MIO Pin 19 Control -
-

-

Register ( slcr )MIO_PIN_20

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_20 - -0XF8000750 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII TxD Bit 3 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 5 10: NAND Flash IO Bit 12 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 20 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_20@0XF8000750 - -31:0 - -3fff - - - -3902 - -MIO Pin 20 Control -
-

-

Register ( slcr )MIO_PIN_21

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_21 - -0XF8000754 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Tx Control -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 6 10: NAND Flash IO Bit 13 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 21 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_21@0XF8000754 - -31:0 - -3fff - - - -3902 - -MIO Pin 21 Control -
-

-

Register ( slcr )MIO_PIN_22

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_22 - -0XF8000758 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Clock -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 2 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 7 10: NAND Flash IO Bit 14 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 22 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_22@0XF8000758 - -31:0 - -3fff - - - -1903 - -MIO Pin 22 Control -
-

-

Register ( slcr )MIO_PIN_23

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_23 - -0XF800075C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD 0 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 3 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 8 10: NAND Flash IO Bit 15 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 23 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_23@0XF800075C - -31:0 - -3fff - - - -1903 - -MIO Pin 23 Control -
-

-

Register ( slcr )MIO_PIN_24

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_24 - -0XF8000760 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 1 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Clock output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 9 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 24 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 serial clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_24@0XF8000760 - -31:0 - -3fff - - - -1903 - -MIO Pin 24 Control -
-

-

Register ( slcr )MIO_PIN_25

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_25 - -0XF8000764 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit2 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Control Signal output -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 10 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 25 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_25@0XF8000764 - -31:0 - -3fff - - - -1903 - -MIO Pin 25 Control -
-

-

Register ( slcr )MIO_PIN_26

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_26 - -0XF8000768 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII RxD Bit 3 -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 0 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 11 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 26 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_26@0XF8000768 - -31:0 - -3fff - - - -1903 - -MIO Pin 26 Control -
-

-

Register ( slcr )MIO_PIN_27

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_27 - -0XF800076C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 0 RGMII Rx Control -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: Trace Port Data Bit 1 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 12 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 27 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_27@0XF800076C - -31:0 - -3fff - - - -1903 - -MIO Pin 27 Control -
-

-

Register ( slcr )MIO_PIN_28

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_28 - -0XF8000770 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Tx Clock -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 4 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 13 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 28 (bank 0) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_28@0XF8000770 - -31:0 - -3fff - - - -1304 - -MIO Pin 28 Control -
-

-

Register ( slcr )MIO_PIN_29

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_29 - -0XF8000774 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 0 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Direction -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 14 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 29 (bank 0) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_29@0XF8000774 - -31:0 - -3fff - - - -1305 - -MIO Pin 29 Control -
-

-

Register ( slcr )MIO_PIN_30

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_30 - -0XF8000778 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 1 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Stop -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 15 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 30 (bank 0) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Slave Select 0 110: TTC 0 Wave Out 111: UART 0 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_30@0XF8000778 - -31:0 - -3fff - - - -1304 - -MIO Pin 30 Control -
-

-

Register ( slcr )MIO_PIN_31

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_31 - -0XF800077C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 2 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Next -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 16 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 31 (bank 0) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_31@0XF800077C - -31:0 - -3fff - - - -1305 - -MIO Pin 31 Control -
-

-

Register ( slcr )MIO_PIN_32

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_32 - -0XF8000780 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII TxD Bit 3 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 0 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 17 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 32 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_32@0XF8000780 - -31:0 - -3fff - - - -1304 - -MIO Pin 32 Control -
-

-

Register ( slcr )MIO_PIN_33

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_33 - -0XF8000784 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Tx Control -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 1 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 18 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 33 (Bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 MOSI 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_33@0XF8000784 - -31:0 - -3fff - - - -1304 - -MIO Pin 33 Control -
-

-

Register ( slcr )MIO_PIN_34

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_34 - -0XF8000788 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Rx Clock -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 2 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 19 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 34 (bank 1) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_34@0XF8000788 - -31:0 - -3fff - - - -1304 - -MIO Pin 34 Control -
-

-

Register ( slcr )MIO_PIN_35

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_35 - -0XF800078C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD data Bit 0 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 3 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 20 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 35 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 Command 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_35@0XF800078C - -31:0 - -3fff - - - -1304 - -MIO Pin 35 Control -
-

-

Register ( slcr )MIO_PIN_36

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_36 - -0XF8000790 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Data Bit 1 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Clock -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 21 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 36 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_36@0XF8000790 - -31:0 - -3fff - - - -1305 - -MIO Pin 36 Control -
-

-

Register ( slcr )MIO_PIN_37

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_37 - -0XF8000794 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 5 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 22 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 37 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: PJTAG TMS+H2129 100: SDIO 1 IO Bit 1 101: SPI 1 Slave Select 0 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_37@0XF8000794 - -31:0 - -3fff - - - -1304 - -MIO Pin 37 Control -
-

-

Register ( slcr )MIO_PIN_38

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_38 - -0XF8000798 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII RxD Data Bit 3 -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 6 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 23 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 38 (bank 1) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock In 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_38@0XF8000798 - -31:0 - -3fff - - - -1304 - -MIO Pin 38 Control -
-

-

Register ( slcr )MIO_PIN_39

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_39 - -0XF800079C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: Ethernet 1 RGMII Rx Control -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 0 ULPI Data Bit 7 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: SRAM/NOR Address Bit 24 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 000: GPIO 39 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Out 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 2 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_39@0XF800079C - -31:0 - -3fff - - - -1304 - -MIO Pin 39 Control -
-

-

Register ( slcr )MIO_PIN_40

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_40 - -0XF80007A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 4 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 40 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: reserved 100: SDIO 0 Clock 101: SPI 0 Serial Clock 110: TTC 1 Wave Out 111: UART 1 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_40@0XF80007A0 - -31:0 - -3fff - - - -1380 - -MIO Pin 40 Control -
-

-

Register ( slcr )MIO_PIN_41

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_41 - -0XF80007A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Direction -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 41 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 Command 101: SPI 0 MISO 110: TTC 1 Clock Input 111: UART 1 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_41@0XF80007A4 - -31:0 - -3fff - - - -1380 - -MIO Pin 41 Control -
-

-

Register ( slcr )MIO_PIN_42

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_42 - -0XF80007A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Stop -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 42 (bank 1) 001: CAN 0 Rx 010: I2C0 Serial Clock 011: reserved 100: SDIO 0 IO Bit 0 101: SPI 0 Data Bit 0 110: TTC 0 Wave Out 111: UART 0 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_42@0XF80007A8 - -31:0 - -3fff - - - -1380 - -MIO Pin 42 Control -
-

-

Register ( slcr )MIO_PIN_43

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_43 - -0XF80007AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Next -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 43 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: reserved 100: SDIO 0 IO Bit 1 101: SPI 0 Slave Select 1 110: TTC 0 Clock Intput 111: UART 0 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_43@0XF80007AC - -31:0 - -3fff - - - -1380 - -MIO Pin 43 Control -
-

-

Register ( slcr )MIO_PIN_44

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_44 - -0XF80007B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 0 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 44 (bank 1) 001: CAN 1 Tx 010: I2C Serial Clock 011: reserved 100 SDIO 0 IO Bit 2 101: SPI 0 Slave Select 2 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_44@0XF80007B0 - -31:0 - -3fff - - - -1380 - -MIO Pin 44 Control -
-

-

Register ( slcr )MIO_PIN_45

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_45 - -0XF80007B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 1 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 45 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: reserved 100: SDIO 0 IO Bit 3 101: SPI 0 Data Bit 3 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -1 - -100 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_45@0XF80007B4 - -31:0 - -3fff - - - -1380 - -MIO Pin 45 Control -
-

-

Register ( slcr )MIO_PIN_46

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_46 - -0XF80007B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 2 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 000: GPIO 46 (bank 1) 001: CAN 0 Rx 010: I2C 0 Serial Clock 011: PJTAG TDI 100: SDIO 1 IO Bit 0 101: SPI 1 MOSI 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_46@0XF80007B8 - -31:0 - -3fff - - - -1221 - -MIO Pin 46 Control -
-

-

Register ( slcr )MIO_PIN_47

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_47 - -0XF80007BC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 3 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 000: GPIO 47 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: PJTAG TDO 100: SDIO 1 Command 101: SPI 1 MISO 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_47@0XF80007BC - -31:0 - -3fff - - - -1220 - -MIO Pin 47 Control -
-

-

Register ( slcr )MIO_PIN_48

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_48 - -0XF80007C0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Clock -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 000: GPIO 48 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: PJTAG TCK 100: SDIO 1 Clock 101: SPI 1 Serial Clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_48@0XF80007C0 - -31:0 - -3fff - - - -12e0 - -MIO Pin 48 Control -
-

-

Register ( slcr )MIO_PIN_49

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_49 - -0XF80007C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 5 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 000: GPIO 49 (bank 1) 001: CAN 1 Rx 010: I2C Serial Data 011: PJTAG TMS 100: SDIO 1 IO Bit 1 101: SPI 1 Select 0 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_49@0XF80007C4 - -31:0 - -3fff - - - -12e1 - -MIO Pin 49 Control -
-

-

Register ( slcr )MIO_PIN_50

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_50 - -0XF80007C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 6 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 000: GPIO 50 (bank 1) 001: Can 0 Rx 010: I2C 0 Serial Clock 011: SWDT Clock Input 100: SDIO 1 IO Bit 2 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_50@0XF80007C8 - -31:0 - -3fff - - - -1240 - -MIO Pin 50 Control -
-

-

Register ( slcr )MIO_PIN_51

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_51 - -0XF80007CC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: USB 1 ULPI Data Bit 7 -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 000: GPIO 51 (bank 1) 001: CAN 0 Tx 010: I2C 0 Serial Data 011: SWDT Reset Output 100: SDIO 1 IO Bit 3 101: SPI 1 Slave Select 1 110: reserved 111: UART 0 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_51@0XF80007CC - -31:0 - -3fff - - - -1240 - -MIO Pin 51 Control -
-

-

Register ( slcr )MIO_PIN_52

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_52 - -0XF80007D0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 0 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 52 (bank 1) 001: CAN 1 Tx 010: I2C 1 Serial Clock 011: SWDT Clock Input 100: MDIO 0 Clock 101: MDIO 1 Clock 110: reserved 111: UART 1 TxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_52@0XF80007D0 - -31:0 - -3fff - - - -1280 - -MIO Pin 52 Control -
-

-

Register ( slcr )MIO_PIN_53

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_53 - -0XF80007D4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Operates the same as MIO_PIN_00[TRI_ENABLE] -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0: Level 1 Mux 1: reserved -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0: Level 2 Mux 1: reserved -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 00: Level 3 Mux 01: reserved 10: reserved 11: SDIO 1 Power Control output -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 000: GPIO 53 (bank 1) 001: CAN 1 Rx 010: I2C 1 Serial Data 011: SWDT Reset Output 100: MDIO 0 Data 101: MDIO 1 Data 110: reserved 111: UART 1 RxD -
-Speed - -8:8 - -100 - -0 - -0 - -Operates the same as MIO_PIN_00[Speed] -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Operates the same as MIO_PIN_00[IO_Type] -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Operates the same as MIO_PIN_00[PULL_UP] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Operates the same as MIO_PIN_00[DisableRcvr] -
-MIO_PIN_53@0XF80007D4 - -31:0 - -3fff - - - -1280 - -MIO Pin 53 Control -
-

-

Register ( slcr )SD0_WP_CD_SEL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SD0_WP_CD_SEL - -0XF8000830 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SDIO0_WP_SEL - -5:0 - -3f - -f - -f - -SDIO 0 WP Select. Values 53:0 select MIO input (any pin except 7 and 8) Values 63:54 select EMIO input -
-SDIO0_CD_SEL - -21:16 - -3f0000 - -0 - -0 - -SDIO 0 CD Select. Values 53:0 select MIO input (any pin except bits 7 and 8) Values 63:54 select EMIO input -
-SD0_WP_CD_SEL@0XF8000830 - -31:0 - -3f003f - - - -f - -SDIO 0 WP CD select -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_peripherals_init_data_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDR IOB Config for Data 15:0 -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDR IOB Config for Data 31:16 -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 1:0 -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDR IOB Config for DQS 3:2 -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
- -LAR - - -0XF8803FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -CurrentSize - - -0XF8803004 - -32 - -RW - -0x000000 - -Current Port Size Register -
- -LAR - - -0XF8803FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -Baud_rate_divider_reg0 - - -0XE0001034 - -32 - -RW - -0x000000 - -baud rate divider register -
- -Baud_rate_gen_reg0 - - -0XE0001018 - -32 - -RW - -0x000000 - -Baud rate divider register. -
- -Control_reg0 - - -0XE0001000 - -32 - -RW - -0x000000 - -UART Control register -
- -mode_reg0 - - -0XE0001004 - -32 - -RW - -0x000000 - -UART Mode register -
- -Config_reg - - -0XE000D000 - -32 - -RW - -0x000000 - -SPI configuration register -
- -CTRL - - -0XF8007000 - -32 - -RW - -0x000000 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable (GPIO Bank0, MIO) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

ps7_peripherals_init_data_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

DDR TERM/IBUF_DISABLE_MODE SETTINGS

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -180 - - - -180 - -DDR IOB Config for Data 15:0 -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -180 - - - -180 - -DDR IOB Config for Data 31:16 -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -180 - - - -180 - -DDR IOB Config for DQS 1:0 -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0: ibuf is enabled 1: use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0: termination enabled 1: use 'dynamic_dci_ts' control termination -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -180 - - - -180 - -DDR IOB Config for DQS 3:2 -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

-

SRAM/NOR SET OPMODE

-

TRACE LOCK ACCESS REGISTER

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8803FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), TPIU is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): TPIU is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8803FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

TRACE CURRENT PORT SIZE

-

Register ( slcr )CurrentSize

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CurrentSize - -0XF8803004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -2 - -2 - -The Current Port Size Register has the same format as the Supported Port Sizes register but only one bit is set, and all others must be zero. Writing values with more than one bit set or setting a bit that is not indicated as supported is not supported and causes unpredictable behavior. -
-CurrentSize@0XF8803004 - -31:0 - -ffffffff - - - -2 - -Current Port Size Register -
-

-

TRACE LOCK ACCESS REGISTER

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8803FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -0 - -0 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), TPIU is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): TPIU is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8803FB0 - -31:0 - -ffffffff - - - -0 - -Lock Access Register -
-

-

UART REGISTERS

-

Register ( slcr )Baud_rate_divider_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_divider_reg0 - -0XE0001034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-BDIV - -7:0 - -ff - -6 - -6 - -Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate -
-Baud_rate_divider_reg0@0XE0001034 - -31:0 - -ff - - - -6 - -baud rate divider register -
-

-

Register ( slcr )Baud_rate_gen_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_gen_reg0 - -0XE0001018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CD - -15:0 - -ffff - -3e - -3e - -Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass 2 - 65535: baud_sample value -
-Baud_rate_gen_reg0@0XE0001018 - -31:0 - -ffff - - - -3e - -Baud rate divider register. -
-

-

Register ( slcr )Control_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Control_reg0 - -0XE0001000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STPBRK - -8:8 - -100 - -0 - -0 - -Stop transmitter break: 0: start break transmission, 1: stop break transmission. -
-STTBRK - -7:7 - -80 - -0 - -0 - -Start transmitter break: 0: 1: start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. -
-RSTTO - -6:6 - -40 - -0 - -0 - -Restart receiver timeout counter: 0: receiver timeout counter disabled, 1: receiver timeout counter is restarted. -
-TXDIS - -5:5 - -20 - -0 - -0 - -Transmit disable: 0: enable transmitter, 0: disable transmitter -
-TXEN - -4:4 - -10 - -1 - -10 - -Transmit enable: 0: disable transmitter, 1: enable transmitter, provided the TXDIS field is set to 0. -
-RXDIS - -3:3 - -8 - -0 - -0 - -Receive disable: 0: disable, 1: enable -
-RXEN - -2:2 - -4 - -1 - -4 - -Receive enable: 0: disable, 1: enable. When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. -
-TXRES - -1:1 - -2 - -1 - -2 - -Software reset for Tx data path: 0: 1: transmitter logic is reset and all pending transmitter data is discarded self clear -
-RXRES - -0:0 - -1 - -1 - -1 - -Software reset for Rx data path: 0: 1: receiver logic is reset and all pending receiver data is discarded self clear -
-Control_reg0@0XE0001000 - -31:0 - -1ff - - - -17 - -UART Control register -
-

-

Register ( slcr )mode_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_reg0 - -0XE0001004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IRMODE - -11:11 - -800 - -0 - -0 - -Enable IrDA mode: 0: Default UART mode 1: Enable IrDA mode -
-UCLKEN - -10:10 - -400 - -0 - -0 - -External uart_clk source select: 0: APB clock, pclk 1: a user-defined clock -
-CHMODE - -9:8 - -300 - -0 - -0 - -Channel mode: 00: normal 01: automatic cho 10: local loopback 11: remote loopback -
-NBSTOP - -7:6 - -c0 - -0 - -0 - -Number of stop bits: 00: 1 stop bit 01: 1.5 stop bits 10: 2 stop bits 11: reserved -
-PAR - -5:3 - -38 - -4 - -20 - -Parity type select: 000: even parity 001: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity -
-CHRL - -2:1 - -6 - -0 - -0 - -Character length select: 11: 6 bits 10: 7 bits 0x: 8 bits -
-CLKS - -0:0 - -1 - -0 - -0 - -Clock source select: 0: clock source is uart_clk 1: clock source is uart_clk/8 -
-mode_reg0@0XE0001004 - -31:0 - -fff - - - -20 - -UART Mode register -
-

-

QSPI REGISTERS

-

Register ( slcr )Config_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Config_reg - -0XE000D000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Holdb_dr - -19:19 - -80000 - -1 - -80000 - -Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. -
-Config_reg@0XE000D000 - -31:0 - -80000 - - - -80000 - -SPI configuration register -
-

-

PL POWER ON RESET REGISTERS

-

Register ( slcr )CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CTRL - -0XF8007000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PCFG_POR_CNT_4K - -29:29 - -20000000 - -0 - -0 - -This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer -
-CTRL@0XF8007000 - -31:0 - -20000000 - - - -0 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
-

-

SMC TIMING CALCULATION REGISTER UPDATE

-

NAND SET CYCLE

-

OPMODE

-

DIRECT COMMAND

-

SRAM/NOR CS0 SET CYCLE

-

DIRECT COMMAND

-

NOR CS0 BASE ADDRESS

-

SRAM/NOR CS1 SET CYCLE

-

DIRECT COMMAND

-

NOR CS1 BASE ADDRESS

-

USB RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

ENET RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

I2C RESET

-

DIR MODE GPIO BANK0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode 0: input 1: output Each bit configures the corresponding pin within the 32-bit bank NOTE: bits[8:7] of bank0 cannot be used as inputs. The DIRM bits can be set to 0, but reading DATA_RO does not reflect the input value. See the GPIO chapter for more information. -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode (GPIO Bank0, MIO) -
-

-

DIR MODE GPIO BANK1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables 0: disabled 1: enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable (GPIO Bank0, MIO) -
-

-

OUTPUT ENABLE

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff0000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -On a write, only bits with a corresponding deasserted mask will change the output value. 0: pin value is updated 1: pin is masked Each bit controls the corresponding pin within the 16-bit half-bank. Reads return 0's. -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -On a write, these are the data values for the corresponding GPIO output bits. Each bit controls the corresponding pin within the 16-bit half-bank. Reads return the previous value written to this register or DATA_0[15:0]. Reads do not return the value on the GPIO pin. -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable Output Data (GPIO Bank0, MIO, Lower 16bits) -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

- -

-

ps7_post_config_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -LVL_SHFTR_EN - - -0XF8000900 - -32 - -RW - -0x000000 - -Level Shifters Enable -
- -FPGA_RST_CTRL - - -0XF8000240 - -32 - -RW - -0x000000 - -FPGA Software Reset Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_post_config_2_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

ENABLING LEVEL SHIFTER

-

Register ( slcr )LVL_SHFTR_EN

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LVL_SHFTR_EN - -0XF8000900 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-USER_INP_ICT_EN_0 - -1:0 - -3 - -3 - -3 - -Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. -
-USER_INP_ICT_EN_1 - -3:2 - -c - -3 - -c - -Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. -
-LVL_SHFTR_EN@0XF8000900 - -31:0 - -f - - - -f - -Level Shifters Enable -
-

-

FPGA RESETS TO 0

-

Register ( slcr )FPGA_RST_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA_RST_CTRL - -0XF8000240 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_3 - -31:25 - -fe000000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FPGA_ACP_RST - -24:24 - -1000000 - -0 - -0 - -FPGA ACP port soft reset: 0: No reset 1: ACP AXI interface reset output asserted -
-FPGA_AXDS3_RST - -23:23 - -800000 - -0 - -0 - -AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0: No reset 1: AXDS3AXI interface reset output asserted -
-FPGA_AXDS2_RST - -22:22 - -400000 - -0 - -0 - -AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0: No reset 1: AXDS2 AXI interface reset output asserted -
-FPGA_AXDS1_RST - -21:21 - -200000 - -0 - -0 - -AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0: No reset 1: AXDS1 AXI interface reset output asserted -
-FPGA_AXDS0_RST - -20:20 - -100000 - -0 - -0 - -AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0: No reset 1: AXDS0 AXI interface reset output asserted -
-reserved_2 - -19:18 - -c0000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FSSW1_FPGA_RST - -17:17 - -20000 - -0 - -0 - -General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0: No reset 1: FPGA slave interface 1 reset is asserted -
-FSSW0_FPGA_RST - -16:16 - -10000 - -0 - -0 - -General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0: No reset 1: FPGA slave interface 0 reset is asserted -
-reserved_1 - -15:14 - -c000 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FPGA_FMSW1_RST - -13:13 - -2000 - -0 - -0 - -General purpose FPGA master interface: 1: soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0: No reset 1: FPGA master interface 1 reset is asserted -
-FPGA_FMSW0_RST - -12:12 - -1000 - -0 - -0 - -General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0: No reset 1: FPGA master interface 0 reset is asserted. -
-FPGA_DMA3_RST - -11:11 - -800 - -0 - -0 - -FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 3 peripheral request reset output asserted -
-FPGA_DMA2_RST - -10:10 - -400 - -0 - -0 - -FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 2 peripheral request reset output asserted -
-FPGA_DMA1_RST - -9:9 - -200 - -0 - -0 - -FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 1 peripheral request reset output asserted -
-FPGA_DMA0_RST - -8:8 - -100 - -0 - -0 - -FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0: No reset 1: FPGA DMA 0 peripheral request reset output asserted -
-reserved - -7:4 - -f0 - -0 - -0 - -Reserved. Writes are ignored, read data is zero. -
-FPGA3_OUT_RST - -3:3 - -8 - -0 - -0 - -FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0: No reset 1: FPGA 3 top level reset output asserted -
-FPGA2_OUT_RST - -2:2 - -4 - -0 - -0 - -FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0: No reset 1: FPGA 2 top level reset output asserted -
-FPGA1_OUT_RST - -1:1 - -2 - -0 - -0 - -FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0: No reset 1: FPGA 1 top level reset output asserted -
-FPGA0_OUT_RST - -0:0 - -1 - -0 - -0 - -FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0: No reset 1: FPGA 0 top level reset output asserted -
-FPGA_RST_CTRL@0XF8000240 - -31:0 - -ffffffff - - - -0 - -FPGA Software Reset Control -
-

-

AFI REGISTERS

-

AFI0 REGISTERS

-

AFI1 REGISTERS

-

AFI2 REGISTERS

-

AFI3 REGISTERS

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_debug_2_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -LAR - - -0XF8898FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -LAR - - -0XF8899FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -LAR - - -0XF8809FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
-

-

ps7_debug_2_0

- - - - - - - - - -

CROSS TRIGGER CONFIGURATIONS

-

UNLOCKING CTI REGISTERS

-

Register ( slcr )LAR

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8898FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8898FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8899FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8899FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8809FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8809FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

ENABLING CTI MODULES AND CHANNELS

-

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

- -

- - - - -

ps7_pll_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -ARM_PLL_CFG - - -0XF8000110 - -32 - -RW - -0x000000 - -ARM PLL Configuration -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_PLL_CTRL - - -0XF8000100 - -32 - -RW - -0x000000 - -ARM PLL Control -
- -ARM_CLK_CTRL - - -0XF8000120 - -32 - -RW - -0x000000 - -CORTEX A9 Clock Control -
- -DDR_PLL_CFG - - -0XF8000114 - -32 - -RW - -0x000000 - -DDR PLL Configuration -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_PLL_CTRL - - -0XF8000104 - -32 - -RW - -0x000000 - -DDR PLL Control -
- -DDR_CLK_CTRL - - -0XF8000124 - -32 - -RW - -0x000000 - -DDR Clock Control -
- -IO_PLL_CFG - - -0XF8000118 - -32 - -RW - -0x000000 - -IO PLL Configuration -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -IO_PLL_CTRL - - -0XF8000108 - -32 - -RW - -0x000000 - -IO PLL Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_pll_init_data_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

PLL SLCR REGISTERS

-

ARM PLL INIT

-

Register ( slcr )ARM_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CFG - -0XF8000110 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -fa - -fa000 - -Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. -
-ARM_PLL_CFG@0XF8000110 - -31:0 - -3ffff0 - - - -fa220 - -ARM PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -28 - -28000 - -Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -7f000 - - - -28000 - -ARM PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -10 - -ARM PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -1 - -ARM PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drives the RESET input of the PLL. 0 - PLL out of reset; 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -1 - - - -0 - -ARM PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ARM_PLL_LOCK - -0:0 - -1 - -1 - -1 - -ARM PLL lock status. 0 - ARM PLL out of lock. 1 - ARM PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. -
-PLL_STATUS@0XF800010C - -31:0 - -1 - - - -1 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )ARM_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_PLL_CTRL - -0XF8000100 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed. -
-ARM_PLL_CTRL@0XF8000100 - -31:0 - -10 - - - -0 - -ARM PLL Control -
-

-

Register ( slcr )ARM_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ARM_CLK_CTRL - -0XF8000120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is CPU PLL. 10 - Source for generated clock is DDR divided clock. 11 - Source for generated clock is IO PLL -
-DIVISOR - -13:8 - -3f00 - -2 - -200 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-CPU_6OR4XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CPU_3OR2XCLKACT - -25:25 - -2000000 - -1 - -2000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CPU_2XCLKACT - -26:26 - -4000000 - -1 - -4000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CPU_1XCLKACT - -27:27 - -8000000 - -1 - -8000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CPU_PERI_CLKACT - -28:28 - -10000000 - -1 - -10000000 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-ARM_CLK_CTRL@0XF8000120 - -31:0 - -1f003f30 - - - -1f000200 - -CORTEX A9 Clock Control -
-

-

DDR PLL INIT

-

Register ( slcr )DDR_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CFG - -0XF8000114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -2 - -20 - -Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -12c - -12c000 - -Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. -
-DDR_PLL_CFG@0XF8000114 - -31:0 - -3ffff0 - - - -12c220 - -DDR PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -20 - -20000 - -Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -7f000 - - - -20000 - -DDR PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -10 - -DDR PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -1 - -DDR PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -1 - - - -0 - -DDR PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_PLL_LOCK - -1:1 - -2 - -1 - -2 - -DDR PLL lock status. 0 - DDR PLL out of lock. 1 - DDR PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. -
-PLL_STATUS@0XF800010C - -31:0 - -2 - - - -2 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )DDR_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_PLL_CTRL - -0XF8000104 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed -
-DDR_PLL_CTRL@0XF8000104 - -31:0 - -10 - - - -0 - -DDR PLL Control -
-

-

Register ( slcr )DDR_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDR_CLK_CTRL - -0XF8000124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DDR_3XCLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-DDR_2XCLKACT - -1:1 - -2 - -1 - -2 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-DDR_3XCLK_DIVISOR - -25:20 - -3f00000 - -2 - -200000 - -Divisor value for the ddr_3xclk -
-DDR_2XCLK_DIVISOR - -31:26 - -fc000000 - -3 - -c000000 - -Divisor value for the ddr_2xclk (does not have to be 2/3 speed of ddr_3xclk) -
-DDR_CLK_CTRL@0XF8000124 - -31:0 - -fff00003 - - - -c200003 - -DDR Clock Control -
-

-

IO PLL INIT

-

Register ( slcr )IO_PLL_CFG

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CFG - -0XF8000118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RES - -7:4 - -f0 - -c - -c0 - -Drives the PLL_RES[3:0] input of the PLL to set the PLL loop filter resistor control -
-PLL_CP - -11:8 - -f00 - -2 - -200 - -Drives the PLL_CP[3:0] input of the PLL to set the PLL charge pump control -
-LOCK_CNT - -21:12 - -3ff000 - -145 - -145000 - -Drives the LOCK_CNT[9:0] input of the PLL to set the number of clock cycles the PLL needs to have clkref and clkfb aligned withth a certain window before syaing locked. -
-IO_PLL_CFG@0XF8000118 - -31:0 - -3ffff0 - - - -1452c0 - -IO PLL Configuration -
-

-

UPDATE FB_DIV

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_FDIV - -18:12 - -7f000 - -1e - -1e000 - -Provides the feedback divisor for the PLL. NOTE: Before changing this value the PLL must first be bypassed and then put into powerdown or reset state. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -7f000 - - - -1e000 - -IO PLL Control -
-

-

BY PASS PLL

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -1 - -10 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -10 - -IO PLL Control -
-

-

ASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -1 - -1 - -Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -1 - -IO PLL Control -
-

-

DEASSERT RESET

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_RESET - -0:0 - -1 - -0 - -0 - -Drives the RESET input of the PLL. 0 - PLL out of reset. 1 - PLL held in reset. Remember that after reset, the user should program the PLLs and ensure that the serviced bit below is asserted before using. -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -1 - - - -0 - -IO PLL Control -
-

-

CHECK PLL STATUS

-

Register ( slcr )PLL_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PLL_STATUS - -0XF800010C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IO_PLL_LOCK - -2:2 - -4 - -1 - -4 - -IO PLL lock status. 0 - IO PLL out of lock. 1 - IO PLL in lock. Note: Reset condition is actually 0, but will always be 1 by the time this register can be read if PLL's are being used. -
-PLL_STATUS@0XF800010C - -31:0 - -4 - - - -4 - -tobe -
-

-

REMOVE PLL BY PASS

-

Register ( slcr )IO_PLL_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-IO_PLL_CTRL - -0XF8000108 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PLL_BYPASS_FORCE - -4:4 - -10 - -0 - -0 - -Overides control of the PLL bypass function within the clock controller to force into bypass state. 0 - PLL not forced to be bypassed (may still be bypassed through bootstrap pin). 1 - PLL forced to be bypassed -
-IO_PLL_CTRL@0XF8000108 - -31:0 - -10 - - - -0 - -IO PLL Control -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_clock_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DCI_CLK_CTRL - - -0XF8000128 - -32 - -RW - -0x000000 - -DCI clock control -
- -GEM0_RCLK_CTRL - - -0XF8000138 - -32 - -RW - -0x000000 - -Gigabit Ethernet MAC 0 RX Clock Control -
- -GEM0_CLK_CTRL - - -0XF8000140 - -32 - -RW - -0x000000 - -Gigabit Ethernet MAC 0 Ref Clock Control -
- -LQSPI_CLK_CTRL - - -0XF800014C - -32 - -RW - -0x000000 - -Linear Quad-SPI Reference Clock Control -
- -SDIO_CLK_CTRL - - -0XF8000150 - -32 - -RW - -0x000000 - -SDIO Reference Clock Control -
- -UART_CLK_CTRL - - -0XF8000154 - -32 - -RW - -0x000000 - -UART Reference Clock Control -
- -CAN_CLK_CTRL - - -0XF800015C - -32 - -RW - -0x000000 - -CAN Reference Clock Control -
- -CAN_MIOCLK_CTRL - - -0XF8000160 - -32 - -RW - -0x000000 - -CAN MIO Clock Control -
- -PCAP_CLK_CTRL - - -0XF8000168 - -32 - -RW - -0x000000 - -PCAP 2X Clock Contol -
- -FPGA0_CLK_CTRL - - -0XF8000170 - -32 - -RW - -0x000000 - -FPGA 0 Output Clock Control -
- -FPGA1_CLK_CTRL - - -0XF8000180 - -32 - -RW - -0x000000 - -FPGA 1 Output Clock Control -
- -FPGA2_CLK_CTRL - - -0XF8000190 - -32 - -RW - -0x000000 - -FPGA 2 Output Clock Control -
- -FPGA3_CLK_CTRL - - -0XF80001A0 - -32 - -RW - -0x000000 - -FPGA 3 Output Clock Control -
- -CLK_621_TRUE - - -0XF80001C4 - -32 - -RW - -0x000000 - -6:2:1 ratio clock, if set -
- -APER_CLK_CTRL - - -0XF800012C - -32 - -RW - -0x000000 - -AMBA Peripheral Clock Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_clock_init_data_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

CLOCK CONTROL SLCR REGISTERS

-

Register ( slcr )DCI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DCI_CLK_CTRL - -0XF8000128 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-DIVISOR0 - -13:8 - -3f00 - -23 - -2300 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-DCI_CLK_CTRL@0XF8000128 - -31:0 - -3f03f01 - - - -302301 - -DCI clock control -
-

-

Register ( slcr )GEM0_RCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_RCLK_CTRL - -0XF8000138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -4:4 - -10 - -0 - -0 - -Selects the source used to generate the clock. 0 - Source for generated clock is GEM 0 MIO RX clock. 1 - Source for generated clock is GEM 0 FMIO RX clock. -
-GEM0_RCLK_CTRL@0XF8000138 - -31:0 - -11 - - - -1 - -Gigabit Ethernet MAC 0 RX Clock Control -
-

-

Register ( slcr )GEM0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GEM0_CLK_CTRL - -0XF8000140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -6:4 - -70 - -0 - -0 - -Selects the source used to generate the clock. 1xx - Source for generated clock is Ethernet 0 FMIO clock. 00x - Source for generated clock is IO PLL. 010 - Source for generated clock is ARM PLL. 011 - Source for generated clock is DDR PLL -
-DIVISOR - -13:8 - -3f00 - -8 - -800 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -5 - -500000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-GEM0_CLK_CTRL@0XF8000140 - -31:0 - -3f03f71 - - - -500801 - -Gigabit Ethernet MAC 0 Ref Clock Control -
-

-

Register ( slcr )LQSPI_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LQSPI_CLK_CTRL - -0XF800014C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -5:4 - -30 - -2 - -20 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -7 - -700 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-LQSPI_CLK_CTRL@0XF800014C - -31:0 - -3f31 - - - -721 - -Linear Quad-SPI Reference Clock Control -
-

-

Register ( slcr )SDIO_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SDIO_CLK_CTRL - -0XF8000150 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -SDIO 0 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -SDIO 1 Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-SDIO_CLK_CTRL@0XF8000150 - -31:0 - -3f33 - - - -1401 - -SDIO Reference Clock Control -
-

-

Register ( slcr )UART_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-UART_CLK_CTRL - -0XF8000154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -0 - -0 - -UART 0 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CLKACT1 - -1:1 - -2 - -1 - -2 - -UART 1 reference clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-UART_CLK_CTRL@0XF8000154 - -31:0 - -3f33 - - - -1402 - -UART Reference Clock Control -
-

-

Register ( slcr )CAN_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_CLK_CTRL - -0XF800015C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT0 - -0:0 - -1 - -1 - -1 - -CAN 0 Reference Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CLKACT1 - -1:1 - -2 - -0 - -0 - -CAN 1 Reference Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -e - -e00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -3 - -300000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-CAN_CLK_CTRL@0XF800015C - -31:0 - -3f03f33 - - - -300e01 - -CAN Reference Clock Control -
-

-

Register ( slcr )CAN_MIOCLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CAN_MIOCLK_CTRL - -0XF8000160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CAN0_MUX - -5:0 - -3f - -0 - -0 - -CAN0 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN0_REF_SEL - -6:6 - -40 - -0 - -0 - -CAN 0 Reference Clock selection. 0 - From internal PLL. 1 - From MIO based on the next field -
-CAN1_MUX - -21:16 - -3f0000 - -0 - -0 - -CAN1 mux selection for MIO. Setting this to zero will select MIO[0] as the clock source. Only values 0-53 are valid. -
-CAN1_REF_SEL - -22:22 - -400000 - -0 - -0 - -CAN1 Reference Clock selection. 0 - From internal PLL. 1 - From MIO based on the next field -
-CAN_MIOCLK_CTRL@0XF8000160 - -31:0 - -7f007f - - - -0 - -CAN MIO Clock Control -
-

-

Register ( slcr )PCAP_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PCAP_CLK_CTRL - -0XF8000168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLKACT - -0:0 - -1 - -1 - -1 - -Clock active 0 - Clock is disabled 1 - Clock is enabled -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL -
-DIVISOR - -13:8 - -3f00 - -5 - -500 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. -
-PCAP_CLK_CTRL@0XF8000168 - -31:0 - -3f31 - - - -501 - -PCAP 2X Clock Contol -
-

-

Register ( slcr )FPGA0_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA0_CLK_CTRL - -0XF8000170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -a - -a00 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-FPGA0_CLK_CTRL@0XF8000170 - -31:0 - -3f03f30 - - - -100a00 - -FPGA 0 Output Clock Control -
-

-

Register ( slcr )FPGA1_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -101400 - -FPGA 1 Output Clock Control -
-

-

Register ( slcr )FPGA2_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -101400 - -FPGA 2 Output Clock Control -
-

-

Register ( slcr )FPGA3_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
-DIVISOR0 - -13:8 - -3f00 - -14 - -1400 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
-DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
-FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -101400 - -FPGA 3 Output Clock Control -
-

-

Register ( slcr )CLK_621_TRUE

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CLK_621_TRUE - -0XF80001C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CLK_621_TRUE - -0:0 - -1 - -1 - -1 - -Enable the 6:2:1 mode. 1 for 6:3:2:1. 0 for 4:2:2:1. -
-CLK_621_TRUE@0XF80001C4 - -31:0 - -1 - - - -1 - -6:2:1 ratio clock, if set -
-

-

Register ( slcr )APER_CLK_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-APER_CLK_CTRL - -0XF800012C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DMA_CPU_2XCLKACT - -0:0 - -1 - -1 - -1 - -DMA 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-USB0_CPU_1XCLKACT - -2:2 - -4 - -1 - -4 - -USB 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-USB1_CPU_1XCLKACT - -3:3 - -8 - -1 - -8 - -USB 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-GEM0_CPU_1XCLKACT - -6:6 - -40 - -1 - -40 - -Gigabit Ethernet MAC 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-GEM1_CPU_1XCLKACT - -7:7 - -80 - -0 - -0 - -Gigabit Ethernet MAC 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SDI0_CPU_1XCLKACT - -10:10 - -400 - -1 - -400 - -SDIO0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SDI1_CPU_1XCLKACT - -11:11 - -800 - -0 - -0 - -SDIO 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SPI0_CPU_1XCLKACT - -14:14 - -4000 - -0 - -0 - -SPI 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SPI1_CPU_1XCLKACT - -15:15 - -8000 - -0 - -0 - -SPI 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CAN0_CPU_1XCLKACT - -16:16 - -10000 - -1 - -10000 - -CAN 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-CAN1_CPU_1XCLKACT - -17:17 - -20000 - -0 - -0 - -CAN 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-I2C0_CPU_1XCLKACT - -18:18 - -40000 - -1 - -40000 - -I2C 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-I2C1_CPU_1XCLKACT - -19:19 - -80000 - -1 - -80000 - -I2C 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-UART0_CPU_1XCLKACT - -20:20 - -100000 - -0 - -0 - -UART 0 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-UART1_CPU_1XCLKACT - -21:21 - -200000 - -1 - -200000 - -UART 1 AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-GPIO_CPU_1XCLKACT - -22:22 - -400000 - -1 - -400000 - -GPIO AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-LQSPI_CPU_1XCLKACT - -23:23 - -800000 - -1 - -800000 - -LQSPI AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-SMC_CPU_1XCLKACT - -24:24 - -1000000 - -1 - -1000000 - -SMC AMBA Clock active. 0 - Clock is disabled. 1 - Clock is enabled. -
-APER_CLK_CTRL@0XF800012C - -31:0 - -1ffcccd - - - -1ed044d - -AMBA Peripheral Clock Control -
-

-

THIS SHOULD BE BLANK

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_ddr_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control Register -
- -Two_rank_cfg - - -0XF8006004 - -32 - -RW - -0x000000 - -Two rank configuration register -
- -HPR_reg - - -0XF8006008 - -32 - -RW - -0x000000 - -HPR Queue control register -
- -LPR_reg - - -0XF800600C - -32 - -RW - -0x000000 - -LPR Queue control register -
- -WR_reg - - -0XF8006010 - -32 - -RW - -0x000000 - -WR Queue control register -
- -DRAM_param_reg0 - - -0XF8006014 - -32 - -RW - -0x000000 - -DRAM Parameters register 0 -
- -DRAM_param_reg1 - - -0XF8006018 - -32 - -RW - -0x000000 - -DRAM Parameters register 1 -
- -DRAM_param_reg2 - - -0XF800601C - -32 - -RW - -0x000000 - -DRAM Parameters register 2 -
- -DRAM_param_reg3 - - -0XF8006020 - -32 - -RW - -0x000000 - -DRAM Parameters register 3 -
- -DRAM_param_reg4 - - -0XF8006024 - -32 - -RW - -0x000000 - -DRAM Parameters register 4 -
- -DRAM_init_param - - -0XF8006028 - -32 - -RW - -0x000000 - -DRAM initialization parameters register -
- -DRAM_EMR_reg - - -0XF800602C - -32 - -RW - -0x000000 - -DRAM EMR2, EMR3 access register -
- -DRAM_EMR_MR_reg - - -0XF8006030 - -32 - -RW - -0x000000 - -DRAM EMR, MR access register -
- -DRAM_burst8_rdwr - - -0XF8006034 - -32 - -RW - -0x000000 - -DRAM burst 8 read/write register -
- -DRAM_disable_DQ - - -0XF8006038 - -32 - -RW - -0x000000 - -DRAM Disable DQ register -
- -DRAM_addr_map_bank - - -0XF800603C - -32 - -RW - -0x000000 - -Selects the address bits used as DRAM bank address bits -
- -DRAM_addr_map_col - - -0XF8006040 - -32 - -RW - -0x000000 - -Selects the address bits used as DRAM column address bits -
- -DRAM_addr_map_row - - -0XF8006044 - -32 - -RW - -0x000000 - -Selects the address bits used as DRAM row address bits -
- -DRAM_ODT_reg - - -0XF8006048 - -32 - -RW - -0x000000 - -DRAM ODT register -
- -phy_cmd_timeout_rddata_cpt - - -0XF8006050 - -32 - -RW - -0x000000 - -PHY command time out and read data capture FIFO register -
- -DLL_calib - - -0XF8006058 - -32 - -RW - -0x000000 - -DLL calibration register -
- -ODT_delay_hold - - -0XF800605C - -32 - -RW - -0x000000 - -ODT delay and ODT hold register -
- -ctrl_reg1 - - -0XF8006060 - -32 - -RW - -0x000000 - -Controller register 1 -
- -ctrl_reg2 - - -0XF8006064 - -32 - -RW - -0x000000 - -Controller register 2 -
- -ctrl_reg3 - - -0XF8006068 - -32 - -RW - -0x000000 - -Controller register 3 -
- -ctrl_reg4 - - -0XF800606C - -32 - -RW - -0x000000 - -Controller register 4 -
- -CHE_REFRESH_TIMER01 - - -0XF80060A0 - -32 - -RW - -0x000000 - -CHE_REFRESH_TIMER01 -
- -CHE_T_ZQ - - -0XF80060A4 - -32 - -RW - -0x000000 - -ZQ parameters register -
- -CHE_T_ZQ_Short_Interval_Reg - - -0XF80060A8 - -32 - -RW - -0x000000 - -Misc parameters register -
- -deep_pwrdwn_reg - - -0XF80060AC - -32 - -RW - -0x000000 - -Deep powerdown register -
- -reg_2c - - -0XF80060B0 - -32 - -RW - -0x000000 - -Training control register -
- -reg_2d - - -0XF80060B4 - -32 - -RW - -0x000000 - -Misc Debug register -
- -dfi_timing - - -0XF80060B8 - -32 - -RW - -0x000000 - -DFI timing register -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear register -
- -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear register -
- -CHE_CORR_ECC_LOG_REG_OFFSET - - -0XF80060C8 - -32 - -RW - -0x000000 - -ECC error correction register -
- -CHE_UNCORR_ECC_LOG_REG_OFFSET - - -0XF80060DC - -32 - -RW - -0x000000 - -ECC unrecoverable error status register -
- -CHE_ECC_STATS_REG_OFFSET - - -0XF80060F0 - -32 - -RW - -0x000000 - -ECC error count register -
- -ECC_scrub - - -0XF80060F4 - -32 - -RW - -0x000000 - -ECC mode/scrub register -
- -phy_rcvr_enable - - -0XF8006114 - -32 - -RW - -0x000000 - -Phy receiver enable register -
- -PHY_Config - - -0XF8006118 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF800611C - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF8006120 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -PHY_Config - - -0XF8006124 - -32 - -RW - -0x000000 - -PHY configuration register for data slice 0. -
- -phy_init_ratio - - -0XF800612C - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006130 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006134 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_init_ratio - - -0XF8006138 - -32 - -RW - -0x000000 - -PHY init ratio register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006140 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006144 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF8006148 - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_rd_dqs_cfg - - -0XF800614C - -32 - -RW - -0x000000 - -PHY read DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006154 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006158 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF800615C - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_wr_dqs_cfg - - -0XF8006160 - -32 - -RW - -0x000000 - -PHY write DQS configuration register for data slice 0. -
- -phy_we_cfg - - -0XF8006168 - -32 - -RW - -0x000000 - -PHY fifo write enable configuration register for data slice 0. -
- -phy_we_cfg - - -0XF800616C - -32 - -RW - -0x000000 - -PHY fifo write enable configuration register for data slice 0. -
- -phy_we_cfg - - -0XF8006170 - -32 - -RW - -0x000000 - -PHY fifo write enable configuration register for data slice 0. -
- -phy_we_cfg - - -0XF8006174 - -32 - -RW - -0x000000 - -PHY fifo write enable configuration register for data slice 0. -
- -wr_data_slv - - -0XF800617C - -32 - -RW - -0x000000 - -PHY write data slave ratio configuration register for data slice 0. -
- -wr_data_slv - - -0XF8006180 - -32 - -RW - -0x000000 - -PHY write data slave ratio configuration register for data slice 0. -
- -wr_data_slv - - -0XF8006184 - -32 - -RW - -0x000000 - -PHY write data slave ratio configuration register for data slice 0. -
- -wr_data_slv - - -0XF8006188 - -32 - -RW - -0x000000 - -PHY write data slave ratio configuration register for data slice 0. -
- -reg_64 - - -0XF8006190 - -32 - -RW - -0x000000 - -Training control register (2) -
- -reg_65 - - -0XF8006194 - -32 - -RW - -0x000000 - -Training control register (3) -
- -page_mask - - -0XF8006204 - -32 - -RW - -0x000000 - -Page mask register -
- -axi_priority_wr_port - - -0XF8006208 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF800620C - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF8006210 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_wr_port - - -0XF8006214 - -32 - -RW - -0x000000 - -AXI Priority control for write port 0. -
- -axi_priority_rd_port - - -0XF8006218 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF800621C - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF8006220 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -axi_priority_rd_port - - -0XF8006224 - -32 - -RW - -0x000000 - -AXI Priority control for read port 0. -
- -lpddr_ctrl0 - - -0XF80062A8 - -32 - -RW - -0x000000 - -LPDDR2 Control 0 Register -
- -lpddr_ctrl1 - - -0XF80062AC - -32 - -RW - -0x000000 - -LPDDR2 Control 1 Register -
- -lpddr_ctrl2 - - -0XF80062B0 - -32 - -RW - -0x000000 - -LPDDR2 Control 2 Register -
- -lpddr_ctrl3 - - -0XF80062B4 - -32 - -RW - -0x000000 - -LPDDR2 Control 3 Register -
- -ddrc_ctrl - - -0XF8006000 - -32 - -RW - -0x000000 - -DDRC Control Register -
-

-

ps7_ddr_init_data_1_0

- - - - - - - - - -

DDR INITIALIZATION

-

LOCK DDR

-

Register ( slcr )ddrc_ctrl

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -0 - -0 - -Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -80 - -DDRC Control Register -
-

-

Register ( slcr )Two_rank_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Two_rank_cfg - -0XF8006004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rfc_nom_x32 - -11:0 - -fff - -81 - -81 - -tREFI - Average time between refreshes. Unit: in multiples of 32 clocks. DRAM RELATED. Default value is set for DDR3. -
-reg_ddrc_active_ranks - -13:12 - -3000 - -1 - -1000 - -Only present for multi-rank configurations. Each bit represents one rank. 1=populated; 0=unpopulated 01 = One Rank 11 = Two Ranks Others = Reserved -
-reg_ddrc_addrmap_cs_bit0 - -18:14 - -7c000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 0. Valid Range: 0 to 25, and 31 Internal Base: 9. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 0 is set to 0. -
-reg_ddrc_wr_odt_block - -20:19 - -180000 - -1 - -80000 - -00 = block read/write scheduling for 1-cycle when Write requires changing ODT settings 01 = block read/write scheduling for 2 cycles when Write requires changing ODT settings 10 = block read/write scheduling for 3 cycles when Write requires changing ODT settings 11 = Reserved -
-reg_ddrc_diff_rank_rd_2cycle_gap - -21:21 - -200000 - -0 - -0 - -Only present for multi-rank configurations. The two cycle gap is required for mDDR only, due to the large variance in tDQSCK in mDDR. 0 = schedule a 1-cycle gap in data responses when performing consecutive reads to different ranks 1 = schedule 2 cycle gap for the same -
-reg_ddrc_addrmap_cs_bit1 - -26:22 - -7c00000 - -0 - -0 - -Only present for multi-rank configurations. Selects the address bit used as rank address bit 1. Valid Range: 0 to 25, and 31 Internal Base: 10 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 31, rank address bit 1 is set to 0. -
-reg_ddrc_addrmap_open_bank - -27:27 - -8000000 - -0 - -0 - -Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map to Open Bank mode -
-reg_ddrc_addrmap_4bank_ram - -28:28 - -10000000 - -0 - -0 - -Only present if MEMC_SIMPLE_ADDR_MAP is defined. Since MEMC_SIMPLE_ADDR_MAP is not defined, Reserved 1 = Set the address map for 4 Bank RAMs -
-Two_rank_cfg@0XF8006004 - -31:0 - -1fffffff - - - -81081 - -Two rank configuration register -
-

-

Register ( slcr )HPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-HPR_reg - -0XF8006008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_hpr_min_non_critical_x32 - -10:0 - -7ff - -f - -f - -Number of clocks that the HPR queue is guaranteed to be non-critical. Unit: 32 clocks -
-reg_ddrc_hpr_max_starve_x32 - -21:11 - -3ff800 - -f - -7800 - -Number of clocks that the HPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_hpr_xact_run_length - -25:22 - -3c00000 - -f - -3c00000 - -Number of transactions that will be serviced once the HPR queue goes critical is the smaller of this number and the number of transactions available. -
-HPR_reg@0XF8006008 - -31:0 - -3ffffff - - - -3c0780f - -HPR Queue control register -
-

-

Register ( slcr )LPR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LPR_reg - -0XF800600C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpr_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clocks that the LPR queue is guaranteed to be non-critical. Unit: 32 clocks -
-reg_ddrc_lpr_max_starve_x32 - -21:11 - -3ff800 - -2 - -1000 - -Number of clocks that the LPR queue can be starved before it goes critical. Unit: 32 clocks -
-reg_ddrc_lpr_xact_run_length - -25:22 - -3c00000 - -8 - -2000000 - -Number of transactions that will be serviced once the LPR queue goes critical is the smaller of this number and the number of transactions available -
-LPR_reg@0XF800600C - -31:0 - -3ffffff - - - -2001001 - -LPR Queue control register -
-

-

Register ( slcr )WR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-WR_reg - -0XF8006010 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_w_min_non_critical_x32 - -10:0 - -7ff - -1 - -1 - -Number of clock cycles that the WR queue is guaranteed to be non-critical. -
-reg_ddrc_w_xact_run_length - -14:11 - -7800 - -8 - -4000 - -Number of transactions that will be serviced once the WR queue goes critical is the smaller of this number and the number of transactions available -
-reg_ddrc_w_max_starve_x32 - -25:15 - -3ff8000 - -2 - -10000 - -Number of clocks that the Write queue can be starved before it goes critical. Unit: 32 clocks. FOR PERFORMANCE ONLY. -
-WR_reg@0XF8006010 - -31:0 - -3ffffff - - - -14001 - -WR Queue control register -
-

-

Register ( slcr )DRAM_param_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg0 - -0XF8006014 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_rc - -5:0 - -3f - -1b - -1b - -tRC - Min time between activates to same bank (spec: 65 ns for DDR2-400 and smaller for faster parts). DRAM RELATED. Default value is set for DDR3. -
-reg_ddrc_t_rfc_min - -13:6 - -3fc0 - -56 - -1580 - -tRFC(min) - Minimum time from refresh to refresh or activate (spec: 75ns to 195ns). DRAM RELATED. Default value is set for DDR3. -
-reg_ddrc_post_selfref_gap_x32 - -20:14 - -1fc000 - -10 - -40000 - -Minimum time to wait after coming out of self refresh before doing anything. This must be bigger than all the constraints that exist. (spec: Maximum of tXSNR and tXSRD and tXSDLL which is 512 clocks). Unit: in multiples of 32 clocks DRAM RELATED -
-DRAM_param_reg0@0XF8006014 - -31:0 - -1fffff - - - -4159b - -DRAM Parameters register 0 -
-

-

Register ( slcr )DRAM_param_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg1 - -0XF8006018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wr2pre - -4:0 - -1f - -12 - -12 - -Minimum time between write and precharge to same bank Non-LPDDR2 -> WL + BL/2 + tWR LPDDR2 -> WL + BL/2 + tWR + 1 Unit: Clocks where, WL = write latency. BL = burst length. This must match the value programmed in the BL bit of the mode register to the DRAM. BST is not supported at present. tWR = write recovery time. This comes directly from the DRAM specs. -
-reg_ddrc_powerdown_to_x32 - -9:5 - -3e0 - -6 - -c0 - -After this many clocks of NOP or DESELECT the controller will put the DRAM into power down. This must be enabled in the Master Control Register. Unit: Multiples of 32 clocks. -
-reg_ddrc_t_faw - -15:10 - -fc00 - -10 - -4000 - -tFAW - At most 4 banks must be activated in a rolling window of tFAW cycles. Unit: clocks DRAM RELATED. -
-reg_ddrc_t_ras_max - -21:16 - -3f0000 - -24 - -240000 - -tRAS(max) - Maximum time between activate and precharge to same bank. Maximum time that a page can be kept open (spec: 70 us). If this is zero. The page is closed after each transaction. Unit: Multiples of 1024 clocks DRAM RELATED. -
-reg_ddrc_t_ras_min - -26:22 - -7c00000 - -14 - -5000000 - -tRAS(min) - Minimum time between activate and precharge to the same bank(spec: 45 ns). Unit: clocks DRAM RELATED. Default value is set for DDR3. -
-reg_ddrc_t_cke - -31:28 - -f0000000 - -4 - -40000000 - -Minimum number of cycles of CKE HIGH/LOW during power down and self refresh. LPDDR2 mode: Set this to the larger of tCKE or tCKESR. Non-LPDDR2 designs: Set this to tCKE value. Unit: clocks. -
-DRAM_param_reg1@0XF8006018 - -31:0 - -f7ffffff - - - -452440d2 - -DRAM Parameters register 1 -
-

-

Register ( slcr )DRAM_param_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg2 - -0XF800601C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_write_latency - -4:0 - -1f - -5 - -5 - -Time from write command to write data on DDRC to PHY Interface. (PHY adds an extra flop delay on the write data path; hence this value is one less than the write latency of the DRAM device itself). DDR2/3 -> WL -1 LPDDR -> 1 LPDDR2 ->WL Where WL = Write Latency of DRAM DRAM RELATED. -
-reg_ddrc_rd2wr - -9:5 - -3e0 - -7 - -e0 - -Minimum time from read command to write command. Include time for bus turnaround and all per-bank, per-rank, and global constraints. non-LPDDR2 -> RL + BL/2 + 2 - WL LPDDR2 -> RL + BL/2 + RU(tDQSCKmax / tCK) + 1 - WL Write Pre-amble and DQ/DQS jitter timer is included in the above equation. DRAM RELATED. -
-reg_ddrc_wr2rd - -14:10 - -7c00 - -e - -3800 - -Minimum time from write command to read command. Includes time for bus turnaround and recovery times and all per-bank, per-rank, and global constraints. non-LPDDR2 -> WL + tWTR + BL/2 LPDDR2 -> WL + tWTR + BL/2 + 1 Unit: clocks. Where, WL = Write latency, BL = burst length. This should match the value. Programmed in the BL bit of the mode register to the DRAM. tWTR = internal WRITE to READ command delay. This comes directly from the DRAM specs. -
-reg_ddrc_t_xp - -19:15 - -f8000 - -4 - -20000 - -tXP: Minimum time after power down exit to any operation. DRAM RELATED. -
-reg_ddrc_pad_pd - -22:20 - -700000 - -0 - -0 - -If pads have a power-saving mode, this is the greater of the time for the pads to enter power down or the time for the pads to exit power down. Used only in non-DFI designs. Unit: clocks. -
-reg_ddrc_rd2pre - -27:23 - -f800000 - -4 - -2000000 - -Minimum time from read to precharge of same bank DDR2 -> AL + BL/2 + max(tRTP, 2) - 2 DDR3 -> AL + max (tRTP, 4) mDDR -> BL/2 LPDDR2 -> BL/2 + tRTP - 1 AL = Additive Latency BL = DRAM Burst Length tRTP = value from spec DRAM RELATED -
-reg_ddrc_t_rcd - -31:28 - -f0000000 - -7 - -70000000 - -tRCD - AL Minimum time from activate to read or write command to same bank Min value for this is 1. AL = Additive Latency DRAM RELATED -
-DRAM_param_reg2@0XF800601C - -31:0 - -ffffffff - - - -720238e5 - -DRAM Parameters register 2 -
-

-

Register ( slcr )DRAM_param_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg3 - -0XF8006020 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_t_ccd - -4:2 - -1c - -4 - -10 - -tCCD - Minimum time between two reads or two writes (from bank a to bank b) is this value + 1 DRAM RELATED -
-reg_ddrc_t_rrd - -7:5 - -e0 - -4 - -80 - -tRRD - Minimum time between activates from bank a to bank b. (spec: 10ns or less) DRAM RELATED -
-reg_ddrc_refresh_margin - -11:8 - -f00 - -2 - -200 - -Issue critical refresh or page close this many cycles before the critical refresh or page timer expires. It is recommended that this not be changed from the default value. -
-reg_ddrc_t_rp - -15:12 - -f000 - -7 - -7000 - -tRP - Minimum time from precharge to activate of same bank. DRAM RELATED -
-reg_ddrc_refresh_to_x32 - -20:16 - -1f0000 - -8 - -80000 - -If the refresh timer (tRFC_nom, as known as tREFI) has expired at least once, but it has not expired burst_of_N_refresh times yet, then a 'speculative refresh' may be performed. A speculative refresh is a refresh performed at a time when refresh would be useful, but before it is absolutely required. When the DRAM bus is idle for a period of time determined by this refresh idle timeout and the refresh timer has expired at least once since the last refresh, then a 'speculative refresh' will be performed. Speculative refreshes will continue successively until there are no refreshes pending or until new reads or writes are issued to the controller. -
-reg_ddrc_sdram - -21:21 - -200000 - -1 - -200000 - -1 = sdram device 0 = non-sdram device -
-reg_ddrc_mobile - -22:22 - -400000 - -0 - -0 - -1= mobile/LPDDR DRAM device in use. 0=non-mobile DRAM device in use. -
-reg_ddrc_clock_stop_en - -23:23 - -800000 - -0 - -0 - -1=enable the assertion of stop_clk to the PHY whenever a clock is not required by LPDDR/ LPDDR2. 0=stop_clk will never be asserted. Note: This is only present for implementations supporting LPDDR/LPDDR2 devices. -
-reg_ddrc_read_latency - -28:24 - -1f000000 - -7 - -7000000 - -Set to RL. Time from Read command to Read data on DRAM interface. Unit: clocks This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. RL = Read Latency of DRAM Note: This signal is present for designs supporting LPDDR/LPDDR2 DRAM only. It is used to calculate when DRAM clock may be stopped. -
-reg_phy_mode_ddr1_ddr2 - -29:29 - -20000000 - -1 - -20000000 - -unused -
-reg_ddrc_dis_pad_pd - -30:30 - -40000000 - -0 - -0 - -1 = disable the pad power down feature 0 = Enable the pad power down feature. -
-reg_ddrc_loopback - -31:31 - -80000000 - -0 - -0 - -unused -
-DRAM_param_reg3@0XF8006020 - -31:0 - -fffffffc - - - -27287290 - -DRAM Parameters register 3 -
-

-

Register ( slcr )DRAM_param_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_param_reg4 - -0XF8006024 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_en_2t_timing_mode - -0:0 - -1 - -0 - -0 - -1 = DDRC will use 2T timing 0 = DDRC will use 1T timing -
-reg_ddrc_prefer_write - -1:1 - -2 - -0 - -0 - -1 = Bank selector prefers writes over reads -
-reg_ddrc_max_rank_rd - -5:2 - -3c - -f - -3c - -Only present for multi-rank configurations Background: Reads to the same rank can be performed back-to-back. Reads from different ranks require additional 1-cycle latency in between (to avoid possible data bus contention). The controller arbitrates for bus access on a cycle-by-cycle basis; therefore after a read is scheduled, there is a clock cycle in which only reads from the same bank are eligible to be scheduled. This prevents reads from other ranks from having fair access to the data bus. This parameter represents the maximum number of 64-byte reads (or 32B reads in some short read cases) that can be scheduled consecutively to the same rank. After this number is reached, a 1-cycle delay is inserted by the scheduler to allow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fairness (and hence worst-case latency). FOR PERFORMANCE ONLY. -
-reg_ddrc_mr_wr - -6:6 - -40 - -0 - -0 - -A low to high signal on this signal will do a mode register write or read. Controller will accept this command, if this signal is detected high and 'ddrc_reg_mr_wr_busy' is detected low. -
-reg_ddrc_mr_addr - -8:7 - -180 - -0 - -0 - -Mode register address - for non-LPDDR2 modes. This register is don't care in LPDDR2 mode 00 = MR0 01 = MR1 10 = MR2 11 = MR3 -
-reg_ddrc_mr_data - -24:9 - -1fffe00 - -0 - -0 - -Mode register write data - for non-LPDDR2 modes. For LPDDR2, these 16-bits are interpreted as Writes: \'7bMR Addr[7:0], MR Data[7:0]\'7d. Reads: \'7bMR Addr[7:0], Don't Care[7:0]\'7d -
-ddrc_reg_mr_wr_busy - -25:25 - -2000000 - -0 - -0 - -Core must initiate a MR write / read operation only if this signal is low. This signal goes high in the clock after the controller accepts the write / read request. It goes low when (i) MR write command has been issued to the DRAM (ii) MR Read data has been returned to Controller. Any MR write / read command that is received when 'ddrc_reg_mr_wr_busy' is high is not accepted. 1 = Indicates that mode register write / read operation is in progress. 0 = Indicates that the core can initiate a mode register write / read operation. -
-reg_ddrc_mr_type - -26:26 - -4000000 - -0 - -0 - -Indicates whether the Mode register operation is read or write 1 = read 0 = write -
-reg_ddrc_mr_rdata_valid - -27:27 - -8000000 - -0 - -0 - -This bit indicates whether the Mode Register Read Data present at address 0xA9 is valid or not. This bit is 1'b0 by default. This bit will be cleared (1'b0), whenever a Mode Register Read command is issued. This bit will be set to 1'b1, when the Mode Register Read Data is written to register 0xA9. -
-DRAM_param_reg4@0XF8006024 - -31:0 - -fffffff - - - -3c - -DRAM Parameters register 4 -
-

-

Register ( slcr )DRAM_init_param

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_init_param - -0XF8006028 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_final_wait_x32 - -6:0 - -7f - -7 - -7 - -Cycles to wait after completing the DRAM init sequence before starting the dynamic scheduler. Units are in counts of a global timer that pulses every 32 clock cycles. Default value is set for DDR3. -
-reg_ddrc_pre_ocd_x32 - -10:7 - -780 - -0 - -0 - -Wait period before driving the 'OCD Complete' command to DRAM. Units are in counts of a global timer that pulses every 32 clock cycles. There is no known spec requirement for this. It may be set to zero. -
-reg_ddrc_t_mrd - -13:11 - -3800 - -4 - -2000 - -tMRD - Cycles between Load Mode commands DRAM RELATED Default value is set for DDR3. -
-DRAM_init_param@0XF8006028 - -31:0 - -3fff - - - -2007 - -DRAM initialization parameters register -
-

-

Register ( slcr )DRAM_EMR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_reg - -0XF800602C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_emr2 - -15:0 - -ffff - -8 - -8 - -Non LPDDR2- Value to be loaded into DRAM EMR2 registers. For LPDDR2 - Value to Write to the MR3 register -
-reg_ddrc_emr3 - -31:16 - -ffff0000 - -0 - -0 - -Non LPDDR2- Value to be loaded into DRAM EMR3 registers. Used in non-LPDDR2 designs only. -
-DRAM_EMR_reg@0XF800602C - -31:0 - -ffffffff - - - -8 - -DRAM EMR2, EMR3 access register -
-

-

Register ( slcr )DRAM_EMR_MR_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_EMR_MR_reg - -0XF8006030 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr - -15:0 - -ffff - -930 - -930 - -Non LPDDR2-Value to be loaded into the DRAM Mode register. Bit 8 is for DLL and the setting here is ignored. The controller sets appropriately. For LPDDR2 - Value to Write to the MR1 register -
-reg_ddrc_emr - -31:16 - -ffff0000 - -4 - -40000 - -Non LPDDR2-Value to be loaded into DRAM EMR registers. Bits [9:7] are for OCD and the setting in this register is ignored. The controller sets those bits appropriately. For LPDDR2 - Value to Write to the MR2 register -
-DRAM_EMR_MR_reg@0XF8006030 - -31:0 - -ffffffff - - - -40930 - -DRAM EMR, MR access register -
-

-

Register ( slcr )DRAM_burst8_rdwr

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_burst8_rdwr - -0XF8006034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_burst_rdwr - -3:0 - -f - -4 - -4 - -This controls the burst size used to access the DRAM. This must match the BL mode register setting in the DRAM. In LPDDR and LPDDR2, Burst length of 16 is supported only in Half Bus Width mode. Every input read/write command has 4 cycles of data associated with it and that is not enough data for doing Burst Length16 in Full Bus Width mode. 0010 - Burst length of 4 0100 - Burst length of 8 1000 - Burst length of 16 (only supported for LPDDR AND LPDDR2) All other values are reserved -
-reg_ddrc_pre_cke_x1024 - -13:4 - -3ff0 - -105 - -1050 - -Cycles to wait after reset before driving CKE high to start the DRAM initialization sequence. Units: 1024 clock cycles. DDR2 Specifications typically require this to be programmed for a delay of >= 200 us. LPDDR2 - tINIT0 of 20 ms (max) + tINIT1 of 100 ns (min) -
-reg_ddrc_post_cke_x1024 - -25:16 - -3ff0000 - -1 - -10000 - -Cycles to wait after driving CKE high to start the DRAM initialization sequence. Units: 1024 clocks. DDR2 typically require a 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2 - Typically require this to be programmed for a delay of 200 us. -
-reg_ddrc_burstchop - -28:28 - -10000000 - -0 - -0 - -Feature not supported. When 1, Controller is out in burstchop mode. -
-DRAM_burst8_rdwr@0XF8006034 - -31:0 - -13ff3fff - - - -11054 - -DRAM burst 8 read/write register -
-

-

Register ( slcr )DRAM_disable_DQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_disable_DQ - -0XF8006038 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_force_low_pri_n - -0:0 - -1 - -0 - -0 - -Active Low signal. When asserted (0), all incoming transactions will be forced to low priority. Forcing the incoming transactions to low priority implicitly turns OFF Bypass. Otherwise, HPR is allowed if enabled in the AXI priority read registers. -
-reg_ddrc_dis_dq - -1:1 - -2 - -0 - -0 - -When 1, DDRC will not de-queue any transactions from the CAM. Bypass will also be disabled. All transactions will be queued in the CAM. This is for debug only; no reads or writes are issued to DRAM as long as this is asserted. This bit is intended to be switched on-the-fly -
-reg_phy_debug_mode - -6:6 - -40 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_wr_level_start - -7:7 - -80 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_rd_level_start - -8:8 - -100 - -0 - -0 - -Not Applicable in this PHY. -
-reg_phy_dq0_wait_t - -12:9 - -1e00 - -0 - -0 - -Not Applicable in this PHY. -
-DRAM_disable_DQ@0XF8006038 - -31:0 - -1fc3 - - - -0 - -DRAM Disable DQ register -
-

-

Register ( slcr )DRAM_addr_map_bank

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_bank - -0XF800603C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_bank_b0 - -3:0 - -f - -7 - -7 - -Selects the address bits used as bank address bit 0. Valid Range: 0 to 14 Internal Base: 5 The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b1 - -7:4 - -f0 - -7 - -70 - -Selects the address bits used as bank address bit 1. Valid Range: 0 to 14; Internal Base: 6. The selected address bit for each of the bank address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_bank_b2 - -11:8 - -f00 - -7 - -700 - -Selects the AXI address bit used as bank address bit 2. Valid range 0 to 14, and 15. Internal Base: 7. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, bank address bit 2 is set to 0. -
-reg_ddrc_addrmap_col_b5 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 6. Half bus width mode: Selects the address bits used as column address bits 7. Valid range is 0-7. Internal Base 8. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 -
-reg_ddrc_addrmap_col_b6 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bits used as column address bits 7. Half bus width mode: Selects the address bits used as column address bits 8. Valid range is 0-7. Internal Base 9. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. Internal base: 9 -
-DRAM_addr_map_bank@0XF800603C - -31:0 - -fffff - - - -777 - -Selects the address bits used as DRAM bank address bits -
-

-

Register ( slcr )DRAM_addr_map_col

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_col - -0XF8006040 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_col_b2 - -3:0 - -f - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 3. Half bus width mode: Selects the address bit used as column address bit 4. Valid Range: 0 to 7. Internal Base: 5 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b3 - -7:4 - -f0 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 4. Half bus width mode: Selects the address bit used as column address bit 5. Valid Range: 0 to 7 Internal Base: 6 The selected address bit is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b4 - -11:8 - -f00 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 5. Half bus width mode: Selects the address bit used as column address bits 6. Valid Range: 0 to 7. Internal Base: 7. The selected address bit for each of the column address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_col_b7 - -15:12 - -f000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 8. Half bus width mode: Selects the address bit used as column address bit 9. Valid Range: 0 to 7, and 15. Internal Base: 10. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10.In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b8 - -19:16 - -f0000 - -0 - -0 - -Full bus width mode: Selects the address bit used as column address bit 9. Half bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 11 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b9 - -23:20 - -f00000 - -f - -f00000 - -Full bus width mode: Selects the address bit used as column address bit 11. (Column address bit 10 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Valid Range: 0 to 7, and 15 Internal Base: 12 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b10 - -27:24 - -f000000 - -f - -f000000 - -Full bus width mode: Selects the address bit used as column address bit 12. (Column address bit 11 in LPDDR2 mode) Half bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 13 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-reg_ddrc_addrmap_col_b11 - -31:28 - -f0000000 - -f - -f0000000 - -Full bus width mode: Selects the address bit used as column address bit 13. (Column address bit 12 in LPDDR2 mode) Half bus width mode: Unused. To make it unused, this should be set to 15. (Column address bit 13 in LPDDR2 mode) Valid Range: 0 to 7, and 15. Internal Base: 14. The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2 spec, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column address bit 10. In LPDDR2, there is a dedicated bit for auto-precharge in the CA bus, and hence column bit 10 is used. -
-DRAM_addr_map_col@0XF8006040 - -31:0 - -ffffffff - - - -fff00000 - -Selects the address bits used as DRAM column address bits -
-

-

Register ( slcr )DRAM_addr_map_row

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_addr_map_row - -0XF8006044 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_addrmap_row_b0 - -3:0 - -f - -6 - -6 - -Selects the AXI address bits used as row address bit 0. Valid Range: 0 to 11. Internal Base: 9 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field -
-reg_ddrc_addrmap_row_b1 - -7:4 - -f0 - -6 - -60 - -Selects the AXI address bits used as row address bit 1. Valid Range: 0 to 11. Internal Base: 10 The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b2_11 - -11:8 - -f00 - -6 - -600 - -Selects the AXI address bits used as row address bits 2 to 11. Valid Range: 0 to 11. Internal Base: 11 (for row address bit 2) to 20 (for row address bit 11) The selected address bit for each of the row address bits is determined by adding the Internal Base to the value of this field. -
-reg_ddrc_addrmap_row_b12 - -15:12 - -f000 - -6 - -6000 - -Selects the AXI address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 12 is set to 0. -
-reg_ddrc_addrmap_row_b13 - -19:16 - -f0000 - -6 - -60000 - -Selects the AXI address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 13 is set to 0. -
-reg_ddrc_addrmap_row_b14 - -23:20 - -f00000 - -6 - -600000 - -Selects theAXI address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 23 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 14 is set to 0. -
-reg_ddrc_addrmap_row_b15 - -27:24 - -f000000 - -f - -f000000 - -Selects the AXI address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 24 The selected address bit is determined by adding the Internal Base to the value of this field. If set to 15, row address bit 15 is set to 0. -
-DRAM_addr_map_row@0XF8006044 - -31:0 - -fffffff - - - -f666666 - -Selects the address bits used as DRAM row address bits -
-

-

Register ( slcr )DRAM_ODT_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DRAM_ODT_reg - -0XF8006048 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rank0_rd_odt - -2:0 - -7 - -0 - -0 - -Unused. [1:0] - Indicates which remote ODT's must be turned ON during a read to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during reads to rank 0. -
-reg_ddrc_rank0_wr_odt - -5:3 - -38 - -1 - -8 - -[1:0] - Indicates which remote ODT's must be turned on during a write to rank 0. Each of the 2 ranks has a remote ODT (in the DRAM) which can be turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; Rank 1 is controlled by bit next to the LSB. For each rank, set its bit to 1 to enable its ODT. [2] - If 1 then local ODT is enabled during writes to rank 0. -
-reg_ddrc_rank1_rd_odt - -8:6 - -1c0 - -1 - -40 - -Unused -
-reg_ddrc_rank1_wr_odt - -11:9 - -e00 - -1 - -200 - -Unused -
-reg_phy_rd_local_odt - -13:12 - -3000 - -0 - -0 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is in progress (where 'in progress' is defined as after a read command is issued and until all read data has been returned all the way to the controller.) Typically this is set to the value required to enable termination at the desired strength for read usage. -
-reg_phy_wr_local_odt - -15:14 - -c000 - -3 - -c000 - -Value to drive on the 2-bit local_odt PHY outputs when write levelling is enabled for DQS. -
-reg_phy_idle_local_odt - -17:16 - -30000 - -3 - -30000 - -Value to drive on the 2-bit local_odt PHY outputs when output enable is not asserted and a read is not in progress. Typically this is the value required to disable termination to save power when idle. -
-reg_ddrc_rank2_rd_odt - -20:18 - -1c0000 - -0 - -0 - -Unused -
-reg_ddrc_rank2_wr_odt - -23:21 - -e00000 - -0 - -0 - -Unused -
-reg_ddrc_rank3_rd_odt - -26:24 - -7000000 - -0 - -0 - -Unused -
-reg_ddrc_rank3_wr_odt - -29:27 - -38000000 - -0 - -0 - -Unused -
-DRAM_ODT_reg@0XF8006048 - -31:0 - -3fffffff - - - -3c248 - -DRAM ODT register -
-

-

Register ( slcr )phy_cmd_timeout_rddata_cpt

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_cmd_timeout_rddata_cpt - -0XF8006050 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_cmd_to_data - -3:0 - -f - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_wr_cmd_to_data - -7:4 - -f0 - -0 - -0 - -Not used in DFI PHY. -
-reg_phy_rdc_we_to_re_delay - -11:8 - -f00 - -8 - -800 - -This register value + 1 give the number of clock cycles between writing into the Read Capture FIFO and the read operation. The setting of this register determines the read data timing and depends upon total delay in the system for read operation which include fly-by delays, trace delay, clkout_invert etc. This is used only if reg_phy_use_fixed_re=1. -
-reg_phy_rdc_fifo_rst_disable - -15:15 - -8000 - -0 - -0 - -When 1, disable counting the number of times the Read Data Capture FIFO has been reset when the FIFO was not empty. -
-reg_phy_use_fixed_re - -16:16 - -10000 - -1 - -10000 - -When 1: PHY generates FIFO read enable after fixed number of clock cycles as defined by reg_phy_rdc_we_to_re_delay[3:0]. When 0: PHY uses the not_empty method to do the read enable generation. Note: This port must be set HIGH during training/leveling process i.e. when ddrc_dfi_wrlvl_en/ ddrc_dfi_rdlvl_en/ ddrc_dfi_rdlvl_gate_en port is set HIGH. -
-reg_phy_rdc_fifo_rst_err_cnt_clr - -17:17 - -20000 - -0 - -0 - -Clear/reset for counter rdc_fifo_rst_err_cnt[3:0]. 0: no clear, 1: clear. Note: This is a synchronous dynamic signal that must have timing closed. -
-reg_phy_dis_phy_ctrl_rstn - -18:18 - -40000 - -0 - -0 - -Disable the reset from Phy Ctrl macro. 1: PHY Ctrl macro reset port is always HIGH 0: PHY Ctrl macro gets power on reset. -
-reg_phy_clk_stall_level - -19:19 - -80000 - -0 - -0 - -1 = stall clock, for DLL aging control -
-reg_phy_gatelvl_num_of_dq0 - -27:24 - -f000000 - -7 - -7000000 - -This register value determines register determines the number of samples used for each ratio increment during Gate Training. Num_of_iteration = reg_phy_gatelvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-reg_phy_wrlvl_num_of_dq0 - -31:28 - -f0000000 - -7 - -70000000 - -This register value determines register determines the number of samples used for each ratio increment during Write Leveling. Num_of_iteration = reg_phy_wrlvl_num_of_dq0 + 1 The recommended value for this register is 8. Accuracy is better with higher value, but this will cause leveling to run longer. -
-phy_cmd_timeout_rddata_cpt@0XF8006050 - -31:0 - -ff0f8fff - - - -77010800 - -PHY command time out and read data capture FIFO register -
-

-

Register ( slcr )DLL_calib

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DLL_calib - -0XF8006058 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dll_calib_to_min_x1024 - -7:0 - -ff - -1 - -1 - -Unused in DFI Controller. -
-reg_ddrc_dll_calib_to_max_x1024 - -15:8 - -ff00 - -1 - -100 - -Unused in DFI Controller. -
-reg_ddrc_dis_dll_calib - -16:16 - -10000 - -0 - -0 - -When 1, disable dll_calib generated by the controller. The core should issue the dll_calib signal using co_gs_dll_calib input. This input is changeable on the fly. When 0, controller will issue dll_calib periodically -
-DLL_calib@0XF8006058 - -31:0 - -1ffff - - - -101 - -DLL calibration register -
-

-

Register ( slcr )ODT_delay_hold

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ODT_delay_hold - -0XF800605C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_rd_odt_delay - -3:0 - -f - -3 - -3 - -UNUSED -
-reg_ddrc_wr_odt_delay - -7:4 - -f0 - -0 - -0 - -The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting should remain constant for the entire time that DQS is driven by the controller. The suggested value for DDR2 is WL - 5 and for DDR3 is 0. WL is Write latency. DDR2 ODT has a 2-cycle on-time delay and a 2.5-cycle off-time delay. ODT is not applicable for LPDDR and LPDDR2 modes. -
-reg_ddrc_rd_odt_hold - -11:8 - -f00 - -0 - -0 - -Unused -
-reg_ddrc_wr_odt_hold - -15:12 - -f000 - -5 - -5000 - -Cycles to hold ODT for a Write Command. When 0x0, ODT signal is ON for 1 cycle. When 0x1, it is ON for 2 cycles, etc. The values to program in different modes are : DRAM Burst of 4 -2, DRAM Burst of 8 -4 -
-ODT_delay_hold@0XF800605C - -31:0 - -ffff - - - -5003 - -ODT delay and ODT hold register -
-

-

Register ( slcr )ctrl_reg1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg1 - -0XF8006060 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_pageclose - -0:0 - -1 - -0 - -0 - -If true, bank will be closed and kept closed if no transactions are available for it. If false, bank will remain open until there is a need to close it (to open a different page, or for page timeout or refresh timeout.) This does not apply when auto-refresh is used. -
-reg_ddrc_lpr_num_entries - -6:1 - -7e - -1f - -3e - -Number of entries in the low priority transaction store is this value plus 1. In this design, by default all read ports are treated as low priority and hence the value of 0x1F. The hpr_num_entries is 32 minus this value. Bit [6] is ignored. -
-reg_ddrc_auto_pre_en - -7:7 - -80 - -0 - -0 - -When set, most reads and writes will be issued with auto-precharge. (Exceptions can be made for collision cases.) -
-reg_ddrc_refresh_update_level - -8:8 - -100 - -0 - -0 - -Toggle this signal to indicate that refresh register(s) have been updated. The value will be automatically updated when exiting soft reset. So it does not need to be toggled initially. -
-reg_ddrc_dis_wc - -9:9 - -200 - -0 - -0 - -When 1, disable Write Combine -
-reg_ddrc_dis_collision_page_opt - -10:10 - -400 - -0 - -0 - -When this is set to '0', auto-precharge will be disabled for the flushed command in a collision case. Collision cases are write followed by read to same address, read followed by write to same address, or write followed by write to same address with DIS_WC bit = 1 (where 'same address' comparisons exclude the two address bits representing critical word). -
-reg_ddrc_selfref_en - -12:12 - -1000 - -0 - -0 - -If 1, then the controller will put the DRAM into self refresh when the transaction store is empty. -
-ctrl_reg1@0XF8006060 - -31:0 - -17ff - - - -3e - -Controller register 1 -
-

-

Register ( slcr )ctrl_reg2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg2 - -0XF8006064 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_go2critical_hysteresis - -12:5 - -1fe0 - -0 - -0 - -Describes the number of cycles that co_gs_go2critical_rd or co_gs_go2critical_wr must be asserted before the corresponding queue moves to the 'critical' state in the DDRC. The arbiter controls the co_gs_go2critical_* signals; it is designed for use with this hysteresis field set to 0. -
-reg_arb_go2critical_en - -17:17 - -20000 - -1 - -20000 - -1 - Set reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC based on 'urgent' input coming from AXI master. 0 - Keep reg_ddrc_go2critical_wr and reg_ddrc_go2critical_rd signals going to DDRC at 1'b0. -
-ctrl_reg2@0XF8006064 - -31:0 - -21fe0 - - - -20000 - -Controller register 2 -
-

-

Register ( slcr )ctrl_reg3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg3 - -0XF8006068 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_wrlvl_ww - -7:0 - -ff - -41 - -41 - -Write leveling write-to-write delay. Specifies the minimum number of clock cycles from the assertion of a ddrc_dfi_wrlvl_strobe signal to the next ddrc_dfi_wrlvl_strobe signal. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Recommended value is: (RL + reg_phy_rdc_we_to_re_delay + 50) Only present in designs that support DDR3 and LPDDR2 devices. -
-reg_ddrc_rdlvl_rr - -15:8 - -ff00 - -41 - -4100 - -Read leveling read-to-read delay. Specifies the minimum number of clock cycles from the assertion of a read command to the next read command. Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Only present in designs that support DDR3 devices -
-reg_ddrc_dfi_t_wlmrd - -25:16 - -3ff0000 - -28 - -280000 - -First DQS/DQS# rising edge after write leveling mode is programmed. This is same as the tMLRD value from the DRAM spec. Only present in designs that support DDR3 devices. -
-ctrl_reg3@0XF8006068 - -31:0 - -3ffffff - - - -284141 - -Controller register 3 -
-

-

Register ( slcr )ctrl_reg4

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ctrl_reg4 - -0XF800606C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_t_ctrlupd_interval_min_x1024 - -7:0 - -ff - -10 - -10 - -This is the minimum amount of time between Controller initiated DFI update requests (which will be executed whenever the controller is idle). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the first read request when the controller is idle. Units: 1024 clocks -
-dfi_t_ctrlupd_interval_max_x1024 - -15:8 - -ff00 - -16 - -1600 - -This is the maximum amount of time between Controller initiated DFI update requests. This timer resets with each update request; when the timer expires, traffic is blocked for a few cycles. PHY can use this idle time to recalibrate the delay lines to the DLLs. The DLL calibration is also used to reset PHY FIFO pointers in case of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. Units: 1024 clocks -
-ctrl_reg4@0XF800606C - -31:0 - -ffff - - - -1610 - -Controller register 4 -
-

-

Register ( slcr )CHE_REFRESH_TIMER01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_REFRESH_TIMER01 - -0XF80060A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-refresh_timer0_start_value_x32 - -11:0 - -fff - -0 - -0 - -Refresh Timer for Rank 1. Unit: in multiples of 32 clocks. (Only present in multi-rank configurations). FOR PERFORMANCE ONLY. -
-refresh_timer1_start_value_x32 - -23:12 - -fff000 - -8 - -8000 - -Refresh Timer for Rank 0. (Only present in multi-rank configurations). Unit: in multiples of 32 clocks. FOR PERFORMANCE ONLY. -
-CHE_REFRESH_TIMER01@0XF80060A0 - -31:0 - -ffffff - - - -8000 - -CHE_REFRESH_TIMER01 -
-

-

Register ( slcr )CHE_T_ZQ

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ - -0XF80060A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dis_auto_zq - -0:0 - -1 - -0 - -0 - -1=disable controller generation of ZQCS command. Co_gs_zq_calib_short can be used instead to control ZQ calibration commands. 0=internally generate ZQCS commands based on reg_ddrc_t_zq_short_interval_x1024 This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-reg_ddrc_ddr3 - -1:1 - -2 - -1 - -2 - -Indicates operating in DDR2/DDR3 mode. Default value is set for DDR3. -
-reg_ddrc_t_mod - -11:2 - -ffc - -200 - -800 - -Mode register set command update delay (minimum the larger of 12 clock cycles or 15ns) -
-reg_ddrc_t_zq_long_nop - -21:12 - -3ff000 - -200 - -200000 - -Number of cycles of NOP required after a ZQCL (ZQ calibration long) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-reg_ddrc_t_zq_short_nop - -31:22 - -ffc00000 - -40 - -10000000 - -Number of cycles of NOP required after a ZQCS (ZQ calibration short) command is issued to DRAM. Units: Clock cycles This is only present for implementations supporting DDR3 and LPDDR2 devices. -
-CHE_T_ZQ@0XF80060A4 - -31:0 - -ffffffff - - - -10200802 - -ZQ parameters register -
-

-

Register ( slcr )CHE_T_ZQ_Short_Interval_Reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_T_ZQ_Short_Interval_Reg - -0XF80060A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-t_zq_short_interval_x1024 - -19:0 - -fffff - -cb73 - -cb73 - -Average interval to wait between automatically issuing ZQCS (ZQ calibration short) commands to DDR3 devices. Meaningless if reg_ddrc_dis_auto_zq=1. Units: 1024 Clock cycles. Applicable for DDR3 and LPDDR2 devices. -
-dram_rstn_x1024 - -27:20 - -ff00000 - -69 - -6900000 - -Number of cycles to assert DRAM reset signal during init sequence. Units: 1024 Clock cycles. Applicable for DDR3 only. -
-CHE_T_ZQ_Short_Interval_Reg@0XF80060A8 - -31:0 - -fffffff - - - -690cb73 - -Misc parameters register -
-

-

Register ( slcr )deep_pwrdwn_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-deep_pwrdwn_reg - -0XF80060AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-deeppowerdown_en - -0:0 - -1 - -0 - -0 - -1 - Controller puts the DRAM into Deep Powerdown mode when the transaction store is empty. 0 - Brings Controller out of Deep Powerdown mode Present only in designs configured to support LPDDR or LPDDR2 FOR PERFORMANCE ONLY. -
-deeppowerdown_to_x1024 - -8:1 - -1fe - -ff - -1fe - -Minimum deep power down time applicable only for LPDDR2. LPDDR exits from deep power down mode immediately after reg_ddrc_deeppowerdown_en is deasserted. For LPDDR2, Value from the spec is 500us. Units are in 1024 clock cycles. Present only in designs configured to support LPDDR or LPDDR2. FOR PERFORMANCE ONLY. -
-deep_pwrdwn_reg@0XF80060AC - -31:0 - -1ff - - - -1fe - -Deep powerdown register -
-

-

Register ( slcr )reg_2c

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2c - -0XF80060B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-dfi_wrlvl_max_x1024 - -11:0 - -fff - -fff - -fff - -Write leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_wrlvl_resp) to a write leveling enable signal (ddrc_dfi_wrlvl_en). Only applicable when connecting to PHY's operating in 'PHY WrLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-dfi_rdlvl_max_x1024 - -23:12 - -fff000 - -fff - -fff000 - -Read leveling maximum time. Specifies the maximum number of clock cycles that the controller will wait for a response (phy_dfi_rdlvl_resp) to a read leveling enable signal (ddrc_dfi_rdlvl_en or ddrc_dfi_rdlvl_gate_en). Only applicable when connecting to PHY's operating in 'PHY RdLvl Evaluation' mode. Typical value 0xFFF Units 1024 clocks -
-ddrc_reg_twrlvl_max_error - -24:24 - -1000000 - -0 - -0 - -When '1' indicates that the reg_ddrc_dfi_wrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If write leveling timed out, an error is indicated by the DDRC and this bit gets set. The value is held until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3. -
-ddrc_reg_trdlvl_max_error - -25:25 - -2000000 - -0 - -0 - -When '1' indicates that the reg_ddrc_dfi_rdrlvl_max_x1024 timer has timed out. This is a Clear-on-Write register. If read leveling or gate training timed out, an error is indicated by the DDRC and this bit gets set. The value is held at that value until it is cleared. Clearing is done by writing a '0' to this register. Only present in designs that support DDR3 or LPDDR2 devices. -
-reg_ddrc_dfi_wr_level_en - -26:26 - -4000000 - -1 - -4000000 - -1 = Write leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0 = Write leveling disabled. -
-reg_ddrc_dfi_rd_dqs_gate_level - -27:27 - -8000000 - -1 - -8000000 - -1 = Read DQS Gate Leveling mode has been enabled as part of init sequence; Valid only for DDR3 DFI designs 0= Read DQS gate leveling is disabled. -
-reg_ddrc_dfi_rd_data_eye_train - -28:28 - -10000000 - -1 - -10000000 - -1 = Read Data Eye training mode has been enabled as part of init sequence. Only present in designs that support DDR3 or LPDDR2 devices. -
-reg_2c@0XF80060B0 - -31:0 - -1fffffff - - - -1cffffff - -Training control register -
-

-

Register ( slcr )reg_2d

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_2d - -0XF80060B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_2t_delay - -8:0 - -1ff - -0 - -0 - -Selects the clock edge in which chip select (CSN) and CKE is asserted. Unsupported feature. -
-reg_ddrc_skip_ocd - -9:9 - -200 - -1 - -200 - -This register must be kept at 1'b1. 1'b0 is NOT supported. 1 - Indicates the controller to skip OCD adjustment step during DDR2 initialization. OCD_Default and OCD_Exit are performed instead. 0 - Not supported. -
-reg_ddrc_dis_pre_bypass - -10:10 - -400 - -0 - -0 - -Only present in designs supporting precharge bypass. When 1, disable bypass path for high priority precharges FOR DEBUG ONLY. -
-reg_2d@0XF80060B4 - -31:0 - -7ff - - - -200 - -Misc Debug register -
-

-

Register ( slcr )dfi_timing

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-dfi_timing - -0XF80060B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_dfi_t_rddata_en - -4:0 - -1f - -6 - -6 - -Time from the assertion of a READ command on the DFI interface to the assertion of the phy_dfi_rddata_en signal. Non-LPDDR -> RL-1 LPDDR -> RL Where RL is read latency of DRAM. -
-reg_ddrc_dfi_t_ctrlup_min - -14:5 - -7fe0 - -3 - -60 - -Specifies the minimum number of clock cycles that the ddrc_dfi_ctrlupd_req signal must be asserted. -
-reg_ddrc_dfi_t_ctrlup_max - -24:15 - -1ff8000 - -40 - -200000 - -Specifies the maximum number of clock cycles that the ddrc_dfi_ctrlupd_req signal can assert. -
-dfi_timing@0XF80060B8 - -31:0 - -1ffffff - - - -200066 - -DFI timing register -
-

-

RESET ECC ERROR

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear register -
-

-

Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -0 - -0 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
-Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -0 - -0 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
-CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -0 - -ECC error clear register -
-

-

Register ( slcr )CHE_CORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_CORR_ECC_LOG_REG_OFFSET - -0XF80060C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to '1' when a correctable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x31) -
-ECC_CORRECTED_BIT_NUM - -7:1 - -fe - -0 - -0 - -Indicator of the bit number syndrome in error for single-bit errors. The field is 7-bit wide to handle 72-bits of data. This is an encoded value with ECC bits placed in between data. The encoding is given in section 5.4 Correctable bit number from the lowest error lane is reported here. There are only 13-valid bits going to an ECC lane (8-data + 5-ECC). Only 4-bits are needed to encode a max value of d'13. Bit[7] of this register is used to indicate the exact byte lane. When a error happens, if CORR_ECC_LOG_COL[0] from register 0x33 is 1'b0, then the error happened in Lane 0 or 1. If CORR_ECC_LOG_COL[0] is 1'b1, then the error happened in Lane 2 or 3. Bit[7] of this register indicates whether the error is from upper or lower byte lane. If it is 0, then it is lower byte lane and if it is 1, then it is upper byte lane. Together with CORR_ECC_LOG_COL[0] and bit[7] of this register, the exact byte lane with correctable error can be determined. -
-CHE_CORR_ECC_LOG_REG_OFFSET@0XF80060C8 - -31:0 - -ff - - - -0 - -ECC error correction register -
-

-

Register ( slcr )CHE_UNCORR_ECC_LOG_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_UNCORR_ECC_LOG_REG_OFFSET - -0XF80060DC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNCORR_ECC_LOG_VALID - -0:0 - -1 - -0 - -0 - -Set to '1' when an uncorrectable ECC error is captured. As long as this is '1' no further ECC errors will be captured. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x31). -
-CHE_UNCORR_ECC_LOG_REG_OFFSET@0XF80060DC - -31:0 - -1 - - - -0 - -ECC unrecoverable error status register -
-

-

Register ( slcr )CHE_ECC_STATS_REG_OFFSET

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CHE_ECC_STATS_REG_OFFSET - -0XF80060F0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STAT_NUM_CORR_ERR - -15:8 - -ff00 - -0 - -0 - -Returns the number of correctable ECC errors seen since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[1] of ECC CONTROL REGISTER (0x58). -
-STAT_NUM_UNCORR_ERR - -7:0 - -ff - -0 - -0 - -Returns the number of un-correctable errors since the last read. Counter saturates at max value. This is cleared when a '1' is written to register bit[0] of ECC CONTROL REGISTER (0x58). -
-CHE_ECC_STATS_REG_OFFSET@0XF80060F0 - -31:0 - -ffff - - - -0 - -ECC error count register -
-

-

Register ( slcr )ECC_scrub

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ECC_scrub - -0XF80060F4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_ecc_mode - -2:0 - -7 - -0 - -0 - -DRAM ECC Mode. The only valid values that works for this project are 3'b000 (No ECC) and 3'b100 (SEC/DED over 1-beat). To run the design in ECC mode, set reg_ddrc_data_bus_width to 2'b01 (Half bus width) and reg_ddrc_ecc_mode to 3'b100. In this mode, there will be 16-data bits + 6-bit ECC on the DRAM bus. Controller must NOT be put in full bus width mode, when ECC is turned ON. 000 - No ECC, 001 - Reserved 010 - Parity 011 - Reserved 100 - SEC/DED over 1-beat 101 - SEC/DED over multiple beats 110 - Device Correction 111 - Reserved -
-reg_ddrc_dis_scrub - -3:3 - -8 - -1 - -8 - -This feature is NOT supported. Only default value works. 1 - Disable ECC scrubs 0 - Enable ECC scrubs Valid only when reg_ddrc_ecc_mode = 3'b100. -
-ECC_scrub@0XF80060F4 - -31:0 - -f - - - -8 - -ECC mode/scrub register -
-

-

Register ( slcr )phy_rcvr_enable

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rcvr_enable - -0XF8006114 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_dif_on - -3:0 - -f - -0 - -0 - -Value to drive to IO receiver enable pins when turning it ON. When NOT in powerdown or self-refresh (when CKE=1) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. -
-reg_phy_dif_off - -7:4 - -f0 - -0 - -0 - -Value to drive to IO receiver enable pins when turning it OFF. When in powerdown or self-refresh (CKE=0) this value will be sent to the IOs to control receiver on/off. IOD is the size specified by the IO_DIFEN_SIZE parameter. Depending on the IO, one of these signals dif_on or dif_off can be used. -
-phy_rcvr_enable@0XF8006114 - -31:0 - -ff - - - -0 - -Phy receiver enable register -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006118 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -RESERVED -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -RESERVED -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -RESERVED -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006118 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF800611C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -RESERVED -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -RESERVED -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -RESERVED -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF800611C - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006120 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -RESERVED -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -RESERVED -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -RESERVED -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006120 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )PHY_Config

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-PHY_Config - -0XF8006124 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_data_slice_in_use - -0:0 - -1 - -1 - -1 - -Data bus width selection for Read FIFO RE generation. One bit for each data slice. 1: data slice is valid. 0: read data responses are ignored. Note: The Phy Data Slice 0 must always be enabled. -
-reg_phy_rdlvl_inc_mode - -1:1 - -2 - -0 - -0 - -RESERVED -
-reg_phy_gatelvl_inc_mode - -2:2 - -4 - -0 - -0 - -RESERVED -
-reg_phy_wrlvl_inc_mode - -3:3 - -8 - -0 - -0 - -RESERVED -
-reg_phy_board_lpbk_tx - -4:4 - -10 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Transmitter for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_board_lpbk_rx - -5:5 - -20 - -0 - -0 - -External Board Loopback testing. 1: This Slice behaves as Receiver for board loopback. 0: disable This port must be set '0' always except when in external board level loopback test mode. -
-reg_phy_bist_shift_dq - -14:6 - -7fc0 - -0 - -0 - -Determines whether early shifting is required for a particular DQ bit when reg_phy_bist_mode is 2'b10; 1'b1: PRBS pattern shifted early by 1 bit. 1'b0: PRBS pattern without any shift. -
-reg_phy_bist_err_clr - -23:15 - -ff8000 - -0 - -0 - -Clear the mismatch error flag from the BIST Checker. 1'b1: sticky error flag is cleared 1'b0: No effect -
-reg_phy_dq_offset - -30:24 - -7f000000 - -40 - -40000000 - -Offset value from DQS to DQ. Default value: 0x40 (for 90 degree shift). This is only used when reg_phy_use_wr_level=1. #Note 1: When a port width (W) is multiple of N instances of Ranks or Slices, each instance will get W/N bits. Instance n will get (n+1)*(W/N) -1: n (W/N) bits where n (0, 1, to N-1) is the instance number of Rank or Slice. -
-PHY_Config@0XF8006124 - -31:0 - -7fffffff - - - -40000001 - -PHY configuration register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF800612C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -1d - -1d - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -f2 - -3c800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF800612C - -31:0 - -fffff - - - -3c81d - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006130 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -12 - -12 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -d8 - -36000 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006130 - -31:0 - -fffff - - - -36012 - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006134 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -c - -c - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -de - -37800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006134 - -31:0 - -fffff - - - -3780c - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_init_ratio

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_init_ratio - -0XF8006138 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wrlvl_init_ratio - -9:0 - -3ff - -21 - -21 - -The user programmable init ratio used by Write Leveling FSM -
-reg_phy_gatelvl_init_ratio - -19:10 - -ffc00 - -ee - -3b800 - -The user programmable init ratio used Gate Leveling FSM -
-phy_init_ratio@0XF8006138 - -31:0 - -fffff - - - -3b821 - -PHY init ratio register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006140 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006140 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006144 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006144 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF8006148 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF8006148 - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_rd_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_rd_dqs_cfg - -0XF800614C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_rd_dqs_slave_ratio - -9:0 - -3ff - -35 - -35 - -Ratio value for read DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. Provide a default value of 0x40 for most applications -
-reg_phy_rd_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for read DQS slave DLL with the value of the debug_rd_dqs_slave_delay bus. -
-reg_phy_rd_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for read DQS slave DLL with this value. -
-phy_rd_dqs_cfg@0XF800614C - -31:0 - -fffff - - - -35 - -PHY read DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006154 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -9d - -9d - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006154 - -31:0 - -fffff - - - -9d - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006158 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -92 - -92 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006158 - -31:0 - -fffff - - - -92 - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF800615C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -8c - -8c - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF800615C - -31:0 - -fffff - - - -8c - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_wr_dqs_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_wr_dqs_cfg - -0XF8006160 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_dqs_slave_ratio - -9:0 - -3ff - -a1 - -a1 - -Ratio value for write DQS slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQS in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_dqs_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write DQS slave DLL with the value of the reg_phy_wr_dqs_slave_delay bus. -
-reg_phy_wr_dqs_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_dqs_slave_force is 1, replace delay/tap value for write DQS slave DLL with this value. -
-phy_wr_dqs_cfg@0XF8006160 - -31:0 - -fffff - - - -a1 - -PHY write DQS configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006168 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -147 - -147 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg@0XF8006168 - -31:0 - -1fffff - - - -147 - -PHY fifo write enable configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF800616C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -12d - -12d - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg@0XF800616C - -31:0 - -1fffff - - - -12d - -PHY fifo write enable configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006170 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -133 - -133 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg@0XF8006170 - -31:0 - -1fffff - - - -133 - -PHY fifo write enable configuration register for data slice 0. -
-

-

Register ( slcr )phy_we_cfg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-phy_we_cfg - -0XF8006174 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_fifo_we_slave_ratio - -10:0 - -7ff - -143 - -143 - -Ratio value to be used when fifo_we_X_force_mode is set to 0. -
-reg_phy_fifo_we_in_force - -11:11 - -800 - -0 - -0 - -1: overwrite the delay/tap value for fifo_we_X slave DLL with the value of the debug_fifo_we_in_delayX bus. -
-reg_phy_fifo_we_in_delay - -20:12 - -1ff000 - -0 - -0 - -Delay value to be used when debug_fifo_we_in_forceX is set to 1. R is the number of Ranks supported. -
-phy_we_cfg@0XF8006174 - -31:0 - -1fffff - - - -143 - -PHY fifo write enable configuration register for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF800617C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -dd - -dd - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF800617C - -31:0 - -fffff - - - -dd - -PHY write data slave ratio configuration register for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006180 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -d2 - -d2 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006180 - -31:0 - -fffff - - - -d2 - -PHY write data slave ratio configuration register for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006184 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -cc - -cc - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006184 - -31:0 - -fffff - - - -cc - -PHY write data slave ratio configuration register for data slice 0. -
-

-

Register ( slcr )wr_data_slv

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-wr_data_slv - -0XF8006188 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_data_slave_ratio - -9:0 - -3ff - -e1 - -e1 - -Ratio value for write data slave DLL. This is the fraction of a clock cycle represented by the shift to be applied to the write DQ muxes in units of 256ths. In other words, the full-cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_wr_data_slave_force - -10:10 - -400 - -0 - -0 - -1: overwrite the delay/tap value for write data slave DLL with the value of the reg_phy_wr_data_slave_force bus. -
-reg_phy_wr_data_slave_delay - -19:11 - -ff800 - -0 - -0 - -If reg_phy_wr_data_slave_force is 1, replace delay/tap value for write data slave DLL with this value. -
-wr_data_slv@0XF8006188 - -31:0 - -fffff - - - -e1 - -PHY write data slave ratio configuration register for data slice 0. -
-

-

Register ( slcr )reg_64

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_64 - -0XF8006190 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_loopback - -0:0 - -1 - -0 - -0 - -Loopback testing. 1: enable, 0: disable -
-reg_phy_bl2 - -1:1 - -2 - -0 - -0 - -Reserved for future Use. -
-reg_phy_at_spd_atpg - -2:2 - -4 - -0 - -0 - -1 = run scan test at full clock speed but with less coverage 0 = run scan test at slow clock speed but with high coverage During normal function mode, this port must be set 0. -
-reg_phy_bist_enable - -3:3 - -8 - -0 - -0 - -Enable the internal BIST generation and checker logic when this port is set HIGH. Setting this port as 0 will stop the BIST generator/checker. In order to run BIST tests, this port must be set along with reg_phy_loopback. -
-reg_phy_bist_force_err - -4:4 - -10 - -0 - -0 - -This register bit is used to check that BIST checker is not giving false pass. When this port is set 1, data bit gets inverted before sending out to the external memory and BIST checker must return a mismatch error. -
-reg_phy_bist_mode - -6:5 - -60 - -0 - -0 - -The mode bits select the pattern type generated by the BIST generator. All the patterns are transmitted continuously once enabled. 2'b00: constant pattern (0 repeated on each DQ bit) 2'b01: low freq pattern (00001111 repeated on each DQ bit) 2'b10: PRBS pattern (2^7-1 PRBS pattern repeated on each DQ bit) Each DQ bit always has same data value except when early shifting in PRBS mode is requested -
-reg_phy_invert_clkout - -7:7 - -80 - -1 - -80 - -Inverts the polarity of DRAM clock. 0: core clock is passed on to DRAM 1: inverted core clock is passed on to DRAM. Use this when CLK can arrive at a DRAM device ahead of DQS or coincidence with DQS based on boad topology. This effectively delays the CLK to the DRAM device by half -cycle, providing a CLK edge that DQS can align to during leveling. -
-reg_phy_all_dq_mpr_rd_resp - -8:8 - -100 - -0 - -0 - -1=assume DRAM provides read response on all DQ bits. (In this mode, dq_in[7:0] are OR'd together and dq_in[15:8] are AND'd together.) 0=(default) best for DRAM read responses on only 1 DQ bit; works with reduced accuracy if DRAM provides read response on all bits. (In this mode dq_in[7:0] are OR'd together and dq_in[15:8] are OR'd together.) -
-reg_phy_sel_logic - -9:9 - -200 - -0 - -0 - -Selects one of the two read leveling algorithms.'b0 = Select algorithm # 1'b1 = Select algorithm # 2 Please refer to Read Data Eye Training section in PHY User Guide for details about the Read Leveling algorithms -
-reg_phy_ctrl_slave_ratio - -19:10 - -ffc00 - -100 - -40000 - -Ratio value for address/command launch timing in phy_ctrl macro. This is the fraction of a clock cycle represented by the shift to be applied to the read DQS in units of 256ths. In other words, the full cycle tap value from the master DLL will be scaled by this number over 256 to get the delay value for the slave delay line. -
-reg_phy_ctrl_slave_force - -20:20 - -100000 - -0 - -0 - -1: overwrite the delay/tap value for address/command timing slave DLL with the value of the reg_phy_rd_dqs_slave_delay bus. -
-reg_phy_ctrl_slave_delay - -27:21 - -fe00000 - -0 - -0 - -If reg_phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value. This is a bit value, the remaining 2 bits are in register 0x65 bits[19:18]. -
-reg_phy_use_rank0_delays - -28:28 - -10000000 - -1 - -10000000 - -Delay selection 1- Rank 0 delays are used for all ranks 0- Each Rank uses its own delay -
-reg_phy_lpddr - -29:29 - -20000000 - -0 - -0 - -1= mobile/LPDDR DRAM device in use. 0=non-LPDDR DRAM device in use. -
-reg_phy_cmd_latency - -30:30 - -40000000 - -0 - -0 - -If set to 1, command comes to phy_ctrl through a flop. -
-reg_phy_int_lpbk - -31:31 - -80000000 - -0 - -0 - -1=enables the PHY internal loopback for DQ,DQS,DM before Ios. By default must be 0. -
-reg_64@0XF8006190 - -31:0 - -ffffffff - - - -10040080 - -Training control register (2) -
-

-

Register ( slcr )reg_65

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-reg_65 - -0XF8006194 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_phy_wr_rl_delay - -4:0 - -1f - -2 - -2 - -This delay determines when to select the active rank's ratio logic delay for Write Data and Write DQS slave delay lines after PHY receives a write command at Control Interface. The programmed value must be (Write Latency - 4) with a minimum value of 1. -
-reg_phy_rd_rl_delay - -9:5 - -3e0 - -4 - -80 - -This delay determines when to select the active rank's ratio logic delay for Read Data and Read DQS slave delay lines after PHY receives a read command at Control Interface. The programmed value must be (Read Latency - 3) with a minimum value of 1. -
-reg_phy_dll_lock_diff - -13:10 - -3c00 - -f - -3c00 - -The Maximum number of delay line taps variation allowed while maintaining the master DLL lock. When the PHY is in locked state and the variation on the clock exceeds the variation indicated by the register, the lock signal is deasserted -
-reg_phy_use_wr_level - -14:14 - -4000 - -1 - -4000 - -Write Leveling training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by write leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_dqs_gate_level - -15:15 - -8000 - -1 - -8000 - -Read DQS Gate training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by DQS gate leveling Note: This is a Synchronous dynamic signal that requires timing closure. -
-reg_phy_use_rd_data_eye_level - -16:16 - -10000 - -1 - -10000 - -Read Data Eye training control. 0: Use register programmed ratio values 1: Use ratio for delay line calculated by data eye leveling Note: This is a Synchronous dynamic signal that requires timing closure -
-reg_phy_dis_calib_rst - -17:17 - -20000 - -0 - -0 - -Disable the dll_calib (internally generated) signal from resetting the Read Capture FIFO pointers and portions of phy_data. Note: dll_calib is (i) generated by dfi_ctrl_upd_req or (ii) by the PHY when it detects that the clock frequency variation has exceeded the bounds set by reg_phy_dll_lock_diff or (iii) periodically throughout the leveling process. dll_calib will update the slave DL with PVT-compensated values according to master DLL outputs -
-reg_phy_ctrl_slave_delay - -19:18 - -c0000 - -0 - -0 - -If reg-phy_rd_dqs_slave_force is 1, replace delay/tap value for address/command timing slave DLL with this value -
-reg_65@0XF8006194 - -31:0 - -fffff - - - -1fc82 - -Training control register (3) -
-

-

Register ( slcr )page_mask

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-page_mask - -0XF8006204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_page_addr_mask - -31:0 - -ffffffff - -0 - -0 - -This register must be set based on the value programmed on the reg_ddrc_addrmap_* registers. Set the Column address bits to 0. Set the Page and Bank address bits to 1. This is used for calculating page_match inside the slave modules in Arbiter. The page_match is considered during the arbitration process. This mask applies to 64-bit address and not byte address. Setting this value to 0 disables transaction prioritization based on page/bank match. -
-page_mask@0XF8006204 - -31:0 - -ffffffff - - - -0 - -Page mask register -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port@0XF8006208 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF800620C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port@0XF800620C - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006210 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port@0XF8006210 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_wr_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_wr_port - -0XF8006214 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_wr_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Write Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_wr_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Write Port. -
-reg_arb_disable_urgent_wr_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Write Port. -
-reg_arb_dis_page_match_wr_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_dis_rmw_portn - -19:19 - -80000 - -1 - -80000 - -FEATURE NOT SUPPORTED. Only 16-bit data aligned transfers allowed when ECC is used. All commands issued as Writes. No RMW support. Disable RMW command generated for this Port 1 - Disable RMW feature 0 - Enable RMW feature When Enabled and ECC mode is set all Write command generated by this port will be RMW. -
-axi_priority_wr_port@0XF8006214 - -31:0 - -f03ff - - - -803ff - -AXI Priority control for write port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006218 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006218 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF800621C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF800621C - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006220 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006220 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )axi_priority_rd_port

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-axi_priority_rd_port - -0XF8006224 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_arb_pri_rd_portn - -9:0 - -3ff - -3ff - -3ff - -Priority of this Read Port n. Value in this register used to load the aging counters (when respective port request is asserted and grant is generated to that port). These register can be reprogrammed to set priority of each port. Lower the value more will be priority given to the port. For example if 0x82 (port 0) value is set to 'h3FF, and 0x83 (port 1) is set to 'h0FF, and both port0 and port1 have requests, in this case port1 will get high priority and grant will be given to port1. -
-reg_arb_disable_aging_rd_portn - -16:16 - -10000 - -0 - -0 - -Disable aging for this Read Port. -
-reg_arb_disable_urgent_rd_portn - -17:17 - -20000 - -0 - -0 - -Disable urgent for this Read Port. -
-reg_arb_dis_page_match_rd_portn - -18:18 - -40000 - -0 - -0 - -Disable the page match feature. -
-reg_arb_set_hpr_rd_portn - -19:19 - -80000 - -0 - -0 - -Enable reads to be generated as HPR for this Read Port. -
-axi_priority_rd_port@0XF8006224 - -31:0 - -f03ff - - - -3ff - -AXI Priority control for read port 0. -
-

-

Register ( slcr )lpddr_ctrl0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl0 - -0XF80062A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_lpddr2 - -0:0 - -1 - -0 - -0 - -1=LPDDR2 DRAM device in Use. 0=non-LPDDR2 device in use Present only in designs configured to support LPDDR2. -
-reg_ddrc_per_bank_refresh - -1:1 - -2 - -0 - -0 - -1:Per bank refresh 0:All bank refresh Per bank refresh allows traffic to flow to other banks. Per bank refresh is not supported on all LPDDR2 devices. Present only in designs configured to support LPDDR2. -
-reg_ddrc_derate_enable - -2:2 - -4 - -0 - -0 - -0: Timing parameter derating is disabled. 1: Timing parameter derating is enabled using MR4 read value. Present only in designs configured to support LPDDR2. -
-reg_ddrc_mr4_margin - -11:4 - -ff0 - -0 - -0 - -UNUSED -
-lpddr_ctrl0@0XF80062A8 - -31:0 - -ff7 - - - -0 - -LPDDR2 Control 0 Register -
-

-

Register ( slcr )lpddr_ctrl1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl1 - -0XF80062AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_mr4_read_interval - -31:0 - -ffffffff - -0 - -0 - -Interval between two MR4 reads, USED to derate the timing parameters. Present only in designs configured to support LPDDR2. -
-lpddr_ctrl1@0XF80062AC - -31:0 - -ffffffff - - - -0 - -LPDDR2 Control 1 Register -
-

-

Register ( slcr )lpddr_ctrl2

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl2 - -0XF80062B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_min_stable_clock_x1 - -3:0 - -f - -5 - -5 - -Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2. Units: 1 clock cycle. LPDDR2 typically requires 5 x tCK delay. -
-reg_ddrc_idle_after_reset_x32 - -11:4 - -ff0 - -12 - -120 - -Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. -
-reg_ddrc_t_mrw - -21:12 - -3ff000 - -5 - -5000 - -Time to wait during load mode register writes. Present only in designs configured to support LPDDR2. LPDDR2 typically requires value of 5. -
-lpddr_ctrl2@0XF80062B0 - -31:0 - -3fffff - - - -5125 - -LPDDR2 Control 2 Register -
-

-

Register ( slcr )lpddr_ctrl3

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-lpddr_ctrl3 - -0XF80062B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_max_auto_init_x1024 - -7:0 - -ff - -a8 - -a8 - -Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2. Units: 1024 clock cycles. LPDDR2 typically requires 10 us. -
-reg_ddrc_dev_zqinit_x32 - -17:8 - -3ff00 - -12 - -1200 - -ZQ initial calibration, tZQINIT. Present only in designs configured to support LPDDR2. Units: 32 clock cycles. LPDDR2 typically requires 1 us. -
-lpddr_ctrl3@0XF80062B4 - -31:0 - -3ffff - - - -12a8 - -LPDDR2 Control 3 Register -
-

-

POLL ON DCI STATUS

-

Register ( slcr )DDRIOB_DCI_STATUS

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_STATUS - -0XF8000B74 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DONE - -13:13 - -2000 - -1 - -2000 - -DCI done signal -
-DDRIOB_DCI_STATUS@0XF8000B74 - -31:0 - -2000 - - - -2000 - -tobe -
-

-

UNLOCK DDR

-

Register ( slcr )ddrc_ctrl

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-ddrc_ctrl - -0XF8006000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reg_ddrc_soft_rstb - -0:0 - -1 - -1 - -1 - -Active low soft reset. 0 = Resets the controller 1 = Takes the controller out of reset Note: Controller must be taken out of reset only after all other registers have been programmed. -
-reg_ddrc_powerdown_en - -1:1 - -2 - -0 - -0 - -Controller power down control. 0 = DDRC powerdown disabled 1 = the controller goes into power down after a programmable number of cycles 'Maximum idle clocks before power down' (reg_ddrc_powerdown_to_x32). Note: This register bit may be reprogrammed during the course of normal operation. -
-reg_ddrc_data_bus_width - -3:2 - -c - -0 - -0 - -DDR bus width control 00 = 32 bit DDR bus 01 = 16 bit DDR bus 1x = reserved -
-reg_ddrc_burst8_refresh - -6:4 - -70 - -0 - -0 - -Refresh timeout register. Programmed value plus one will be the number of refresh timeouts that will be allowed to accumulate before traffic is blocked and the refreshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of refreshes; therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for burst_of_N_refresh slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshes. 0 = single refresh 1 = burst-of-2 . 7 = burst-of-8 refresh -
-reg_ddrc_rdwr_idle_gap - -13:7 - -3f80 - -1 - -80 - -When the preferred transaction store is empty for this many clock cycles, switch to the alternate transaction store if it is non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write transaction store is the alternate store. When 'Prefer write over read' is set this is reversed. -
-reg_ddrc_dis_rd_bypass - -14:14 - -4000 - -0 - -0 - -Only present in designs supporting read bypass. For Debug only. 0 = Do not disable bypass path for high priority read page hits. 1 = disable bypass path for high priority read page hits. -
-reg_ddrc_dis_act_bypass - -15:15 - -8000 - -0 - -0 - -Only present in designs supporting activate bypass. For Debug only. 0 = Do not disable bypass path for high priority read activates. 1 = disable bypass path for high priority read activates. -
-reg_ddrc_dis_auto_refresh - -16:16 - -10000 - -0 - -0 - -Disable auto-refresh. 0 = do not disable auto-refresh generated by the controller. This input is changeable on the fly. 1 = disable auto-refresh generated by the controller. This input is changeable on the fly. Note: When this transitions from 0 to 1, any pending refreshes will be immediately scheduled by the controller. -
-ddrc_ctrl@0XF8006000 - -31:0 - -1ffff - - - -81 - -DDRC Control Register -
-

-

CHECK DDR STATUS

-

Register ( slcr )mode_sts_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_sts_reg - -0XF8006054 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-ddrc_reg_operating_mode - -2:0 - -7 - -1 - -1 - -Gives the status of the controller. 0 = DDRC Init 1 = Normal operation 2 = Power-down mode 3 = Self-refresh mode 4 and above = deep power down mode (LPDDR2 only) -
-mode_sts_reg@0XF8006054 - -31:0 - -7 - - - -1 - -tobe -
-

- -

-

ps7_mio_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -GPIOB_CTRL - - -0XF8000B00 - -32 - -RW - -0x000000 - -GPIOB control -
- -DDRIOB_ADDR0 - - -0XF8000B40 - -32 - -RW - -0x000000 - -DDRIOB Address 0 Configuartion Register -
- -DDRIOB_ADDR1 - - -0XF8000B44 - -32 - -RW - -0x000000 - -DDRIOB Address 1 Configuration Register -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDRIOB Data 0 Configuration Register -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDRIOB Data 1 Configuration Register -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDRIOB Differential DQS 0 Configuration Register -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDRIOB Differential DQS 1 Configuration Register -
- -DDRIOB_CLOCK - - -0XF8000B58 - -32 - -RW - -0x000000 - -DDRIOB Differential Clock Configuration Register -
- -DDRIOB_DRIVE_SLEW_ADDR - - -0XF8000B5C - -32 - -RW - -0x000000 - -DDRIOB Drive Slew Address Register -
- -DDRIOB_DRIVE_SLEW_DATA - - -0XF8000B60 - -32 - -RW - -0x000000 - -DDRIOB Drive Slew Data Register -
- -DDRIOB_DRIVE_SLEW_DIFF - - -0XF8000B64 - -32 - -RW - -0x000000 - -DDRIOB Drive Slew Differential Strobe Register -
- -DDRIOB_DRIVE_SLEW_CLOCK - - -0XF8000B68 - -32 - -RW - -0x000000 - -DDRIOB Drive Slew Clcok Register -
- -DDRIOB_DDR_CTRL - - -0XF8000B6C - -32 - -RW - -0x000000 - -DDRIOB DDR Control Register -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -DDRIOB_DCI_CTRL - - -0XF8000B70 - -32 - -RW - -0x000000 - -DDRIOB DCI configuration -
- -MIO_PIN_00 - - -0XF8000700 - -32 - -RW - -0x000000 - -MIO Control for Pin 0 -
- -MIO_PIN_01 - - -0XF8000704 - -32 - -RW - -0x000000 - -MIO Control for Pin 1 -
- -MIO_PIN_02 - - -0XF8000708 - -32 - -RW - -0x000000 - -MIO Control for Pin 2 -
- -MIO_PIN_03 - - -0XF800070C - -32 - -RW - -0x000000 - -MIO Control for Pin 3 -
- -MIO_PIN_04 - - -0XF8000710 - -32 - -RW - -0x000000 - -MIO Control for Pin 4 -
- -MIO_PIN_05 - - -0XF8000714 - -32 - -RW - -0x000000 - -MIO Control for Pin 5 -
- -MIO_PIN_06 - - -0XF8000718 - -32 - -RW - -0x000000 - -MIO Control for Pin 6 -
- -MIO_PIN_07 - - -0XF800071C - -32 - -RW - -0x000000 - -MIO Control for Pin 7 -
- -MIO_PIN_08 - - -0XF8000720 - -32 - -RW - -0x000000 - -MIO Control for Pin 8 -
- -MIO_PIN_09 - - -0XF8000724 - -32 - -RW - -0x000000 - -MIO Control for Pin 9 -
- -MIO_PIN_10 - - -0XF8000728 - -32 - -RW - -0x000000 - -MIO Control for Pin 10 -
- -MIO_PIN_11 - - -0XF800072C - -32 - -RW - -0x000000 - -MIO Control for Pin 11 -
- -MIO_PIN_12 - - -0XF8000730 - -32 - -RW - -0x000000 - -MIO Control for Pin 12 -
- -MIO_PIN_13 - - -0XF8000734 - -32 - -RW - -0x000000 - -MIO Control for Pin 13 -
- -MIO_PIN_14 - - -0XF8000738 - -32 - -RW - -0x000000 - -MIO Control for Pin 14 -
- -MIO_PIN_15 - - -0XF800073C - -32 - -RW - -0x000000 - -MIO Control for Pin 15 -
- -MIO_PIN_16 - - -0XF8000740 - -32 - -RW - -0x000000 - -MIO Control for Pin 16 -
- -MIO_PIN_17 - - -0XF8000744 - -32 - -RW - -0x000000 - -MIO Control for Pin 17 -
- -MIO_PIN_18 - - -0XF8000748 - -32 - -RW - -0x000000 - -MIO Control for Pin 18 -
- -MIO_PIN_19 - - -0XF800074C - -32 - -RW - -0x000000 - -MIO Control for Pin 19 -
- -MIO_PIN_20 - - -0XF8000750 - -32 - -RW - -0x000000 - -MIO Control for Pin 20 -
- -MIO_PIN_21 - - -0XF8000754 - -32 - -RW - -0x000000 - -MIO Control for Pin 21 -
- -MIO_PIN_22 - - -0XF8000758 - -32 - -RW - -0x000000 - -MIO Control for Pin 22 -
- -MIO_PIN_23 - - -0XF800075C - -32 - -RW - -0x000000 - -MIO Control for Pin 23 -
- -MIO_PIN_24 - - -0XF8000760 - -32 - -RW - -0x000000 - -MIO Control for Pin 24 -
- -MIO_PIN_25 - - -0XF8000764 - -32 - -RW - -0x000000 - -MIO Control for Pin 25 -
- -MIO_PIN_26 - - -0XF8000768 - -32 - -RW - -0x000000 - -MIO Control for Pin 26 -
- -MIO_PIN_27 - - -0XF800076C - -32 - -RW - -0x000000 - -MIO Control for Pin 27 -
- -MIO_PIN_28 - - -0XF8000770 - -32 - -RW - -0x000000 - -MIO Control for Pin 28 -
- -MIO_PIN_29 - - -0XF8000774 - -32 - -RW - -0x000000 - -MIO Control for Pin 29 -
- -MIO_PIN_30 - - -0XF8000778 - -32 - -RW - -0x000000 - -MIO Control for Pin 30 -
- -MIO_PIN_31 - - -0XF800077C - -32 - -RW - -0x000000 - -MIO Control for Pin 31 -
- -MIO_PIN_32 - - -0XF8000780 - -32 - -RW - -0x000000 - -MIO Control for Pin 32 -
- -MIO_PIN_33 - - -0XF8000784 - -32 - -RW - -0x000000 - -MIO Control for Pin 33 -
- -MIO_PIN_34 - - -0XF8000788 - -32 - -RW - -0x000000 - -MIO Control for Pin 34 -
- -MIO_PIN_35 - - -0XF800078C - -32 - -RW - -0x000000 - -MIO Control for Pin 35 -
- -MIO_PIN_36 - - -0XF8000790 - -32 - -RW - -0x000000 - -MIO Control for Pin 36 -
- -MIO_PIN_37 - - -0XF8000794 - -32 - -RW - -0x000000 - -MIO Control for Pin 37 -
- -MIO_PIN_38 - - -0XF8000798 - -32 - -RW - -0x000000 - -MIO Control for Pin 38 -
- -MIO_PIN_39 - - -0XF800079C - -32 - -RW - -0x000000 - -MIO Control for Pin 39 -
- -MIO_PIN_40 - - -0XF80007A0 - -32 - -RW - -0x000000 - -MIO Control for Pin 40 -
- -MIO_PIN_41 - - -0XF80007A4 - -32 - -RW - -0x000000 - -MIO Control for Pin 41 -
- -MIO_PIN_42 - - -0XF80007A8 - -32 - -RW - -0x000000 - -MIO Control for Pin 42 -
- -MIO_PIN_43 - - -0XF80007AC - -32 - -RW - -0x000000 - -MIO Control for Pin 43 -
- -MIO_PIN_44 - - -0XF80007B0 - -32 - -RW - -0x000000 - -MIO Control for Pin 44 -
- -MIO_PIN_45 - - -0XF80007B4 - -32 - -RW - -0x000000 - -MIO Control for Pin 45 -
- -MIO_PIN_46 - - -0XF80007B8 - -32 - -RW - -0x000000 - -MIO Control for Pin 46 -
- -MIO_PIN_47 - - -0XF80007BC - -32 - -RW - -0x000000 - -MIO Control for Pin 47 -
- -MIO_PIN_48 - - -0XF80007C0 - -32 - -RW - -0x000000 - -MIO Control for Pin 48 -
- -MIO_PIN_49 - - -0XF80007C4 - -32 - -RW - -0x000000 - -MIO Control for Pin 49 -
- -MIO_PIN_50 - - -0XF80007C8 - -32 - -RW - -0x000000 - -MIO Control for Pin 50 -
- -MIO_PIN_51 - - -0XF80007CC - -32 - -RW - -0x000000 - -MIO Control for Pin 51 -
- -MIO_PIN_52 - - -0XF80007D0 - -32 - -RW - -0x000000 - -MIO Control for Pin 52 -
- -MIO_PIN_53 - - -0XF80007D4 - -32 - -RW - -0x000000 - -MIO Control for Pin 53 -
- -SD0_WP_CD_SEL - - -0XF8000830 - -32 - -RW - -0x000000 - -SDIO 0 WP CD select register -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_mio_init_data_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

OCM REMAPPING

-

Register ( slcr )GPIOB_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-GPIOB_CTRL - -0XF8000B00 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_PULLUP_EN - -1:1 - -2 - -0 - -0 - -Enables internal pullup. 0 - no pullup. 1 - pullup. -
-CLK_PULLUP_EN - -8:8 - -100 - -0 - -0 - -Enables internal pullup. 0 - no pullup. 1 - pullup. -
-SRSTN_PULLUP_EN - -9:9 - -200 - -0 - -0 - -Enables internal pullup. 0 - no pullup. 1 - pullup. -
-GPIOB_CTRL@0XF8000B00 - -31:0 - -303 - - - -1 - -GPIOB control -
-

-

DDRIOB SETTINGS

-

Register ( slcr )DDRIOB_ADDR0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR0 - -0XF8000B40 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_ADDR0@0XF8000B40 - -31:0 - -fff - - - -600 - -DDRIOB Address 0 Configuartion Register -
-

-

Register ( slcr )DDRIOB_ADDR1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_ADDR1 - -0XF8000B44 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_ADDR1@0XF8000B44 - -31:0 - -fff - - - -600 - -DDRIOB Address 1 Configuration Register -
-

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -fff - - - -672 - -DDRIOB Data 0 Configuration Register -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -1 - -2 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -fff - - - -672 - -DDRIOB Data 1 Configuration Register -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -fff - - - -674 - -DDRIOB Differential DQS 0 Configuration Register -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -2 - -4 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -1 - -10 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -3 - -60 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -fff - - - -674 - -DDRIOB Differential DQS 1 Configuration Register -
-

-

Register ( slcr )DDRIOB_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_CLOCK - -0XF8000B58 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-INP_POWER - -0:0 - -1 - -0 - -0 - -Specifies DDR IOB input amp power mode. 0- low power mode. 1- high performance mode. -
-INP_TYPE - -2:1 - -6 - -0 - -0 - -Input buffer controls. 00 - Input off, reads 0. 01 - Vref based differential reciever for SSTL, HSTL. 10 - Differential input reciever. 11- LVCMOS reviever. -
-DCI_UPDATE - -3:3 - -8 - -0 - -0 - -DCI Update Enabled 0 - disabled 1 - enabled -
-TERM_EN - -4:4 - -10 - -0 - -0 - -Tri State Termination Enabled 0 - disabled 1 - enabled -
-DCR_TYPE - -6:5 - -60 - -0 - -0 - -DCI Update 00 - DCI Disabled 01 - DCI Drive (HSTL12_DCI) 10 - Reserved 11 - DCI Termination (SSTL15_T_DCI) -
-IBUF_DISABLE_MODE - -7:7 - -80 - -0 - -0 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -0 - -0 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-OUTPUT_EN - -10:9 - -600 - -3 - -600 - -Enables output mode to enable output ties to 00 - ibuf 01 - reserved 10 - reserved 11 - obuf -
-PULLUP_EN - -11:11 - -800 - -0 - -0 - -enables pullup on output 0 - no pullup 1 - pullup enabled -
-DDRIOB_CLOCK@0XF8000B58 - -31:0 - -fff - - - -600 - -DDRIOB Differential Clock Configuration Register -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_ADDR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_ADDR - -0XF8000B5C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -Programs the DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -Programs the DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -3 - -c000 - -Programs the DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -3 - -180000 - -Programs the DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000 - Normal Operation 001 : 111 - Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_ADDR@0XF8000B5C - -31:0 - -ffffffff - - - -18c61c - -DDRIOB Drive Slew Address Register -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DATA

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DATA - -0XF8000B60 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -Programs the DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -Programs the DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Programs the DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Programs the DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000 - Normal Operation 001 : 111 - Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_DATA@0XF8000B60 - -31:0 - -ffffffff - - - -f9861c - -DDRIOB Drive Slew Data Register -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_DIFF

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_DIFF - -0XF8000B64 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -Programs the DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -Programs the DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Programs the DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Programs the DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000 - Normal Operation 001 : 111 - Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_DIFF@0XF8000B64 - -31:0 - -ffffffff - - - -f9861c - -DDRIOB Drive Slew Differential Strobe Register -
-

-

Register ( slcr )DDRIOB_DRIVE_SLEW_CLOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DRIVE_SLEW_CLOCK - -0XF8000B68 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DRIVE_P - -6:0 - -7f - -1c - -1c - -Programs the DDRIO drive strength for the P devices -
-DRIVE_N - -13:7 - -3f80 - -c - -600 - -Programs the DDRIO drive strength for the N devices -
-SLEW_P - -18:14 - -7c000 - -6 - -18000 - -Programs the DDRIO slew rate for the P devices -
-SLEW_N - -23:19 - -f80000 - -1f - -f80000 - -Programs the DDRIO slew rate for the N devices -
-GTL - -26:24 - -7000000 - -0 - -0 - -Test Control 000 - Normal Operation 001 : 111 - Test Mode -
-RTERM - -31:27 - -f8000000 - -0 - -0 - -Program the rterm -
-DDRIOB_DRIVE_SLEW_CLOCK@0XF8000B68 - -31:0 - -ffffffff - - - -f9861c - -DDRIOB Drive Slew Clcok Register -
-

-

Register ( slcr )DDRIOB_DDR_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DDR_CTRL - -0XF8000B6C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-VREF_INT_EN - -0:0 - -1 - -1 - -1 - -Enables VREF internal generator -
-VREF_SEL - -4:1 - -1e - -4 - -8 - -Specifies DDR IOB Vref generator output 0001 - VREF = 0.6V for LPDDR2 with 1.2V IO 0010 - VREF = 0.675V for LPDDR3 1.35 V IO 0100 - VREF = 0.75V for DDR3 with 1.5V IO 1000 - VREF = 0.90V for DDR2 with 1.8V IO -
-VREF_EXT_EN - -6:5 - -60 - -0 - -0 - -Enables External VREF input X0 - Disable External VREF for lower 16 bits X1 - Enable External VREF for lower 16 bits 0X - Disable External VREF for upper 16 bits 1X - Enable External VREF for upper 16 bits -
-VREF_PULLUP_EN - -8:7 - -180 - -0 - -0 - -Enables VREF pull-up resistors X0 - Disable VREF pull-up for lower 16 bits X1 - Enable VREF pull-up for lower 16 bits 0X - Disable VREF pull-up for upper 16 bits 1X - Enable VREF pull-up for upper 16 bits -
-REFIO_EN - -9:9 - -200 - -1 - -200 - -Enables VRP,VRN 0 - VRP/VRN not used 1 - VRP/VRN used as refio -
-REFIO_PULLUP_EN - -12:12 - -1000 - -0 - -0 - -Enables VRP,VRN pull-up resistors 0 -no pull-up 1 - enable pull-up resistors -
-DRST_B_PULLUP_EN - -13:13 - -2000 - -0 - -0 - -Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors -
-CKE_PULLUP_EN - -14:14 - -4000 - -0 - -0 - -Enables pull-up resistors 0 -no pull-up 1 - enable pull-up resistors -
-DDRIOB_DDR_CTRL@0XF8000B6C - -31:0 - -73ff - - - -209 - -DDRIOB DDR Control Register -
-

-

ASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialise flops in DCI system -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -21 - -DDRIOB DCI configuration -
-

-

DEASSERT RESET

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -0 - -0 - -At least toggle once to initialise flops in DCI system -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -21 - - - -20 - -DDRIOB DCI configuration -
-

-

Register ( slcr )DDRIOB_DCI_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DCI_CTRL - -0XF8000B70 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-RESET - -0:0 - -1 - -1 - -1 - -At least toggle once to initialise flops in DCI system -
-ENABLE - -1:1 - -2 - -1 - -2 - -1 if any iob's use a terminate type, or if dci test block used -
-VRP_TRI - -2:2 - -4 - -0 - -0 - -VRP tristate value -
-VRN_TRI - -3:3 - -8 - -0 - -0 - -VRN tristate value -
-VRP_OUT - -4:4 - -10 - -0 - -0 - -VRP output value -
-VRN_OUT - -5:5 - -20 - -1 - -20 - -VRN output value -
-NREF_OPT1 - -7:6 - -c0 - -0 - -0 - -Reserved -
-NREF_OPT2 - -10:8 - -700 - -0 - -0 - -Reserved -
-NREF_OPT4 - -13:11 - -3800 - -1 - -800 - -Reserved -
-PREF_OPT1 - -16:14 - -1c000 - -0 - -0 - -Reserved -
-PREF_OPT2 - -19:17 - -e0000 - -0 - -0 - -Reserved -
-UPDATE_CONTROL - -20:20 - -100000 - -0 - -0 - -DCI Update -
-INIT_COMPLETE - -21:21 - -200000 - -0 - -0 - -test Internal to IO bank -
-TST_CLK - -22:22 - -400000 - -0 - -0 - -Emulate DCI clock -
-TST_HLN - -23:23 - -800000 - -0 - -0 - -Emulate comparator output (VRN) -
-TST_HLP - -24:24 - -1000000 - -0 - -0 - -Emulate comparator output (VRP) -
-TST_RST - -25:25 - -2000000 - -0 - -0 - -Emulate Reset -
-INT_DCI_EN - -26:26 - -4000000 - -0 - -0 - -Need explanation here -
-DDRIOB_DCI_CTRL@0XF8000B70 - -31:0 - -7ffffff - - - -823 - -DDRIOB DCI configuration -
-

-

MIO PROGRAMMING

-

Register ( slcr )MIO_PIN_00

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_00 - -0XF8000700 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_00@0XF8000700 - -31:0 - -3f01 - - - -1301 - -MIO Control for Pin 0 -
-

-

Register ( slcr )MIO_PIN_01

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_01 - -0XF8000704 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi_sel, Output, qspi_n_ss_out- (QSPI Select) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= smc_a25, Output, smc_sram_add[25]- (SRAM Address) 2= smc_cs1, Output, smc_sram_cs_n[1]- (SRAM CS1) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_01@0XF8000704 - -31:0 - -3fff - - - -1302 - -MIO Control for Pin 1 -
-

-

Register ( slcr )MIO_PIN_02

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_02 - -0XF8000708 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[8]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_clk- (SRAM Clock) 2= nand, Output, smc_nand_ale- (NAND Address Latch Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[0] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_02@0XF8000708 - -31:0 - -3fff - - - -302 - -MIO Control for Pin 2 -
-

-

Register ( slcr )MIO_PIN_03

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_03 - -0XF800070C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[9]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[0]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[0]- (SRAM Data) 2= nand, Output, smc_nand_we_b- (NAND Write Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[1] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_03@0XF800070C - -31:0 - -3fff - - - -302 - -MIO Control for Pin 3 -
-

-

Register ( slcr )MIO_PIN_04

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_04 - -0XF8000710 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[10]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[1]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[1]- (SRAM Data) 2= nand, Input, smc_nand_data_in[2]- (NAND Data Bus) = nand, Output, smc_nand_data_out[2]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[2] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_04@0XF8000710 - -31:0 - -3fff - - - -302 - -MIO Control for Pin 4 -
-

-

Register ( slcr )MIO_PIN_05

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_05 - -0XF8000714 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[11]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[2]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[2]- (SRAM Data) 2= nand, Input, smc_nand_data_in[0]- (NAND Data Bus) = nand, Output, smc_nand_data_out[0]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[3] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_05@0XF8000714 - -31:0 - -3fff - - - -302 - -MIO Control for Pin 5 -
-

-

Register ( slcr )MIO_PIN_06

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_06 - -0XF8000718 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[12]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[3]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[3]- (SRAM Data) 2= nand, Input, smc_nand_data_in[1]- (NAND Data Bus) = nand, Output, smc_nand_data_out[1]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for mode[4] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_06@0XF8000718 - -31:0 - -3fff - - - -302 - -MIO Control for Pin 6 -
-

-

Register ( slcr )MIO_PIN_07

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_07 - -0XF800071C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[13]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_oe_b- (SRAM Output enable) 2= nand, Output, smc_nand_cle- (NAND Command Latch Enable) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= Not Used 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= Not Used -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[0] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_07@0XF800071C - -31:0 - -3fff - - - -200 - -MIO Control for Pin 7 -
-

-

Register ( slcr )MIO_PIN_08

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_08 - -0XF8000720 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[14]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_we_b- (SRAM Write enable) 2= nand, Output, smc_nand_re_b- (NAND Read Enable) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -0 - -0 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled Pull-up disabled by default as this pin is used for vcfg[1] -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_08@0XF8000720 - -31:0 - -3fff - - - -202 - -MIO Control for Pin 8 -
-

-

Register ( slcr )MIO_PIN_09

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_09 - -0XF8000724 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[15]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[6]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[6]- (SRAM Data) 2= nand, Input, smc_nand_data_in[4]- (NAND Data Bus) = nand, Output, smc_nand_data_out[4]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= Not Used 3= Not Used 4= Not Used 5= Not Used 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_09@0XF8000724 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 9 -
-

-

Register ( slcr )MIO_PIN_10

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_10 - -0XF8000728 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[7]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[7]- (SRAM Data) 2= nand, Input, smc_nand_data_in[5]- (NAND Data Bus) = nand, Output, smc_nand_data_out[5]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_10@0XF8000728 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 10 -
-

-

Register ( slcr )MIO_PIN_11

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_11 - -0XF800072C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[4]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[4]- (SRAM Data) 2= nand, Input, smc_nand_data_in[6]- (NAND Data Bus) = nand, Output, smc_nand_data_out[6]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_11@0XF800072C - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 11 -
-

-

Register ( slcr )MIO_PIN_12

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_12 - -0XF8000730 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_wait- (SRAM Wait State indicator) 2= nand, Input, smc_nand_data_in[7]- (NAND Data Bus) = nand, Output, smc_nand_data_out[7]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_12@0XF8000730 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 12 -
-

-

Register ( slcr )MIO_PIN_13

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_13 - -0XF8000734 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper Databus) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_data_in[5]- (SRAM Data) = sram_nor, Output, smc_sram_data_out[5]- (SRAM Data) 2= nand, Input, smc_nand_data_in[3]- (NAND Data Bus) = nand, Output, smc_nand_data_out[3]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_13@0XF8000734 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 13 -
-

-

Register ( slcr )MIO_PIN_14

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_14 - -0XF8000738 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Input, smc_sram_fbclk- (SRAM Feedback Clock) 2= nand, Input, smc_nand_busy- (NAND Busy) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_14@0XF8000738 - -31:0 - -3fff - - - -1200 - -MIO Control for Pin 14 -
-

-

Register ( slcr )MIO_PIN_15

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_15 - -0XF800073C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_15@0XF800073C - -31:0 - -3f01 - - - -1301 - -MIO Control for Pin 15 -
-

-

Register ( slcr )MIO_PIN_16

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_16 - -0XF8000740 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[4]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[1]- (SRAM Address) 2= nand, Input, smc_nand_data_in[8]- (NAND Data Bus) = nand, Output, smc_nand_data_out[8]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_16@0XF8000740 - -31:0 - -3fff - - - -3902 - -MIO Control for Pin 16 -
-

-

Register ( slcr )MIO_PIN_17

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_17 - -0XF8000744 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[5]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[2]- (SRAM Address) 2= nand, Input, smc_nand_data_in[9]- (NAND Data Bus) = nand, Output, smc_nand_data_out[9]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_17@0XF8000744 - -31:0 - -3fff - - - -3902 - -MIO Control for Pin 17 -
-

-

Register ( slcr )MIO_PIN_18

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_18 - -0XF8000748 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[6]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[3]- (SRAM Address) 2= nand, Input, smc_nand_data_in[10]- (NAND Data Bus) = nand, Output, smc_nand_data_out[10]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_18@0XF8000748 - -31:0 - -3fff - - - -3902 - -MIO Control for Pin 18 -
-

-

Register ( slcr )MIO_PIN_19

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_19 - -0XF800074C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[7]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[4]- (SRAM Address) 2= nand, Input, smc_nand_data_in[11]- (NAND Data Bus) = nand, Output, smc_nand_data_out[11]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_19@0XF800074C - -31:0 - -3fff - - - -3902 - -MIO Control for Pin 19 -
-

-

Register ( slcr )MIO_PIN_20

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_20 - -0XF8000750 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[5]- (SRAM Address) 2= nand, Input, smc_nand_data_in[12]- (NAND Data Bus) = nand, Output, smc_nand_data_out[12]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_20@0XF8000750 - -31:0 - -3fff - - - -3902 - -MIO Control for Pin 20 -
-

-

Register ( slcr )MIO_PIN_21

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_21 - -0XF8000754 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[6]- (SRAM Address) 2= nand, Input, smc_nand_data_in[13]- (NAND Data Bus) = nand, Output, smc_nand_data_out[13]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -1 - -2000 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_21@0XF8000754 - -31:0 - -3fff - - - -3902 - -MIO Control for Pin 21 -
-

-

Register ( slcr )MIO_PIN_22

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_22 - -0XF8000758 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[2]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[7]- (SRAM Address) 2= nand, Input, smc_nand_data_in[14]- (NAND Data Bus) = nand, Output, smc_nand_data_out[14]- (NAND Data Bus) 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_22@0XF8000758 - -31:0 - -3fff - - - -1903 - -MIO Control for Pin 22 -
-

-

Register ( slcr )MIO_PIN_23

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_23 - -0XF800075C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[3]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[8]- (SRAM Address) 2= nand, Input, smc_nand_data_in[15]- (NAND Data Bus) = nand, Output, smc_nand_data_out[15]- (NAND Data Bus) 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_23@0XF800075C - -31:0 - -3fff - - - -1903 - -MIO Control for Pin 23 -
-

-

Register ( slcr )MIO_PIN_24

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_24 - -0XF8000760 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, traceclk- (Trace Port Clock) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[9]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_24@0XF8000760 - -31:0 - -3fff - - - -1903 - -MIO Control for Pin 24 -
-

-

Register ( slcr )MIO_PIN_25

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_25 - -0XF8000764 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_ctl, Output, tracectl- (Trace Port Control Signal) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[10]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_25@0XF8000764 - -31:0 - -3fff - - - -1903 - -MIO Control for Pin 25 -
-

-

Register ( slcr )MIO_PIN_26

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_26 - -0XF8000768 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[0]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[11]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[26]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[26]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_26@0XF8000768 - -31:0 - -3fff - - - -1903 - -MIO Control for Pin 26 -
-

-

Register ( slcr )MIO_PIN_27

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_27 - -0XF800076C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -1 - -2 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= trace_data, Output, tracedq[1]- (Trace Port Databus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[12]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[27]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[27]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -4 - -800 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_27@0XF800076C - -31:0 - -3fff - - - -1903 - -MIO Control for Pin 27 -
-

-

Register ( slcr )MIO_PIN_28

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_28 - -0XF8000770 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[13]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[28]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[28]- (GPIO bank 0) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_28@0XF8000770 - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 28 -
-

-

Register ( slcr )MIO_PIN_29

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_29 - -0XF8000774 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[14]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[29]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[29]- (GPIO bank 0) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_29@0XF8000774 - -31:0 - -3fff - - - -1305 - -MIO Control for Pin 29 -
-

-

Register ( slcr )MIO_PIN_30

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_30 - -0XF8000778 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[15]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[30]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[30]- (GPIO bank 0) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_30@0XF8000778 - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 30 -
-

-

Register ( slcr )MIO_PIN_31

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_31 - -0XF800077C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[16]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[31]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[31]- (GPIO bank 0) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_31@0XF800077C - -31:0 - -3fff - - - -1305 - -MIO Control for Pin 31 -
-

-

Register ( slcr )MIO_PIN_32

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_32 - -0XF8000780 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[17]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_32@0XF8000780 - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 32 -
-

-

Register ( slcr )MIO_PIN_33

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_33 - -0XF8000784 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[18]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_33@0XF8000784 - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 33 -
-

-

Register ( slcr )MIO_PIN_34

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_34 - -0XF8000788 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[19]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_34@0XF8000788 - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 34 -
-

-

Register ( slcr )MIO_PIN_35

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_35 - -0XF800078C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[20]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_35@0XF800078C - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 35 -
-

-

Register ( slcr )MIO_PIN_36

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_36 - -0XF8000790 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_xcvr_clk_in- (ULPI clock) 1= usb0, Output, usb0_xcvr_clk_out- (ULPI clock) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[21]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_36@0XF8000790 - -31:0 - -3fff - - - -1305 - -MIO Control for Pin 36 -
-

-

Register ( slcr )MIO_PIN_37

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_37 - -0XF8000794 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[22]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_37@0XF8000794 - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 37 -
-

-

Register ( slcr )MIO_PIN_38

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_38 - -0XF8000798 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[23]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_38@0XF8000798 - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 38 -
-

-

Register ( slcr )MIO_PIN_39

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_39 - -0XF800079C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control ) -
-L1_SEL - -2:2 - -4 - -1 - -4 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= sram_nor, Output, smc_sram_add[24]- (SRAM Address) 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -0 - -0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_39@0XF800079C - -31:0 - -3fff - - - -1304 - -MIO Control for Pin 39 -
-

-

Register ( slcr )MIO_PIN_40

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_40 - -0XF80007A0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_clk_in- (SDSDIO clock) 4= sd0, Output, sd0_clk_out- (SDSDIO clock) 5= spi0, Input, spi0_sclk_in- (SPI Clock) 5= spi0, Output, spi0_sclk_out- (SPI Clock) 6= ttc1, Output, ttc1_wave_out- (TTC waveform clock) 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_40@0XF80007A0 - -31:0 - -3fff - - - -1380 - -MIO Control for Pin 40 -
-

-

Register ( slcr )MIO_PIN_41

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_41 - -0XF80007A4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_cmd_in- (Command Indicator) 4= sd0, Output, sd0_cmd_out- (Command Indicator) 5= spi0, Input, spi0_mi- (MISO signal) 5= spi0, Output, spi0_so- (MISO signal) 6= ttc1, Input, ttc1_clk_in- (TTC input clock) 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_41@0XF80007A4 - -31:0 - -3fff - - - -1380 - -MIO Control for Pin 41 -
-

-

Register ( slcr )MIO_PIN_42

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_42 - -0XF80007A8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[0]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[0]- (4-bit Data bus) 5= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 5= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 6= ttc0, Output, ttc0_wave_out- (TTC waveform clock) 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_42@0XF80007A8 - -31:0 - -3fff - - - -1380 - -MIO Control for Pin 42 -
-

-

Register ( slcr )MIO_PIN_43

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_43 - -0XF80007AC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[1]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[1]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 6= ttc0, Input, ttc0_clk_in- (TTC input clock) 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_43@0XF80007AC - -31:0 - -3fff - - - -1380 - -MIO Control for Pin 43 -
-

-

Register ( slcr )MIO_PIN_44

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_44 - -0XF80007B0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd0, Input, sd0_data_in[2]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[2]- (4-bit Data bus) 5= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_44@0XF80007B0 - -31:0 - -3fff - - - -1380 - -MIO Control for Pin 44 -
-

-

Register ( slcr )MIO_PIN_45

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_45 - -0XF80007B4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd0, Input, sd0_data_in[3]- (4-bit Data bus) 4= sd0, Output, sd0_data_out[3]- (4-bit Data bus) 5= spi0, Output, spi0_mo- (MOSI signal) 5= spi0, Input, spi0_si- (MOSI signal) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -1 - -100 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_45@0XF80007B4 - -31:0 - -3fff - - - -1380 - -MIO Control for Pin 45 -
-

-

Register ( slcr )MIO_PIN_46

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_46 - -0XF80007B8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_data_in[0]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[0]- (4-bit Data bus) 5= spi1, Output, spi1_mo- (MOSI signal) 5= spi1, Input, spi1_si- (MOSI signal) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_46@0XF80007B8 - -31:0 - -3fff - - - -1221 - -MIO Control for Pin 46 -
-

-

Register ( slcr )MIO_PIN_47

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_47 - -0XF80007BC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -1 - -20 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_cmd_in- (Command Indicator) 4= sd1, Output, sd1_cmd_out- (Command Indicator) 5= spi1, Input, spi1_mi- (MISO signal) 5= spi1, Output, spi1_so- (MISO signal) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_47@0XF80007BC - -31:0 - -3fff - - - -1220 - -MIO Control for Pin 47 -
-

-

Register ( slcr )MIO_PIN_48

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_48 - -0XF80007C0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_xcvr_clk_in- (ULPI Clock) 1= usb1, Output, usb1_xcvr_clk_out- (ULPI Clock) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= Not Used 4= sd1, Input, sd1_clk_in- (SDSDIO clock) 4= sd1, Output, sd1_clk_out- (SDSDIO clock) 5= spi1, Input, spi1_sclk_in- (SPI Clock) 5= spi1, Output, spi1_sclk_out- (SPI Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_48@0XF80007C0 - -31:0 - -3fff - - - -12e0 - -MIO Control for Pin 48 -
-

-

Register ( slcr )MIO_PIN_49

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_49 - -0XF80007C4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -1 - -1 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -7 - -e0 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= Not Used 4= sd1, Input, sd1_data_in[1]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[1]- (4-bit Data bus) 5= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 5= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_49@0XF80007C4 - -31:0 - -3fff - - - -12e1 - -MIO Control for Pin 49 -
-

-

Register ( slcr )MIO_PIN_50

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_50 - -0XF80007C8 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= sd1, Input, sd1_data_in[2]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[2]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 6= Not Used 7= ua0, Input, ua0_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_50@0XF80007C8 - -31:0 - -3fff - - - -1240 - -MIO Control for Pin 50 -
-

-

Register ( slcr )MIO_PIN_51

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_51 - -0XF80007CC - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data bus) -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -2 - -40 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= sd1, Input, sd1_data_in[3]- (4-bit Data bus) 4= sd1, Output, sd1_data_out[3]- (4-bit Data bus) 5= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 6= Not Used 7= ua0, Output, ua0_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_51@0XF80007CC - -31:0 - -3fff - - - -1240 - -MIO Control for Pin 51 -
-

-

Register ( slcr )MIO_PIN_52

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_52 - -0XF80007D0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio0_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signal) 3= wdt, Input, wdt_clk_in- (Watch Dog Timer Input clock) 4= mdio0, Output, gem0_mdc- (MDIO Clock) 5= mdio1, Output, gem1_mdc- (MDIO Clock) 6= Not Used 7= ua1, Output, ua1_txd- (UART transmitter serial output) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_52@0XF80007D0 - -31:0 - -3fff - - - -1280 - -MIO Control for Pin 52 -
-

-

Register ( slcr )MIO_PIN_53

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MIO_PIN_53 - -0XF80007D4 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-TRI_ENABLE - -0:0 - -1 - -0 - -0 - -Tri-state enable, active high. -
-L0_SEL - -1:1 - -2 - -0 - -0 - -Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used -
-L1_SEL - -2:2 - -4 - -0 - -0 - -Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used -
-L2_SEL - -4:3 - -18 - -0 - -0 - -Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= sdio_pow, Output, sdio1_bus_pow- (SD card bus power) -
-L3_SEL - -7:5 - -e0 - -4 - -80 - -Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal) 3= wdt, Output, wdt_rst_out- (Watch Dog Timer Output clock) 4= mdio0, Input, gem0_mdio_in- (MDIO Data) 4= mdio0, Output, gem0_mdio_out- (MDIO Data) 5= mdio1, Input, gem1_mdio_in- (MDIO Data) 5= mdio1, Output, gem1_mdio_out- (MDIO Data) 6= Not Used 7= ua1, Input, ua1_rxd- (UART receiver serial input) -
-Speed - -8:8 - -100 - -0 - -0 - -Selects the speed of the I/O when IO_Type=CMOS 0=Slow CMOS 1=Fast CMOS -
-IO_Type - -11:9 - -e00 - -1 - -200 - -Selects the IO Type 0= LVTTL 1= LVCMOS18 2= LVCMOS25 3= LVCMOS33 4= HSTL 5-7= LVCMOS33 -
-PULLUP - -12:12 - -1000 - -1 - -1000 - -Controls the use of a pull-up for the associated GPIOB 0= Pull-up disabled 1= Pull-up enabled -
-DisableRcvr - -13:13 - -2000 - -0 - -0 - -Enables the receiver. If the IO is an output only then the receiver can be disabled and save power Only used when IO_Type=HSTL 0= Receiver Enabled 1= Receiver disabled -
-MIO_PIN_53@0XF80007D4 - -31:0 - -3fff - - - -1280 - -MIO Control for Pin 53 -
-

-

Register ( slcr )SD0_WP_CD_SEL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SD0_WP_CD_SEL - -0XF8000830 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-SDIO0_WP_SEL - -5:0 - -3f - -f - -f - -SDIO0 WP Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source -
-SDIO0_CD_SEL - -21:16 - -3f0000 - -0 - -0 - -SDIO0 CD Select. 0-53 = Selects matching MIO input however bits 7/8 are not supported and should not be used as they will conflict with the VCFG inputs. 54-63 = Selects the FMIO source -
-SD0_WP_CD_SEL@0XF8000830 - -31:0 - -3f003f - - - -f - -SDIO 0 WP CD select register -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_peripherals_init_data_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -DDRIOB_DATA0 - - -0XF8000B48 - -32 - -RW - -0x000000 - -DDRIOB Data 0 Configuration Register -
- -DDRIOB_DATA1 - - -0XF8000B4C - -32 - -RW - -0x000000 - -DDRIOB Data 1 Configuration Register -
- -DDRIOB_DIFF0 - - -0XF8000B50 - -32 - -RW - -0x000000 - -DDRIOB Differential DQS 0 Configuration Register -
- -DDRIOB_DIFF1 - - -0XF8000B54 - -32 - -RW - -0x000000 - -DDRIOB Differential DQS 1 Configuration Register -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
- -LAR - - -0XF8803FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -CurrentSize - - -0XF8803004 - -32 - -RW - -0x000000 - -Current Port Size Register -
- -LAR - - -0XF8803FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -Baud_rate_divider_reg0 - - -0XE0001034 - -32 - -RW - -0x000000 - -baud rate divider register -
- -Baud_rate_gen_reg0 - - -0XE0001018 - -32 - -RW - -0x000000 - -Baud rate divider register -
- -Control_reg0 - - -0XE0001000 - -32 - -RW - -0x000000 - -UART Control register -
- -mode_reg0 - - -0XE0001004 - -32 - -RW - -0x000000 - -UART Mode register -
- -Config_reg - - -0XE000D000 - -32 - -RW - -0x000000 - -SPI configuration register -
- -CTRL - - -0XF8007000 - -32 - -RW - -0x000000 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable register: Configures the output enables of bank 0 -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable register: Configures the output enables of bank 0 -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -DIRM_0 - - -0XE000A204 - -32 - -RW - -0x000000 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -OEN_0 - - -0XE000A208 - -32 - -RW - -0x000000 - -Output enable register: Configures the output enables of bank 0 -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
- -MASK_DATA_0_LSW - - -0XE000A000 - -32 - -RW - -0x000000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

ps7_peripherals_init_data_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

DDR TERM/IBUF_DISABLE_MODE SETTINGS

-

Register ( slcr )DDRIOB_DATA0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA0 - -0XF8000B48 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-DDRIOB_DATA0@0XF8000B48 - -31:0 - -180 - - - -180 - -DDRIOB Data 0 Configuration Register -
-

-

Register ( slcr )DDRIOB_DATA1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DATA1 - -0XF8000B4C - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-DDRIOB_DATA1@0XF8000B4C - -31:0 - -180 - - - -180 - -DDRIOB Data 1 Configuration Register -
-

-

Register ( slcr )DDRIOB_DIFF0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF0 - -0XF8000B50 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-DDRIOB_DIFF0@0XF8000B50 - -31:0 - -180 - - - -180 - -DDRIOB Differential DQS 0 Configuration Register -
-

-

Register ( slcr )DDRIOB_DIFF1

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DDRIOB_DIFF1 - -0XF8000B54 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IBUF_DISABLE_MODE - -7:7 - -80 - -1 - -80 - -Use ibuf_disable_into control ibuf 0 -ibuf is always enabled 1 - use ibuf_disable_in_to control enable -
-TERM_DISABLE_MODE - -8:8 - -100 - -1 - -100 - -Use dynamic_dci_ts to control dci 0 - termination enabled 1 - use 'dynamic_dci_ts' control termination -
-DDRIOB_DIFF1@0XF8000B54 - -31:0 - -180 - - - -180 - -DDRIOB Differential DQS 1 Configuration Register -
-

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

-

SRAM/NOR SET OPMODE

-

TRACE LOCK ACCESS REGISTER

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8803FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), TPIU is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): TPIU is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8803FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

TRACE CURRENT PORT SIZE

-

Register ( slcr )CurrentSize

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CurrentSize - -0XF8803004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -2 - -2 - -The Current Port Size Register has the same format as the Supported Port Sizes register but only one bit is set, and all others must be zero. Writing values with more than one bit set or setting a bit that is not indicated as supported is not supported and causes unpredictable behavior. -
-CurrentSize@0XF8803004 - -31:0 - -ffffffff - - - -2 - -Current Port Size Register -
-

-

TRACE LOCK ACCESS REGISTER

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8803FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-a - -31:0 - -ffffffff - -0 - -0 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), TPIU is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): TPIU is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8803FB0 - -31:0 - -ffffffff - - - -0 - -Lock Access Register -
-

-

UART REGISTERS

-

Register ( slcr )Baud_rate_divider_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_divider_reg0 - -0XE0001034 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-BDIV - -7:0 - -ff - -6 - -6 - -Baud rate divider value 0 - 3: ignored 4 - 255: Baud rate -
-Baud_rate_divider_reg0@0XE0001034 - -31:0 - -ff - - - -6 - -baud rate divider register -
-

-

Register ( slcr )Baud_rate_gen_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Baud_rate_gen_reg0 - -0XE0001018 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-CD - -15:0 - -ffff - -3e - -3e - -Baud Rate Clock Divisor Value 0 = Disables baud_sample 1 = Clock divisor bypass 2 - 65535 = baud_sample value -
-Baud_rate_gen_reg0@0XE0001018 - -31:0 - -ffff - - - -3e - -Baud rate divider register -
-

-

Register ( slcr )Control_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Control_reg0 - -0XE0001000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-STPBRK - -8:8 - -100 - -0 - -0 - -Stop transmitter break. 1 = stop transmission of the break. -
-STTBRK - -7:7 - -80 - -0 - -0 - -Start transmitter break 1 = start to transmit a break. Can only be set if STPBRK (Stop transmitter break) is not high. -
-RSTTO - -6:6 - -40 - -0 - -0 - -Restart receiver timeout counter 1 = receiver timeout counter is restarted -
-TXDIS - -5:5 - -20 - -0 - -0 - -Transmit disable. 1, the transmitter is disabled -
-TXEN - -4:4 - -10 - -1 - -10 - -Transmit enable. 1, the transmitter is enabled, provided the TXDIS field is set to 0. -
-RXDIS - -3:3 - -8 - -0 - -0 - -Receive disable. 1= receiver is enabled -
-RXEN - -2:2 - -4 - -1 - -4 - -Receive enable. 1=the receiver logic is enabled, provided RXDIS field is set to 0 -
-TXRES - -1:1 - -2 - -1 - -2 - -Software reset for TX data path. 1=the transmitter logic is reset and all pending transmitter data is discarded self clear -
-RXRES - -0:0 - -1 - -1 - -1 - -Software reset for RX data path 1=receiver logic is reset and all pending receiver data is discarded self clear -
-Control_reg0@0XE0001000 - -31:0 - -1ff - - - -17 - -UART Control register -
-

-

Register ( slcr )mode_reg0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-mode_reg0 - -0XE0001004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-IRMODE - -11:11 - -800 - -0 - -0 - -Enable IrDA mode 0 : Default UART mode 1 : Enable IrDA mode -
-UCLKEN - -10:10 - -400 - -0 - -0 - -External uart_clk source select 0 : APB clock, pclk 1 : a user-defined clock -
-CHMODE - -9:8 - -300 - -0 - -0 - -Channel mode 00 = normal 01 = automatic cho 10 = local loopback 11 = remote loopback -
-NBSTOP - -7:6 - -c0 - -0 - -0 - -Number of stop bits 00 = 1 stop bit 01 = 1.5 stop bits 10 = 2 stop bits 11 = reserved -
-PAR - -5:3 - -38 - -4 - -20 - -Parity type select. 000 = even parity 001 = odd parity 010 = forced to 0 parity (space) 011 = forced to 1 parity (mark) 1xx = no parity -
-CHRL - -2:1 - -6 - -0 - -0 - -Character length select 11 = 6 bits 10 = 7 bits 01 / 00 = 8 bits -
-CLKS - -0:0 - -1 - -0 - -0 - -clock source select 1 = clock source is uart_clk/8 0 = clock source is uart_clk -
-mode_reg0@0XE0001004 - -31:0 - -fff - - - -20 - -UART Mode register -
-

-

QSPI REGISTERS

-

Register ( slcr )Config_reg

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-Config_reg - -0XE000D000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-Holdb_dr - -19:19 - -80000 - -1 - -80000 - -Holdb and WPn pins are driven in normal/fast read or dual output/io read by the controller, if set, else external pull-high is required. Both pins are always driven by the controller in quad mode. -
-Config_reg@0XE000D000 - -31:0 - -80000 - - - -80000 - -SPI configuration register -
-

-

PL POWER ON RESET REGISTERS

-

Register ( slcr )CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-CTRL - -0XF8007000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-PCFG_POR_CNT_4K - -29:29 - -20000000 - -0 - -0 - -This is to indicate to the FPGA fabric what timer to use 0 - use 64K timer 1 - use 4K timer -
-CTRL@0XF8007000 - -31:0 - -20000000 - - - -0 - -Control Register : This register defines basic control registers. Some of the register bits can be locked by control bits in the LOCK Register 0x004. -
-

-

SMC TIMING CALCULATION REGISTER UPDATE

-

NAND SET CYCLE

-

OPMODE

-

DIRECT COMMAND

-

SRAM/NOR CS0 SET CYCLE

-

DIRECT COMMAND

-

NOR CS0 BASE ADDRESS

-

SRAM/NOR CS1 SET CYCLE

-

DIRECT COMMAND

-

NOR CS1 BASE ADDRESS

-

USB RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode for bank 0 0 = input 1 = output Each bit configures the corresponding pin within the 32-bit bank -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables for bank 0 0 = disabled 1 = enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable register: Configures the output enables of bank 0 -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -ff7f - -ff7f0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -80 - -80 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -ff7f0080 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

ENET RESET

-

DIR MODE BANK 0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode for bank 0 0 = input 1 = output Each bit configures the corresponding pin within the 32-bit bank -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
-

-

DIR MODE BANK 1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE BANK 0

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables for bank 0 0 = disabled 1 = enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable register: Configures the output enables of bank 0 -
-

-

OUTPUT ENABLE BANK 1

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -f7ff - -f7ff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -800 - -800 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -f7ff0800 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

I2C RESET

-

DIR MODE GPIO BANK0

-

Register ( slcr )DIRM_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-DIRM_0 - -0XE000A204 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-DIRECTION_0 - -31:0 - -ffffffff - -2880 - -2880 - -Direction mode for bank 0 0 = input 1 = output Each bit configures the corresponding pin within the 32-bit bank -
-DIRM_0@0XE000A204 - -31:0 - -ffffffff - - - -2880 - -Direction mode configuration register: Configures bank 0 for direction mode, either input or output -
-

-

DIR MODE GPIO BANK1

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

-

OUTPUT ENABLE

-

Register ( slcr )OEN_0

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-OEN_0 - -0XE000A208 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-OP_ENABLE_0 - -31:0 - -ffffffff - -2880 - -2880 - -Output enables for bank 0 0 = disabled 1 = enabled Each bit configures the corresponding pin within the 32-bit bank -
-OEN_0@0XE000A208 - -31:0 - -ffffffff - - - -2880 - -Output enable register: Configures the output enables of bank 0 -
-

-

OUTPUT ENABLE

-

MASK_DATA_0_LSW LOW BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -0 - -0 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff0000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW LOW BANK [31:16]

-

MASK_DATA_1_LSW LOW BANK [47:32]

-

MASK_DATA_1_MSW LOW BANK [53:48]

-

ADD 1 MS DELAY

-

MASK_DATA_0_LSW HIGH BANK [15:0]

-

Register ( slcr )MASK_DATA_0_LSW

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-MASK_DATA_0_LSW - -0XE000A000 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-MASK_0_LSW - -31:16 - -ffff0000 - -dfff - -dfff0000 - -Mask values to be applied on writes to the corresponding GPIO pins 0 = pin value is updated 1 = pin is masked Each bit controls the corresponding pin within the 16-bit half-bank Write Only, Read back as zero -
-DATA_0_LSW - -15:0 - -ffff - -2000 - -2000 - -Data values read from or written to the corresponding GPIO pins Each bit controls the corresponding pin within the 16-bit half-bank Note: Bit[6], bit[7] default value = 0 -
-MASK_DATA_0_LSW@0XE000A000 - -31:0 - -ffffffff - - - -dfff2000 - -Maskable single-word-based data access register: Mask and data access for the least significant word of this bank of GPIO pins -
-

-

MASK_DATA_0_MSW HIGH BANK [31:16]

-

MASK_DATA_1_LSW HIGH BANK [47:32]

-

MASK_DATA_1_MSW HIGH BANK [53:48]

- -

-

ps7_post_config_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -SLCR_UNLOCK - - -0XF8000008 - -32 - -WO - -0x000000 - -SLCR Write Protection Unlock -
- -LVL_SHFTR_EN - - -0XF8000900 - -32 - -RW - -0x000000 - -Level Shifters Enable -
- -FPGA_RST_CTRL - - -0XF8000240 - -32 - -RW - -0x000000 - -FPGA Software Reset Control -
- -SLCR_LOCK - - -0XF8000004 - -32 - -WO - -0x000000 - -SLCR Write Protection Lock -
-

-

ps7_post_config_1_0

- - - - - - - - - -

SLCR SETTINGS

-

Register ( slcr )SLCR_UNLOCK

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_UNLOCK - -0XF8000008 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-UNLOCK_KEY - -15:0 - -ffff - -df0d - -df0d - -When write data contains the unlock key value of 0xDF0D, the write protection mode is disabled. All registers defined in SLCR are writeable until locked again through the SLCR_LOCK register. A read of this register always returns zero. -
-SLCR_UNLOCK@0XF8000008 - -31:0 - -ffff - - - -df0d - -SLCR Write Protection Unlock -
-

-

ENABLING LEVEL SHIFTER

-

Register ( slcr )LVL_SHFTR_EN

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LVL_SHFTR_EN - -0XF8000900 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-USER_INP_ICT_EN_0 - -1:0 - -3 - -3 - -3 - -Enable level shifters for PSS user inputs to FPGA in FPGA tile 0, drives slcr_fpga_if_ctrl0[1:0]. -
-USER_INP_ICT_EN_1 - -3:2 - -c - -3 - -c - -Enable level shifters for PSS user inputs to FPGA in FPGA tile 1, drives slcr_fpga_if_ctrl1[1:0]. -
-LVL_SHFTR_EN@0XF8000900 - -31:0 - -f - - - -f - -Level Shifters Enable -
-

-

FPGA RESETS TO 0

-

Register ( slcr )FPGA_RST_CTRL

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-FPGA_RST_CTRL - -0XF8000240 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-reserved_3 - -31:25 - -fe000000 - -0 - -0 - -Reserved. Writes are ignored, read data is always zero. -
-FPGA_ACP_RST - -24:24 - -1000000 - -0 - -0 - -FPGA ACP port soft reset. 0 - No reset. 1 - ACP AXI interface reset output asserted. -
-FPGA_AXDS3_RST - -23:23 - -800000 - -0 - -0 - -AXDS3AXI interface soft reset. On assertion of this reset, the AXDS3AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS3AXI interface reset output asserted. -
-FPGA_AXDS2_RST - -22:22 - -400000 - -0 - -0 - -AXDS2 AXI interface soft reset. On assertion of this reset, the AXDS2 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS2 AXI interface reset output asserted. -
-FPGA_AXDS1_RST - -21:21 - -200000 - -0 - -0 - -AXDS1 AXI interface soft reset. On assertion of this reset, the AXDS1 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS1 AXI interface reset output asserted. -
-FPGA_AXDS0_RST - -20:20 - -100000 - -0 - -0 - -AXDS0 AXI interface soft reset. On assertion of this reset, the AXDS0 AXI interface reset output will be asserted. 0 - No reset. 1 - AXDS0 AXI interface reset output asserted. -
-reserved_2 - -19:18 - -c0000 - -0 - -0 - -Reserved. Writes are ignored, read data is always zero. -
-FSSW1_FPGA_RST - -17:17 - -20000 - -0 - -0 - -General purpose FPGA slave interface 1 soft reset. On assertion of this reset, the FPGA slave interface 1 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 1 reset is asserted. -
-FSSW0_FPGA_RST - -16:16 - -10000 - -0 - -0 - -General purpose FPGA slave interface 0 soft reset. On assertion of this reset, the FPGA slave interface 0 reset will be asserted. 0 - No reset. 1 - FPGA slave interface 0 reset is asserted. -
-reserved_1 - -15:14 - -c000 - -0 - -0 - -Reserved. Writes are ignored, read data is always zero. -
-FPGA_FMSW1_RST - -13:13 - -2000 - -0 - -0 - -General purpose FPGA master interface 1 soft reset. On assertion of this reset, the FPGA master interface 1 reset will be asserted. 0 - No reset. 1 - FPGA master interface 1 reset is asserted. -
-FPGA_FMSW0_RST - -12:12 - -1000 - -0 - -0 - -General purpose FPGA master interface 0 soft reset. On assertion of this reset, the FPGA master interface 0 reset will be asserted. 0 - No reset. 1 - FPGA master interface 0 reset is asserted. -
-FPGA_DMA3_RST - -11:11 - -800 - -0 - -0 - -FPGA DMA 3 peripheral request soft reset. On assertion of this reset, the FPGA DMA 3 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 3 peripheral request reset output asserted. -
-FPGA_DMA2_RST - -10:10 - -400 - -0 - -0 - -FPGA DMA 2 peripheral request soft reset. On assertion of this reset, the FPGA DMA 2 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 2 peripheral request reset output asserted. -
-FPGA_DMA1_RST - -9:9 - -200 - -0 - -0 - -FPGA DMA 1 peripheral request soft reset. On assertion of this reset, the FPGA DMA 1 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 1 peripheral request reset output asserted. -
-FPGA_DMA0_RST - -8:8 - -100 - -0 - -0 - -FPGA DMA 0 peripheral request soft reset. On assertion of this reset, the FPGA DMA 0 peripheral request reset output will be asserted. 0 - No reset. 1 - FPGA DMA 0 peripheral request reset output asserted. -
-reserved - -7:4 - -f0 - -0 - -0 - -Reserved. Writes are ignored, read data is always zero. -
-FPGA3_OUT_RST - -3:3 - -8 - -0 - -0 - -FPGA3software reset. On assertion of this reset, the FPGA 3 top level reset output will be asserted. 0 - No reset. 1 - FPGA 3 top level reset output asserted. -
-FPGA2_OUT_RST - -2:2 - -4 - -0 - -0 - -FPGA2 software reset. On assertion of this reset, the FPGA 2 top level reset output will be asserted. 0 - No reset. 1 - FPGA 2 top level reset output asserted. -
-FPGA1_OUT_RST - -1:1 - -2 - -0 - -0 - -FPGA1 software reset. On assertion of this reset, the FPGA 1 top level reset output will be asserted. 0 - No reset. 1 - FPGA 1 top level reset output asserted. -
-FPGA0_OUT_RST - -0:0 - -1 - -0 - -0 - -FPGA0 software reset. On assertion of this reset, the FPGA 0 top level reset output will be asserted. 0 - No reset. 1 - FPGA 0 top level reset output asserted. -
-FPGA_RST_CTRL@0XF8000240 - -31:0 - -ffffffff - - - -0 - -FPGA Software Reset Control -
-

-

AFI REGISTERS

-

AFI0 REGISTERS

-

AFI1 REGISTERS

-

AFI2 REGISTERS

-

AFI3 REGISTERS

-

LOCK IT BACK

-

Register ( slcr )SLCR_LOCK

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-SLCR_LOCK - -0XF8000004 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-LOCK_KEY - -15:0 - -ffff - -767b - -767b - -When write data contains the lock key value of 0x767B, the write protection mode is enabled. All registers defined in SLCR are write protected until unlocked again through the SLCR_UNLOCK register. A read of this register always returns zero. -
-SLCR_LOCK@0XF8000004 - -31:0 - -ffff - - - -767b - -SLCR Write Protection Lock -
-

- -

-

ps7_debug_1_0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- -LAR - - -0XF8898FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -LAR - - -0XF8899FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
- -LAR - - -0XF8809FB0 - -32 - -WO - -0x000000 - -Lock Access Register -
-

-

ps7_debug_1_0

- - - - - - - - - -

CROSS TRIGGER CONFIGURATIONS

-

UNLOCKING CTI REGISTERS

-

Register ( slcr )LAR

-
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
- - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8898FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8898FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8899FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8899FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

Register ( slcr )LAR

- - - - - - - - - - - - - - - - - -
-Register Name - -Address - -Width - -Type - -Reset Value - -Description -
-LAR - -0XF8809FB0 - -32 - -rw - -0x00000000 - --- -
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
-KEY - -31:0 - -ffffffff - -c5acce55 - -c5acce55 - -Write Access Code. Write behavior depends on PADDRDBG31 pin: - PADDRDBG31=0 (lower 2GB): After reset (via PRESETDBGn), CTI is locked, i.e., writes to all other registers using lower 2GB addresses are ignored. To unlock, 0xC5ACCE55 must be written this register. After the required registers are written, to lock again, write a value other than 0xC5ACCE55 to this register. - PADDRDBG31=1 (upper 2GB): CTI is unlocked when upper 2GB addresses are used to write to all the registers. However, write to this register is ignored using a upper 2GB address! Note: read from this register always returns 0, regardless of PADDRDBG31. -
-LAR@0XF8809FB0 - -31:0 - -ffffffff - - - -c5acce55 - -Lock Access Register -
-

-

ENABLING CTI MODULES AND CHANNELS

-

MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS

- -

- - - - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.tcl b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.tcl deleted file mode 100755 index 434cc843..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init.tcl +++ /dev/null @@ -1,896 +0,0 @@ -proc ps7_pll_init_data_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000110 0x003FFFF0 0x000FA220 - mask_write 0XF8000100 0x0007F000 0x00028000 - mask_write 0XF8000100 0x00000010 0x00000010 - mask_write 0XF8000100 0x00000001 0x00000001 - mask_write 0XF8000100 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000001 - mask_write 0XF8000100 0x00000010 0x00000000 - mask_write 0XF8000120 0x1F003F30 0x1F000200 - mask_write 0XF8000114 0x003FFFF0 0x0012C220 - mask_write 0XF8000104 0x0007F000 0x00020000 - mask_write 0XF8000104 0x00000010 0x00000010 - mask_write 0XF8000104 0x00000001 0x00000001 - mask_write 0XF8000104 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000002 - mask_write 0XF8000104 0x00000010 0x00000000 - mask_write 0XF8000124 0xFFF00003 0x0C200003 - mask_write 0XF8000118 0x003FFFF0 0x001452C0 - mask_write 0XF8000108 0x0007F000 0x0001E000 - mask_write 0XF8000108 0x00000010 0x00000010 - mask_write 0XF8000108 0x00000001 0x00000001 - mask_write 0XF8000108 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000004 - mask_write 0XF8000108 0x00000010 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_clock_init_data_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000128 0x03F03F01 0x00302301 - mask_write 0XF8000138 0x00000011 0x00000001 - mask_write 0XF8000140 0x03F03F71 0x00500801 - mask_write 0XF800014C 0x00003F31 0x00000721 - mask_write 0XF8000150 0x00003F33 0x00001401 - mask_write 0XF8000154 0x00003F33 0x00001402 - mask_write 0XF800015C 0x03F03F33 0x00300E01 - mask_write 0XF8000160 0x007F007F 0x00000000 - mask_write 0XF8000168 0x00003F31 0x00000501 - mask_write 0XF8000170 0x03F03F30 0x00100A00 - mask_write 0XF8000180 0x03F03F30 0x00101400 - mask_write 0XF8000190 0x03F03F30 0x00101400 - mask_write 0XF80001A0 0x03F03F30 0x00101400 - mask_write 0XF80001C4 0x00000001 0x00000001 - mask_write 0XF800012C 0x01FFCCCD 0x01ED044D - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_ddr_init_data_3_0 {} { - mask_write 0XF8006000 0x0001FFFF 0x00000080 - mask_write 0XF8006004 0x0007FFFF 0x00001081 - mask_write 0XF8006008 0x03FFFFFF 0x03C0780F - mask_write 0XF800600C 0x03FFFFFF 0x02001001 - mask_write 0XF8006010 0x03FFFFFF 0x00014001 - mask_write 0XF8006014 0x001FFFFF 0x0004159B - mask_write 0XF8006018 0xF7FFFFFF 0x452440D2 - mask_write 0XF800601C 0xFFFFFFFF 0x720238E5 - mask_write 0XF8006020 0x7FDFFFFC 0x27087290 - mask_write 0XF8006024 0x0FFFFFC3 0x00000000 - mask_write 0XF8006028 0x00003FFF 0x00002007 - mask_write 0XF800602C 0xFFFFFFFF 0x00000008 - mask_write 0XF8006030 0xFFFFFFFF 0x00040930 - mask_write 0XF8006034 0x13FF3FFF 0x00011054 - mask_write 0XF8006038 0x00000003 0x00000000 - mask_write 0XF800603C 0x000FFFFF 0x00000777 - mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 - mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 - mask_write 0XF8006048 0x0003F000 0x0003C000 - mask_write 0XF8006050 0xFF0F8FFF 0x77010800 - mask_write 0XF8006058 0x00010000 0x00000000 - mask_write 0XF800605C 0x0000FFFF 0x00005003 - mask_write 0XF8006060 0x000017FF 0x0000003E - mask_write 0XF8006064 0x00021FE0 0x00020000 - mask_write 0XF8006068 0x03FFFFFF 0x00284141 - mask_write 0XF800606C 0x0000FFFF 0x00001610 - mask_write 0XF8006078 0x03FFFFFF 0x00466111 - mask_write 0XF800607C 0x000FFFFF 0x00032222 - mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 - mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 - mask_write 0XF80060AC 0x000001FF 0x000001FE - mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF - mask_write 0XF80060B4 0x00000200 0x00000200 - mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 - mask_write 0XF80060C4 0x00000003 0x00000000 - mask_write 0XF80060C8 0x000000FF 0x00000000 - mask_write 0XF80060DC 0x00000001 0x00000000 - mask_write 0XF80060F0 0x0000FFFF 0x00000000 - mask_write 0XF80060F4 0x0000000F 0x00000008 - mask_write 0XF8006114 0x000000FF 0x00000000 - mask_write 0XF8006118 0x7FFFFFCF 0x40000001 - mask_write 0XF800611C 0x7FFFFFCF 0x40000001 - mask_write 0XF8006120 0x7FFFFFCF 0x40000001 - mask_write 0XF8006124 0x7FFFFFCF 0x40000001 - mask_write 0XF800612C 0x000FFFFF 0x0003C81D - mask_write 0XF8006130 0x000FFFFF 0x00036012 - mask_write 0XF8006134 0x000FFFFF 0x0003780C - mask_write 0XF8006138 0x000FFFFF 0x0003B821 - mask_write 0XF8006140 0x000FFFFF 0x00000035 - mask_write 0XF8006144 0x000FFFFF 0x00000035 - mask_write 0XF8006148 0x000FFFFF 0x00000035 - mask_write 0XF800614C 0x000FFFFF 0x00000035 - mask_write 0XF8006154 0x000FFFFF 0x0000009D - mask_write 0XF8006158 0x000FFFFF 0x00000092 - mask_write 0XF800615C 0x000FFFFF 0x0000008C - mask_write 0XF8006160 0x000FFFFF 0x000000A1 - mask_write 0XF8006168 0x001FFFFF 0x00000147 - mask_write 0XF800616C 0x001FFFFF 0x0000012D - mask_write 0XF8006170 0x001FFFFF 0x00000133 - mask_write 0XF8006174 0x001FFFFF 0x00000143 - mask_write 0XF800617C 0x000FFFFF 0x000000DD - mask_write 0XF8006180 0x000FFFFF 0x000000D2 - mask_write 0XF8006184 0x000FFFFF 0x000000CC - mask_write 0XF8006188 0x000FFFFF 0x000000E1 - mask_write 0XF8006190 0x6FFFFEFE 0x00040080 - mask_write 0XF8006194 0x000FFFFF 0x0001FC82 - mask_write 0XF8006204 0xFFFFFFFF 0x00000000 - mask_write 0XF8006208 0x000703FF 0x000003FF - mask_write 0XF800620C 0x000703FF 0x000003FF - mask_write 0XF8006210 0x000703FF 0x000003FF - mask_write 0XF8006214 0x000703FF 0x000003FF - mask_write 0XF8006218 0x000F03FF 0x000003FF - mask_write 0XF800621C 0x000F03FF 0x000003FF - mask_write 0XF8006220 0x000F03FF 0x000003FF - mask_write 0XF8006224 0x000F03FF 0x000003FF - mask_write 0XF80062A8 0x00000FF5 0x00000000 - mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 - mask_write 0XF80062B0 0x003FFFFF 0x00005125 - mask_write 0XF80062B4 0x0003FFFF 0x000012A8 - mask_poll 0XF8000B74 0x00002000 - mask_write 0XF8006000 0x0001FFFF 0x00000081 - mask_poll 0XF8006054 0x00000007 -} -proc ps7_mio_init_data_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B00 0x00000071 0x00000001 - mask_write 0XF8000B40 0x00000FFF 0x00000600 - mask_write 0XF8000B44 0x00000FFF 0x00000600 - mask_write 0XF8000B48 0x00000FFF 0x00000672 - mask_write 0XF8000B4C 0x00000FFF 0x00000672 - mask_write 0XF8000B50 0x00000FFF 0x00000674 - mask_write 0XF8000B54 0x00000FFF 0x00000674 - mask_write 0XF8000B58 0x00000FFF 0x00000600 - mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C - mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B6C 0x00007FFF 0x00000E09 - mask_write 0XF8000B70 0x00000001 0x00000001 - mask_write 0XF8000B70 0x00000021 0x00000020 - mask_write 0XF8000B70 0x07FEFFFF 0x00000823 - mask_write 0XF8000700 0x00003F01 0x00001301 - mask_write 0XF8000704 0x00003FFF 0x00001302 - mask_write 0XF8000708 0x00003FFF 0x00000302 - mask_write 0XF800070C 0x00003FFF 0x00000302 - mask_write 0XF8000710 0x00003FFF 0x00000302 - mask_write 0XF8000714 0x00003FFF 0x00000302 - mask_write 0XF8000718 0x00003FFF 0x00000302 - mask_write 0XF800071C 0x00003FFF 0x00000200 - mask_write 0XF8000720 0x00003FFF 0x00000202 - mask_write 0XF8000724 0x00003FFF 0x00001200 - mask_write 0XF8000728 0x00003FFF 0x00001200 - mask_write 0XF800072C 0x00003FFF 0x00001200 - mask_write 0XF8000730 0x00003FFF 0x00001200 - mask_write 0XF8000734 0x00003FFF 0x00001200 - mask_write 0XF8000738 0x00003FFF 0x00001200 - mask_write 0XF800073C 0x00003F01 0x00001301 - mask_write 0XF8000740 0x00003FFF 0x00003902 - mask_write 0XF8000744 0x00003FFF 0x00003902 - mask_write 0XF8000748 0x00003FFF 0x00003902 - mask_write 0XF800074C 0x00003FFF 0x00003902 - mask_write 0XF8000750 0x00003FFF 0x00003902 - mask_write 0XF8000754 0x00003FFF 0x00003902 - mask_write 0XF8000758 0x00003FFF 0x00001903 - mask_write 0XF800075C 0x00003FFF 0x00001903 - mask_write 0XF8000760 0x00003FFF 0x00001903 - mask_write 0XF8000764 0x00003FFF 0x00001903 - mask_write 0XF8000768 0x00003FFF 0x00001903 - mask_write 0XF800076C 0x00003FFF 0x00001903 - mask_write 0XF8000770 0x00003FFF 0x00001304 - mask_write 0XF8000774 0x00003FFF 0x00001305 - mask_write 0XF8000778 0x00003FFF 0x00001304 - mask_write 0XF800077C 0x00003FFF 0x00001305 - mask_write 0XF8000780 0x00003FFF 0x00001304 - mask_write 0XF8000784 0x00003FFF 0x00001304 - mask_write 0XF8000788 0x00003FFF 0x00001304 - mask_write 0XF800078C 0x00003FFF 0x00001304 - mask_write 0XF8000790 0x00003FFF 0x00001305 - mask_write 0XF8000794 0x00003FFF 0x00001304 - mask_write 0XF8000798 0x00003FFF 0x00001304 - mask_write 0XF800079C 0x00003FFF 0x00001304 - mask_write 0XF80007A0 0x00003FFF 0x00001380 - mask_write 0XF80007A4 0x00003FFF 0x00001380 - mask_write 0XF80007A8 0x00003FFF 0x00001380 - mask_write 0XF80007AC 0x00003FFF 0x00001380 - mask_write 0XF80007B0 0x00003FFF 0x00001380 - mask_write 0XF80007B4 0x00003FFF 0x00001380 - mask_write 0XF80007B8 0x00003FFF 0x00001221 - mask_write 0XF80007BC 0x00003FFF 0x00001220 - mask_write 0XF80007C0 0x00003FFF 0x000012E0 - mask_write 0XF80007C4 0x00003FFF 0x000012E1 - mask_write 0XF80007C8 0x00003FFF 0x00001240 - mask_write 0XF80007CC 0x00003FFF 0x00001240 - mask_write 0XF80007D0 0x00003FFF 0x00001280 - mask_write 0XF80007D4 0x00003FFF 0x00001280 - mask_write 0XF8000830 0x003F003F 0x0000000F - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_peripherals_init_data_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B48 0x00000180 0x00000180 - mask_write 0XF8000B4C 0x00000180 0x00000180 - mask_write 0XF8000B50 0x00000180 0x00000180 - mask_write 0XF8000B54 0x00000180 0x00000180 - mask_write 0XF8000004 0x0000FFFF 0x0000767B - mask_write 0XF8803FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8803004 0xFFFFFFFF 0x00000002 - mask_write 0XF8803FB0 0xFFFFFFFF 0x00000000 - mask_write 0XE0001034 0x000000FF 0x00000006 - mask_write 0XE0001018 0x0000FFFF 0x0000003E - mask_write 0XE0001000 0x000001FF 0x00000017 - mask_write 0XE0001004 0x000003FF 0x00000020 - mask_write 0XE000D000 0x00080000 0x00080000 - mask_write 0XF8007000 0x20000000 0x00000000 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 -} -proc ps7_post_config_3_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000900 0x0000000F 0x0000000F - mask_write 0XF8000240 0xFFFFFFFF 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_debug_3_0 {} { - mask_write 0XF8898FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8899FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8809FB0 0xFFFFFFFF 0xC5ACCE55 -} -proc ps7_pll_init_data_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000110 0x003FFFF0 0x000FA220 - mask_write 0XF8000100 0x0007F000 0x00028000 - mask_write 0XF8000100 0x00000010 0x00000010 - mask_write 0XF8000100 0x00000001 0x00000001 - mask_write 0XF8000100 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000001 - mask_write 0XF8000100 0x00000010 0x00000000 - mask_write 0XF8000120 0x1F003F30 0x1F000200 - mask_write 0XF8000114 0x003FFFF0 0x0012C220 - mask_write 0XF8000104 0x0007F000 0x00020000 - mask_write 0XF8000104 0x00000010 0x00000010 - mask_write 0XF8000104 0x00000001 0x00000001 - mask_write 0XF8000104 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000002 - mask_write 0XF8000104 0x00000010 0x00000000 - mask_write 0XF8000124 0xFFF00003 0x0C200003 - mask_write 0XF8000118 0x003FFFF0 0x001452C0 - mask_write 0XF8000108 0x0007F000 0x0001E000 - mask_write 0XF8000108 0x00000010 0x00000010 - mask_write 0XF8000108 0x00000001 0x00000001 - mask_write 0XF8000108 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000004 - mask_write 0XF8000108 0x00000010 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_clock_init_data_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000128 0x03F03F01 0x00302301 - mask_write 0XF8000138 0x00000011 0x00000001 - mask_write 0XF8000140 0x03F03F71 0x00500801 - mask_write 0XF800014C 0x00003F31 0x00000721 - mask_write 0XF8000150 0x00003F33 0x00001401 - mask_write 0XF8000154 0x00003F33 0x00001402 - mask_write 0XF800015C 0x03F03F33 0x00300E01 - mask_write 0XF8000160 0x007F007F 0x00000000 - mask_write 0XF8000168 0x00003F31 0x00000501 - mask_write 0XF8000170 0x03F03F30 0x00100A00 - mask_write 0XF8000180 0x03F03F30 0x00101400 - mask_write 0XF8000190 0x03F03F30 0x00101400 - mask_write 0XF80001A0 0x03F03F30 0x00101400 - mask_write 0XF80001C4 0x00000001 0x00000001 - mask_write 0XF800012C 0x01FFCCCD 0x01ED044D - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_ddr_init_data_2_0 {} { - mask_write 0XF8006000 0x0001FFFF 0x00000080 - mask_write 0XF8006004 0x1FFFFFFF 0x00081081 - mask_write 0XF8006008 0x03FFFFFF 0x03C0780F - mask_write 0XF800600C 0x03FFFFFF 0x02001001 - mask_write 0XF8006010 0x03FFFFFF 0x00014001 - mask_write 0XF8006014 0x001FFFFF 0x0004159B - mask_write 0XF8006018 0xF7FFFFFF 0x452440D2 - mask_write 0XF800601C 0xFFFFFFFF 0x720238E5 - mask_write 0XF8006020 0xFFFFFFFC 0x27287290 - mask_write 0XF8006024 0x0FFFFFFF 0x0000003C - mask_write 0XF8006028 0x00003FFF 0x00002007 - mask_write 0XF800602C 0xFFFFFFFF 0x00000008 - mask_write 0XF8006030 0xFFFFFFFF 0x00040930 - mask_write 0XF8006034 0x13FF3FFF 0x00011054 - mask_write 0XF8006038 0x00001FC3 0x00000000 - mask_write 0XF800603C 0x000FFFFF 0x00000777 - mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 - mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 - mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 - mask_write 0XF8006050 0xFF0F8FFF 0x77010800 - mask_write 0XF8006058 0x0001FFFF 0x00000101 - mask_write 0XF800605C 0x0000FFFF 0x00005003 - mask_write 0XF8006060 0x000017FF 0x0000003E - mask_write 0XF8006064 0x00021FE0 0x00020000 - mask_write 0XF8006068 0x03FFFFFF 0x00284141 - mask_write 0XF800606C 0x0000FFFF 0x00001610 - mask_write 0XF8006078 0x03FFFFFF 0x00466111 - mask_write 0XF800607C 0x000FFFFF 0x00032222 - mask_write 0XF80060A0 0x00FFFFFF 0x00008000 - mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 - mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 - mask_write 0XF80060AC 0x000001FF 0x000001FE - mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF - mask_write 0XF80060B4 0x000007FF 0x00000200 - mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 - mask_write 0XF80060C4 0x00000003 0x00000000 - mask_write 0XF80060C8 0x000000FF 0x00000000 - mask_write 0XF80060DC 0x00000001 0x00000000 - mask_write 0XF80060F0 0x0000FFFF 0x00000000 - mask_write 0XF80060F4 0x0000000F 0x00000008 - mask_write 0XF8006114 0x000000FF 0x00000000 - mask_write 0XF8006118 0x7FFFFFFF 0x40000001 - mask_write 0XF800611C 0x7FFFFFFF 0x40000001 - mask_write 0XF8006120 0x7FFFFFFF 0x40000001 - mask_write 0XF8006124 0x7FFFFFFF 0x40000001 - mask_write 0XF800612C 0x000FFFFF 0x0003C81D - mask_write 0XF8006130 0x000FFFFF 0x00036012 - mask_write 0XF8006134 0x000FFFFF 0x0003780C - mask_write 0XF8006138 0x000FFFFF 0x0003B821 - mask_write 0XF8006140 0x000FFFFF 0x00000035 - mask_write 0XF8006144 0x000FFFFF 0x00000035 - mask_write 0XF8006148 0x000FFFFF 0x00000035 - mask_write 0XF800614C 0x000FFFFF 0x00000035 - mask_write 0XF8006154 0x000FFFFF 0x0000009D - mask_write 0XF8006158 0x000FFFFF 0x00000092 - mask_write 0XF800615C 0x000FFFFF 0x0000008C - mask_write 0XF8006160 0x000FFFFF 0x000000A1 - mask_write 0XF8006168 0x001FFFFF 0x00000147 - mask_write 0XF800616C 0x001FFFFF 0x0000012D - mask_write 0XF8006170 0x001FFFFF 0x00000133 - mask_write 0XF8006174 0x001FFFFF 0x00000143 - mask_write 0XF800617C 0x000FFFFF 0x000000DD - mask_write 0XF8006180 0x000FFFFF 0x000000D2 - mask_write 0XF8006184 0x000FFFFF 0x000000CC - mask_write 0XF8006188 0x000FFFFF 0x000000E1 - mask_write 0XF8006190 0xFFFFFFFF 0x10040080 - mask_write 0XF8006194 0x000FFFFF 0x0001FC82 - mask_write 0XF8006204 0xFFFFFFFF 0x00000000 - mask_write 0XF8006208 0x000F03FF 0x000803FF - mask_write 0XF800620C 0x000F03FF 0x000803FF - mask_write 0XF8006210 0x000F03FF 0x000803FF - mask_write 0XF8006214 0x000F03FF 0x000803FF - mask_write 0XF8006218 0x000F03FF 0x000003FF - mask_write 0XF800621C 0x000F03FF 0x000003FF - mask_write 0XF8006220 0x000F03FF 0x000003FF - mask_write 0XF8006224 0x000F03FF 0x000003FF - mask_write 0XF80062A8 0x00000FF7 0x00000000 - mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 - mask_write 0XF80062B0 0x003FFFFF 0x00005125 - mask_write 0XF80062B4 0x0003FFFF 0x000012A8 - mask_poll 0XF8000B74 0x00002000 - mask_write 0XF8006000 0x0001FFFF 0x00000081 - mask_poll 0XF8006054 0x00000007 -} -proc ps7_mio_init_data_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B00 0x00000303 0x00000001 - mask_write 0XF8000B40 0x00000FFF 0x00000600 - mask_write 0XF8000B44 0x00000FFF 0x00000600 - mask_write 0XF8000B48 0x00000FFF 0x00000672 - mask_write 0XF8000B4C 0x00000FFF 0x00000672 - mask_write 0XF8000B50 0x00000FFF 0x00000674 - mask_write 0XF8000B54 0x00000FFF 0x00000674 - mask_write 0XF8000B58 0x00000FFF 0x00000600 - mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C - mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B6C 0x00007FFF 0x00000E09 - mask_write 0XF8000B70 0x00000021 0x00000021 - mask_write 0XF8000B70 0x00000021 0x00000020 - mask_write 0XF8000B70 0x07FFFFFF 0x00000823 - mask_write 0XF8000700 0x00003F01 0x00001301 - mask_write 0XF8000704 0x00003FFF 0x00001302 - mask_write 0XF8000708 0x00003FFF 0x00000302 - mask_write 0XF800070C 0x00003FFF 0x00000302 - mask_write 0XF8000710 0x00003FFF 0x00000302 - mask_write 0XF8000714 0x00003FFF 0x00000302 - mask_write 0XF8000718 0x00003FFF 0x00000302 - mask_write 0XF800071C 0x00003FFF 0x00000200 - mask_write 0XF8000720 0x00003FFF 0x00000202 - mask_write 0XF8000724 0x00003FFF 0x00001200 - mask_write 0XF8000728 0x00003FFF 0x00001200 - mask_write 0XF800072C 0x00003FFF 0x00001200 - mask_write 0XF8000730 0x00003FFF 0x00001200 - mask_write 0XF8000734 0x00003FFF 0x00001200 - mask_write 0XF8000738 0x00003FFF 0x00001200 - mask_write 0XF800073C 0x00003F01 0x00001301 - mask_write 0XF8000740 0x00003FFF 0x00003902 - mask_write 0XF8000744 0x00003FFF 0x00003902 - mask_write 0XF8000748 0x00003FFF 0x00003902 - mask_write 0XF800074C 0x00003FFF 0x00003902 - mask_write 0XF8000750 0x00003FFF 0x00003902 - mask_write 0XF8000754 0x00003FFF 0x00003902 - mask_write 0XF8000758 0x00003FFF 0x00001903 - mask_write 0XF800075C 0x00003FFF 0x00001903 - mask_write 0XF8000760 0x00003FFF 0x00001903 - mask_write 0XF8000764 0x00003FFF 0x00001903 - mask_write 0XF8000768 0x00003FFF 0x00001903 - mask_write 0XF800076C 0x00003FFF 0x00001903 - mask_write 0XF8000770 0x00003FFF 0x00001304 - mask_write 0XF8000774 0x00003FFF 0x00001305 - mask_write 0XF8000778 0x00003FFF 0x00001304 - mask_write 0XF800077C 0x00003FFF 0x00001305 - mask_write 0XF8000780 0x00003FFF 0x00001304 - mask_write 0XF8000784 0x00003FFF 0x00001304 - mask_write 0XF8000788 0x00003FFF 0x00001304 - mask_write 0XF800078C 0x00003FFF 0x00001304 - mask_write 0XF8000790 0x00003FFF 0x00001305 - mask_write 0XF8000794 0x00003FFF 0x00001304 - mask_write 0XF8000798 0x00003FFF 0x00001304 - mask_write 0XF800079C 0x00003FFF 0x00001304 - mask_write 0XF80007A0 0x00003FFF 0x00001380 - mask_write 0XF80007A4 0x00003FFF 0x00001380 - mask_write 0XF80007A8 0x00003FFF 0x00001380 - mask_write 0XF80007AC 0x00003FFF 0x00001380 - mask_write 0XF80007B0 0x00003FFF 0x00001380 - mask_write 0XF80007B4 0x00003FFF 0x00001380 - mask_write 0XF80007B8 0x00003FFF 0x00001221 - mask_write 0XF80007BC 0x00003FFF 0x00001220 - mask_write 0XF80007C0 0x00003FFF 0x000012E0 - mask_write 0XF80007C4 0x00003FFF 0x000012E1 - mask_write 0XF80007C8 0x00003FFF 0x00001240 - mask_write 0XF80007CC 0x00003FFF 0x00001240 - mask_write 0XF80007D0 0x00003FFF 0x00001280 - mask_write 0XF80007D4 0x00003FFF 0x00001280 - mask_write 0XF8000830 0x003F003F 0x0000000F - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_peripherals_init_data_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B48 0x00000180 0x00000180 - mask_write 0XF8000B4C 0x00000180 0x00000180 - mask_write 0XF8000B50 0x00000180 0x00000180 - mask_write 0XF8000B54 0x00000180 0x00000180 - mask_write 0XF8000004 0x0000FFFF 0x0000767B - mask_write 0XF8803FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8803004 0xFFFFFFFF 0x00000002 - mask_write 0XF8803FB0 0xFFFFFFFF 0x00000000 - mask_write 0XE0001034 0x000000FF 0x00000006 - mask_write 0XE0001018 0x0000FFFF 0x0000003E - mask_write 0XE0001000 0x000001FF 0x00000017 - mask_write 0XE0001004 0x00000FFF 0x00000020 - mask_write 0XE000D000 0x00080000 0x00080000 - mask_write 0XF8007000 0x20000000 0x00000000 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 -} -proc ps7_post_config_2_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000900 0x0000000F 0x0000000F - mask_write 0XF8000240 0xFFFFFFFF 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_debug_2_0 {} { - mask_write 0XF8898FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8899FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8809FB0 0xFFFFFFFF 0xC5ACCE55 -} -proc ps7_pll_init_data_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000110 0x003FFFF0 0x000FA220 - mask_write 0XF8000100 0x0007F000 0x00028000 - mask_write 0XF8000100 0x00000010 0x00000010 - mask_write 0XF8000100 0x00000001 0x00000001 - mask_write 0XF8000100 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000001 - mask_write 0XF8000100 0x00000010 0x00000000 - mask_write 0XF8000120 0x1F003F30 0x1F000200 - mask_write 0XF8000114 0x003FFFF0 0x0012C220 - mask_write 0XF8000104 0x0007F000 0x00020000 - mask_write 0XF8000104 0x00000010 0x00000010 - mask_write 0XF8000104 0x00000001 0x00000001 - mask_write 0XF8000104 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000002 - mask_write 0XF8000104 0x00000010 0x00000000 - mask_write 0XF8000124 0xFFF00003 0x0C200003 - mask_write 0XF8000118 0x003FFFF0 0x001452C0 - mask_write 0XF8000108 0x0007F000 0x0001E000 - mask_write 0XF8000108 0x00000010 0x00000010 - mask_write 0XF8000108 0x00000001 0x00000001 - mask_write 0XF8000108 0x00000001 0x00000000 - mask_poll 0XF800010C 0x00000004 - mask_write 0XF8000108 0x00000010 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_clock_init_data_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000128 0x03F03F01 0x00302301 - mask_write 0XF8000138 0x00000011 0x00000001 - mask_write 0XF8000140 0x03F03F71 0x00500801 - mask_write 0XF800014C 0x00003F31 0x00000721 - mask_write 0XF8000150 0x00003F33 0x00001401 - mask_write 0XF8000154 0x00003F33 0x00001402 - mask_write 0XF800015C 0x03F03F33 0x00300E01 - mask_write 0XF8000160 0x007F007F 0x00000000 - mask_write 0XF8000168 0x00003F31 0x00000501 - mask_write 0XF8000170 0x03F03F30 0x00100A00 - mask_write 0XF8000180 0x03F03F30 0x00101400 - mask_write 0XF8000190 0x03F03F30 0x00101400 - mask_write 0XF80001A0 0x03F03F30 0x00101400 - mask_write 0XF80001C4 0x00000001 0x00000001 - mask_write 0XF800012C 0x01FFCCCD 0x01ED044D - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_ddr_init_data_1_0 {} { - mask_write 0XF8006000 0x0001FFFF 0x00000080 - mask_write 0XF8006004 0x1FFFFFFF 0x00081081 - mask_write 0XF8006008 0x03FFFFFF 0x03C0780F - mask_write 0XF800600C 0x03FFFFFF 0x02001001 - mask_write 0XF8006010 0x03FFFFFF 0x00014001 - mask_write 0XF8006014 0x001FFFFF 0x0004159B - mask_write 0XF8006018 0xF7FFFFFF 0x452440D2 - mask_write 0XF800601C 0xFFFFFFFF 0x720238E5 - mask_write 0XF8006020 0xFFFFFFFC 0x27287290 - mask_write 0XF8006024 0x0FFFFFFF 0x0000003C - mask_write 0XF8006028 0x00003FFF 0x00002007 - mask_write 0XF800602C 0xFFFFFFFF 0x00000008 - mask_write 0XF8006030 0xFFFFFFFF 0x00040930 - mask_write 0XF8006034 0x13FF3FFF 0x00011054 - mask_write 0XF8006038 0x00001FC3 0x00000000 - mask_write 0XF800603C 0x000FFFFF 0x00000777 - mask_write 0XF8006040 0xFFFFFFFF 0xFFF00000 - mask_write 0XF8006044 0x0FFFFFFF 0x0F666666 - mask_write 0XF8006048 0x3FFFFFFF 0x0003C248 - mask_write 0XF8006050 0xFF0F8FFF 0x77010800 - mask_write 0XF8006058 0x0001FFFF 0x00000101 - mask_write 0XF800605C 0x0000FFFF 0x00005003 - mask_write 0XF8006060 0x000017FF 0x0000003E - mask_write 0XF8006064 0x00021FE0 0x00020000 - mask_write 0XF8006068 0x03FFFFFF 0x00284141 - mask_write 0XF800606C 0x0000FFFF 0x00001610 - mask_write 0XF80060A0 0x00FFFFFF 0x00008000 - mask_write 0XF80060A4 0xFFFFFFFF 0x10200802 - mask_write 0XF80060A8 0x0FFFFFFF 0x0690CB73 - mask_write 0XF80060AC 0x000001FF 0x000001FE - mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF - mask_write 0XF80060B4 0x000007FF 0x00000200 - mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 - mask_write 0XF80060C4 0x00000003 0x00000000 - mask_write 0XF80060C8 0x000000FF 0x00000000 - mask_write 0XF80060DC 0x00000001 0x00000000 - mask_write 0XF80060F0 0x0000FFFF 0x00000000 - mask_write 0XF80060F4 0x0000000F 0x00000008 - mask_write 0XF8006114 0x000000FF 0x00000000 - mask_write 0XF8006118 0x7FFFFFFF 0x40000001 - mask_write 0XF800611C 0x7FFFFFFF 0x40000001 - mask_write 0XF8006120 0x7FFFFFFF 0x40000001 - mask_write 0XF8006124 0x7FFFFFFF 0x40000001 - mask_write 0XF800612C 0x000FFFFF 0x0003C81D - mask_write 0XF8006130 0x000FFFFF 0x00036012 - mask_write 0XF8006134 0x000FFFFF 0x0003780C - mask_write 0XF8006138 0x000FFFFF 0x0003B821 - mask_write 0XF8006140 0x000FFFFF 0x00000035 - mask_write 0XF8006144 0x000FFFFF 0x00000035 - mask_write 0XF8006148 0x000FFFFF 0x00000035 - mask_write 0XF800614C 0x000FFFFF 0x00000035 - mask_write 0XF8006154 0x000FFFFF 0x0000009D - mask_write 0XF8006158 0x000FFFFF 0x00000092 - mask_write 0XF800615C 0x000FFFFF 0x0000008C - mask_write 0XF8006160 0x000FFFFF 0x000000A1 - mask_write 0XF8006168 0x001FFFFF 0x00000147 - mask_write 0XF800616C 0x001FFFFF 0x0000012D - mask_write 0XF8006170 0x001FFFFF 0x00000133 - mask_write 0XF8006174 0x001FFFFF 0x00000143 - mask_write 0XF800617C 0x000FFFFF 0x000000DD - mask_write 0XF8006180 0x000FFFFF 0x000000D2 - mask_write 0XF8006184 0x000FFFFF 0x000000CC - mask_write 0XF8006188 0x000FFFFF 0x000000E1 - mask_write 0XF8006190 0xFFFFFFFF 0x10040080 - mask_write 0XF8006194 0x000FFFFF 0x0001FC82 - mask_write 0XF8006204 0xFFFFFFFF 0x00000000 - mask_write 0XF8006208 0x000F03FF 0x000803FF - mask_write 0XF800620C 0x000F03FF 0x000803FF - mask_write 0XF8006210 0x000F03FF 0x000803FF - mask_write 0XF8006214 0x000F03FF 0x000803FF - mask_write 0XF8006218 0x000F03FF 0x000003FF - mask_write 0XF800621C 0x000F03FF 0x000003FF - mask_write 0XF8006220 0x000F03FF 0x000003FF - mask_write 0XF8006224 0x000F03FF 0x000003FF - mask_write 0XF80062A8 0x00000FF7 0x00000000 - mask_write 0XF80062AC 0xFFFFFFFF 0x00000000 - mask_write 0XF80062B0 0x003FFFFF 0x00005125 - mask_write 0XF80062B4 0x0003FFFF 0x000012A8 - mask_poll 0XF8000B74 0x00002000 - mask_write 0XF8006000 0x0001FFFF 0x00000081 - mask_poll 0XF8006054 0x00000007 -} -proc ps7_mio_init_data_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B00 0x00000303 0x00000001 - mask_write 0XF8000B40 0x00000FFF 0x00000600 - mask_write 0XF8000B44 0x00000FFF 0x00000600 - mask_write 0XF8000B48 0x00000FFF 0x00000672 - mask_write 0XF8000B4C 0x00000FFF 0x00000672 - mask_write 0XF8000B50 0x00000FFF 0x00000674 - mask_write 0XF8000B54 0x00000FFF 0x00000674 - mask_write 0XF8000B58 0x00000FFF 0x00000600 - mask_write 0XF8000B5C 0xFFFFFFFF 0x0018C61C - mask_write 0XF8000B60 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B64 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B68 0xFFFFFFFF 0x00F9861C - mask_write 0XF8000B6C 0x000073FF 0x00000209 - mask_write 0XF8000B70 0x00000021 0x00000021 - mask_write 0XF8000B70 0x00000021 0x00000020 - mask_write 0XF8000B70 0x07FFFFFF 0x00000823 - mask_write 0XF8000700 0x00003F01 0x00001301 - mask_write 0XF8000704 0x00003FFF 0x00001302 - mask_write 0XF8000708 0x00003FFF 0x00000302 - mask_write 0XF800070C 0x00003FFF 0x00000302 - mask_write 0XF8000710 0x00003FFF 0x00000302 - mask_write 0XF8000714 0x00003FFF 0x00000302 - mask_write 0XF8000718 0x00003FFF 0x00000302 - mask_write 0XF800071C 0x00003FFF 0x00000200 - mask_write 0XF8000720 0x00003FFF 0x00000202 - mask_write 0XF8000724 0x00003FFF 0x00001200 - mask_write 0XF8000728 0x00003FFF 0x00001200 - mask_write 0XF800072C 0x00003FFF 0x00001200 - mask_write 0XF8000730 0x00003FFF 0x00001200 - mask_write 0XF8000734 0x00003FFF 0x00001200 - mask_write 0XF8000738 0x00003FFF 0x00001200 - mask_write 0XF800073C 0x00003F01 0x00001301 - mask_write 0XF8000740 0x00003FFF 0x00003902 - mask_write 0XF8000744 0x00003FFF 0x00003902 - mask_write 0XF8000748 0x00003FFF 0x00003902 - mask_write 0XF800074C 0x00003FFF 0x00003902 - mask_write 0XF8000750 0x00003FFF 0x00003902 - mask_write 0XF8000754 0x00003FFF 0x00003902 - mask_write 0XF8000758 0x00003FFF 0x00001903 - mask_write 0XF800075C 0x00003FFF 0x00001903 - mask_write 0XF8000760 0x00003FFF 0x00001903 - mask_write 0XF8000764 0x00003FFF 0x00001903 - mask_write 0XF8000768 0x00003FFF 0x00001903 - mask_write 0XF800076C 0x00003FFF 0x00001903 - mask_write 0XF8000770 0x00003FFF 0x00001304 - mask_write 0XF8000774 0x00003FFF 0x00001305 - mask_write 0XF8000778 0x00003FFF 0x00001304 - mask_write 0XF800077C 0x00003FFF 0x00001305 - mask_write 0XF8000780 0x00003FFF 0x00001304 - mask_write 0XF8000784 0x00003FFF 0x00001304 - mask_write 0XF8000788 0x00003FFF 0x00001304 - mask_write 0XF800078C 0x00003FFF 0x00001304 - mask_write 0XF8000790 0x00003FFF 0x00001305 - mask_write 0XF8000794 0x00003FFF 0x00001304 - mask_write 0XF8000798 0x00003FFF 0x00001304 - mask_write 0XF800079C 0x00003FFF 0x00001304 - mask_write 0XF80007A0 0x00003FFF 0x00001380 - mask_write 0XF80007A4 0x00003FFF 0x00001380 - mask_write 0XF80007A8 0x00003FFF 0x00001380 - mask_write 0XF80007AC 0x00003FFF 0x00001380 - mask_write 0XF80007B0 0x00003FFF 0x00001380 - mask_write 0XF80007B4 0x00003FFF 0x00001380 - mask_write 0XF80007B8 0x00003FFF 0x00001221 - mask_write 0XF80007BC 0x00003FFF 0x00001220 - mask_write 0XF80007C0 0x00003FFF 0x000012E0 - mask_write 0XF80007C4 0x00003FFF 0x000012E1 - mask_write 0XF80007C8 0x00003FFF 0x00001240 - mask_write 0XF80007CC 0x00003FFF 0x00001240 - mask_write 0XF80007D0 0x00003FFF 0x00001280 - mask_write 0XF80007D4 0x00003FFF 0x00001280 - mask_write 0XF8000830 0x003F003F 0x0000000F - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_peripherals_init_data_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000B48 0x00000180 0x00000180 - mask_write 0XF8000B4C 0x00000180 0x00000180 - mask_write 0XF8000B50 0x00000180 0x00000180 - mask_write 0XF8000B54 0x00000180 0x00000180 - mask_write 0XF8000004 0x0000FFFF 0x0000767B - mask_write 0XF8803FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8803004 0xFFFFFFFF 0x00000002 - mask_write 0XF8803FB0 0xFFFFFFFF 0x00000000 - mask_write 0XE0001034 0x000000FF 0x00000006 - mask_write 0XE0001018 0x0000FFFF 0x0000003E - mask_write 0XE0001000 0x000001FF 0x00000017 - mask_write 0XE0001004 0x00000FFF 0x00000020 - mask_write 0XE000D000 0x00080000 0x00080000 - mask_write 0XF8007000 0x20000000 0x00000000 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xFF7F0080 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xF7FF0800 - mask_write 0XE000A204 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 - mask_write 0XE000A208 0xFFFFFFFF 0x00002880 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF0000 - mask_delay 0XF8F00200 1 - mask_write 0XE000A000 0xFFFFFFFF 0xDFFF2000 -} -proc ps7_post_config_1_0 {} { - mask_write 0XF8000008 0x0000FFFF 0x0000DF0D - mask_write 0XF8000900 0x0000000F 0x0000000F - mask_write 0XF8000240 0xFFFFFFFF 0x00000000 - mask_write 0XF8000004 0x0000FFFF 0x0000767B -} -proc ps7_debug_1_0 {} { - mask_write 0XF8898FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8899FB0 0xFFFFFFFF 0xC5ACCE55 - mask_write 0XF8809FB0 0xFFFFFFFF 0xC5ACCE55 -} -set PCW_SILICON_VER_1_0 "0x0" -set PCW_SILICON_VER_2_0 "0x1" -set PCW_SILICON_VER_3_0 "0x2" -set APU_FREQ 666666666 - - - -proc mask_poll { addr mask } { - set count 1 - set curval "0x[string range [mrd $addr] end-8 end]" - set maskedval [expr {$curval & $mask}] - while { $maskedval == 0 } { - set curval "0x[string range [mrd $addr] end-8 end]" - set maskedval [expr {$curval & $mask}] - set count [ expr { $count + 1 } ] - if { $count == 100000000 } { - puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" - break - } - } -} - - - -proc mask_delay { addr val } { - set delay [ get_number_of_cycles_for_delay $val ] - perf_reset_and_start_timer - set curval "0x[string range [mrd $addr] end-8 end]" - set maskedval [expr {$curval < $delay}] - while { $maskedval == 1 } { - set curval "0x[string range [mrd $addr] end-8 end]" - set maskedval [expr {$curval < $delay}] - } - perf_reset_clock -} - -proc ps_version { } { - set si_ver "0x[string range [mrd 0xF8007080] end-8 end]" - set mask_sil_ver "0x[expr {$si_ver >> 28}]" - return $mask_sil_ver; -} - -proc ps7_post_config {} { - variable PCW_SILICON_VER_1_0 - variable PCW_SILICON_VER_2_0 - variable PCW_SILICON_VER_3_0 - set sil_ver [ps_version] - - if { $sil_ver == $PCW_SILICON_VER_1_0} { - ps7_post_config_1_0 - } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { - ps7_post_config_2_0 - } else { - ps7_post_config_3_0 - } -} - -proc ps7_debug {} { - variable PCW_SILICON_VER_1_0 - variable PCW_SILICON_VER_2_0 - variable PCW_SILICON_VER_3_0 - set sil_ver [ps_version] - - if { $sil_ver == $PCW_SILICON_VER_1_0} { - ps7_debug_1_0 - } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { - ps7_debug_2_0 - } else { - ps7_debug_3_0 - } -} - -proc ps7_init {} { - variable PCW_SILICON_VER_1_0 - variable PCW_SILICON_VER_2_0 - variable PCW_SILICON_VER_3_0 - set sil_ver [ps_version] - - if { $sil_ver == $PCW_SILICON_VER_1_0} { - ps7_mio_init_data_1_0 - ps7_pll_init_data_1_0 - ps7_clock_init_data_1_0 - ps7_ddr_init_data_1_0 - ps7_peripherals_init_data_1_0 - #puts "PCW Silicon Version : 1.0" - } elseif { $sil_ver == $PCW_SILICON_VER_2_0 } { - ps7_mio_init_data_2_0 - ps7_pll_init_data_2_0 - ps7_clock_init_data_2_0 - ps7_ddr_init_data_2_0 - ps7_peripherals_init_data_2_0 - #puts "PCW Silicon Version : 2.0" - } else { - ps7_mio_init_data_3_0 - ps7_pll_init_data_3_0 - ps7_clock_init_data_3_0 - ps7_ddr_init_data_3_0 - ps7_peripherals_init_data_3_0 - #puts "PCW Silicon Version : 3.0" - } -} - - -# For delay calculation using global timer - -# start timer - proc perf_start_clock { } { - - #writing SCU_GLOBAL_TIMER_CONTROL register - - mask_write 0xF8F00208 0x00000109 0x00000009 -} - -# stop timer and reset timer count regs - proc perf_reset_clock { } { - perf_disable_clock - mask_write 0xF8F00200 0xFFFFFFFF 0x00000000 - mask_write 0xF8F00204 0xFFFFFFFF 0x00000000 -} - -# Compute mask for given delay in miliseconds -proc get_number_of_cycles_for_delay { delay } { - - # GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) - variable APU_FREQ - return [ expr ($delay * $APU_FREQ /(2 * 1000))] -} - - -# stop timer -proc perf_disable_clock {} { - mask_write 0xF8F00208 0xFFFFFFFF 0x00000000 -} - -proc perf_reset_and_start_timer {} { - perf_reset_clock - perf_start_clock -} - - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init_gpl.c b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init_gpl.c deleted file mode 100755 index 1566997c..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init_gpl.c +++ /dev/null @@ -1,12991 +0,0 @@ -/****************************************************************************** -* (c) Copyright 2010-2014 Xilinx, Inc. All rights reserved. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License along -* with this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* -* -******************************************************************************/ -/****************************************************************************/ -/** -* -* @file ps7_init_gpl.c -* -* This file is automatically generated -* -*****************************************************************************/ - -#include "ps7_init_gpl.h" - -unsigned long ps7_pll_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x2 - // .. ==> 0XF800014C[5:4] = 0x00000002U - // .. ==> MASK : 0x00000030U VAL : 0x00000020U - // .. DIVISOR = 0x7 - // .. ==> 0XF800014C[13:8] = 0x00000007U - // .. ==> MASK : 0x00003F00U VAL : 0x00000700U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000721U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xa - // .. ==> 0XF8000170[13:8] = 0x0000000AU - // .. ==> MASK : 0x00003F00U VAL : 0x00000A00U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00100A00U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_3_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reserved_reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x0007FFFFU ,0x00001081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_en_dfi_dram_clk_disable = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0x7FDFFFFCU ,0x27087290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFC3U ,0x00000000U), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00000003U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x0003F000U ,0x0003C000U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x00010000U ,0x00000000U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. reg_ddrc_dfi_t_ctrl_delay = 0x1 - // .. .. ==> 0XF8006078[3:0] = 0x00000001U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000001U - // .. .. reg_ddrc_dfi_t_dram_clk_disable = 0x1 - // .. .. ==> 0XF8006078[7:4] = 0x00000001U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000010U - // .. .. reg_ddrc_dfi_t_dram_clk_enable = 0x1 - // .. .. ==> 0XF8006078[11:8] = 0x00000001U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000100U - // .. .. reg_ddrc_t_cksre = 0x6 - // .. .. ==> 0XF8006078[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_t_cksrx = 0x6 - // .. .. ==> 0XF8006078[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_t_ckesr = 0x4 - // .. .. ==> 0XF8006078[25:20] = 0x00000004U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U - // .. .. - EMIT_MASKWRITE(0XF8006078, 0x03FFFFFFU ,0x00466111U), - // .. .. reg_ddrc_t_ckpde = 0x2 - // .. .. ==> 0XF800607C[3:0] = 0x00000002U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000002U - // .. .. reg_ddrc_t_ckpdx = 0x2 - // .. .. ==> 0XF800607C[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. reg_ddrc_t_ckdpde = 0x2 - // .. .. ==> 0XF800607C[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_ckdpdx = 0x2 - // .. .. ==> 0XF800607C[15:12] = 0x00000002U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00002000U - // .. .. reg_ddrc_t_ckcsx = 0x3 - // .. .. ==> 0XF800607C[19:16] = 0x00000003U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF800607C, 0x000FFFFFU ,0x00032222U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x00000200U ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFCFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0x6FFFFEFEU ,0x00040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000703FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF5U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x0 - // .. ==> 0XF8000B00[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000071U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCI_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. reserved_INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE_B = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCI_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. reserved_SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. reserved_DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. reserved_DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. reserved_SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. reserved_SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. reserved_GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. reserved_RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. reserved_VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. reserved_REFIO_TEST = 0x3 - // .. ==> 0XF8000B6C[11:10] = 0x00000003U - // .. ==> MASK : 0x00000C00U VAL : 0x00000C00U - // .. reserved_REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. reserved_DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. reserved_CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x00007FFFU ,0x00000E09U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000001U ,0x00000001U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reserved_VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reserved_VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reserved_VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reserved_VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reserved_VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[15:14] = 0x00000000U - // .. .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reserved_INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reserved_TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reserved_TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reserved_TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. reserved_TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reserved_INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FEFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF8000700[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000704[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000708[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800070C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000710[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000714[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000718[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF800073C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000740[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000740[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000744[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000744[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000748[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000748[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800074C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800074C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000750[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000750[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000754[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000754[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000758[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000758[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800075C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800075C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000760[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000760[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000764[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000764[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000768[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000768[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800076C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800076C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000770[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000770[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000774[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000774[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000778[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000778[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800077C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800077C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000780[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000780[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000784[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000784[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000788[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000788[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800078C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800078C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000790[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000790[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000794[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000794[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000798[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000798[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800079C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800079C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A8[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007AC[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007AC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000012E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000012E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00001280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00001280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0XC5ACCE55 - // .. ==> 0XF8803FB0[31:0] = 0xC5ACCE55U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: TRACE CURRENT PORT SIZE - // .. a = 2 - // .. ==> 0XF8803004[31:0] = 0x00000002U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000002U - // .. - EMIT_MASKWRITE(0XF8803004, 0xFFFFFFFFU ,0x00000002U), - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0X0 - // .. ==> 0XF8803FB0[31:0] = 0x00000000U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x000003FFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_3_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_LVL_INP_EN_0 = 1 - // .. ==> 0XF8000900[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. USER_LVL_OUT_EN_0 = 1 - // .. ==> 0XF8000900[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USER_LVL_INP_EN_1 = 1 - // .. ==> 0XF8000900[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. USER_LVL_OUT_EN_1 = 1 - // .. ==> 0XF8000900[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. reserved_FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. reserved_FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. reserved_FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. reserved_FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. reserved_FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. reserved_FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. reserved_FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. reserved_FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. reserved_FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. reserved_FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_debug_3_0[] = { - // START: top - // .. START: CROSS TRIGGER CONFIGURATIONS - // .. .. START: UNLOCKING CTI REGISTERS - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8898FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8898FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8899FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8899FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8809FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8809FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. FINISH: UNLOCKING CTI REGISTERS - // .. .. START: ENABLING CTI MODULES AND CHANNELS - // .. .. FINISH: ENABLING CTI MODULES AND CHANNELS - // .. .. START: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. .. FINISH: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. FINISH: CROSS TRIGGER CONFIGURATIONS - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_pll_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x2 - // .. ==> 0XF800014C[5:4] = 0x00000002U - // .. ==> MASK : 0x00000030U VAL : 0x00000020U - // .. DIVISOR = 0x7 - // .. ==> 0XF800014C[13:8] = 0x00000007U - // .. ==> MASK : 0x00003F00U VAL : 0x00000700U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000721U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xa - // .. ==> 0XF8000170[13:8] = 0x0000000AU - // .. ==> MASK : 0x00003F00U VAL : 0x00000A00U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00100A00U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_2_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_block = 0x1 - // .. .. ==> 0XF8006004[20:19] = 0x00000001U - // .. .. ==> MASK : 0x00180000U VAL : 0x00080000U - // .. .. reg_ddrc_diff_rank_rd_2cycle_gap = 0x0 - // .. .. ==> 0XF8006004[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_cs_bit1 = 0x0 - // .. .. ==> 0XF8006004[26:22] = 0x00000000U - // .. .. ==> MASK : 0x07C00000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_open_bank = 0x0 - // .. .. ==> 0XF8006004[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_4bank_ram = 0x0 - // .. .. ==> 0XF8006004[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x1FFFFFFFU ,0x00081081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_sdram = 0x1 - // .. .. ==> 0XF8006020[21:21] = 0x00000001U - // .. .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_clock_stop_en = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_ddrc_loopback = 0x0 - // .. .. ==> 0XF8006020[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0xFFFFFFFCU ,0x27287290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_max_rank_rd = 0xf - // .. .. ==> 0XF8006024[5:2] = 0x0000000FU - // .. .. ==> MASK : 0x0000003CU VAL : 0x0000003CU - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFFFU ,0x0000003CU), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_debug_mode = 0x0 - // .. .. ==> 0XF8006038[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_phy_wr_level_start = 0x0 - // .. .. ==> 0XF8006038[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_phy_rd_level_start = 0x0 - // .. .. ==> 0XF8006038[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_dq0_wait_t = 0x0 - // .. .. ==> 0XF8006038[12:9] = 0x00000000U - // .. .. ==> MASK : 0x00001E00U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00001FC3U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_ddrc_rank0_rd_odt = 0x0 - // .. .. ==> 0XF8006048[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_rank0_wr_odt = 0x1 - // .. .. ==> 0XF8006048[5:3] = 0x00000001U - // .. .. ==> MASK : 0x00000038U VAL : 0x00000008U - // .. .. reg_ddrc_rank1_rd_odt = 0x1 - // .. .. ==> 0XF8006048[8:6] = 0x00000001U - // .. .. ==> MASK : 0x000001C0U VAL : 0x00000040U - // .. .. reg_ddrc_rank1_wr_odt = 0x1 - // .. .. ==> 0XF8006048[11:9] = 0x00000001U - // .. .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. reg_ddrc_rank2_rd_odt = 0x0 - // .. .. ==> 0XF8006048[20:18] = 0x00000000U - // .. .. ==> MASK : 0x001C0000U VAL : 0x00000000U - // .. .. reg_ddrc_rank2_wr_odt = 0x0 - // .. .. ==> 0XF8006048[23:21] = 0x00000000U - // .. .. ==> MASK : 0x00E00000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_rd_odt = 0x0 - // .. .. ==> 0XF8006048[26:24] = 0x00000000U - // .. .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_wr_odt = 0x0 - // .. .. ==> 0XF8006048[29:27] = 0x00000000U - // .. .. ==> MASK : 0x38000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x3FFFFFFFU ,0x0003C248U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dll_calib_to_min_x1024 = 0x1 - // .. .. ==> 0XF8006058[7:0] = 0x00000001U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000001U - // .. .. reg_ddrc_dll_calib_to_max_x1024 = 0x1 - // .. .. ==> 0XF8006058[15:8] = 0x00000001U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000100U - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x0001FFFFU ,0x00000101U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. reg_ddrc_dfi_t_ctrl_delay = 0x1 - // .. .. ==> 0XF8006078[3:0] = 0x00000001U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000001U - // .. .. reg_ddrc_dfi_t_dram_clk_disable = 0x1 - // .. .. ==> 0XF8006078[7:4] = 0x00000001U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000010U - // .. .. reg_ddrc_dfi_t_dram_clk_enable = 0x1 - // .. .. ==> 0XF8006078[11:8] = 0x00000001U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000100U - // .. .. reg_ddrc_t_cksre = 0x6 - // .. .. ==> 0XF8006078[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_t_cksrx = 0x6 - // .. .. ==> 0XF8006078[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_t_ckesr = 0x4 - // .. .. ==> 0XF8006078[25:20] = 0x00000004U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U - // .. .. - EMIT_MASKWRITE(0XF8006078, 0x03FFFFFFU ,0x00466111U), - // .. .. reg_ddrc_t_ckpde = 0x2 - // .. .. ==> 0XF800607C[3:0] = 0x00000002U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000002U - // .. .. reg_ddrc_t_ckpdx = 0x2 - // .. .. ==> 0XF800607C[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. reg_ddrc_t_ckdpde = 0x2 - // .. .. ==> 0XF800607C[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_ckdpdx = 0x2 - // .. .. ==> 0XF800607C[15:12] = 0x00000002U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00002000U - // .. .. reg_ddrc_t_ckcsx = 0x3 - // .. .. ==> 0XF800607C[19:16] = 0x00000003U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00030000U - // .. .. - EMIT_MASKWRITE(0XF800607C, 0x000FFFFFU ,0x00032222U), - // .. .. refresh_timer0_start_value_x32 = 0x0 - // .. .. ==> 0XF80060A0[11:0] = 0x00000000U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000000U - // .. .. refresh_timer1_start_value_x32 = 0x8 - // .. .. ==> 0XF80060A0[23:12] = 0x00000008U - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00008000U - // .. .. - EMIT_MASKWRITE(0XF80060A0, 0x00FFFFFFU ,0x00008000U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_2t_delay = 0x0 - // .. .. ==> 0XF80060B4[8:0] = 0x00000000U - // .. .. ==> MASK : 0x000001FFU VAL : 0x00000000U - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. reg_ddrc_dis_pre_bypass = 0x0 - // .. .. ==> 0XF80060B4[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x000007FFU ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006118[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006118[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF800611C[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF800611C[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006124[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006124[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_loopback = 0x0 - // .. .. ==> 0XF8006190[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_all_dq_mpr_rd_resp = 0x0 - // .. .. ==> 0XF8006190[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_use_rank0_delays = 0x1 - // .. .. ==> 0XF8006190[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_phy_int_lpbk = 0x0 - // .. .. ==> 0XF8006190[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0xFFFFFFFFU ,0x10040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006208[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF800620C[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006210[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006214[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_per_bank_refresh = 0x0 - // .. .. ==> 0XF80062A8[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF7U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. CLK_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. SRSTN_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000303U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. REFIO_TEST = 0x3 - // .. ==> 0XF8000B6C[11:10] = 0x00000003U - // .. ==> MASK : 0x00000C00U VAL : 0x00000C00U - // .. REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x00007FFFU ,0x00000E09U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000021U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[16:14] = 0x00000000U - // .. .. ==> MASK : 0x0001C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FFFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF8000700[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000704[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000708[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800070C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000710[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000714[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000718[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF800073C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000740[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000740[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000744[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000744[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000748[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000748[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800074C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800074C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000750[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000750[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000754[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000754[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000758[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000758[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800075C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800075C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000760[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000760[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000764[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000764[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000768[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000768[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800076C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800076C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000770[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000770[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000774[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000774[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000778[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000778[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800077C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800077C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000780[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000780[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000784[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000784[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000788[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000788[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800078C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800078C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000790[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000790[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000794[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000794[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000798[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000798[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800079C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800079C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A8[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007AC[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007AC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000012E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000012E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00001280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00001280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0XC5ACCE55 - // .. ==> 0XF8803FB0[31:0] = 0xC5ACCE55U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: TRACE CURRENT PORT SIZE - // .. a = 2 - // .. ==> 0XF8803004[31:0] = 0x00000002U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000002U - // .. - EMIT_MASKWRITE(0XF8803004, 0xFFFFFFFFU ,0x00000002U), - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0X0 - // .. ==> 0XF8803FB0[31:0] = 0x00000000U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. IRMODE = 0x0 - // .. ==> 0XE0001004[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. UCLKEN = 0x0 - // .. ==> 0XE0001004[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x00000FFFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_2_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_INP_ICT_EN_0 = 3 - // .. ==> 0XF8000900[1:0] = 0x00000003U - // .. ==> MASK : 0x00000003U VAL : 0x00000003U - // .. USER_INP_ICT_EN_1 = 3 - // .. ==> 0XF8000900[3:2] = 0x00000003U - // .. ==> MASK : 0x0000000CU VAL : 0x0000000CU - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_debug_2_0[] = { - // START: top - // .. START: CROSS TRIGGER CONFIGURATIONS - // .. .. START: UNLOCKING CTI REGISTERS - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8898FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8898FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8899FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8899FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8809FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8809FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. FINISH: UNLOCKING CTI REGISTERS - // .. .. START: ENABLING CTI MODULES AND CHANNELS - // .. .. FINISH: ENABLING CTI MODULES AND CHANNELS - // .. .. START: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. .. FINISH: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. FINISH: CROSS TRIGGER CONFIGURATIONS - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_pll_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: PLL SLCR REGISTERS - // .. .. START: ARM PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000110[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000110[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0xfa - // .. .. ==> 0XF8000110[21:12] = 0x000000FAU - // .. .. ==> MASK : 0x003FF000U VAL : 0x000FA000U - // .. .. - EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x28 - // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00028000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. ARM_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000001U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. SRCSEL = 0x0 - // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. .. DIVISOR = 0x2 - // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U - // .. .. .. ==> MASK : 0x00003F00U VAL : 0x00000200U - // .. .. .. CPU_6OR4XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U - // .. .. .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. .. .. CPU_3OR2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U - // .. .. .. ==> MASK : 0x02000000U VAL : 0x02000000U - // .. .. .. CPU_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U - // .. .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. .. CPU_1XCLKACT = 0x1 - // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U - // .. .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. .. CPU_PERI_CLKACT = 0x1 - // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U - // .. .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U), - // .. .. FINISH: ARM PLL INIT - // .. .. START: DDR PLL INIT - // .. .. PLL_RES = 0x2 - // .. .. ==> 0XF8000114[7:4] = 0x00000002U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000020U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000114[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x12c - // .. .. ==> 0XF8000114[21:12] = 0x0000012CU - // .. .. ==> MASK : 0x003FF000U VAL : 0x0012C000U - // .. .. - EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x20 - // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x00020000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. DDR_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000002U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. .. DDR_3XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. DDR_2XCLKACT = 0x1 - // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U - // .. .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. .. DDR_3XCLK_DIVISOR = 0x2 - // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U - // .. .. .. ==> MASK : 0x03F00000U VAL : 0x00200000U - // .. .. .. DDR_2XCLK_DIVISOR = 0x3 - // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U - // .. .. .. ==> MASK : 0xFC000000U VAL : 0x0C000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U), - // .. .. FINISH: DDR PLL INIT - // .. .. START: IO PLL INIT - // .. .. PLL_RES = 0xc - // .. .. ==> 0XF8000118[7:4] = 0x0000000CU - // .. .. ==> MASK : 0x000000F0U VAL : 0x000000C0U - // .. .. PLL_CP = 0x2 - // .. .. ==> 0XF8000118[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. LOCK_CNT = 0x145 - // .. .. ==> 0XF8000118[21:12] = 0x00000145U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00145000U - // .. .. - EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U), - // .. .. .. START: UPDATE FB_DIV - // .. .. .. PLL_FDIV = 0x1e - // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU - // .. .. .. ==> MASK : 0x0007F000U VAL : 0x0001E000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U), - // .. .. .. FINISH: UPDATE FB_DIV - // .. .. .. START: BY PASS PLL - // .. .. .. PLL_BYPASS_FORCE = 1 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U), - // .. .. .. FINISH: BY PASS PLL - // .. .. .. START: ASSERT RESET - // .. .. .. PLL_RESET = 1 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U), - // .. .. .. FINISH: ASSERT RESET - // .. .. .. START: DEASSERT RESET - // .. .. .. PLL_RESET = 0 - // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U - // .. .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U), - // .. .. .. FINISH: DEASSERT RESET - // .. .. .. START: CHECK PLL STATUS - // .. .. .. IO_PLL_LOCK = 1 - // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U - // .. .. .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. .. .. - EMIT_MASKPOLL(0XF800010C, 0x00000004U), - // .. .. .. FINISH: CHECK PLL STATUS - // .. .. .. START: REMOVE PLL BY PASS - // .. .. .. PLL_BYPASS_FORCE = 0 - // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U - // .. .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U), - // .. .. .. FINISH: REMOVE PLL BY PASS - // .. .. FINISH: IO PLL INIT - // .. FINISH: PLL SLCR REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_clock_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: CLOCK CONTROL SLCR REGISTERS - // .. CLKACT = 0x1 - // .. ==> 0XF8000128[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. DIVISOR0 = 0x23 - // .. ==> 0XF8000128[13:8] = 0x00000023U - // .. ==> MASK : 0x00003F00U VAL : 0x00002300U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF8000128[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF8000128, 0x03F03F01U ,0x00302301U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000138[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000138[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000138, 0x00000011U ,0x00000001U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000140[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000140[6:4] = 0x00000000U - // .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. DIVISOR = 0x8 - // .. ==> 0XF8000140[13:8] = 0x00000008U - // .. ==> MASK : 0x00003F00U VAL : 0x00000800U - // .. DIVISOR1 = 0x5 - // .. ==> 0XF8000140[25:20] = 0x00000005U - // .. ==> MASK : 0x03F00000U VAL : 0x00500000U - // .. - EMIT_MASKWRITE(0XF8000140, 0x03F03F71U ,0x00500801U), - // .. CLKACT = 0x1 - // .. ==> 0XF800014C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x2 - // .. ==> 0XF800014C[5:4] = 0x00000002U - // .. ==> MASK : 0x00000030U VAL : 0x00000020U - // .. DIVISOR = 0x7 - // .. ==> 0XF800014C[13:8] = 0x00000007U - // .. ==> MASK : 0x00003F00U VAL : 0x00000700U - // .. - EMIT_MASKWRITE(0XF800014C, 0x00003F31U ,0x00000721U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF8000150[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF8000150[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000150[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000150[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000150, 0x00003F33U ,0x00001401U), - // .. CLKACT0 = 0x0 - // .. ==> 0XF8000154[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. CLKACT1 = 0x1 - // .. ==> 0XF8000154[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000154[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x14 - // .. ==> 0XF8000154[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. - EMIT_MASKWRITE(0XF8000154, 0x00003F33U ,0x00001402U), - // .. CLKACT0 = 0x1 - // .. ==> 0XF800015C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. CLKACT1 = 0x0 - // .. ==> 0XF800015C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. SRCSEL = 0x0 - // .. ==> 0XF800015C[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xe - // .. ==> 0XF800015C[13:8] = 0x0000000EU - // .. ==> MASK : 0x00003F00U VAL : 0x00000E00U - // .. DIVISOR1 = 0x3 - // .. ==> 0XF800015C[25:20] = 0x00000003U - // .. ==> MASK : 0x03F00000U VAL : 0x00300000U - // .. - EMIT_MASKWRITE(0XF800015C, 0x03F03F33U ,0x00300E01U), - // .. CAN0_MUX = 0x0 - // .. ==> 0XF8000160[5:0] = 0x00000000U - // .. ==> MASK : 0x0000003FU VAL : 0x00000000U - // .. CAN0_REF_SEL = 0x0 - // .. ==> 0XF8000160[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. CAN1_MUX = 0x0 - // .. ==> 0XF8000160[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. CAN1_REF_SEL = 0x0 - // .. ==> 0XF8000160[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000160, 0x007F007FU ,0x00000000U), - // .. CLKACT = 0x1 - // .. ==> 0XF8000168[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. SRCSEL = 0x0 - // .. ==> 0XF8000168[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR = 0x5 - // .. ==> 0XF8000168[13:8] = 0x00000005U - // .. ==> MASK : 0x00003F00U VAL : 0x00000500U - // .. - EMIT_MASKWRITE(0XF8000168, 0x00003F31U ,0x00000501U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000170[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0xa - // .. ==> 0XF8000170[13:8] = 0x0000000AU - // .. ==> MASK : 0x00003F00U VAL : 0x00000A00U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000170[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00100A00U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000180[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000180[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000180[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF8000190[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF8000190[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF8000190[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00101400U), - // .. SRCSEL = 0x0 - // .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. DIVISOR0 = 0x14 - // .. ==> 0XF80001A0[13:8] = 0x00000014U - // .. ==> MASK : 0x00003F00U VAL : 0x00001400U - // .. DIVISOR1 = 0x1 - // .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00101400U), - // .. CLK_621_TRUE = 0x1 - // .. ==> 0XF80001C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XF80001C4, 0x00000001U ,0x00000001U), - // .. DMA_CPU_2XCLKACT = 0x1 - // .. ==> 0XF800012C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. USB0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. USB1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[3:3] = 0x00000001U - // .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. GEM0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[6:6] = 0x00000001U - // .. ==> MASK : 0x00000040U VAL : 0x00000040U - // .. GEM1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. SDI0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[10:10] = 0x00000001U - // .. ==> MASK : 0x00000400U VAL : 0x00000400U - // .. SDI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. SPI0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. SPI1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[15:15] = 0x00000000U - // .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. CAN0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[16:16] = 0x00000001U - // .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. CAN1_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. I2C0_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[18:18] = 0x00000001U - // .. ==> MASK : 0x00040000U VAL : 0x00040000U - // .. I2C1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. UART0_CPU_1XCLKACT = 0x0 - // .. ==> 0XF800012C[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. UART1_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[21:21] = 0x00000001U - // .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. GPIO_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[22:22] = 0x00000001U - // .. ==> MASK : 0x00400000U VAL : 0x00400000U - // .. LQSPI_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[23:23] = 0x00000001U - // .. ==> MASK : 0x00800000U VAL : 0x00800000U - // .. SMC_CPU_1XCLKACT = 0x1 - // .. ==> 0XF800012C[24:24] = 0x00000001U - // .. ==> MASK : 0x01000000U VAL : 0x01000000U - // .. - EMIT_MASKWRITE(0XF800012C, 0x01FFCCCDU ,0x01ED044DU), - // .. FINISH: CLOCK CONTROL SLCR REGISTERS - // .. START: THIS SHOULD BE BLANK - // .. FINISH: THIS SHOULD BE BLANK - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_ddr_init_data_1_0[] = { - // START: top - // .. START: DDR INITIALIZATION - // .. .. START: LOCK DDR - // .. .. reg_ddrc_soft_rstb = 0 - // .. .. ==> 0XF8006000[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 0x1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000080U), - // .. .. FINISH: LOCK DDR - // .. .. reg_ddrc_t_rfc_nom_x32 = 0x81 - // .. .. ==> 0XF8006004[11:0] = 0x00000081U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000081U - // .. .. reg_ddrc_active_ranks = 0x1 - // .. .. ==> 0XF8006004[13:12] = 0x00000001U - // .. .. ==> MASK : 0x00003000U VAL : 0x00001000U - // .. .. reg_ddrc_addrmap_cs_bit0 = 0x0 - // .. .. ==> 0XF8006004[18:14] = 0x00000000U - // .. .. ==> MASK : 0x0007C000U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_block = 0x1 - // .. .. ==> 0XF8006004[20:19] = 0x00000001U - // .. .. ==> MASK : 0x00180000U VAL : 0x00080000U - // .. .. reg_ddrc_diff_rank_rd_2cycle_gap = 0x0 - // .. .. ==> 0XF8006004[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_cs_bit1 = 0x0 - // .. .. ==> 0XF8006004[26:22] = 0x00000000U - // .. .. ==> MASK : 0x07C00000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_open_bank = 0x0 - // .. .. ==> 0XF8006004[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_4bank_ram = 0x0 - // .. .. ==> 0XF8006004[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006004, 0x1FFFFFFFU ,0x00081081U), - // .. .. reg_ddrc_hpr_min_non_critical_x32 = 0xf - // .. .. ==> 0XF8006008[10:0] = 0x0000000FU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000000FU - // .. .. reg_ddrc_hpr_max_starve_x32 = 0xf - // .. .. ==> 0XF8006008[21:11] = 0x0000000FU - // .. .. ==> MASK : 0x003FF800U VAL : 0x00007800U - // .. .. reg_ddrc_hpr_xact_run_length = 0xf - // .. .. ==> 0XF8006008[25:22] = 0x0000000FU - // .. .. ==> MASK : 0x03C00000U VAL : 0x03C00000U - // .. .. - EMIT_MASKWRITE(0XF8006008, 0x03FFFFFFU ,0x03C0780FU), - // .. .. reg_ddrc_lpr_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF800600C[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_lpr_max_starve_x32 = 0x2 - // .. .. ==> 0XF800600C[21:11] = 0x00000002U - // .. .. ==> MASK : 0x003FF800U VAL : 0x00001000U - // .. .. reg_ddrc_lpr_xact_run_length = 0x8 - // .. .. ==> 0XF800600C[25:22] = 0x00000008U - // .. .. ==> MASK : 0x03C00000U VAL : 0x02000000U - // .. .. - EMIT_MASKWRITE(0XF800600C, 0x03FFFFFFU ,0x02001001U), - // .. .. reg_ddrc_w_min_non_critical_x32 = 0x1 - // .. .. ==> 0XF8006010[10:0] = 0x00000001U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000001U - // .. .. reg_ddrc_w_xact_run_length = 0x8 - // .. .. ==> 0XF8006010[14:11] = 0x00000008U - // .. .. ==> MASK : 0x00007800U VAL : 0x00004000U - // .. .. reg_ddrc_w_max_starve_x32 = 0x2 - // .. .. ==> 0XF8006010[25:15] = 0x00000002U - // .. .. ==> MASK : 0x03FF8000U VAL : 0x00010000U - // .. .. - EMIT_MASKWRITE(0XF8006010, 0x03FFFFFFU ,0x00014001U), - // .. .. reg_ddrc_t_rc = 0x1b - // .. .. ==> 0XF8006014[5:0] = 0x0000001BU - // .. .. ==> MASK : 0x0000003FU VAL : 0x0000001BU - // .. .. reg_ddrc_t_rfc_min = 0x56 - // .. .. ==> 0XF8006014[13:6] = 0x00000056U - // .. .. ==> MASK : 0x00003FC0U VAL : 0x00001580U - // .. .. reg_ddrc_post_selfref_gap_x32 = 0x10 - // .. .. ==> 0XF8006014[20:14] = 0x00000010U - // .. .. ==> MASK : 0x001FC000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006014, 0x001FFFFFU ,0x0004159BU), - // .. .. reg_ddrc_wr2pre = 0x12 - // .. .. ==> 0XF8006018[4:0] = 0x00000012U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000012U - // .. .. reg_ddrc_powerdown_to_x32 = 0x6 - // .. .. ==> 0XF8006018[9:5] = 0x00000006U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000C0U - // .. .. reg_ddrc_t_faw = 0x10 - // .. .. ==> 0XF8006018[15:10] = 0x00000010U - // .. .. ==> MASK : 0x0000FC00U VAL : 0x00004000U - // .. .. reg_ddrc_t_ras_max = 0x24 - // .. .. ==> 0XF8006018[21:16] = 0x00000024U - // .. .. ==> MASK : 0x003F0000U VAL : 0x00240000U - // .. .. reg_ddrc_t_ras_min = 0x14 - // .. .. ==> 0XF8006018[26:22] = 0x00000014U - // .. .. ==> MASK : 0x07C00000U VAL : 0x05000000U - // .. .. reg_ddrc_t_cke = 0x4 - // .. .. ==> 0XF8006018[31:28] = 0x00000004U - // .. .. ==> MASK : 0xF0000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006018, 0xF7FFFFFFU ,0x452440D2U), - // .. .. reg_ddrc_write_latency = 0x5 - // .. .. ==> 0XF800601C[4:0] = 0x00000005U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000005U - // .. .. reg_ddrc_rd2wr = 0x7 - // .. .. ==> 0XF800601C[9:5] = 0x00000007U - // .. .. ==> MASK : 0x000003E0U VAL : 0x000000E0U - // .. .. reg_ddrc_wr2rd = 0xe - // .. .. ==> 0XF800601C[14:10] = 0x0000000EU - // .. .. ==> MASK : 0x00007C00U VAL : 0x00003800U - // .. .. reg_ddrc_t_xp = 0x4 - // .. .. ==> 0XF800601C[19:15] = 0x00000004U - // .. .. ==> MASK : 0x000F8000U VAL : 0x00020000U - // .. .. reg_ddrc_pad_pd = 0x0 - // .. .. ==> 0XF800601C[22:20] = 0x00000000U - // .. .. ==> MASK : 0x00700000U VAL : 0x00000000U - // .. .. reg_ddrc_rd2pre = 0x4 - // .. .. ==> 0XF800601C[27:23] = 0x00000004U - // .. .. ==> MASK : 0x0F800000U VAL : 0x02000000U - // .. .. reg_ddrc_t_rcd = 0x7 - // .. .. ==> 0XF800601C[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF800601C, 0xFFFFFFFFU ,0x720238E5U), - // .. .. reg_ddrc_t_ccd = 0x4 - // .. .. ==> 0XF8006020[4:2] = 0x00000004U - // .. .. ==> MASK : 0x0000001CU VAL : 0x00000010U - // .. .. reg_ddrc_t_rrd = 0x4 - // .. .. ==> 0XF8006020[7:5] = 0x00000004U - // .. .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. .. reg_ddrc_refresh_margin = 0x2 - // .. .. ==> 0XF8006020[11:8] = 0x00000002U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000200U - // .. .. reg_ddrc_t_rp = 0x7 - // .. .. ==> 0XF8006020[15:12] = 0x00000007U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00007000U - // .. .. reg_ddrc_refresh_to_x32 = 0x8 - // .. .. ==> 0XF8006020[20:16] = 0x00000008U - // .. .. ==> MASK : 0x001F0000U VAL : 0x00080000U - // .. .. reg_ddrc_sdram = 0x1 - // .. .. ==> 0XF8006020[21:21] = 0x00000001U - // .. .. ==> MASK : 0x00200000U VAL : 0x00200000U - // .. .. reg_ddrc_mobile = 0x0 - // .. .. ==> 0XF8006020[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. reg_ddrc_clock_stop_en = 0x0 - // .. .. ==> 0XF8006020[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. reg_ddrc_read_latency = 0x7 - // .. .. ==> 0XF8006020[28:24] = 0x00000007U - // .. .. ==> MASK : 0x1F000000U VAL : 0x07000000U - // .. .. reg_phy_mode_ddr1_ddr2 = 0x1 - // .. .. ==> 0XF8006020[29:29] = 0x00000001U - // .. .. ==> MASK : 0x20000000U VAL : 0x20000000U - // .. .. reg_ddrc_dis_pad_pd = 0x0 - // .. .. ==> 0XF8006020[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_ddrc_loopback = 0x0 - // .. .. ==> 0XF8006020[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006020, 0xFFFFFFFCU ,0x27287290U), - // .. .. reg_ddrc_en_2t_timing_mode = 0x0 - // .. .. ==> 0XF8006024[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_prefer_write = 0x0 - // .. .. ==> 0XF8006024[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_max_rank_rd = 0xf - // .. .. ==> 0XF8006024[5:2] = 0x0000000FU - // .. .. ==> MASK : 0x0000003CU VAL : 0x0000003CU - // .. .. reg_ddrc_mr_wr = 0x0 - // .. .. ==> 0XF8006024[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_ddrc_mr_addr = 0x0 - // .. .. ==> 0XF8006024[8:7] = 0x00000000U - // .. .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. .. reg_ddrc_mr_data = 0x0 - // .. .. ==> 0XF8006024[24:9] = 0x00000000U - // .. .. ==> MASK : 0x01FFFE00U VAL : 0x00000000U - // .. .. ddrc_reg_mr_wr_busy = 0x0 - // .. .. ==> 0XF8006024[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_type = 0x0 - // .. .. ==> 0XF8006024[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. reg_ddrc_mr_rdata_valid = 0x0 - // .. .. ==> 0XF8006024[27:27] = 0x00000000U - // .. .. ==> MASK : 0x08000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006024, 0x0FFFFFFFU ,0x0000003CU), - // .. .. reg_ddrc_final_wait_x32 = 0x7 - // .. .. ==> 0XF8006028[6:0] = 0x00000007U - // .. .. ==> MASK : 0x0000007FU VAL : 0x00000007U - // .. .. reg_ddrc_pre_ocd_x32 = 0x0 - // .. .. ==> 0XF8006028[10:7] = 0x00000000U - // .. .. ==> MASK : 0x00000780U VAL : 0x00000000U - // .. .. reg_ddrc_t_mrd = 0x4 - // .. .. ==> 0XF8006028[13:11] = 0x00000004U - // .. .. ==> MASK : 0x00003800U VAL : 0x00002000U - // .. .. - EMIT_MASKWRITE(0XF8006028, 0x00003FFFU ,0x00002007U), - // .. .. reg_ddrc_emr2 = 0x8 - // .. .. ==> 0XF800602C[15:0] = 0x00000008U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000008U - // .. .. reg_ddrc_emr3 = 0x0 - // .. .. ==> 0XF800602C[31:16] = 0x00000000U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800602C, 0xFFFFFFFFU ,0x00000008U), - // .. .. reg_ddrc_mr = 0x930 - // .. .. ==> 0XF8006030[15:0] = 0x00000930U - // .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000930U - // .. .. reg_ddrc_emr = 0x4 - // .. .. ==> 0XF8006030[31:16] = 0x00000004U - // .. .. ==> MASK : 0xFFFF0000U VAL : 0x00040000U - // .. .. - EMIT_MASKWRITE(0XF8006030, 0xFFFFFFFFU ,0x00040930U), - // .. .. reg_ddrc_burst_rdwr = 0x4 - // .. .. ==> 0XF8006034[3:0] = 0x00000004U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000004U - // .. .. reg_ddrc_pre_cke_x1024 = 0x105 - // .. .. ==> 0XF8006034[13:4] = 0x00000105U - // .. .. ==> MASK : 0x00003FF0U VAL : 0x00001050U - // .. .. reg_ddrc_post_cke_x1024 = 0x1 - // .. .. ==> 0XF8006034[25:16] = 0x00000001U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00010000U - // .. .. reg_ddrc_burstchop = 0x0 - // .. .. ==> 0XF8006034[28:28] = 0x00000000U - // .. .. ==> MASK : 0x10000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006034, 0x13FF3FFFU ,0x00011054U), - // .. .. reg_ddrc_force_low_pri_n = 0x0 - // .. .. ==> 0XF8006038[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_dis_dq = 0x0 - // .. .. ==> 0XF8006038[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_debug_mode = 0x0 - // .. .. ==> 0XF8006038[6:6] = 0x00000000U - // .. .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. .. reg_phy_wr_level_start = 0x0 - // .. .. ==> 0XF8006038[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_phy_rd_level_start = 0x0 - // .. .. ==> 0XF8006038[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_dq0_wait_t = 0x0 - // .. .. ==> 0XF8006038[12:9] = 0x00000000U - // .. .. ==> MASK : 0x00001E00U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006038, 0x00001FC3U ,0x00000000U), - // .. .. reg_ddrc_addrmap_bank_b0 = 0x7 - // .. .. ==> 0XF800603C[3:0] = 0x00000007U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000007U - // .. .. reg_ddrc_addrmap_bank_b1 = 0x7 - // .. .. ==> 0XF800603C[7:4] = 0x00000007U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000070U - // .. .. reg_ddrc_addrmap_bank_b2 = 0x7 - // .. .. ==> 0XF800603C[11:8] = 0x00000007U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000700U - // .. .. reg_ddrc_addrmap_col_b5 = 0x0 - // .. .. ==> 0XF800603C[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b6 = 0x0 - // .. .. ==> 0XF800603C[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800603C, 0x000FFFFFU ,0x00000777U), - // .. .. reg_ddrc_addrmap_col_b2 = 0x0 - // .. .. ==> 0XF8006040[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b3 = 0x0 - // .. .. ==> 0XF8006040[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b4 = 0x0 - // .. .. ==> 0XF8006040[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b7 = 0x0 - // .. .. ==> 0XF8006040[15:12] = 0x00000000U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b8 = 0x0 - // .. .. ==> 0XF8006040[19:16] = 0x00000000U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00000000U - // .. .. reg_ddrc_addrmap_col_b9 = 0xf - // .. .. ==> 0XF8006040[23:20] = 0x0000000FU - // .. .. ==> MASK : 0x00F00000U VAL : 0x00F00000U - // .. .. reg_ddrc_addrmap_col_b10 = 0xf - // .. .. ==> 0XF8006040[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. reg_ddrc_addrmap_col_b11 = 0xf - // .. .. ==> 0XF8006040[31:28] = 0x0000000FU - // .. .. ==> MASK : 0xF0000000U VAL : 0xF0000000U - // .. .. - EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U), - // .. .. reg_ddrc_addrmap_row_b0 = 0x6 - // .. .. ==> 0XF8006044[3:0] = 0x00000006U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000006U - // .. .. reg_ddrc_addrmap_row_b1 = 0x6 - // .. .. ==> 0XF8006044[7:4] = 0x00000006U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000060U - // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6 - // .. .. ==> 0XF8006044[11:8] = 0x00000006U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000600U - // .. .. reg_ddrc_addrmap_row_b12 = 0x6 - // .. .. ==> 0XF8006044[15:12] = 0x00000006U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00006000U - // .. .. reg_ddrc_addrmap_row_b13 = 0x6 - // .. .. ==> 0XF8006044[19:16] = 0x00000006U - // .. .. ==> MASK : 0x000F0000U VAL : 0x00060000U - // .. .. reg_ddrc_addrmap_row_b14 = 0x6 - // .. .. ==> 0XF8006044[23:20] = 0x00000006U - // .. .. ==> MASK : 0x00F00000U VAL : 0x00600000U - // .. .. reg_ddrc_addrmap_row_b15 = 0xf - // .. .. ==> 0XF8006044[27:24] = 0x0000000FU - // .. .. ==> MASK : 0x0F000000U VAL : 0x0F000000U - // .. .. - EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U), - // .. .. reg_ddrc_rank0_rd_odt = 0x0 - // .. .. ==> 0XF8006048[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_rank0_wr_odt = 0x1 - // .. .. ==> 0XF8006048[5:3] = 0x00000001U - // .. .. ==> MASK : 0x00000038U VAL : 0x00000008U - // .. .. reg_ddrc_rank1_rd_odt = 0x1 - // .. .. ==> 0XF8006048[8:6] = 0x00000001U - // .. .. ==> MASK : 0x000001C0U VAL : 0x00000040U - // .. .. reg_ddrc_rank1_wr_odt = 0x1 - // .. .. ==> 0XF8006048[11:9] = 0x00000001U - // .. .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. .. reg_phy_rd_local_odt = 0x0 - // .. .. ==> 0XF8006048[13:12] = 0x00000000U - // .. .. ==> MASK : 0x00003000U VAL : 0x00000000U - // .. .. reg_phy_wr_local_odt = 0x3 - // .. .. ==> 0XF8006048[15:14] = 0x00000003U - // .. .. ==> MASK : 0x0000C000U VAL : 0x0000C000U - // .. .. reg_phy_idle_local_odt = 0x3 - // .. .. ==> 0XF8006048[17:16] = 0x00000003U - // .. .. ==> MASK : 0x00030000U VAL : 0x00030000U - // .. .. reg_ddrc_rank2_rd_odt = 0x0 - // .. .. ==> 0XF8006048[20:18] = 0x00000000U - // .. .. ==> MASK : 0x001C0000U VAL : 0x00000000U - // .. .. reg_ddrc_rank2_wr_odt = 0x0 - // .. .. ==> 0XF8006048[23:21] = 0x00000000U - // .. .. ==> MASK : 0x00E00000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_rd_odt = 0x0 - // .. .. ==> 0XF8006048[26:24] = 0x00000000U - // .. .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. .. reg_ddrc_rank3_wr_odt = 0x0 - // .. .. ==> 0XF8006048[29:27] = 0x00000000U - // .. .. ==> MASK : 0x38000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006048, 0x3FFFFFFFU ,0x0003C248U), - // .. .. reg_phy_rd_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_wr_cmd_to_data = 0x0 - // .. .. ==> 0XF8006050[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_phy_rdc_we_to_re_delay = 0x8 - // .. .. ==> 0XF8006050[11:8] = 0x00000008U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000800U - // .. .. reg_phy_rdc_fifo_rst_disable = 0x0 - // .. .. ==> 0XF8006050[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_phy_use_fixed_re = 0x1 - // .. .. ==> 0XF8006050[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0 - // .. .. ==> 0XF8006050[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0 - // .. .. ==> 0XF8006050[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_phy_clk_stall_level = 0x0 - // .. .. ==> 0XF8006050[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[27:24] = 0x00000007U - // .. .. ==> MASK : 0x0F000000U VAL : 0x07000000U - // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7 - // .. .. ==> 0XF8006050[31:28] = 0x00000007U - // .. .. ==> MASK : 0xF0000000U VAL : 0x70000000U - // .. .. - EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U), - // .. .. reg_ddrc_dll_calib_to_min_x1024 = 0x1 - // .. .. ==> 0XF8006058[7:0] = 0x00000001U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000001U - // .. .. reg_ddrc_dll_calib_to_max_x1024 = 0x1 - // .. .. ==> 0XF8006058[15:8] = 0x00000001U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000100U - // .. .. reg_ddrc_dis_dll_calib = 0x0 - // .. .. ==> 0XF8006058[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006058, 0x0001FFFFU ,0x00000101U), - // .. .. reg_ddrc_rd_odt_delay = 0x3 - // .. .. ==> 0XF800605C[3:0] = 0x00000003U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000003U - // .. .. reg_ddrc_wr_odt_delay = 0x0 - // .. .. ==> 0XF800605C[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. reg_ddrc_rd_odt_hold = 0x0 - // .. .. ==> 0XF800605C[11:8] = 0x00000000U - // .. .. ==> MASK : 0x00000F00U VAL : 0x00000000U - // .. .. reg_ddrc_wr_odt_hold = 0x5 - // .. .. ==> 0XF800605C[15:12] = 0x00000005U - // .. .. ==> MASK : 0x0000F000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U), - // .. .. reg_ddrc_pageclose = 0x0 - // .. .. ==> 0XF8006060[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_lpr_num_entries = 0x1f - // .. .. ==> 0XF8006060[6:1] = 0x0000001FU - // .. .. ==> MASK : 0x0000007EU VAL : 0x0000003EU - // .. .. reg_ddrc_auto_pre_en = 0x0 - // .. .. ==> 0XF8006060[7:7] = 0x00000000U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. .. reg_ddrc_refresh_update_level = 0x0 - // .. .. ==> 0XF8006060[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_ddrc_dis_wc = 0x0 - // .. .. ==> 0XF8006060[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_ddrc_dis_collision_page_opt = 0x0 - // .. .. ==> 0XF8006060[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_ddrc_selfref_en = 0x0 - // .. .. ==> 0XF8006060[12:12] = 0x00000000U - // .. .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU), - // .. .. reg_ddrc_go2critical_hysteresis = 0x0 - // .. .. ==> 0XF8006064[12:5] = 0x00000000U - // .. .. ==> MASK : 0x00001FE0U VAL : 0x00000000U - // .. .. reg_arb_go2critical_en = 0x1 - // .. .. ==> 0XF8006064[17:17] = 0x00000001U - // .. .. ==> MASK : 0x00020000U VAL : 0x00020000U - // .. .. - EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U), - // .. .. reg_ddrc_wrlvl_ww = 0x41 - // .. .. ==> 0XF8006068[7:0] = 0x00000041U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000041U - // .. .. reg_ddrc_rdlvl_rr = 0x41 - // .. .. ==> 0XF8006068[15:8] = 0x00000041U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00004100U - // .. .. reg_ddrc_dfi_t_wlmrd = 0x28 - // .. .. ==> 0XF8006068[25:16] = 0x00000028U - // .. .. ==> MASK : 0x03FF0000U VAL : 0x00280000U - // .. .. - EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U), - // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10 - // .. .. ==> 0XF800606C[7:0] = 0x00000010U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000010U - // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16 - // .. .. ==> 0XF800606C[15:8] = 0x00000016U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00001600U - // .. .. - EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U), - // .. .. refresh_timer0_start_value_x32 = 0x0 - // .. .. ==> 0XF80060A0[11:0] = 0x00000000U - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000000U - // .. .. refresh_timer1_start_value_x32 = 0x8 - // .. .. ==> 0XF80060A0[23:12] = 0x00000008U - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00008000U - // .. .. - EMIT_MASKWRITE(0XF80060A0, 0x00FFFFFFU ,0x00008000U), - // .. .. reg_ddrc_dis_auto_zq = 0x0 - // .. .. ==> 0XF80060A4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_ddr3 = 0x1 - // .. .. ==> 0XF80060A4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. reg_ddrc_t_mod = 0x200 - // .. .. ==> 0XF80060A4[11:2] = 0x00000200U - // .. .. ==> MASK : 0x00000FFCU VAL : 0x00000800U - // .. .. reg_ddrc_t_zq_long_nop = 0x200 - // .. .. ==> 0XF80060A4[21:12] = 0x00000200U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00200000U - // .. .. reg_ddrc_t_zq_short_nop = 0x40 - // .. .. ==> 0XF80060A4[31:22] = 0x00000040U - // .. .. ==> MASK : 0xFFC00000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U), - // .. .. t_zq_short_interval_x1024 = 0xcb73 - // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U - // .. .. ==> MASK : 0x000FFFFFU VAL : 0x0000CB73U - // .. .. dram_rstn_x1024 = 0x69 - // .. .. ==> 0XF80060A8[27:20] = 0x00000069U - // .. .. ==> MASK : 0x0FF00000U VAL : 0x06900000U - // .. .. - EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0690CB73U), - // .. .. deeppowerdown_en = 0x0 - // .. .. ==> 0XF80060AC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. deeppowerdown_to_x1024 = 0xff - // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU - // .. .. ==> MASK : 0x000001FEU VAL : 0x000001FEU - // .. .. - EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU), - // .. .. dfi_wrlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU - // .. .. ==> MASK : 0x00000FFFU VAL : 0x00000FFFU - // .. .. dfi_rdlvl_max_x1024 = 0xfff - // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU - // .. .. ==> MASK : 0x00FFF000U VAL : 0x00FFF000U - // .. .. ddrc_reg_twrlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. ddrc_reg_trdlvl_max_error = 0x0 - // .. .. ==> 0XF80060B0[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. reg_ddrc_dfi_wr_level_en = 0x1 - // .. .. ==> 0XF80060B0[26:26] = 0x00000001U - // .. .. ==> MASK : 0x04000000U VAL : 0x04000000U - // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF80060B0[27:27] = 0x00000001U - // .. .. ==> MASK : 0x08000000U VAL : 0x08000000U - // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1 - // .. .. ==> 0XF80060B0[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. - EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU), - // .. .. reg_ddrc_2t_delay = 0x0 - // .. .. ==> 0XF80060B4[8:0] = 0x00000000U - // .. .. ==> MASK : 0x000001FFU VAL : 0x00000000U - // .. .. reg_ddrc_skip_ocd = 0x1 - // .. .. ==> 0XF80060B4[9:9] = 0x00000001U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. .. reg_ddrc_dis_pre_bypass = 0x0 - // .. .. ==> 0XF80060B4[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060B4, 0x000007FFU ,0x00000200U), - // .. .. reg_ddrc_dfi_t_rddata_en = 0x6 - // .. .. ==> 0XF80060B8[4:0] = 0x00000006U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000006U - // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3 - // .. .. ==> 0XF80060B8[14:5] = 0x00000003U - // .. .. ==> MASK : 0x00007FE0U VAL : 0x00000060U - // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40 - // .. .. ==> 0XF80060B8[24:15] = 0x00000040U - // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U - // .. .. - EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. Clear_Correctable_DRAM_ECC_error = 0x0 - // .. .. ==> 0XF80060C4[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U), - // .. .. CORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060C8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. ECC_CORRECTED_BIT_NUM = 0x0 - // .. .. ==> 0XF80060C8[7:1] = 0x00000000U - // .. .. ==> MASK : 0x000000FEU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060C8, 0x000000FFU ,0x00000000U), - // .. .. UNCORR_ECC_LOG_VALID = 0x0 - // .. .. ==> 0XF80060DC[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060DC, 0x00000001U ,0x00000000U), - // .. .. STAT_NUM_CORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[15:8] = 0x00000000U - // .. .. ==> MASK : 0x0000FF00U VAL : 0x00000000U - // .. .. STAT_NUM_UNCORR_ERR = 0x0 - // .. .. ==> 0XF80060F0[7:0] = 0x00000000U - // .. .. ==> MASK : 0x000000FFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80060F0, 0x0000FFFFU ,0x00000000U), - // .. .. reg_ddrc_ecc_mode = 0x0 - // .. .. ==> 0XF80060F4[2:0] = 0x00000000U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000000U - // .. .. reg_ddrc_dis_scrub = 0x1 - // .. .. ==> 0XF80060F4[3:3] = 0x00000001U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000008U - // .. .. - EMIT_MASKWRITE(0XF80060F4, 0x0000000FU ,0x00000008U), - // .. .. reg_phy_dif_on = 0x0 - // .. .. ==> 0XF8006114[3:0] = 0x00000000U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000000U - // .. .. reg_phy_dif_off = 0x0 - // .. .. ==> 0XF8006114[7:4] = 0x00000000U - // .. .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006114, 0x000000FFU ,0x00000000U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006118[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006118[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006118[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006118[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006118[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006118[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006118[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006118, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF800611C[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF800611C[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF800611C[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF800611C[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF800611C[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF800611C[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF800611C[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF800611C, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006120[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006120[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006120[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006120[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006120[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006120[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006120[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006120, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_data_slice_in_use = 0x1 - // .. .. ==> 0XF8006124[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_phy_rdlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_gatelvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_wrlvl_inc_mode = 0x0 - // .. .. ==> 0XF8006124[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_tx = 0x0 - // .. .. ==> 0XF8006124[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_board_lpbk_rx = 0x0 - // .. .. ==> 0XF8006124[5:5] = 0x00000000U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. .. reg_phy_bist_shift_dq = 0x0 - // .. .. ==> 0XF8006124[14:6] = 0x00000000U - // .. .. ==> MASK : 0x00007FC0U VAL : 0x00000000U - // .. .. reg_phy_bist_err_clr = 0x0 - // .. .. ==> 0XF8006124[23:15] = 0x00000000U - // .. .. ==> MASK : 0x00FF8000U VAL : 0x00000000U - // .. .. reg_phy_dq_offset = 0x40 - // .. .. ==> 0XF8006124[30:24] = 0x00000040U - // .. .. ==> MASK : 0x7F000000U VAL : 0x40000000U - // .. .. - EMIT_MASKWRITE(0XF8006124, 0x7FFFFFFFU ,0x40000001U), - // .. .. reg_phy_wrlvl_init_ratio = 0x1d - // .. .. ==> 0XF800612C[9:0] = 0x0000001DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000001DU - // .. .. reg_phy_gatelvl_init_ratio = 0xf2 - // .. .. ==> 0XF800612C[19:10] = 0x000000F2U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003C800U - // .. .. - EMIT_MASKWRITE(0XF800612C, 0x000FFFFFU ,0x0003C81DU), - // .. .. reg_phy_wrlvl_init_ratio = 0x12 - // .. .. ==> 0XF8006130[9:0] = 0x00000012U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000012U - // .. .. reg_phy_gatelvl_init_ratio = 0xd8 - // .. .. ==> 0XF8006130[19:10] = 0x000000D8U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00036000U - // .. .. - EMIT_MASKWRITE(0XF8006130, 0x000FFFFFU ,0x00036012U), - // .. .. reg_phy_wrlvl_init_ratio = 0xc - // .. .. ==> 0XF8006134[9:0] = 0x0000000CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000000CU - // .. .. reg_phy_gatelvl_init_ratio = 0xde - // .. .. ==> 0XF8006134[19:10] = 0x000000DEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00037800U - // .. .. - EMIT_MASKWRITE(0XF8006134, 0x000FFFFFU ,0x0003780CU), - // .. .. reg_phy_wrlvl_init_ratio = 0x21 - // .. .. ==> 0XF8006138[9:0] = 0x00000021U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000021U - // .. .. reg_phy_gatelvl_init_ratio = 0xee - // .. .. ==> 0XF8006138[19:10] = 0x000000EEU - // .. .. ==> MASK : 0x000FFC00U VAL : 0x0003B800U - // .. .. - EMIT_MASKWRITE(0XF8006138, 0x000FFFFFU ,0x0003B821U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006140[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006140[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006140[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006140, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006144[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006144[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006144[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006144, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF8006148[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006148[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006148[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006148, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_rd_dqs_slave_ratio = 0x35 - // .. .. ==> 0XF800614C[9:0] = 0x00000035U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000035U - // .. .. reg_phy_rd_dqs_slave_force = 0x0 - // .. .. ==> 0XF800614C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_rd_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800614C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800614C, 0x000FFFFFU ,0x00000035U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x9d - // .. .. ==> 0XF8006154[9:0] = 0x0000009DU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000009DU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006154[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006154[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006154, 0x000FFFFFU ,0x0000009DU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x92 - // .. .. ==> 0XF8006158[9:0] = 0x00000092U - // .. .. ==> MASK : 0x000003FFU VAL : 0x00000092U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006158[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006158[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006158, 0x000FFFFFU ,0x00000092U), - // .. .. reg_phy_wr_dqs_slave_ratio = 0x8c - // .. .. ==> 0XF800615C[9:0] = 0x0000008CU - // .. .. ==> MASK : 0x000003FFU VAL : 0x0000008CU - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF800615C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF800615C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800615C, 0x000FFFFFU ,0x0000008CU), - // .. .. reg_phy_wr_dqs_slave_ratio = 0xa1 - // .. .. ==> 0XF8006160[9:0] = 0x000000A1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000A1U - // .. .. reg_phy_wr_dqs_slave_force = 0x0 - // .. .. ==> 0XF8006160[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_dqs_slave_delay = 0x0 - // .. .. ==> 0XF8006160[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006160, 0x000FFFFFU ,0x000000A1U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x147 - // .. .. ==> 0XF8006168[10:0] = 0x00000147U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000147U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006168[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006168[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006168, 0x001FFFFFU ,0x00000147U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x12d - // .. .. ==> 0XF800616C[10:0] = 0x0000012DU - // .. .. ==> MASK : 0x000007FFU VAL : 0x0000012DU - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF800616C[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF800616C[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800616C, 0x001FFFFFU ,0x0000012DU), - // .. .. reg_phy_fifo_we_slave_ratio = 0x133 - // .. .. ==> 0XF8006170[10:0] = 0x00000133U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000133U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006170[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006170[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006170, 0x001FFFFFU ,0x00000133U), - // .. .. reg_phy_fifo_we_slave_ratio = 0x143 - // .. .. ==> 0XF8006174[10:0] = 0x00000143U - // .. .. ==> MASK : 0x000007FFU VAL : 0x00000143U - // .. .. reg_phy_fifo_we_in_force = 0x0 - // .. .. ==> 0XF8006174[11:11] = 0x00000000U - // .. .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. .. reg_phy_fifo_we_in_delay = 0x0 - // .. .. ==> 0XF8006174[20:12] = 0x00000000U - // .. .. ==> MASK : 0x001FF000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006174, 0x001FFFFFU ,0x00000143U), - // .. .. reg_phy_wr_data_slave_ratio = 0xdd - // .. .. ==> 0XF800617C[9:0] = 0x000000DDU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000DDU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF800617C[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF800617C[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800617C, 0x000FFFFFU ,0x000000DDU), - // .. .. reg_phy_wr_data_slave_ratio = 0xd2 - // .. .. ==> 0XF8006180[9:0] = 0x000000D2U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000D2U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006180[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006180[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006180, 0x000FFFFFU ,0x000000D2U), - // .. .. reg_phy_wr_data_slave_ratio = 0xcc - // .. .. ==> 0XF8006184[9:0] = 0x000000CCU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000CCU - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006184[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006184[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006184, 0x000FFFFFU ,0x000000CCU), - // .. .. reg_phy_wr_data_slave_ratio = 0xe1 - // .. .. ==> 0XF8006188[9:0] = 0x000000E1U - // .. .. ==> MASK : 0x000003FFU VAL : 0x000000E1U - // .. .. reg_phy_wr_data_slave_force = 0x0 - // .. .. ==> 0XF8006188[10:10] = 0x00000000U - // .. .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. .. reg_phy_wr_data_slave_delay = 0x0 - // .. .. ==> 0XF8006188[19:11] = 0x00000000U - // .. .. ==> MASK : 0x000FF800U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006188, 0x000FFFFFU ,0x000000E1U), - // .. .. reg_phy_loopback = 0x0 - // .. .. ==> 0XF8006190[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_phy_bl2 = 0x0 - // .. .. ==> 0XF8006190[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_phy_at_spd_atpg = 0x0 - // .. .. ==> 0XF8006190[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_phy_bist_enable = 0x0 - // .. .. ==> 0XF8006190[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. reg_phy_bist_force_err = 0x0 - // .. .. ==> 0XF8006190[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. reg_phy_bist_mode = 0x0 - // .. .. ==> 0XF8006190[6:5] = 0x00000000U - // .. .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. .. reg_phy_invert_clkout = 0x1 - // .. .. ==> 0XF8006190[7:7] = 0x00000001U - // .. .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. .. reg_phy_all_dq_mpr_rd_resp = 0x0 - // .. .. ==> 0XF8006190[8:8] = 0x00000000U - // .. .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. .. reg_phy_sel_logic = 0x0 - // .. .. ==> 0XF8006190[9:9] = 0x00000000U - // .. .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_ratio = 0x100 - // .. .. ==> 0XF8006190[19:10] = 0x00000100U - // .. .. ==> MASK : 0x000FFC00U VAL : 0x00040000U - // .. .. reg_phy_ctrl_slave_force = 0x0 - // .. .. ==> 0XF8006190[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006190[27:21] = 0x00000000U - // .. .. ==> MASK : 0x0FE00000U VAL : 0x00000000U - // .. .. reg_phy_use_rank0_delays = 0x1 - // .. .. ==> 0XF8006190[28:28] = 0x00000001U - // .. .. ==> MASK : 0x10000000U VAL : 0x10000000U - // .. .. reg_phy_lpddr = 0x0 - // .. .. ==> 0XF8006190[29:29] = 0x00000000U - // .. .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. .. reg_phy_cmd_latency = 0x0 - // .. .. ==> 0XF8006190[30:30] = 0x00000000U - // .. .. ==> MASK : 0x40000000U VAL : 0x00000000U - // .. .. reg_phy_int_lpbk = 0x0 - // .. .. ==> 0XF8006190[31:31] = 0x00000000U - // .. .. ==> MASK : 0x80000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006190, 0xFFFFFFFFU ,0x10040080U), - // .. .. reg_phy_wr_rl_delay = 0x2 - // .. .. ==> 0XF8006194[4:0] = 0x00000002U - // .. .. ==> MASK : 0x0000001FU VAL : 0x00000002U - // .. .. reg_phy_rd_rl_delay = 0x4 - // .. .. ==> 0XF8006194[9:5] = 0x00000004U - // .. .. ==> MASK : 0x000003E0U VAL : 0x00000080U - // .. .. reg_phy_dll_lock_diff = 0xf - // .. .. ==> 0XF8006194[13:10] = 0x0000000FU - // .. .. ==> MASK : 0x00003C00U VAL : 0x00003C00U - // .. .. reg_phy_use_wr_level = 0x1 - // .. .. ==> 0XF8006194[14:14] = 0x00000001U - // .. .. ==> MASK : 0x00004000U VAL : 0x00004000U - // .. .. reg_phy_use_rd_dqs_gate_level = 0x1 - // .. .. ==> 0XF8006194[15:15] = 0x00000001U - // .. .. ==> MASK : 0x00008000U VAL : 0x00008000U - // .. .. reg_phy_use_rd_data_eye_level = 0x1 - // .. .. ==> 0XF8006194[16:16] = 0x00000001U - // .. .. ==> MASK : 0x00010000U VAL : 0x00010000U - // .. .. reg_phy_dis_calib_rst = 0x0 - // .. .. ==> 0XF8006194[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_phy_ctrl_slave_delay = 0x0 - // .. .. ==> 0XF8006194[19:18] = 0x00000000U - // .. .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006194, 0x000FFFFFU ,0x0001FC82U), - // .. .. reg_arb_page_addr_mask = 0x0 - // .. .. ==> 0XF8006204[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006204, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006208[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006208[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006208[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006208[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006208[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006208, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF800620C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF800620C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF800620C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF800620C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF800620C[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF800620C, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006210[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006210[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006210[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006210[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006210[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006210, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_wr_portn = 0x3ff - // .. .. ==> 0XF8006214[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_wr_portn = 0x0 - // .. .. ==> 0XF8006214[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_wr_portn = 0x0 - // .. .. ==> 0XF8006214[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_wr_portn = 0x0 - // .. .. ==> 0XF8006214[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_dis_rmw_portn = 0x1 - // .. .. ==> 0XF8006214[19:19] = 0x00000001U - // .. .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. .. - EMIT_MASKWRITE(0XF8006214, 0x000F03FFU ,0x000803FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006218[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006218[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006218[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006218[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006218[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006218, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF800621C[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF800621C[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF800621C[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF800621C[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF800621C[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF800621C, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006220[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006220[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006220[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006220[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006220[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006220, 0x000F03FFU ,0x000003FFU), - // .. .. reg_arb_pri_rd_portn = 0x3ff - // .. .. ==> 0XF8006224[9:0] = 0x000003FFU - // .. .. ==> MASK : 0x000003FFU VAL : 0x000003FFU - // .. .. reg_arb_disable_aging_rd_portn = 0x0 - // .. .. ==> 0XF8006224[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. reg_arb_disable_urgent_rd_portn = 0x0 - // .. .. ==> 0XF8006224[17:17] = 0x00000000U - // .. .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. .. reg_arb_dis_page_match_rd_portn = 0x0 - // .. .. ==> 0XF8006224[18:18] = 0x00000000U - // .. .. ==> MASK : 0x00040000U VAL : 0x00000000U - // .. .. reg_arb_set_hpr_rd_portn = 0x0 - // .. .. ==> 0XF8006224[19:19] = 0x00000000U - // .. .. ==> MASK : 0x00080000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006224, 0x000F03FFU ,0x000003FFU), - // .. .. reg_ddrc_lpddr2 = 0x0 - // .. .. ==> 0XF80062A8[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. reg_ddrc_per_bank_refresh = 0x0 - // .. .. ==> 0XF80062A8[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_derate_enable = 0x0 - // .. .. ==> 0XF80062A8[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. reg_ddrc_mr4_margin = 0x0 - // .. .. ==> 0XF80062A8[11:4] = 0x00000000U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062A8, 0x00000FF7U ,0x00000000U), - // .. .. reg_ddrc_mr4_read_interval = 0x0 - // .. .. ==> 0XF80062AC[31:0] = 0x00000000U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF80062AC, 0xFFFFFFFFU ,0x00000000U), - // .. .. reg_ddrc_min_stable_clock_x1 = 0x5 - // .. .. ==> 0XF80062B0[3:0] = 0x00000005U - // .. .. ==> MASK : 0x0000000FU VAL : 0x00000005U - // .. .. reg_ddrc_idle_after_reset_x32 = 0x12 - // .. .. ==> 0XF80062B0[11:4] = 0x00000012U - // .. .. ==> MASK : 0x00000FF0U VAL : 0x00000120U - // .. .. reg_ddrc_t_mrw = 0x5 - // .. .. ==> 0XF80062B0[21:12] = 0x00000005U - // .. .. ==> MASK : 0x003FF000U VAL : 0x00005000U - // .. .. - EMIT_MASKWRITE(0XF80062B0, 0x003FFFFFU ,0x00005125U), - // .. .. reg_ddrc_max_auto_init_x1024 = 0xa8 - // .. .. ==> 0XF80062B4[7:0] = 0x000000A8U - // .. .. ==> MASK : 0x000000FFU VAL : 0x000000A8U - // .. .. reg_ddrc_dev_zqinit_x32 = 0x12 - // .. .. ==> 0XF80062B4[17:8] = 0x00000012U - // .. .. ==> MASK : 0x0003FF00U VAL : 0x00001200U - // .. .. - EMIT_MASKWRITE(0XF80062B4, 0x0003FFFFU ,0x000012A8U), - // .. .. START: POLL ON DCI STATUS - // .. .. DONE = 1 - // .. .. ==> 0XF8000B74[13:13] = 0x00000001U - // .. .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. .. - EMIT_MASKPOLL(0XF8000B74, 0x00002000U), - // .. .. FINISH: POLL ON DCI STATUS - // .. .. START: UNLOCK DDR - // .. .. reg_ddrc_soft_rstb = 0x1 - // .. .. ==> 0XF8006000[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. reg_ddrc_powerdown_en = 0x0 - // .. .. ==> 0XF8006000[1:1] = 0x00000000U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. .. reg_ddrc_data_bus_width = 0x0 - // .. .. ==> 0XF8006000[3:2] = 0x00000000U - // .. .. ==> MASK : 0x0000000CU VAL : 0x00000000U - // .. .. reg_ddrc_burst8_refresh = 0x0 - // .. .. ==> 0XF8006000[6:4] = 0x00000000U - // .. .. ==> MASK : 0x00000070U VAL : 0x00000000U - // .. .. reg_ddrc_rdwr_idle_gap = 1 - // .. .. ==> 0XF8006000[13:7] = 0x00000001U - // .. .. ==> MASK : 0x00003F80U VAL : 0x00000080U - // .. .. reg_ddrc_dis_rd_bypass = 0x0 - // .. .. ==> 0XF8006000[14:14] = 0x00000000U - // .. .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_act_bypass = 0x0 - // .. .. ==> 0XF8006000[15:15] = 0x00000000U - // .. .. ==> MASK : 0x00008000U VAL : 0x00000000U - // .. .. reg_ddrc_dis_auto_refresh = 0x0 - // .. .. ==> 0XF8006000[16:16] = 0x00000000U - // .. .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8006000, 0x0001FFFFU ,0x00000081U), - // .. .. FINISH: UNLOCK DDR - // .. .. START: CHECK DDR STATUS - // .. .. ddrc_reg_operating_mode = 1 - // .. .. ==> 0XF8006054[2:0] = 0x00000001U - // .. .. ==> MASK : 0x00000007U VAL : 0x00000001U - // .. .. - EMIT_MASKPOLL(0XF8006054, 0x00000007U), - // .. .. FINISH: CHECK DDR STATUS - // .. FINISH: DDR INITIALIZATION - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_mio_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: OCM REMAPPING - // .. VREF_EN = 0x1 - // .. ==> 0XF8000B00[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. CLK_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. SRSTN_PULLUP_EN = 0x0 - // .. ==> 0XF8000B00[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B00, 0x00000303U ,0x00000001U), - // .. FINISH: OCM REMAPPING - // .. START: DDRIOB SETTINGS - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B40[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B40[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B40[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B40[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B40[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B40[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B40[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B40[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B40, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B44[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B44[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B44[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B44[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B44[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B44[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B44[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B44[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B44, 0x00000FFFU ,0x00000600U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B48[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B48[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B48[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B48[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B48[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B48[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B48[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B48[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B4C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x1 - // .. ==> 0XF8000B4C[2:1] = 0x00000001U - // .. ==> MASK : 0x00000006U VAL : 0x00000002U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B4C[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B4C[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B4C[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B4C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B4C[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B4C[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000FFFU ,0x00000672U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B50[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B50[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B50[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B50[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B50[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B50[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B50[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B50[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B54[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x2 - // .. ==> 0XF8000B54[2:1] = 0x00000002U - // .. ==> MASK : 0x00000006U VAL : 0x00000004U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B54[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x1 - // .. ==> 0XF8000B54[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. DCR_TYPE = 0x3 - // .. ==> 0XF8000B54[6:5] = 0x00000003U - // .. ==> MASK : 0x00000060U VAL : 0x00000060U - // .. IBUF_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0 - // .. ==> 0XF8000B54[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B54[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B54[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000FFFU ,0x00000674U), - // .. INP_POWER = 0x0 - // .. ==> 0XF8000B58[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. INP_TYPE = 0x0 - // .. ==> 0XF8000B58[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. DCI_UPDATE = 0x0 - // .. ==> 0XF8000B58[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. TERM_EN = 0x0 - // .. ==> 0XF8000B58[4:4] = 0x00000000U - // .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. DCR_TYPE = 0x0 - // .. ==> 0XF8000B58[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. IBUF_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. TERM_DISABLE_MODE = 0x0 - // .. ==> 0XF8000B58[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. OUTPUT_EN = 0x3 - // .. ==> 0XF8000B58[10:9] = 0x00000003U - // .. ==> MASK : 0x00000600U VAL : 0x00000600U - // .. PULLUP_EN = 0x0 - // .. ==> 0XF8000B58[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B58, 0x00000FFFU ,0x00000600U), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B5C[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B5C[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x3 - // .. ==> 0XF8000B5C[18:14] = 0x00000003U - // .. ==> MASK : 0x0007C000U VAL : 0x0000C000U - // .. SLEW_N = 0x3 - // .. ==> 0XF8000B5C[23:19] = 0x00000003U - // .. ==> MASK : 0x00F80000U VAL : 0x00180000U - // .. GTL = 0x0 - // .. ==> 0XF8000B5C[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B5C[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B5C, 0xFFFFFFFFU ,0x0018C61CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B60[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B60[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B60[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B60[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B60[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B60[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B60, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B64[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B64[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B64[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B64[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B64[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B64[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B64, 0xFFFFFFFFU ,0x00F9861CU), - // .. DRIVE_P = 0x1c - // .. ==> 0XF8000B68[6:0] = 0x0000001CU - // .. ==> MASK : 0x0000007FU VAL : 0x0000001CU - // .. DRIVE_N = 0xc - // .. ==> 0XF8000B68[13:7] = 0x0000000CU - // .. ==> MASK : 0x00003F80U VAL : 0x00000600U - // .. SLEW_P = 0x6 - // .. ==> 0XF8000B68[18:14] = 0x00000006U - // .. ==> MASK : 0x0007C000U VAL : 0x00018000U - // .. SLEW_N = 0x1f - // .. ==> 0XF8000B68[23:19] = 0x0000001FU - // .. ==> MASK : 0x00F80000U VAL : 0x00F80000U - // .. GTL = 0x0 - // .. ==> 0XF8000B68[26:24] = 0x00000000U - // .. ==> MASK : 0x07000000U VAL : 0x00000000U - // .. RTERM = 0x0 - // .. ==> 0XF8000B68[31:27] = 0x00000000U - // .. ==> MASK : 0xF8000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B68, 0xFFFFFFFFU ,0x00F9861CU), - // .. VREF_INT_EN = 0x1 - // .. ==> 0XF8000B6C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. VREF_SEL = 0x4 - // .. ==> 0XF8000B6C[4:1] = 0x00000004U - // .. ==> MASK : 0x0000001EU VAL : 0x00000008U - // .. VREF_EXT_EN = 0x0 - // .. ==> 0XF8000B6C[6:5] = 0x00000000U - // .. ==> MASK : 0x00000060U VAL : 0x00000000U - // .. VREF_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[8:7] = 0x00000000U - // .. ==> MASK : 0x00000180U VAL : 0x00000000U - // .. REFIO_EN = 0x1 - // .. ==> 0XF8000B6C[9:9] = 0x00000001U - // .. ==> MASK : 0x00000200U VAL : 0x00000200U - // .. REFIO_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DRST_B_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. CKE_PULLUP_EN = 0x0 - // .. ==> 0XF8000B6C[14:14] = 0x00000000U - // .. ==> MASK : 0x00004000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000B6C, 0x000073FFU ,0x00000209U), - // .. .. START: ASSERT RESET - // .. .. RESET = 1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000021U), - // .. .. FINISH: ASSERT RESET - // .. .. START: DEASSERT RESET - // .. .. RESET = 0 - // .. .. ==> 0XF8000B70[0:0] = 0x00000000U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x00000021U ,0x00000020U), - // .. .. FINISH: DEASSERT RESET - // .. .. RESET = 0x1 - // .. .. ==> 0XF8000B70[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. ENABLE = 0x1 - // .. .. ==> 0XF8000B70[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. VRP_TRI = 0x0 - // .. .. ==> 0XF8000B70[2:2] = 0x00000000U - // .. .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. .. VRN_TRI = 0x0 - // .. .. ==> 0XF8000B70[3:3] = 0x00000000U - // .. .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. .. VRP_OUT = 0x0 - // .. .. ==> 0XF8000B70[4:4] = 0x00000000U - // .. .. ==> MASK : 0x00000010U VAL : 0x00000000U - // .. .. VRN_OUT = 0x1 - // .. .. ==> 0XF8000B70[5:5] = 0x00000001U - // .. .. ==> MASK : 0x00000020U VAL : 0x00000020U - // .. .. NREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[7:6] = 0x00000000U - // .. .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. .. NREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[10:8] = 0x00000000U - // .. .. ==> MASK : 0x00000700U VAL : 0x00000000U - // .. .. NREF_OPT4 = 0x1 - // .. .. ==> 0XF8000B70[13:11] = 0x00000001U - // .. .. ==> MASK : 0x00003800U VAL : 0x00000800U - // .. .. PREF_OPT1 = 0x0 - // .. .. ==> 0XF8000B70[16:14] = 0x00000000U - // .. .. ==> MASK : 0x0001C000U VAL : 0x00000000U - // .. .. PREF_OPT2 = 0x0 - // .. .. ==> 0XF8000B70[19:17] = 0x00000000U - // .. .. ==> MASK : 0x000E0000U VAL : 0x00000000U - // .. .. UPDATE_CONTROL = 0x0 - // .. .. ==> 0XF8000B70[20:20] = 0x00000000U - // .. .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. .. INIT_COMPLETE = 0x0 - // .. .. ==> 0XF8000B70[21:21] = 0x00000000U - // .. .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. .. TST_CLK = 0x0 - // .. .. ==> 0XF8000B70[22:22] = 0x00000000U - // .. .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. .. TST_HLN = 0x0 - // .. .. ==> 0XF8000B70[23:23] = 0x00000000U - // .. .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. .. TST_HLP = 0x0 - // .. .. ==> 0XF8000B70[24:24] = 0x00000000U - // .. .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. .. TST_RST = 0x0 - // .. .. ==> 0XF8000B70[25:25] = 0x00000000U - // .. .. ==> MASK : 0x02000000U VAL : 0x00000000U - // .. .. INT_DCI_EN = 0x0 - // .. .. ==> 0XF8000B70[26:26] = 0x00000000U - // .. .. ==> MASK : 0x04000000U VAL : 0x00000000U - // .. .. - EMIT_MASKWRITE(0XF8000B70, 0x07FFFFFFU ,0x00000823U), - // .. FINISH: DDRIOB SETTINGS - // .. START: MIO PROGRAMMING - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000700[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF8000700[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000700[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000700[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000700[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000700, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000704[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000704[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000704[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000704[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000704[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000704[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000704[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000704[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000704[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000704, 0x00003FFFU ,0x00001302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000708[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000708[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000708[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000708[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000708[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000708[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000708[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000708[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000708[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000708, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800070C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800070C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800070C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800070C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800070C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800070C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800070C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800070C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800070C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800070C, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000710[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000710[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000710[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000710[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000710[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000710[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000710[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000710[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000710[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000710, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000714[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000714[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000714[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000714[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000714[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000714[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000714[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000714[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000714[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000714, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000718[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000718[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000718[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000718[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000718[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000718[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000718[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000718[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000718[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000718, 0x00003FFFU ,0x00000302U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800071C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800071C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800071C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800071C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800071C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800071C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800071C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF800071C[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF800071C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800071C, 0x00003FFFU ,0x00000200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000720[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000720[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000720[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000720[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000720[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000720[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000720[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 0 - // .. ==> 0XF8000720[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000720[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000720, 0x00003FFFU ,0x00000202U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000724[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000724[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000724[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000724[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000724[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000724[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000724[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000724[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000724[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000724, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000728[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000728[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000728[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000728[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000728[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000728[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000728[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000728[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000728[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000728, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800072C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800072C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF800072C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800072C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800072C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF800072C[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF800072C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800072C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800072C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800072C, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000730[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000730[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000730[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000730[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000730[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000730[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000730[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000730[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000730[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000730, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000734[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000734[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000734[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000734[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000734[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000734[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000734[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000734[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000734[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000734, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000738[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000738[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF8000738[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000738[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000738[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 0 - // .. ==> 0XF8000738[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF8000738[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000738[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000738[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000738, 0x00003FFFU ,0x00001200U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800073C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. Speed = 1 - // .. ==> 0XF800073C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800073C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800073C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800073C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800073C, 0x00003F01U ,0x00001301U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000740[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000740[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000740[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000740[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000740[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000740[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000740[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000740[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000740[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000740, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000744[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000744[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000744[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000744[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000744[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000744[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000744[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000744[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000744[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000744, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000748[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000748[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000748[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000748[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000748[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000748[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000748[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000748[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000748[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000748, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800074C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF800074C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800074C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800074C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800074C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800074C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800074C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800074C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF800074C[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF800074C, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000750[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000750[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000750[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000750[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000750[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000750[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000750[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000750[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000750[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000750, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000754[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 1 - // .. ==> 0XF8000754[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000754[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000754[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000754[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000754[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000754[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000754[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 1 - // .. ==> 0XF8000754[13:13] = 0x00000001U - // .. ==> MASK : 0x00002000U VAL : 0x00002000U - // .. - EMIT_MASKWRITE(0XF8000754, 0x00003FFFU ,0x00003902U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000758[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000758[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000758[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000758[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000758[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000758[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000758[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000758[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000758[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000758, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800075C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800075C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800075C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800075C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800075C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800075C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800075C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800075C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800075C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800075C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000760[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000760[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000760[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000760[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000760[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000760[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000760[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000760[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000760[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000760, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000764[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000764[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000764[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000764[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000764[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000764[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000764[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000764[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000764[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000764, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000768[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF8000768[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF8000768[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF8000768[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000768[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000768[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF8000768[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF8000768[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000768[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000768, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800076C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 1 - // .. ==> 0XF800076C[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. L1_SEL = 0 - // .. ==> 0XF800076C[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF800076C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800076C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800076C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 4 - // .. ==> 0XF800076C[11:9] = 0x00000004U - // .. ==> MASK : 0x00000E00U VAL : 0x00000800U - // .. PULLUP = 1 - // .. ==> 0XF800076C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800076C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800076C, 0x00003FFFU ,0x00001903U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000770[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000770[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000770[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000770[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000770[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000770[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000770[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000770[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000770[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000770, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000774[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000774[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000774[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000774[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000774[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000774[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000774[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000774[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000774[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000774, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000778[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000778[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000778[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000778[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000778[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000778[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000778[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000778[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000778[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000778, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF800077C[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF800077C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800077C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800077C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800077C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800077C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800077C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800077C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800077C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800077C, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000780[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000780[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000780[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000780[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000780[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000780[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000780[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000780[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000780[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000780, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000784[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000784[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000784[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000784[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000784[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000784[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000784[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000784[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000784[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000784, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000788[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000788[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000788[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000788[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000788[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000788[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000788[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000788[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000788[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000788, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800078C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800078C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800078C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800078C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800078C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800078C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800078C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800078C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800078C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800078C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF8000790[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF8000790[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000790[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000790[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000790[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000790[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000790[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000790[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000790[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000790, 0x00003FFFU ,0x00001305U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000794[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000794[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000794[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000794[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000794[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000794[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000794[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000794[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000794[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000794, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF8000798[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF8000798[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF8000798[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF8000798[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF8000798[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF8000798[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF8000798[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF8000798[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF8000798[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000798, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF800079C[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF800079C[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 1 - // .. ==> 0XF800079C[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. L2_SEL = 0 - // .. ==> 0XF800079C[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 0 - // .. ==> 0XF800079C[7:5] = 0x00000000U - // .. ==> MASK : 0x000000E0U VAL : 0x00000000U - // .. Speed = 1 - // .. ==> 0XF800079C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF800079C[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF800079C[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF800079C[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF800079C, 0x00003FFFU ,0x00001304U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007A8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007A8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007A8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007A8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007A8[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007A8[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007A8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007A8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007A8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007A8, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007AC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007AC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007AC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007AC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007AC[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007AC[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007AC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007AC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007AC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007AC, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B0[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B0, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007B4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007B4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007B4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 1 - // .. ==> 0XF80007B4[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. IO_Type = 1 - // .. ==> 0XF80007B4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B4, 0x00003FFFU ,0x00001380U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007B8[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007B8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007B8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007B8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007B8[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007B8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007B8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007B8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007B8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007B8, 0x00003FFFU ,0x00001221U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007BC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007BC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007BC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007BC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 1 - // .. ==> 0XF80007BC[7:5] = 0x00000001U - // .. ==> MASK : 0x000000E0U VAL : 0x00000020U - // .. Speed = 0 - // .. ==> 0XF80007BC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007BC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007BC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007BC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007BC, 0x00003FFFU ,0x00001220U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C0[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C0, 0x00003FFFU ,0x000012E0U), - // .. TRI_ENABLE = 1 - // .. ==> 0XF80007C4[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. L0_SEL = 0 - // .. ==> 0XF80007C4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 7 - // .. ==> 0XF80007C4[7:5] = 0x00000007U - // .. ==> MASK : 0x000000E0U VAL : 0x000000E0U - // .. Speed = 0 - // .. ==> 0XF80007C4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C4, 0x00003FFFU ,0x000012E1U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007C8[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007C8[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007C8[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007C8[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007C8[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007C8[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007C8[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007C8[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007C8[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007C8, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007CC[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007CC[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007CC[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007CC[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 2 - // .. ==> 0XF80007CC[7:5] = 0x00000002U - // .. ==> MASK : 0x000000E0U VAL : 0x00000040U - // .. Speed = 0 - // .. ==> 0XF80007CC[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007CC[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007CC[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007CC[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007CC, 0x00003FFFU ,0x00001240U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D0[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D0[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D0[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D0[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D0[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D0[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D0[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D0[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D0[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D0, 0x00003FFFU ,0x00001280U), - // .. TRI_ENABLE = 0 - // .. ==> 0XF80007D4[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. L0_SEL = 0 - // .. ==> 0XF80007D4[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. L1_SEL = 0 - // .. ==> 0XF80007D4[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. L2_SEL = 0 - // .. ==> 0XF80007D4[4:3] = 0x00000000U - // .. ==> MASK : 0x00000018U VAL : 0x00000000U - // .. L3_SEL = 4 - // .. ==> 0XF80007D4[7:5] = 0x00000004U - // .. ==> MASK : 0x000000E0U VAL : 0x00000080U - // .. Speed = 0 - // .. ==> 0XF80007D4[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. IO_Type = 1 - // .. ==> 0XF80007D4[11:9] = 0x00000001U - // .. ==> MASK : 0x00000E00U VAL : 0x00000200U - // .. PULLUP = 1 - // .. ==> 0XF80007D4[12:12] = 0x00000001U - // .. ==> MASK : 0x00001000U VAL : 0x00001000U - // .. DisableRcvr = 0 - // .. ==> 0XF80007D4[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF80007D4, 0x00003FFFU ,0x00001280U), - // .. SDIO0_WP_SEL = 15 - // .. ==> 0XF8000830[5:0] = 0x0000000FU - // .. ==> MASK : 0x0000003FU VAL : 0x0000000FU - // .. SDIO0_CD_SEL = 0 - // .. ==> 0XF8000830[21:16] = 0x00000000U - // .. ==> MASK : 0x003F0000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000830, 0x003F003FU ,0x0000000FU), - // .. FINISH: MIO PROGRAMMING - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_peripherals_init_data_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B48[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B48, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B4C[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B4C, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B50[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B50, 0x00000180U ,0x00000180U), - // .. IBUF_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[7:7] = 0x00000001U - // .. ==> MASK : 0x00000080U VAL : 0x00000080U - // .. TERM_DISABLE_MODE = 0x1 - // .. ==> 0XF8000B54[8:8] = 0x00000001U - // .. ==> MASK : 0x00000100U VAL : 0x00000100U - // .. - EMIT_MASKWRITE(0XF8000B54, 0x00000180U ,0x00000180U), - // .. FINISH: DDR TERM/IBUF_DISABLE_MODE SETTINGS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // .. START: SRAM/NOR SET OPMODE - // .. FINISH: SRAM/NOR SET OPMODE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0XC5ACCE55 - // .. ==> 0XF8803FB0[31:0] = 0xC5ACCE55U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: TRACE CURRENT PORT SIZE - // .. a = 2 - // .. ==> 0XF8803004[31:0] = 0x00000002U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000002U - // .. - EMIT_MASKWRITE(0XF8803004, 0xFFFFFFFFU ,0x00000002U), - // .. FINISH: TRACE CURRENT PORT SIZE - // .. START: TRACE LOCK ACCESS REGISTER - // .. a = 0X0 - // .. ==> 0XF8803FB0[31:0] = 0x00000000U - // .. ==> MASK : 0xFFFFFFFFU VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8803FB0, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: TRACE LOCK ACCESS REGISTER - // .. START: UART REGISTERS - // .. BDIV = 0x6 - // .. ==> 0XE0001034[7:0] = 0x00000006U - // .. ==> MASK : 0x000000FFU VAL : 0x00000006U - // .. - EMIT_MASKWRITE(0XE0001034, 0x000000FFU ,0x00000006U), - // .. CD = 0x3e - // .. ==> 0XE0001018[15:0] = 0x0000003EU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000003EU - // .. - EMIT_MASKWRITE(0XE0001018, 0x0000FFFFU ,0x0000003EU), - // .. STPBRK = 0x0 - // .. ==> 0XE0001000[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. STTBRK = 0x0 - // .. ==> 0XE0001000[7:7] = 0x00000000U - // .. ==> MASK : 0x00000080U VAL : 0x00000000U - // .. RSTTO = 0x0 - // .. ==> 0XE0001000[6:6] = 0x00000000U - // .. ==> MASK : 0x00000040U VAL : 0x00000000U - // .. TXDIS = 0x0 - // .. ==> 0XE0001000[5:5] = 0x00000000U - // .. ==> MASK : 0x00000020U VAL : 0x00000000U - // .. TXEN = 0x1 - // .. ==> 0XE0001000[4:4] = 0x00000001U - // .. ==> MASK : 0x00000010U VAL : 0x00000010U - // .. RXDIS = 0x0 - // .. ==> 0XE0001000[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. RXEN = 0x1 - // .. ==> 0XE0001000[2:2] = 0x00000001U - // .. ==> MASK : 0x00000004U VAL : 0x00000004U - // .. TXRES = 0x1 - // .. ==> 0XE0001000[1:1] = 0x00000001U - // .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. RXRES = 0x1 - // .. ==> 0XE0001000[0:0] = 0x00000001U - // .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. - EMIT_MASKWRITE(0XE0001000, 0x000001FFU ,0x00000017U), - // .. IRMODE = 0x0 - // .. ==> 0XE0001004[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. UCLKEN = 0x0 - // .. ==> 0XE0001004[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. CHMODE = 0x0 - // .. ==> 0XE0001004[9:8] = 0x00000000U - // .. ==> MASK : 0x00000300U VAL : 0x00000000U - // .. NBSTOP = 0x0 - // .. ==> 0XE0001004[7:6] = 0x00000000U - // .. ==> MASK : 0x000000C0U VAL : 0x00000000U - // .. PAR = 0x4 - // .. ==> 0XE0001004[5:3] = 0x00000004U - // .. ==> MASK : 0x00000038U VAL : 0x00000020U - // .. CHRL = 0x0 - // .. ==> 0XE0001004[2:1] = 0x00000000U - // .. ==> MASK : 0x00000006U VAL : 0x00000000U - // .. CLKS = 0x0 - // .. ==> 0XE0001004[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XE0001004, 0x00000FFFU ,0x00000020U), - // .. FINISH: UART REGISTERS - // .. START: QSPI REGISTERS - // .. Holdb_dr = 1 - // .. ==> 0XE000D000[19:19] = 0x00000001U - // .. ==> MASK : 0x00080000U VAL : 0x00080000U - // .. - EMIT_MASKWRITE(0XE000D000, 0x00080000U ,0x00080000U), - // .. FINISH: QSPI REGISTERS - // .. START: PL POWER ON RESET REGISTERS - // .. PCFG_POR_CNT_4K = 0 - // .. ==> 0XF8007000[29:29] = 0x00000000U - // .. ==> MASK : 0x20000000U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8007000, 0x20000000U ,0x00000000U), - // .. FINISH: PL POWER ON RESET REGISTERS - // .. START: SMC TIMING CALCULATION REGISTER UPDATE - // .. .. START: NAND SET CYCLE - // .. .. FINISH: NAND SET CYCLE - // .. .. START: OPMODE - // .. .. FINISH: OPMODE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: SRAM/NOR CS0 SET CYCLE - // .. .. FINISH: SRAM/NOR CS0 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS0 BASE ADDRESS - // .. .. FINISH: NOR CS0 BASE ADDRESS - // .. .. START: SRAM/NOR CS1 SET CYCLE - // .. .. FINISH: SRAM/NOR CS1 SET CYCLE - // .. .. START: DIRECT COMMAND - // .. .. FINISH: DIRECT COMMAND - // .. .. START: NOR CS1 BASE ADDRESS - // .. .. FINISH: NOR CS1 BASE ADDRESS - // .. .. START: USB RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xff7f - // .. .. .. ==> 0XE000A000[31:16] = 0x0000FF7FU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xFF7F0000U - // .. .. .. DATA_0_LSW = 0x80 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000080U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000080U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xFF7F0080U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: USB RESET - // .. .. START: ENET RESET - // .. .. .. START: DIR MODE BANK 0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE BANK 0 - // .. .. .. START: DIR MODE BANK 1 - // .. .. .. FINISH: DIR MODE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE BANK 0 - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE BANK 0 - // .. .. .. START: OUTPUT ENABLE BANK 1 - // .. .. .. FINISH: OUTPUT ENABLE BANK 1 - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xf7ff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000F7FFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xF7FF0000U - // .. .. .. DATA_0_LSW = 0x800 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000800U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000800U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xF7FF0800U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: ENET RESET - // .. .. START: I2C RESET - // .. .. .. START: DIR MODE GPIO BANK0 - // .. .. .. DIRECTION_0 = 0x2880 - // .. .. .. ==> 0XE000A204[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A204, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: DIR MODE GPIO BANK0 - // .. .. .. START: DIR MODE GPIO BANK1 - // .. .. .. FINISH: DIR MODE GPIO BANK1 - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. START: OUTPUT ENABLE - // .. .. .. OP_ENABLE_0 = 0x2880 - // .. .. .. ==> 0XE000A208[31:0] = 0x00002880U - // .. .. .. ==> MASK : 0xFFFFFFFFU VAL : 0x00002880U - // .. .. .. - EMIT_MASKWRITE(0XE000A208, 0xFFFFFFFFU ,0x00002880U), - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: OUTPUT ENABLE - // .. .. .. FINISH: OUTPUT ENABLE - // .. .. .. START: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x0 - // .. .. .. ==> 0XE000A000[15:0] = 0x00000000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00000000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF0000U), - // .. .. .. FINISH: MASK_DATA_0_LSW LOW BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW LOW BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW LOW BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW LOW BANK [53:48] - // .. .. .. START: ADD 1 MS DELAY - // .. .. .. - EMIT_MASKDELAY(0XF8F00200, 1), - // .. .. .. FINISH: ADD 1 MS DELAY - // .. .. .. START: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. MASK_0_LSW = 0xdfff - // .. .. .. ==> 0XE000A000[31:16] = 0x0000DFFFU - // .. .. .. ==> MASK : 0xFFFF0000U VAL : 0xDFFF0000U - // .. .. .. DATA_0_LSW = 0x2000 - // .. .. .. ==> 0XE000A000[15:0] = 0x00002000U - // .. .. .. ==> MASK : 0x0000FFFFU VAL : 0x00002000U - // .. .. .. - EMIT_MASKWRITE(0XE000A000, 0xFFFFFFFFU ,0xDFFF2000U), - // .. .. .. FINISH: MASK_DATA_0_LSW HIGH BANK [15:0] - // .. .. .. START: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. FINISH: MASK_DATA_0_MSW HIGH BANK [31:16] - // .. .. .. START: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. FINISH: MASK_DATA_1_LSW HIGH BANK [47:32] - // .. .. .. START: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. .. FINISH: MASK_DATA_1_MSW HIGH BANK [53:48] - // .. .. FINISH: I2C RESET - // .. FINISH: SMC TIMING CALCULATION REGISTER UPDATE - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_post_config_1_0[] = { - // START: top - // .. START: SLCR SETTINGS - // .. UNLOCK_KEY = 0XDF0D - // .. ==> 0XF8000008[15:0] = 0x0000DF0DU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000DF0DU - // .. - EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU), - // .. FINISH: SLCR SETTINGS - // .. START: ENABLING LEVEL SHIFTER - // .. USER_INP_ICT_EN_0 = 3 - // .. ==> 0XF8000900[1:0] = 0x00000003U - // .. ==> MASK : 0x00000003U VAL : 0x00000003U - // .. USER_INP_ICT_EN_1 = 3 - // .. ==> 0XF8000900[3:2] = 0x00000003U - // .. ==> MASK : 0x0000000CU VAL : 0x0000000CU - // .. - EMIT_MASKWRITE(0XF8000900, 0x0000000FU ,0x0000000FU), - // .. FINISH: ENABLING LEVEL SHIFTER - // .. START: FPGA RESETS TO 0 - // .. reserved_3 = 0 - // .. ==> 0XF8000240[31:25] = 0x00000000U - // .. ==> MASK : 0xFE000000U VAL : 0x00000000U - // .. FPGA_ACP_RST = 0 - // .. ==> 0XF8000240[24:24] = 0x00000000U - // .. ==> MASK : 0x01000000U VAL : 0x00000000U - // .. FPGA_AXDS3_RST = 0 - // .. ==> 0XF8000240[23:23] = 0x00000000U - // .. ==> MASK : 0x00800000U VAL : 0x00000000U - // .. FPGA_AXDS2_RST = 0 - // .. ==> 0XF8000240[22:22] = 0x00000000U - // .. ==> MASK : 0x00400000U VAL : 0x00000000U - // .. FPGA_AXDS1_RST = 0 - // .. ==> 0XF8000240[21:21] = 0x00000000U - // .. ==> MASK : 0x00200000U VAL : 0x00000000U - // .. FPGA_AXDS0_RST = 0 - // .. ==> 0XF8000240[20:20] = 0x00000000U - // .. ==> MASK : 0x00100000U VAL : 0x00000000U - // .. reserved_2 = 0 - // .. ==> 0XF8000240[19:18] = 0x00000000U - // .. ==> MASK : 0x000C0000U VAL : 0x00000000U - // .. FSSW1_FPGA_RST = 0 - // .. ==> 0XF8000240[17:17] = 0x00000000U - // .. ==> MASK : 0x00020000U VAL : 0x00000000U - // .. FSSW0_FPGA_RST = 0 - // .. ==> 0XF8000240[16:16] = 0x00000000U - // .. ==> MASK : 0x00010000U VAL : 0x00000000U - // .. reserved_1 = 0 - // .. ==> 0XF8000240[15:14] = 0x00000000U - // .. ==> MASK : 0x0000C000U VAL : 0x00000000U - // .. FPGA_FMSW1_RST = 0 - // .. ==> 0XF8000240[13:13] = 0x00000000U - // .. ==> MASK : 0x00002000U VAL : 0x00000000U - // .. FPGA_FMSW0_RST = 0 - // .. ==> 0XF8000240[12:12] = 0x00000000U - // .. ==> MASK : 0x00001000U VAL : 0x00000000U - // .. FPGA_DMA3_RST = 0 - // .. ==> 0XF8000240[11:11] = 0x00000000U - // .. ==> MASK : 0x00000800U VAL : 0x00000000U - // .. FPGA_DMA2_RST = 0 - // .. ==> 0XF8000240[10:10] = 0x00000000U - // .. ==> MASK : 0x00000400U VAL : 0x00000000U - // .. FPGA_DMA1_RST = 0 - // .. ==> 0XF8000240[9:9] = 0x00000000U - // .. ==> MASK : 0x00000200U VAL : 0x00000000U - // .. FPGA_DMA0_RST = 0 - // .. ==> 0XF8000240[8:8] = 0x00000000U - // .. ==> MASK : 0x00000100U VAL : 0x00000000U - // .. reserved = 0 - // .. ==> 0XF8000240[7:4] = 0x00000000U - // .. ==> MASK : 0x000000F0U VAL : 0x00000000U - // .. FPGA3_OUT_RST = 0 - // .. ==> 0XF8000240[3:3] = 0x00000000U - // .. ==> MASK : 0x00000008U VAL : 0x00000000U - // .. FPGA2_OUT_RST = 0 - // .. ==> 0XF8000240[2:2] = 0x00000000U - // .. ==> MASK : 0x00000004U VAL : 0x00000000U - // .. FPGA1_OUT_RST = 0 - // .. ==> 0XF8000240[1:1] = 0x00000000U - // .. ==> MASK : 0x00000002U VAL : 0x00000000U - // .. FPGA0_OUT_RST = 0 - // .. ==> 0XF8000240[0:0] = 0x00000000U - // .. ==> MASK : 0x00000001U VAL : 0x00000000U - // .. - EMIT_MASKWRITE(0XF8000240, 0xFFFFFFFFU ,0x00000000U), - // .. FINISH: FPGA RESETS TO 0 - // .. START: AFI REGISTERS - // .. .. START: AFI0 REGISTERS - // .. .. FINISH: AFI0 REGISTERS - // .. .. START: AFI1 REGISTERS - // .. .. FINISH: AFI1 REGISTERS - // .. .. START: AFI2 REGISTERS - // .. .. FINISH: AFI2 REGISTERS - // .. .. START: AFI3 REGISTERS - // .. .. FINISH: AFI3 REGISTERS - // .. FINISH: AFI REGISTERS - // .. START: LOCK IT BACK - // .. LOCK_KEY = 0X767B - // .. ==> 0XF8000004[15:0] = 0x0000767BU - // .. ==> MASK : 0x0000FFFFU VAL : 0x0000767BU - // .. - EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU), - // .. FINISH: LOCK IT BACK - // FINISH: top - // - EMIT_EXIT(), - - // -}; - -unsigned long ps7_debug_1_0[] = { - // START: top - // .. START: CROSS TRIGGER CONFIGURATIONS - // .. .. START: UNLOCKING CTI REGISTERS - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8898FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8898FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8899FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8899FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. KEY = 0XC5ACCE55 - // .. .. ==> 0XF8809FB0[31:0] = 0xC5ACCE55U - // .. .. ==> MASK : 0xFFFFFFFFU VAL : 0xC5ACCE55U - // .. .. - EMIT_MASKWRITE(0XF8809FB0, 0xFFFFFFFFU ,0xC5ACCE55U), - // .. .. FINISH: UNLOCKING CTI REGISTERS - // .. .. START: ENABLING CTI MODULES AND CHANNELS - // .. .. FINISH: ENABLING CTI MODULES AND CHANNELS - // .. .. START: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. .. FINISH: MAPPING CPU0, CPU1 AND FTM EVENTS TO CTM CHANNELS - // .. FINISH: CROSS TRIGGER CONFIGURATIONS - // FINISH: top - // - EMIT_EXIT(), - - // -}; - - -#include "xil_io.h" -#define PS7_MASK_POLL_TIME 100000000 - -char* -getPS7MessageInfo(unsigned key) { - - char* err_msg = ""; - switch (key) { - case PS7_INIT_SUCCESS: err_msg = "PS7 initialization successful"; break; - case PS7_INIT_CORRUPT: err_msg = "PS7 init Data Corrupted"; break; - case PS7_INIT_TIMEOUT: err_msg = "PS7 init mask poll timeout"; break; - case PS7_POLL_FAILED_DDR_INIT: err_msg = "Mask Poll failed for DDR Init"; break; - case PS7_POLL_FAILED_DMA: err_msg = "Mask Poll failed for PLL Init"; break; - case PS7_POLL_FAILED_PLL: err_msg = "Mask Poll failed for DMA done bit"; break; - default: err_msg = "Undefined error status"; break; - } - - return err_msg; -} - -unsigned long -ps7GetSiliconVersion () { - // Read PS version from MCTRL register [31:28] - unsigned long mask = 0xF0000000; - unsigned long *addr = (unsigned long*) 0XF8007080; - unsigned long ps_version = (*addr & mask) >> 28; - return ps_version; -} - -void mask_write (unsigned long add , unsigned long mask, unsigned long val ) { - unsigned long *addr = (unsigned long*) add; - *addr = ( val & mask ) | ( *addr & ~mask); - //xil_printf("MaskWrite : 0x%x--> 0x%x \n \r" ,add, *addr); -} - - -int mask_poll(unsigned long add , unsigned long mask ) { - volatile unsigned long *addr = (volatile unsigned long*) add; - int i = 0; - while (!(*addr & mask)) { - if (i == PS7_MASK_POLL_TIME) { - return -1; - } - i++; - } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); -} - -unsigned long mask_read(unsigned long add , unsigned long mask ) { - unsigned long *addr = (unsigned long*) add; - unsigned long val = (*addr & mask); - //xil_printf("MaskRead : 0x%x --> 0x%x \n \r" , add, val); - return val; -} - - - -int -ps7_config(unsigned long * ps7_config_init) -{ - unsigned long *ptr = ps7_config_init; - - unsigned long opcode; // current instruction .. - unsigned long args[16]; // no opcode has so many args ... - int numargs; // number of arguments of this instruction - int j; // general purpose index - - volatile unsigned long *addr; // some variable to make code readable - unsigned long val,mask; // some variable to make code readable - - int finish = -1 ; // loop while this is negative ! - int i = 0; // Timeout variable - - while( finish < 0 ) { - numargs = ptr[0] & 0xF; - opcode = ptr[0] >> 4; - - for( j = 0 ; j < numargs ; j ++ ) - args[j] = ptr[j+1]; - ptr += numargs + 1; - - - switch ( opcode ) { - - case OPCODE_EXIT: - finish = PS7_INIT_SUCCESS; - break; - - case OPCODE_CLEAR: - addr = (unsigned long*) args[0]; - *addr = 0; - break; - - case OPCODE_WRITE: - addr = (unsigned long*) args[0]; - val = args[1]; - *addr = val; - break; - - case OPCODE_MASKWRITE: - addr = (unsigned long*) args[0]; - mask = args[1]; - val = args[2]; - *addr = ( val & mask ) | ( *addr & ~mask); - break; - - case OPCODE_MASKPOLL: - addr = (unsigned long*) args[0]; - mask = args[1]; - i = 0; - while (!(*addr & mask)) { - if (i == PS7_MASK_POLL_TIME) { - finish = PS7_INIT_TIMEOUT; - break; - } - i++; - } - break; - case OPCODE_MASKDELAY: - addr = (unsigned long*) args[0]; - mask = args[1]; - int delay = get_number_of_cycles_for_delay(mask); - perf_reset_and_start_timer(); - while ((*addr < delay)) { - } - break; - default: - finish = PS7_INIT_CORRUPT; - break; - } - } - return finish; -} - -unsigned long *ps7_mio_init_data = ps7_mio_init_data_3_0; -unsigned long *ps7_pll_init_data = ps7_pll_init_data_3_0; -unsigned long *ps7_clock_init_data = ps7_clock_init_data_3_0; -unsigned long *ps7_ddr_init_data = ps7_ddr_init_data_3_0; -unsigned long *ps7_peripherals_init_data = ps7_peripherals_init_data_3_0; - -int -ps7_post_config() -{ - // Get the PS_VERSION on run time - unsigned long si_ver = ps7GetSiliconVersion (); - int ret = -1; - if (si_ver == PCW_SILICON_VERSION_1) { - ret = ps7_config (ps7_post_config_1_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else if (si_ver == PCW_SILICON_VERSION_2) { - ret = ps7_config (ps7_post_config_2_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else { - ret = ps7_config (ps7_post_config_3_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } - return PS7_INIT_SUCCESS; -} - -int -ps7_debug() -{ - // Get the PS_VERSION on run time - unsigned long si_ver = ps7GetSiliconVersion (); - int ret = -1; - if (si_ver == PCW_SILICON_VERSION_1) { - ret = ps7_config (ps7_debug_1_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else if (si_ver == PCW_SILICON_VERSION_2) { - ret = ps7_config (ps7_debug_2_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } else { - ret = ps7_config (ps7_debug_3_0); - if (ret != PS7_INIT_SUCCESS) return ret; - } - return PS7_INIT_SUCCESS; -} - -int -ps7_init() -{ - // Get the PS_VERSION on run time - unsigned long si_ver = ps7GetSiliconVersion (); - int ret; - //int pcw_ver = 0; - - if (si_ver == PCW_SILICON_VERSION_1) { - ps7_mio_init_data = ps7_mio_init_data_1_0; - ps7_pll_init_data = ps7_pll_init_data_1_0; - ps7_clock_init_data = ps7_clock_init_data_1_0; - ps7_ddr_init_data = ps7_ddr_init_data_1_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_1_0; - //pcw_ver = 1; - - } else if (si_ver == PCW_SILICON_VERSION_2) { - ps7_mio_init_data = ps7_mio_init_data_2_0; - ps7_pll_init_data = ps7_pll_init_data_2_0; - ps7_clock_init_data = ps7_clock_init_data_2_0; - ps7_ddr_init_data = ps7_ddr_init_data_2_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_2_0; - //pcw_ver = 2; - - } else { - ps7_mio_init_data = ps7_mio_init_data_3_0; - ps7_pll_init_data = ps7_pll_init_data_3_0; - ps7_clock_init_data = ps7_clock_init_data_3_0; - ps7_ddr_init_data = ps7_ddr_init_data_3_0; - ps7_peripherals_init_data = ps7_peripherals_init_data_3_0; - //pcw_ver = 3; - } - - // MIO init - ret = ps7_config (ps7_mio_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // PLL init - ret = ps7_config (ps7_pll_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // Clock init - ret = ps7_config (ps7_clock_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - // DDR init - ret = ps7_config (ps7_ddr_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - - - - // Peripherals init - ret = ps7_config (ps7_peripherals_init_data); - if (ret != PS7_INIT_SUCCESS) return ret; - //xil_printf ("\n PCW Silicon Version : %d.0", pcw_ver); - return PS7_INIT_SUCCESS; -} - - - - -/* For delay calculation using global timer */ - -/* start timer */ - void perf_start_clock(void) -{ - *(volatile unsigned int*)SCU_GLOBAL_TIMER_CONTROL = ((1 << 0) | // Timer Enable - (1 << 3) | // Auto-increment - (0 << 8) // Pre-scale - ); -} - -/* stop timer and reset timer count regs */ - void perf_reset_clock(void) -{ - perf_disable_clock(); - *(volatile unsigned int*)SCU_GLOBAL_TIMER_COUNT_L32 = 0; - *(volatile unsigned int*)SCU_GLOBAL_TIMER_COUNT_U32 = 0; -} - -/* Compute mask for given delay in miliseconds*/ -int get_number_of_cycles_for_delay(unsigned int delay) -{ - // GTC is always clocked at 1/2 of the CPU frequency (CPU_3x2x) - return (APU_FREQ*delay/(2*1000)); - -} - -/* stop timer */ - void perf_disable_clock(void) -{ - *(volatile unsigned int*)SCU_GLOBAL_TIMER_CONTROL = 0; -} - -void perf_reset_and_start_timer() -{ - perf_reset_clock(); - perf_start_clock(); -} - - - - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init_gpl.h b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init_gpl.h deleted file mode 100755 index d6d19a0c..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/ps7_init_gpl.h +++ /dev/null @@ -1,132 +0,0 @@ - -/****************************************************************************** -* -* (c) Copyright 2010-2014 Xilinx, Inc. All rights reserved. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License along -* with this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* -* "#include "ps7_init_gpl.h" -* -* -*******************************************************************************/ -/****************************************************************************/ -/** -* -* @file ps7_init.h -* -* This file can be included in FSBL code -* to get prototype of ps7_init() function -* and error codes -* -*****************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - - -//typedef unsigned int u32; - - -/** do we need to make this name more unique ? **/ -//extern u32 ps7_init_data[]; -extern unsigned long * ps7_ddr_init_data; -extern unsigned long * ps7_mio_init_data; -extern unsigned long * ps7_pll_init_data; -extern unsigned long * ps7_clock_init_data; -extern unsigned long * ps7_peripherals_init_data; - - - -#define OPCODE_EXIT 0U -#define OPCODE_CLEAR 1U -#define OPCODE_WRITE 2U -#define OPCODE_MASKWRITE 3U -#define OPCODE_MASKPOLL 4U -#define OPCODE_MASKDELAY 5U -#define NEW_PS7_ERR_CODE 1 - -/* Encode number of arguments in last nibble */ -#define EMIT_EXIT() ( (OPCODE_EXIT << 4 ) | 0 ) -#define EMIT_CLEAR(addr) ( (OPCODE_CLEAR << 4 ) | 1 ) , addr -#define EMIT_WRITE(addr,val) ( (OPCODE_WRITE << 4 ) | 2 ) , addr, val -#define EMIT_MASKWRITE(addr,mask,val) ( (OPCODE_MASKWRITE << 4 ) | 3 ) , addr, mask, val -#define EMIT_MASKPOLL(addr,mask) ( (OPCODE_MASKPOLL << 4 ) | 2 ) , addr, mask -#define EMIT_MASKDELAY(addr,mask) ( (OPCODE_MASKDELAY << 4 ) | 2 ) , addr, mask - -/* Returns codes of PS7_Init */ -#define PS7_INIT_SUCCESS (0) // 0 is success in good old C -#define PS7_INIT_CORRUPT (1) // 1 the data is corrupted, and slcr reg are in corrupted state now -#define PS7_INIT_TIMEOUT (2) // 2 when a poll operation timed out -#define PS7_POLL_FAILED_DDR_INIT (3) // 3 when a poll operation timed out for ddr init -#define PS7_POLL_FAILED_DMA (4) // 4 when a poll operation timed out for dma done bit -#define PS7_POLL_FAILED_PLL (5) // 5 when a poll operation timed out for pll sequence init - - -/* Silicon Versions */ -#define PCW_SILICON_VERSION_1 0 -#define PCW_SILICON_VERSION_2 1 -#define PCW_SILICON_VERSION_3 2 - -/* This flag to be used by FSBL to check whether ps7_post_config() proc exixts */ -#define PS7_POST_CONFIG - -/* Freq of all peripherals */ - -#define APU_FREQ 666666687 -#define DDR_FREQ 533333374 -#define DCI_FREQ 10158731 -#define QSPI_FREQ 190476196 -#define SMC_FREQ 10000000 -#define ENET0_FREQ 25000000 -#define ENET1_FREQ 10000000 -#define USB0_FREQ 60000000 -#define USB1_FREQ 60000000 -#define SDIO_FREQ 50000000 -#define UART_FREQ 50000000 -#define SPI_FREQ 10000000 -#define I2C_FREQ 111111115 -#define WDT_FREQ 111111115 -#define TTC_FREQ 50000000 -#define CAN_FREQ 23809523 -#define PCAP_FREQ 200000000 -#define TPIU_FREQ 10000000 -#define FPGA0_FREQ 100000000 -#define FPGA1_FREQ 50000000 -#define FPGA2_FREQ 50000000 -#define FPGA3_FREQ 50000000 - - -/* For delay calculation using global registers*/ -#define SCU_GLOBAL_TIMER_COUNT_L32 0xF8F00200 -#define SCU_GLOBAL_TIMER_COUNT_U32 0xF8F00204 -#define SCU_GLOBAL_TIMER_CONTROL 0xF8F00208 -#define SCU_GLOBAL_TIMER_AUTO_INC 0xF8F00218 - -int ps7_config( unsigned long*); -int ps7_init(); -int ps7_post_config(); -int ps7_debug(); -char* getPS7MessageInfo(unsigned key); - -void perf_start_clock(void); -void perf_disable_clock(void); -void perf_reset_clock(void); -void perf_reset_and_start_timer(); -int get_number_of_cycles_for_delay(unsigned int delay); -#ifdef __cplusplus -} -#endif - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/sysdef.xml b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/sysdef.xml deleted file mode 100755 index 5905e808..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/sysdef.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/system.hdf b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/system.hdf deleted file mode 100755 index 0dfed10713ff2335435b3313681140dec8ddf255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1450087 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

GOX6@e&g*AA-mY_-N91Ayj@4in> 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 z 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%0AVe-sFvcyr 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 z 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ν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 <7hbb? z*6NSpJg4yPR85zq2F6YJe@IpV}`G?%cnN3w)XPe$(B5<-UC+TvhdiV_2PXJ-h)9JIyXVyT1dRT67yy+RNVEA|@j#t~EO6F`iZBb+BAZ#r6UEpk0;i5h#p;*Ve zC9y`(V5|=sz8hwb_K>&Arz>evd%Bjg)SwJY)2D-Rv8iB}5=SiKo zLJo0^Eo2}5#a=8^1ZLNdtor+t2;X38H~zc4g(bPHoqWAsc?{k;xb({h1YTfb9Jj=Y zn{<8{IHgq;Z&l3Z8Z*S8O<4cVCBhH_JnZ4dp%l6pQWqxKl2&3oMauzx!d5 z%ZlpIYPH;s)2-o$6Mfy*)2_R_hZC`P&A|Hck>O>v0r?=YF88=eds*Q)t^w4rF^#-N zMii1ob*Qc%985Fdx}DbN%mBDjZl&3>=hz;w08p~KDei#%xQxujAycLeeD~*^=k$dw zdo-dVS9qwl%b4w(Dz_3voAW74@!$zV98%?)tA zOaX!^jWt-%aZ?Vr`lB8Y$8VZ}DNY&QTkOWd_rpLBH^(ube%Q;;lI4&AryMy6(e&(%vEUx(tY5qN)Yieuvk1+?g`r9~pE3fi^ z32(0nlb-*YI6z=E2s6?0^sTOG-sU>TgKZB!3h}EMS;-B7c+ri2W(Qkno<9ON3su+d zS)M1BS|~poDCv39Jo@B{)IH@vv-4-a$N{3oA9B`vL##p#udX%W6;b`s9HXq)A4xI(> zyvxPszBkB6L5E(4C@?y=B{sKGXQ$v6@dXRlp<0->ksT^?B}+X2khuBwzo4BB@GGdF zhy74=Vu$Ne$@Xc{v>%aZt>!<$Psu$ej;FjD=+W%c`#Roz9BCtNpfkJIlv!oOs zx?bGdZ7*PiSRBdNnlPkn;z?W)dWF9N;Bes3^{wstaXeR3e%C}k4_6zj=&t?W9sJr3 zfUsC{>;3-48vTE^&jwfg`XNLz>i_Sycu#Z#Ce2Q8#{J)+u9(NL0MVMuiKg&Jrp<}+ zxqlOm&kft$?}Ajtr-gU9uYCSbU;p2J|L^|)9fAM62;5AND;#F}fOIVXZ?GYmg$cFtT^ zw&gXBFWQXi?#4JemM`p+Y{09;%yU|tTptyi&8y>2txIq8e;eE_@Q!!&G1{3alh6C0tN-&sSK`T?$+e*uTvWJ+YC z;b(qmhQl{kiKJkurW^pjSr{?N>1GTafbe47FR4zR+D2fc4iVXBQWeYX$X^h-_Jop3y2a!t5{1C7^e zxNEt3@GlmO(%TI!W{9&1)`~y415!j`Mo@QYd2P`JFH4anX_lRl=Rg?*U<))eDC#%H ztT`0g6gWr8=2`~QER9X@L-0_H?6oE2u*i(%^ZeJJ>WhXh222%t9dsY-lC+UNwP5WC z^mPXUSS{FcbcmGK+GdWrgKYHft3fhT?PKWGkbN>8?weE52zX8aPMC{T*$Gfp(R6G7 zmux16ii%sB*iLH0yTX{2ups{AmKMlOY-b68BppcDEKjIUjo#Z4qHLY+$8+~W^gp+& zJ`x6HC8L!0k>6cn$g*-|D-&ylq;p^JApb5|u7szG47zkJkJpV$*W-FqM5n-SlV;?y zy7^dPEHRyr#8JMK5x1LY#pBn5=0b{fZIbb#m#(QKHO%y51C9qdJf=J73BkzqeGv}# zbXG1?aQ-Iq=ndIL%O%<7G+FS~>+`(wXi{jA?zqxuhDq=T*`$8!n-fZIH|NAit2#6{h;ZvxFA$%a;B`edRpow_vr zuU$t!MK{;h3B5E91=i^B5-Jv*aY}=yzxcxpkQY zwQGvf#qA7aOxn|jERTE2haeoXIo(V)e$vD5z4Y=Hk`K+~Bg%iuUKa%748!^S3rk!h z3Tho4WD@m&(1KrN`R;AO5~$(3C(#p9ZhH<{f!hZkXuP?(OAZvdTGv=dmR?MAJlmq> zgemJFv3Fv8XSx6}%_hfUivhy%-$B4Ck5^ zUow?3V?4?z*i-8MoB1#R+G3h)RANk>YG=fb0t@JRy!c>b=r!gLry|#{u#<(3gSnS< zw19;%5DK-ZvytSNBj5j23&Dcmc$YkpQ757EX$adfU*pFLvI3Xd`2DL)9i(JZD8Fon zBE)u+-cBastA_L7^x<#3AFC22ye|{}^!{FN&ol>*RJ)Ju5;(0N;7_M~6RwF5lrS)q z#u13M%~FwP^(9wrH+pTGXw;sBZbC4aGC6wx0Sa4FqKOEo4oeIRsjW`2uNHPEdi6=M zr&i}Wi|J^5=-mjdXrB#X*is)muYFX=WJkd@uhGYKYzN_IQE=?0+f@#nmr83Z)b2{OFUc zaVrws<1+T6QYuZOi#XuS?sKkGK_Y4FWym6D9k7wY#_}x(YHq9uM~u~XuE_Gu3o8*z zOTMHx*{A56!)CToSeGwl76m93I2b1HblWcEhlCSr^6Jhm_+m1o4pu~6mioKiU3~wz zo;mrVDuOh>?S+i4HNVYkU1s~~@~m1c$jsN@whlrTCUoo}i`**FbRUFwOgvO@)>jJX zFAwgHUNJjWq<)AcJB>_Msk;W@BD{04&Gos+>e4Iu8i}xzi){IBsT)iv8f9GFN$HG^ zR&}XZcD8(Uq=Pr08vx3r)#ueLbJ&08oo3vo#Q_qeq(++q@4oYW#4W`Y|6@T0T?AzE z`>9bB$2CW9oy0o2E~LJK4(?386A7=U#f)l-lk$w)O&;SIrPrjxu=c_k18@`Sk=pMN zyouon+wC%aw3?H~Mv{wjS4?Iyfnd%$&q2 zZkoS@X9}C(1VW{jvIXhOoTVFSaiRS0@wYj1FlT!J zM^B(bhbiz4SH=qnnj8do&@5`bH#B9CH8}VSxqO5qnv#$FFDq#WCTX|a&+6d@b(-ob z0<2o!Yi;Dr#3EA=Jac(fLz)_5VO=>H>7%F;Tq4ye}c*kkqnuoRbJpDxF6TT_tJI;b{>Uh0N_X3&8MPw?v7XTtN z0k(p5nVd5{f&R!U_DK^;)_1k9W^U{Nw1jPdel*6fAMiH5N4!!xCW@0y!9kBa-|{n) z{kkgfGET~bzu6_penF6jDQSglA^s6fxdKyrPALEvI>xDYPl{D6P_AY^H0qG+Y@t!8 z^j`hDdc0Cy=navpkKpHoWVHkrp~L?B9k_pg)bUckkSmCEzQ7SE!a^R??C~Tm+znQd{n4cF6q2kj=p2Pe zLcV9NeT+wkYt>4wV()dQ57MkDxL#HQSp_vy^37}ND%rovPwR+<>S}#wHNEi!t@vC3 zEMiXRFrP)&1QBk+8XS{N>hx(+ek9Q^YPY@x^#en2q&eLi^G^q`Z^=VN_Cc97?P3qQ zxuuYvq7uFwvk`pD$VVKds{)aBvZDd7nl1O5$?vmGobI$=6JuKk>U>$b7zKU)GR^qK z$E`0U>-+h8?l)2qccqp_ndlJ;cZF-##gAfA5Kr8EVTtwG6U>`U%?O!Xwa`;tdu?dW zC{L5j_B*W_I$X$vgV+@be2j-S#Yz&Vo2uCSG#he~;s7e|QZr!r+7DCy;gj;DQj z`!BQ61u$nl&gjI_kPK zfvZ&oy+5tEGh1#dX#W07ScKFme4j$a70o`}k)A8vP$jS?eq*`{!*>FweFPjVVg1VjL%7emX`hUEg9UV+lrul2@NgxM`W{BTW z=MveTZr6`8+Dm)OjmjH6Jmx@7Qix6%Eqh6973O@QJf|>!mmd?D6Ifp+aOSU+zW{(1 z*u5$y#Ag)V)Om2lMrfL@wB4qEi*Z+Xa&fc_hje$ym+9WPgx6M#{i7zi$ZGp{tRON_nfQ<|c&d@`pk%CRLeCwG3L(Qa z_jhvOD!goh!|Ev2l=Tw3fT^*6s<5Ulm^fB3s*inPku^ld^@spu&ynIg7W6atzr$cn z!iU4)S1%_@D(n?<@tNGLb2ix&n)2m?I4!pOIST)LSfIe|#?lXz%_qN|wFLA8^B*aQ z1rq*_Nt2eccjb;DjdAQ~R8IzvcScr-#+UU>Jq^P@*@xBF8QM~EyE?t|Co@sCikPD0 z)8&N1)DMk%a}qUQ8_7wr$_Bn%C5DG`L~O^B9P_$}w3^YS2>&FOF#j-)rWJOKIB@Gt zirnFC%>LO)!#}hNY*k3%pGX#PfYoW<5sHda@s1i~bRFVc6zIF?{kN7C7Lyy%}R zy9CH9Fj+_Elq-Dx+%zx@eHu3O!L(1-*|j<2S)h2pwpIrkCq%Haa#{^qD&I}p;<%mB zw)^MG+3%W8~8~C zuGbh34g0;2Tx=Tjn*ZWWCzFSs(mSmg?Q55py6~e&y|VdC?#+2$&>%U2mHfIeQ_PT1 zZ05Sm1cSbOBa_-CQi)vWd)2J^acb?UfJ*FEd6oK$4@y5g?7S%1J|*>!lCXYIHMJjG zm35_qjoiqE?NTUv&y?X`@aC+_Nr^=G4<^fMEO)_x!Nk(~2+Md9EtSv71UVrovy zJu&!&XW7Qclftc+j@EsVx-O(?eM&ZG&U{sa*|jNKDe&F9N}ScdVV9Zus>-cN4a+{lE5@<^+qYy*tn5 z9bNOjB{b=)I9B|bDq{^_G$3iB$uZnkj|wy`BuUn)J>~kO>9W-LuTDWsU5M_6iO$?QMNw3nwk(D|qil*ffOxYYWNy>IF;F%l&y> z6yE33<8O=ZmQH>%c7h+&oqF*!tkl2YTuRl$$HRXcqz-D0Xm;eA8BK{T(mwldM8uImtNj2clQA!2jy8q2IjXCD}A?&ZM z>N;KjiInhUTFAfo>SeM6wHeGb9{+L=^at9q{ zrtOycRx6Qn{vw^`Jne0jDwj*4T${5*x;TG?DMe-!PlC!pPj#`fImq8!8DqyqYIPcmv5dz zwZX&Df=sruOeMYTKh!^_U-u8EZ0wOa&q>`bIyJ2bnM7k~9*$gkqykna@RYFtrXTN% z=yS1)aa-a-4Ta+0(uW+kdd`eC(d-(x_T!F_s&0N^jb#hGo+}D7iTm>cZ8SNO{UN5Jl4d z9k*A$_gq+7n+I3F6p@uLWa^bEB`a<|B5ujk9V#{iAR4VL|Da0yzTEI?;q-_C=@R|! zwd+5Ll9@{G?DM0~cJJ-ug{};-N>nF@Xozs#%d`&~>_EVmE1_!sOZ%#y*H>S{M%gyZ(gY`1 zpyY_z!KBSsiYC{IBtt?#FjAbj!PU%+^uU1MfxXbNhPv z*%69$E9IA}q@iTf^Wc2Kcq?(xgz3aC;^nZLuh=OxwGe(kYaiEsxKFb)TQ(C!F{kbP z^?JQUUD6B9QzpPZ5i|F#U7O#M*2(5IYDVa2b(tdW9@Y(xZ}qi!p11Y?FDGwm8cy+9mXGw`f+)q$rVR^Wrd5{BO8(9*t0vu?YA!Ntwm`Q$WW!0`ZIYDYFPHM z)Aflf)MfWpO?nI0_TzJYQWgp^Ho5p2uleyN-!(PB zA)bfCQBbgIWH_yiA;CfAnV}4T_^%X!wcj!zKHUd2&7J(=|9m1xkcMWf-6t3Ab{$ZN zMfH`&97ot|KQJkERJoplf@44}xQR#*weS}Yc4u6{MbUgYHLwHxsXkat7)FuxR ztP!;MqjorQU9|=ej?OaBIDFZ}c>rywC4T!cJ#@}dx&8p5=&+SWO9J`Uge6zpOeg6u zz6zM|f5)AW8NqUhFE-Icx=R;BvPALe=Mn2DYYGoXQ^lc-$dfroOhkn6{AQE?r}<9pwc`;tmR*bX9R9XJ+6 zyPYq!dV$31n1j$o(n=On1RW7JtKQlXy9&XZFnGrA2T}1bR<9p8?u&F!PR}{BiI*Y; zGwD7n$0iee6IbiIlht3}{}&b1H5$iZ%3!Eg%R%pA==Or{ZJk-k;Tnu>jUMo~+<@BL zD?q!Wj~0qywR1)jsyqBkPJ%DykyQ6(ofUSXW&?b{r(sBVMsY{Swl20`Ti*X`O-qJa zN@hyD!3H(ru*9{`f4wx3JK5X(t6eMv9@+{ZOW%!6Y)OIm6vs|?5saA+&;4`_(;4ru zfdn;koRd4zoT05DeT3i4xPl|%PXKDTX-pC&x(Oa|%Y~G30DW}p61Ob+A8cBL5o?LK3 z6T@IOzClSAdiB-IsZOg_r6@?PZ?D|krYczksoy!nwgAj`gWt9$aa^?Gk!6RAmK+&Y~b$&xMUamDP_GN;=4eiSd~F8Lh&Gfjqls$ON(CuBlsmP_Otues|DN@V8XVueKd zUc>8~44|Qb{<+Lg%J@4`mtzG>%x-;~xdB0c?O0GGIJ!!SpYmr5P#zcj;)L|~X^ zz}7V#i2i)iRw$i)M;@CF+f+~=*Nyvg!w7$19L4!w2+1^V5IR-+u7e_tv2-fAuHlo0 zkJWe>W-r^({tF2(xBnh*QO|-P7y2$+3e!&L3sWbTj{R+VE+1X_vrzF8tcN91CT(SS; zazXx@i99er%v2MvJ=>$*5cD5Gj^HR?%)RN3YN5(eitO)6oj) zWAxe^yW#0VDrHvx@>Fy44%@dr8I6v8u@FC%Y{1`qUg*olg3GmjGF%S9`+67;+)VZI zlLtPJ5oClc<0QaMgNE{yD7QpW3B4??8Y}xXSmHpK1c0t}2g0%AKR!$xk@y;c&Hkz3gQkq%YxdXj(&b%BRPSF*LnkgXY zHcisvT7_urnpVgsd`Qsr~eyEs;@T{F%@!CzazLy^i2=9gk5& z)XGw)VeI!9qlFi~^e`4D7nxLN$sKCXL9>0qjk4xlQ=G(JfBLe{oFp_nvEsRD3%Ue| z9H>0JEO1hWTYA4B!(`LEop;P-K#?MiA5;TJWG;O9zz~^mVJR>~AF#;MJbV^MW^Dy* zU=zFzp~+TL8lB^dcyH=GsLagRGkseW4&tw_4599|vKtfi&hZx#!o3zcNdP;RDim}& zkO#yE^C{pRRzLsix?UB4E{(E|Uw=4g~{ z9>iY#Jkp~4!#SMSSf>8^1xpIxC~Lj0(w_EXF=JJ&()cf^W|bf*El#SSwwwl6L$GXR zm9v1d*Ul2&+%wo^)4^ZyLE$$E0f(-HLp}u?Mapuhw84Z%s9;LoCE^)3=_68oQ07)i z%C#yP+Z7jnmoH2s!r+DZ^7xLRG`D#>9i7zLzXnn|3cq>hQoW%=C>Bcj{Ze1v1~r`9 zw-O?_{$b`dt_taYTpJo;$Xzk(6Z$ttgM)05mHTBb^ zI$5R(f^=Cs(Rli{ibzs|#gjdRkKf*h*IlCgalB>O)M3i$1X+tGO%qcWbITR-e(#K+ zwfZwH_b~_04g{jv2IXa6F;6j?j78!5%jj&E_ceO)7FSMz{OqIPP}wTC(f*$Ic3W@e zRJ>4cYW}3JuSa}q5IEKgGFrxvbfjA*iq5AwQ>?Au%v0{uvRdcng4pkI)olKvpmBRW z3ITGsVqbpd3O=5jw$-)=XUwi@XvG=+n*c!?gGihz_QlFQM4ZE2$5jeNK&1m?uV>ef zT(g+mqhE!j@8yO^6=Hg-WR0{a`Y4X{?HJ6dv}fw|pUr^hMe-T1`uO17c*hO*dt-Kp zA^SOrDG=Hm5dI@;L*|FAueVBqM$7m&g0g}JfkRT>CRY++>>IEJj3EOPqEPddCILHv zgj;6|t*q;F$fbI89gd7eMB+vK+j;3byXBt8A3!pzQaq`OdiNb4mkn2280Ze2zFC_W zA;H{f>P!Y$zXiL#x(?r$c8n#6H^vCbYD$(;n3n%kh@uC=LG#BI>k2{&-8m`y9UF zq?p#%H&k^{h$crmrW<#EJPod1%Srcm>&tV;Qi#dkvlm{*zVg0wlYlF&e0h>nIWOSV zLQGljNB-?t6LF(RqxeYOa3}r%?6Eg5Qz7Z^tBdL4xW76S&xsxUGcr2~Es`c*yz(tq z=;J80YdJHtRAYzT7fmX&8(98Xfe5sSG+4G*NpB2v+5D2xL@#mlv!!BqyHj}D8;;j= zq3~o0rm~*TA7?&~4?Ntx&y=y^QXW)A$X>_-bf2AYt+y{P#tfErGND=&)zi_IrVTwM zqLjBXZ@4^oUgY9-XoQXSfh`hBGL~1O7>{b`3|t>`hg(}SD!~=giUiY-?S-vIpM5fsw$R>B06FIFdYC%98|YsMc!M-!^0V!}GG@X~ zA?EK}HtM>*vA>OLQNbOaCRNRIbqE^@i0m+zK1yCkg_lyPUTJazgE+R+`x(dzp|Zw* zI)1U!Ohj|s!(GDsm?G!$)p8cEHZzc{#^7ra67| zAnlH{;~j!$#)v0Xj?V7UX8w1HXHBX?5qn-%n{laX#P%0W`E@Qqu}irb&wtm{L?g*K zz;?LKs2Eq56W|L7rs%xd9y%pCy6~#tJpIr;4LkGdnO{a3D5*U`5!>pICVEEnJ8b7{ z-*%3t+W)7xitEbvddcsKJ$sG~O`hy2WFK$SocQUYz@IZq3Gup+w`sU!y3?g5c@r)7 z+i#0H4(!rDuFvoTh^4OzDj)d-n@d_^D(p*eDm=+6r!U~NxUcE*`@`}| zhd{y2(S);n0b-hr_(b}{rS>V|;wgCO&ht|zTrq^2VwhpKupZYztPV)`@%n21#cNW0 zu}qJH1Oj4Z85!XAUuFc!$?> z)298+g8qXMEW~6u;`6czetL)Fqqg$ZfP%0-It%X8nW}B%LxBwV-I6i9>|6HRFM48c z_h5)}l=L*?^*F)m4pow{)oR@9w{9d}nOzNa0>};EJ)c!%2zgXpag^5mVInzqnJq2# z+I%p{6a=L4Z!+|dM#p1?&CpeSKFem&Ccg;zeo;D?usH9#lAcYk2j;#$YsZmA1Uq4J ziz>~J7%lWEw{)3J?Vw-=?aUS%v<#uzPF+o)Be25qLy3>s&c7C+EzYBgp}u~LaCTM3 z5O$p5S+i4_(2-6V=$Wo+G=`Pyc;Cx^OJd&4mur!G{*PA4C?S^_5rNrW0~~Uv`pW zUMnoX^DKfL49NB=E9u&PS9;EM$L<6NpC&O%KO}E+U_CBn-(LM7Vl3po)8RL8KMg(E zc$1~{uf*0MUFJ!!opIQ3!HlDSOv1>|jDEe-@M=tQZPt(9YjHngV`2CG>hkWw>N}fi zYdZ9)DCW^W5ACiahMYJ@I-B=L1pAEo=O!yrNTNK>ex<)_O4@$Tf zIZksTy~DT*0E@bR<~=_Mp98idX|anne!3a>Nb4OjC9t^BiQ(YA`!X;yHTu&1wfvH6 zOcsX*FgAAxUE%-&iJ9c~w!C{cYCrdVlu{n8i|43Lj+eQHMTs+~=T#tLHa!D}tPYcd z`rfKOz_&T3kvxR_CH=6Q++0ENoM701L%0fFemQOxerK`pyqtA^3+%x9m4T}R7#k>y z|DkCLxG4RS|L+)Q|7bHss#Arf&KDEw74q(m5VUq~t+(GeTU|~V#&T@mM@oa1Qo%0< zfTrdhO&lXU9VJ8PvGDsT8ztb7w?=sM;}q5tRQEa;pymp)=$K76Z5bspRV9!Xrryzr z@rZV$h|W9r^4}|ZMcA?VzLObQ9n;go<$%$ON9XdrXj6jB-h?WHck0hOTS5OJ?~Om& z(hg)V>(NqBBx)tYj-WiX5UQNo+{m!~h@D0N>TC)Kq@ncltJmt&`h&~+*fQhAu%=m? z-?F|CRZ#(ym`2~yzAKFTr2NPYagX$KitTHW^QMgj?Lc%d`Kz{fx;7Ww%o@IqTv$*~ zWuG&U@xnebDE&Lsvo*`8hJR79Bv(u|Uv`Kk{>Hl#8$$M$C774`u%}6Q)hg@#$lr!Z zZDu8fGtV)>Y`NyXGJg`b#igA3(;$a)Vaerj8sDS1ai199WEu_+fOJhxKr*y4zn)Ed zWz$<884_Tig~P_QuVUzt_{z9yxA=hbRQr!3msS{TmGs|%xlL%yPFCf7mxWc3!d8@K zGkM6gDeP%)crr_zA8`1C3hpMS%mkH$YW?iRRrV-h6zR5Ac{A~_fG@8XxQo*^K1fDe z!}{@bkPxey!LV+J^g$5NF&L{htv^7e(p;K`eH`(~V{c@>6ux^z$-~(_ubS0Kx)AkB za39DvjuX!vkj?*TRIQaKZc7m4b>&%;Q$Z2$Z1Xh@Ht|+r;oGl2d0&+FY03qcg>sD2 ze71F>*u-x3Zf3$u!ulVQk6(~;tZPVXsd!ROqYd>NFd=TyrxEpJ!%dQ`!wf@rg7b#J zR+qJJa_V9E$ga6rKc~(Dq>}d%?b*M}rn@cmXUw0m@W3*hwA-?JpnV!9cIbc1mc{No zsyFddHckH;ub2PGR$PlW@O=kO#cLzl>X!Qw6#*1k4W{AG$O-fi|82Q?b_CSgRj5O6YVG(ZTE7 zq}RXI<|}~`ETfHFy9K&BHC5M+V5^Y=Le!h{PZTJW$^2>OQ#~TC{Y3P>S`9xRwRPTp z;){|DJlHQieV8@AS9>~>Fsl`604*K^r-4U3hik|geQ)Gt zt&+XuwYlWY{j-b~Q}S_bzG)3H+P(BxvF%qKG|!K3geq@FEfhcP6u^#=L&5VXCv&fA ztNOMy>sxe({euF(ipvR|8$%59ik?q3T@{G^i(^A$ z5Ulh%5Dww-T)D$+{p2#tN!dlNVRLslKgDIB;$oIh_h&0^lrxL)lURoP*RBfd z=NT(jt$#T@>~d2f$7#C{%bUdqW76K!-kKh4#ef5kpIkTP^yfXN=W9^Qg~p=hMqCyzF_|M;nf*&|S=V&kVM#HD68;(YdOnc?P=Hs5dl`st#IlooiKuomTx+}_t~8sbXIOI`~HU6r2r zR6X20O?0>1j3C6txKYMW=bk}NRZs4xrTH|gr{3TvpK%<@^n`Cf^DpNk2j_h^z^Azw zR9{cwxN+rT9YS5lawGYGaP8T8n^CQNbccb#zZL`{vXCC~tG^3AP?uW>6ubiV|l5Q};eov%9my)R63rUoHVRM)F<>ehD5RMeidwRsZ>D~=GzF)if z7HBr%411dDKG*C{hniY;5!i`HxhGa2}|hBUmNZB~av$;J^MD)Q*hr4w@PP z850~Z`md*>G(!$ZC6VI7f%oZiGYPr3!}vkld)8e(Q>0+j+1Z}EamSttrgZ+v5UGS0 zVk_XLQPRsecxX7qK|2!mY9*t&YUuGsWd*?dh?Y_Q%q@ZWFhDa#jdNgh!boChK zJlL(uAnLdg&{xQtgQ3qu$KJb;!n&(BC{`*i@r^6Fs&Y)}VPtz-71KzCRi z2U`jU767V43rSDDHh4VZv#nX6o8_;`;n$GuZObg1Q{yh%Kz-}VlpG<&R1F84thT=; zpNrQRCzvx-KC%?25ez680x=abd^{XuVI^fkA%mK=7byt-$UCa*Za#@`Mjxc*T@H@# zqP+a>mY_MZR>eRONs2~emKm#ut)Mi}-WGF%=SxwL=EF!$5W_symQMEPl0rhB=Hch! zpn7d1Ec8d$H+iwL?Ci9%9TR!?XKnt+_CW@FTSV|YfO^owqfNc47IbpB|50&fn0j(p zMYt-rIOZItw2www!H*yL0eQ5sYzVRpG}E6Mwh4Vo%W)DF z{H1!b;04iPxu9fn+Oznvyvy7Y#>mxP`Bg8=pG36P)+j$LwkFk@dup8Zec)8`E(~>LAeL zAC_+fak(^0ajoi?o`3#cP=w0y9kl6=bV@;_slK0^lHk6~Z3e5_R?&l;aC`f1uf4kH z@02%cyG6!4Z>H%04H+f62pX0h+iPbf*xMS}&Jp$g8^d>Jzoh+%<D_x`L(YnsgGJ5MFpwSNDTbKnqcdacQR^nR;^p={WQ#Dbcm~=}ye~aV5*F_Qr-e1I78>I^oJ5On=?L-Uv$W z@*HS;fTgXl2jXOzT`AG_VwG<_W9ev&QF(e2cHD;x1P_02&LZbz za@!6jd+a~y*1nU!4rdT{O5UDT7rJ82*=Nnc$61;_1#RB?h^ew5t~4|C!6Jb_w(isJ z(xM2DB3k}l>bfBxho@9nR3A6}XpnvzGc2-vBD@qmgaI4aSE6zwSg{$oUu#d(z=SyH z$4Ej39J@OI-$Q(~Jl*C+v^1yRMrZGL__-ll{vU3_T!Vn->@DVq&mG9R7XdR-gbysL zGl;W=&A3Yd?JJ><$xO~JER<^?YVm&2lLHE-`ch|o(R+0YX#Ihhmn+TRZT_#*MI4ev z$in0N=v(=}+51G=^(W}5zrTE{|DiDYCsl0zL>`6s!;w~AKQB@&^6t^6CUZJKQBRS2@;JFUiQHUc1gDYRmE>H{GH!E@vEGa$8DakJd1DjZI=B#C(ZZ?4eC$$f zL|`4C=+(nn4u~+R-X(N`Wo2;aWGz;uJFgfAyr$Kq{F{x2()Lp%2 zT{$>*=k&X1+I0KRzc+O;h@Sd?%a z96>!00iT;4dhc<8*!tLI^`-6ZUfzjt=i#~&xYU13c9;A7IB-}UTlmJhUS>xLyjeHS;pd6HV6Y!~ifOno(&q`;@Ip!+v6_q4;pMGyn za)NWEd+fQQ8i}J3x5YcRtPE9p&_Ev@=c?%LyUFuhqP4b$E}B^Ho>J-_!L-w&g+4Br zW?=G)LT$hgx@LMAnjNO&(khXSvCa@uF8c#plX4E88|HBQ;sG*|NMd7w2;is3|I8kf z`k7buz4;|XsqyO7@V9M+-+d{iQnT&vEcUr%On7X&$=BZ~tzTIG;(xZnWAP!-hEf+1 zgTwZ#zZ)3HxD|DK)*$s6V_kC4u)iW?UNnZf)FtMJ4uPb=pgInzGl_T~E>rT(%Y%Ra z7U%oN`&sCPnpYqH@|V1Co{6`(;ERBCB49r`AGZ(lEuvapS!?GPCWULqd z5{9{~y}+o>$HY9#^F=I>#rHf}@yfqYp4CZhosZ+L_98D8#q@~svyfBJ}XFVb!?~c(WzoD=HQB)XqPcG$KfxH6^`-S zn{wNz)aIZw&TpIx=Z{Ns<1=y3q4B)ylgYtsHsjL{jv@?j9cvlt?j>G<#H$e2JTDNJ zWNXc|KUTmb@?M0jGJ>+A$p!o|LJ&Xc6NXaX@fjBue7d4+8?{;-Qa{3k3@}U=i6yys zcA8R!UF-|)I=O<62?*;Ri=NJZtb)1LTx<*zI%e-MwdmzJ8S8HGjKqgbLJ}X3Kq}K> zih}rna$Xr^B(BA`LJ6_zljAxYZer{>JcM3|`*^QW6fp%@l#Rv|y!wt@Na2EF%O}aA z1I%Pi);f7C=E0Gh>l*WT!0@NjqD+dF%f*k)vbiR!MQ>o)a}rjq7OTfRLTrDLNiH+t z?;j`e1N4w5qSR>-L5a?tJ4q ze}r!LCsr{m)(40G!C+wTt@oz~C;RsX|Kxvq^Isd!RJhwm*MD?YGEyo{jS;$+KTPTypb`F}&xK@0C6Hy*rp5`xv<=Vqk zZymXMyB7Gh$RSxv*DeW`%k`pPJ^ULXtWWc4Z+ffv@YlMmV`QgB!r{KWhcfJxp+K9h z-Yk`F+VztMvZHRrVX(?=DsY&f@0>*CDLD!)E_gimjneeY^F!&*1ctN#IomZ!L&_(9 zZ90R9)ZO4b`51G;pNsb8%N3LNt(1p+(kV%1*iTL2x#4RpEMm?l5GVgQ%OpnWpVuo<<5KlELf<#Y6sBQ_wK|!3w}#3G)0LTim_;NQ1C)uD zS)cZ^A*yT=llm#M#D!qDWY$%owLzL7;}p|5)9h0KzK3}@deQ(%9dzdMZp6}84QeyP zN6q@2FuKDT?O|~4LonS1yXI=JCZGC*Yn9VUy^>AW63QT5PHBKfjuhw$^_L&e@KHD|M+UgI{RJdne7@MxD4^>KZep^0?X#(bm&LuQn4yH5r3#PHk>Y`$^{N0*EnVs&AS|; zc@tcrn0(^P7fs&BrSBm}hCFU*Z z2jHYI@s+fPd<>rvff?e(WuMVN*Kr(TN-tdsq|A=s-;y_mHG;VLqX5?MDdJ={&Q_vb z?4%lnBLa=rLQ&j<1@P&^bNx|cxE?`dCTmJq%jAO$M-1oqs3vcsWxhE~S&KMIWyxbw z=n{=Fb5f7b0N_lgC-rK29YQ(FOJ*e2ZcgIZh{-$R52^Y=jO|i3fn_n0akbQ>hY!T- zZkZXnU}k%9Xp3X>QAV>|z>z-qkmFa-l;SBXE$8gML5qu#VC~2Xsn-oUG3;oW(lVFF zkJoOFVo13RmWIHW_?ZKSp3CEJ2+?&NLs=B;`QM=c;o>5pK?y4>Zpg~4(Mv{6S~r>P z7EUSP_#ec%r?$z|J8^J}r2R!#lLI#!KC5gNr4j;W5?#F3g}OAQxxR;<59B5RVeMr- ztz&Pfidp9qu;O|)YcaxVCeOr~LMP)de#IKqES$u;8>DR4+FqYpI|!j-1Lp<9$B}u9 zx2WWBc5xN6@g!ddAJXiDND#O%hO4D){N&QoU@~geVDzsGT9q6|81l~2Wf)ho<{`Xh zGo__9Aq<@14^=hcYnma=MV0a`4ke*&T4+h^yt~$+N1w>lLQUR`0JLLa(lJHrw#jyF z(WBih7)DD<9vR$c%Ca|2;r8h^NC3cDBMVmnUGPR$c3$vK@StsMKlE@@~z7zE|o-L8s)yLH2 zs_d^wI^b%VewKx1b{U0)KQn}r`m#`S>1+mBZ$l3ESrd8}L0`x@N&9&o$aHSsTpG67 z3w=p0TJJ5}r!21Z-C}9o{!Vo8zJ5q#=#RW5aiM0?WXT11fUY3k(T5KGOIdobw0C`J zT1>TETkQGmXsnZ-Up*QY&3exp-&!m=cdxbbcum3q$kHb+F7bvS(e@T{$6(@?hwx>v zNng9r4IUAD8??t^z$JVn`EOT`VweqqOV;4e?xZB3r<#w=NaKhmZ|oZQC+FpJwM87R z2lTI@i}LLZeZ>zJQ`kA?fF1i(wrFmV18%RZneK9}TC+Xa_`19_t?tHN=>)j#^$NGhJb(-q}@H z$C_}Nm)Hf2%@2ii-9O?M*W;ou$OeutwDVb`pFt&;f@dYt3wX_e!C1nhN8zGoDzp8h zD!7oCHPUKj!^KwLP0yicKZuAkm(0G(-Qdg)2P@y#cGb@g&Ct&5atS6G-8w?6ZrYtU zWA75VL=wkFuoTmpxzr8hfHkHzWoMm>?Zfaf3*WVh2z=f@gAaq#WzR>q3+HB&S(=m$ zy>VK#ahOXFxp?ae@2wZK$JvJ?RrO~Pp{xGXU?1r{ogV7ntv!$ zQ<3SsGyO_0{aJPfdx7BTs#1#Io$>&eu?M*`wCi$r)0or@ygcY0shS^o@K#J=yU41DDyX4E4*!aCv<-0@DG3PdKgGv5Kv%|Sc%105iw$yIqW!W<@v@G6t>a`r3 zu2-u;^==;$v}uN&d|o~$4RatIIYHnp_lP+pjVt)*9^&YggSHOE`rm*PYd zS>BS{H~X4&64}OI!EznP-Vply*&Gg#6cFNfh9-U|1WDL`vlO`tGv#UHv&-3)k>){3 zTnrBBoVw(?}gt^`|Sx%`BOGjKLXc)x5q?!_O-6z3s53?x*5 zlXQXg{*NYw*#>qo z9JPuQCH7elH$;7k?QF;ONm#~c3J($1mu|(_yoRwi>$)uWF)8I_ZnN?u!g(;gEb>JP zoR7AEp6IdRGVi?ZoXN*|LAu7mk|9s?RJ^O^xn7$Nj{_;_RfJcN0hyXEr*%tflec-e zi;znJIW8=-XT{otb1ANyA>XhUhgoMW^!bxc(}`STY0)9boW-FCP zaalZMhPyErg=|rYSO0%e{FYz8=e{4F%U#9G;4+uX;ff*IhSOQ|!erVugx^Ue=|1$F z=_yGoGi&r~pWext)#I}B*Ryy*Fl*02?K)ga%jsY!VKm^nhS_2%U1*xSS;2BS!Q9gE zmTShJa?5WFrFL6^x$N0C$^l3~*Nfy2(n ztCJMsN_Sx1fmv`;mg&V{cu}*qdsa%gx-7vpy6CMl*S~OwEKaAXqxK%i6AMe^#V^|K z`pH{jiTv7_85S0=PH9rC$%5q-Akrdmnw^{WU90xufGHb2hN&@caYEr(PR1TUcW&}` zJ%#fYTuw>j9!7(VIH)2xSw#(DHenTtv&j{bBnj8ElpIep|4HHRd|fe2jDOU)oyfk5 z7-^8bJ2D!o@eE4SULHN9vu?O#OP)jg0-|vai|P*!IEtc|+uDq^9#hk3fD6Ld3W$wHs$0Q+aeBcp< z%`LB4djCIn?*b=Bao&r5-P1Gb9gTK+mO);G5VgZv3~Lz%7BI$&R6C5Nwag(S(8xmJ zvV%-?2zCfgFajb=HNzl}ghCcB5bQXxV2H)~0rug>zHp3(hq;6(fX}gU9_Hc1cAVG| z>%+qiV9ovit9o{qhadO%yTADUZtYH2cXd6!`d;-_cYR$ZkZ&5^cfVUZL42O?#RhQ( zwG#)HM1h@t`fSHm$aJwAC>JAsB}=R)R$z}}FK2`11Yc>0lTW=RcEYc0Ibu$@TEznB zf?p=2$P0ZVZK$Pj*nfMMTHc#&TgJ(&A{$uOl<-`EXN0yGgu4iPpkLGMZZ`+nC(~{k z>2&1LzrJp>?PI%nCgW(I&*28lln(M1SNst?Zps%2J8iWg84HMGjd>v#*=HEgd2*D! z%?qKwIy8xUMkqvr>n~b%0|LMxFwB|cgxUs&&LX-+_fOg0oD0;l?HF!; zP;Gwj-x<=c%sva4ACx`1G2C$mLf}3hUWsMm@P#p-g z-k{{nGlLDO!8***GT8600BoAN{z+fP>E`^+#e+pE7^)WWH%LCpr&Faroa~|GlN`xT zk?7^dhc7KYdHo;u`_F~xsURcUDI`Eb6<{O>xtO;a4MP-C;hIjAS5)eTE~>fV>ghpA zUw=~HV$Fw=taP!w(`es(6J49?Zv&htn$ilwWIS&Q#mrS+|20rma^(`QG6^LWdZxpI ztz8#tndX^4xbPm}t<@LYRxbKKOsDm7Xgn#N`^l+u(9A?L5mJe*H-eFC`huxL%8!<& z!jje}hbe=>XS}ri=G|Mzjagp*+|sdIsdcYDFfOVgM-E5EQ} zTBnEANRc0Tu}EL~GdTfsO=KPp{gWZKXJOV~_6vH=C-2@e5~xCPIvklA3>S?rBrC%L zJ8!&ShP_Dlh1Zcm7r|~QToU$q{f+PVvcVkFAD*&Kria%DN7zr^cwyf_>7AmzJ;yA$ z22dq`JTl-9jAss8*e=xfVrcUFFNBDG*^=Dnqi_z}WTjRW0>+^nBoV)r^9Bp5bV?8SqZU;NiUxW9Ys=b!pq^xI!Oc>h;lKJb-4=^nU$ z-5+?GJzU*L#2X_|56oz7>1&_goV$?%%zyb=%@qpPC%p zGn4ndW@A_1IggE8dYoLC>F+P3ij~y1)$2aD@wnQ#fuC+I4(WyJX!6>Qw9dafx8~Ai zr(Th|?1bf8K74RX`qDq#u|2z_F2(CMiY)q6`s9n#e!l;h7t{WZs8~Mhsbx!c_=WWw z@4sj3NdKujSKfc>s_9j$b{<^Fj~S(;`0DAamhQN`bY}OigO|SJ<^N;naeH1K+41v# z|NU(DnJcz`^Qw3M=^vkZ(Fu2b?DCy|am^KrZ~tau@3a5#^1naz%xC}Rv!8sXwf7s} zK5*atXP&$N=V#yYwf7wSPUh@R;fyOXOP785x6B25%u`dT2R_|@&Elv(I`q2_&+I8) z-%LF497b64@sF?m)0?)`PwcMl``+Dec{e+%m3r?cWuADL%#ppIbB_U z^A9>p7G8gAuxI$5{=PH&cYmezaG_*ra(%neG`ljZ9_!z7tX#OX|C*C6O(rrw{=l&x zc-yd~Cm}40X+`_#0eNo687HoJ&-#roFY7;cqGF?pU>9`K2TGFI{#2vQu{ceHNClpC}f) z>n;k1-@WOa?k5iJ*#7Ewb}qa3d(%7iEn0No=ij+-2Df1 zHhB1z25 zi0b(a);f>?yH3+yPuHfMf7t%fJ2uPgBF{I4EGBz>v|O^;0Ct4b?7ImY7XR1Aj!$eA z`N&TnS~D9s?{kB_jDLgCW*6B5Zgi0e%gy_wQ%1JwHqE1xuLdm z+b8zdYJ{=Z27-qxxr@KF?)tF#u zQYq9V8)j5wX~N~l)7|cS-ZM*+u5JJPRyf;?cM8WQtRGTb?cHxN0Z5H zHq({S++7C_?BBn3+gTH6Wgbns`)m6F6aK*0E3-2ly>g|ci8z{U-MW9jqshvZgu}|oThIiU zApEE_mB<28kp)>GigFUuEc;KClUy#U_h>Sj*y?EWgiN5riORP9&yLne6Y$nF!(C$vbKrHv*O##;C3PD{GT?fo=Yld8Y5`-Upf_=m$dB_n-bAa72*t zy{?s$ES))DN0Y4U$D3%f4K%4`j~=C5AL6@WIXP>BG_7otZMnOsyVlBC z?A1Ko)g7(vhsaNpMzxg-e%6zd(Uo%J%y&T(=&tTT`u;+9&C;Y+JNaY*O}s@((&XY= zZRJXzIC{Fv(ZtHhTj(wnpj`B50^Mc5g|TstCJV3r;oB%D67_V~=&bI-${AF)xgRVt(CWYKYh4ygq$J{tU#2jjzbB zt4RJ6Dv$x?{2c@O^r;|x#I@%y?)eao37<^zwT_K3-{4vjnVo?lo!>Aj^ZvYeO)niJ z{;!y)++;IXXX`qpm)DDIUK=Z$$q&x6zL^C~2%{4*ty#WBN{IdCWg83PyHAW3NCD|V zoQ~LD_wwa=Jysc;a*DSjsSdivZUfBuied;*pGAC$>Y3=SQ_`Fv86mVjmK7D!d7yr@2?aP;565M!R>_eDy?V-GlIi;O@24d4wAryrl zmCWD*>0`YpMn6jX5ni7wdQcZ}!eGlrrN${S4D`LUeuRwAYp3M!AfNw8yKzd9am(gg z%y>l*-1rf3*O80;%UZjZApH>l#&1CSEJxS}CB-k-_%ROGuzu?w*`j}9a6M+7ml2Lx zKgQT!k@&6|;Ohs;pxZP-9BC+23% z5uZ9J?iKrA%VtJ3?rf`8yWQtMihLR7CQwbuQl~X%by@tEqmkl9cNbz@oOKqzY(bx< zL`r^dVsrWo+cHO-5;dcx$xA`dbu{Ug{$S?owdw52wO7x49Tj3Yvoz_#7$i+-DEDYG zGun-5QhPH^ve_4203y5|9HTXiGxXs~N+Opd3}^rDPowOSokZ2yOg1>0fPE}Y_$`A{ z&c#`NOvHX~V!;mkcuy=%9_=2q--Q5Qz?yj+w9J7P8O+sb5yt^E;ge-=<;u;QYcN+Z zs?|RD!51=Hx7KQ#r@L9to25xka+xD6eL)lNC+Wj$d{O%o$yKYM37>ptFTNNoWog18 z(z^dQe=$vtK6>7mIZKmTEq9-LzT(~Z${pzmxr=-Tn!HAuKv4RsGoA;UOkk)QU0v@! zmR$*&e5LzXcP2Xn?7u)Ce9+`+&;(Q%ov3k;TW!x7zl7U|A30I`fNR*%q}wG;7R}1Z zXbtw*C}{GMykKdP``y1hQ13q9N!ag2Bw%lKNfUl=g1C1vzv)35WpT)YHd)Haf*wuo zNXzNnu8{;R0#uzyJdw_lCW&l!(P#~JOzfjbGvu|OzxMO&=IqMNE1&)!wdv{U4}X|6 znV#M}JtIH=c_Q(F4;*nsG6{R@K1-8C@~+XErAf96nso20PGpbhp3WM3G?{QT0Z=k# zX)^Xkn%vjDt9$g(({GX!>Y?0y&Ue_m5pr@kJLG{TwbyJ8(xeJ|88qp_j#~W(*;BJC zYtw5l$)0L;m!k=F7iq%YlO_UM@SO2Wqtliq6Ru%LlbM+}>MqP%M(67;%1O5y>#l^8 zvK(2<;oizc27FK2I9-;;HS&DFr@KItM}N9=XIC<#X-GoW`&;U+wQE6N4>Xz6T{4;` zO?a|7n_JeEty@3*Vd^eemUm>kuf0Y&p${!*09JP;WE!kubr)^eE+h*y(eHZCobH-% zx(mRLIov-PjB_4skU>hQ8l_jx_9oV)+#Ygc~u`YPzIuckGJ_EgWG zab6h<>znpxjA8EWA$bG$WAr3%_nh?T=g4#+jI1}1CEC88nDcY&m18~P`iSU;xc*-J ziCLKAnCXi7-TfTm<8ApEuGsHz&u3=$3aks`ql@ZFG2Ca7HjMSzV}$lo7@x0)5*A9-^Yv{u-enx4; z{@`bdy!QL%>TpBI>~*h?u8y+vH}v-&U97al_KnGQpGD)Y*DwL~@y$Zd53=X?NPkEc z@H0opeMP(|j@b_PsGNsG2S<7i4&qABhs!VfX}&sk;+6o;o-wn%av?tTne0L!%3cKVbuSB_ zl#89>&1RjwHyaMUg#DO(8OC?T^Fv!Yv*%j)tc)x$ZZeuFO}-EX{92mz9+>t_GxO{} z56q-_Ij$LO3h$I{BCh!S3&bqD{D4|3U8k>OS<2(|SgbVp>|cu+=CRDo;~4yV}~f=)`#8UhCUzHcrH6+TNYJ zpxrhr`c}CAxMswVKkbhz z!W=qXQ(;JHjf3O+I9LHa+_^Y}{G}y%rbFhnWDJGJ(LrA``I^Wwha4iQ540sfI`q%0rWo?@;k)D z%FFKAGK-yH9-^4;^)BLb*MXQHPxLh-f^MA>Tqwt}$PuT^p4!*iHpJC~;R~$MJ#k>H zv^{gY&jhZy;(cxJI}b5KUbNR1?)W_Z&7*OACyp&+sn@Z?n}Q+w$Js;HlHi&M2JNC~ zN(QCm9uOH0VZzlp3ipe4-7c=V_=lg1<>GtR#Zt(C8Wbbw6*4lix*fAzur+Dg5k+a& zl~1`g;?2Ptcd6|nA`Mj;41UBDDFVJg16*)pgzp+%0UjH!j0+FPAO-jLQWU8es5QnY zUWQ;Jn}ymr!ch_QU4zCmhFDak1W6pJXdvY3K2QQgXu9&&%bPRoChK4}d# zh;T0hoQ>;Fa$JvhJ{*jDL7=Z1_qfst)As>xgb|P_lVvM4S~P*P>zeGUE~CA4L}FTZ z#sGz2ZHTVcm0K_oRVq4Sinavu#yq=%PP}(e?YT89{C)%d2OPtI?k!u?BQZ2n*dlij z49JMWb=rZ9dvBivWJXIXN^`-h!N}I(`sO4HOtNrrElC!T*d1d!<|?CGz$k0(w9Hu0 zcu;V!!zqfHL}K^=&y)cdHBAe@4$O)68cF&ObNL`_jB(UDCNiLtt55MxMg zP|pM$^VFC|qHhu9W3ERFNRU$R-58^n;)>YDIpV-V<9CG>6fU!dw z$eQxFj3>04|Jl(0Auh$zK+nJu&#v?~V2(O%g*9bkNl|HPPYZACtH+95*=Mt5^d=Wr zj%`FtZ2P{4s4o6g6AfrKvd1>l^cqwjJ~vSjUn@Tf1KhSl6IDQa4cA79SN7Nr{~82K zYtcn`?L?DW^zv?I~mex?HHX6WoJ8TuN_jS;M^{a_vP|gHXO)2anUW|nMz!_n?iW-ggUMeC*WEdU! zzP95g5lK$FfV(nreLkesr1c(*NM{1#CJ-Fdsp29!2nOIok_ht6xH(AyBk>n}p#dz~ z5VArE>Xz2U$v zNeq@((3b|Zy|S{rOB&jGY2%7oHIQ^OPtOF)S<-wI4bUdzVl;+8qT4*5D|ym@%%a8E z#q{DS&yEQQI)$-`Ea!1hLc@Z7)_wbRiiZKP%Y~AWUSqY6wNyICLkRk>gehe zm!Nq~G)Dmoo4!`CH$gMhjYc2yf--tj=u^~7Yz;{94YCIo#6dBsGWn5xw{jeEpJm0B zfP0`ZbO6h$T(R~=U_XlzcPuIgno?dt4ui?Pyq7gX#aK3ql5`=+!-ihZ`~k6Qz>8A$ z4|O}kN#^vF=u223N+c^)VNFy7cR4n`xE{7LL{I6{(WT?B4=={tE|8`4BY@rr z{0jPM+_M4T24I`74ZM=&u*HEdXafdOgdV)g^OxYH!O@s^E&2y$fVm- zAk~9j8HG(@Jneh_)Mkk5F$SPwxM6S5h;W@ctCp|8=8&oDa(=?QQoJdl{d=t(GN5=W z9iSluMD!*J$KB{5i;h8GP={{`1b*G)@5!gt9t|tHiM~brI)EP~4EP)pz`aZ%6LooR zq#&lHxFJpWT-b!3>0oTFH&Lr^H;9u$VEm>ZAw~Dy)-F)}z%(sV;LX(J2uY4f#6S}o zNN$6HjB(q9QvkzgDDG+)pwr?HH?3ARLLE1NUVGAn7&WZqw0!baU^cKP9-mq`PH;-j zD3)oe=23qGNes8PIF3lWlxa!{c)(q9Vi{w0eoIPW)GXugF;FX&RbGKL_#M9k+zV}U z!0R+~Lj4tBu+nZxsJYF9;T0LrVAPGsPTT`D4bjjQs5$vv6AX@H(*Hj2ET0wFJu=m! zfQQeEss=?H(XN4}G&Okqw|ZN`6`&zt<$(2!VIy^|aUST7lyzAuWn`}#vNNeiCRius zC(V|2@Nx7TC6ufY>#$^GVSb5ePc9Ts1u~X`76y#mNxlJ5^wa{s9}?B_$xv)~0dnFnhzA&fvPfX=(#=3hgE0>3!%5L zjV?VpTn$VVlpEpk%^+w*o?lwP9;D={h0u97EpM39u5CYk{S*Pj^u&x|x4x*%dQ;t6#$~w5dlvIJb-CEda^0}}LMgUd52YmUExs0L4 zNOZ(>1}W$q^2$+uFsvq{l=1Tg2{8L>6lBkqmOQ4)>Z_+ z2ceg4>O!5L=nACZncaws=)(fCLQ$roM|{78>%y0igPRrlO+ccTrJA8k`dT`EO6pVK zfPkOq@F&Z`WLULeg&)AXUXWT^k}yV=>lfOUOzX=_owYmX#wq1Ld*|K&%x7K7jha@_dC^ zx*33|Dp;-ImEh1yFeH8k$PQS;6f|%3O0k20RTJnsT5#unD_Ai$UJ)uE*(gg%+&mQD z1BZcABpBiNq&HLt<4|%;bdPu9445VMqu~tFm=M<)7;=IDDoZ*+6_9O!3Z3F zin49D)?NeFZg$XKz5z>ViU^8iXqQ-`C3G?3uHiCX9asM8zFbUy72H_xIS>*;rvg48 zAanag*t(%ct0@icfbJ{2&psAu-!=x`g%!b1+^EmJM{xEAY` zsmWS&9SW_1+Of|bN>YsmG^QMVDnWq=J*acs^CSgajM@4lS`m7G9wY4>B8w1{3R~y)lECJP z!x?S|J9RrI8|*%ZxH`uGREpB5uLyzJ!{Jee4Vx!6hLd^8t(U+&DT*JcQs6F=mquu< znigiQ{A7fr8>phK_`bF?8LC3$dly85kqVOGhU+{zPjg@iiC{kH32wN+kqD&M3E%>M z`6(^e1F8qtS@SHE-ID{!fG8%5`ufQ;<m{Ka2SNoDy=!rb$%)snUn{cQ;7gJpq6g|5#wK7~80J(E zI6B0abe^AKSfPCT?E*_zV3ZE99a5Wrz8_?KcTQ@gz;-Z}P1^$M$v?B##C|&%^ox=H zF6=Olnx#gWpBMzQ!l<9L5Zc=L9Kl3I!d$gN4J9CFvI1P&3;?~F0&8^g=qzV5MYDjZ zI&g~J)ljx~F*ygl0 zGnncC^#+cRe-(#im7(!??KN^y8=6^A;osu6aXNp z2v-ZKE3Su9gqc-5qTlkiItC;0UKYD<;h-`)q-0+uD( zeUAUhyqYRPm8MjmgnN3{gpF+##*Qs<;3EyWM8*x+a)oi)iTThsf7nF(7^|zIwsKPC zb6-TvUfo`XR8h}*RhFI|-?#49VwuD8KzIyr zCE3Tx(hxe2s^w%rmzOl^Y{zvL<2rjV6lMxA6=-gSBXpqWlUATG@QlkZY{0(Ci>C@~ z3^ETBK~pvnE2ZeJo-||u%r=$e{~mq5G45mDMEUhfs!m5b$z&C5|12<6Z=XouXz5vm zE52@FgiY0oCxEXz0VKjRV=xRln2PNh@-f&ct>xjjOZu~66DVlu%|YZB(d(y#|fkAVubfd2g* z#mkK75%FMpNqT7HOpNM5VVEc*0!_(uLcgH$(a8A1R9c668SVroytedyNq|&q)a{_j zhWwHdXy$0CmMJ|LZ3_FWNroEkuH@@CowsR>SR62PkcKJ%+ifbgz^9<-C0e#iPETny zu9t|6sUZ^{Kh>8Ge7=|TCvQh3HyWA?RLPo8h0;rd@Vz(J{cudYJ;9LgLEdvy##bXs z*4-Qi2~cIr;;5MB6Eq`MNxUOH6rQ-e*nq~qOch6-D!nZS#hHZRVtG<|>E-_2l7CJ& zuQ$~LQkfhGuidcts^MJf-51oCw*28Fr2hf&o>QGdwR240si!WKQxa{1vaO-WyZY)Q z%fWC$#{H>vO10j7Y-@T;xaCR=Lg{rtl4QW>V2ynX_uT%^3P$-7@e_q{zqwnTpH}`o z#bwiHq%V$wQ^qI%?iBG34K{!3#7;Hh9x;a<7pP%5WJw^?gD@e+Te9$PcBIvcWP4As zRS2SB#EeKmUE+b(#uUS3xGww~bX-FxMUvVu?03Ep` zbJ=w2`bRtenkp>bk{LYxeK&{cd&+)iq<^#7=pA}~cr~Y}bc!31 z9Q@>E2j8~sukO45rJw%U^B-His=NL7w?Eaq>$m^8x%>OKHlDxxUyuEd|2Sr0_iI(2k#xcZhOKa~2yTKTuTUb*734<1~7@Wq1%x9{k_cJ(cLK9srUkubC3 zo@2LMar#%TzVG0VZtwnaaoHvRD|_t0HLvVG_~OEmXATzc|JsgKm#tj3{erLj?6TkA zxpVtJeCm>a+w@!KLQn?&$EyGJm&HTQ{leQ{8NAu7e1B`x)vq4>o00Buciw#J{TCf~ z@~Vs47p^*Lj0Le)fznm-}~o>fArq|FGjD`+xHD=dW1xgUr(3|J!GdIr!p^ z9bbRX#4C^Oc>lzXk6rzv>3`ny!~eK*_tn{d8u{-(*_XKG{vW0Ge7ms*X6E9ew_(Tj zt(R^*cGcs%yEp&du|IpZ=sofEcN}}iH~RK`ar)}zpS$ar@JILm=-6)enEO9;ZfVuT z%6I))!@T$b_2l{+p8uPVer(mj%dh^uzxwnQ!(X`Qr>{JF{8R5t-1Vb9w+(oiz50ri zmK|JnU+P=WePh>)k3V_f1JB>|<$J%n^UI(A`NZPxg;#v%r5nHh^)J74%(p&r!;cPr zbLao|!sSQ4`n7ItRrl|&|LmS`efyYiufOG%Tef|B#kbdQpE&Tx`?fu@^T0jRJ1+R6 zCvH13x2*d+$8KD|taReYqDuKIM?QN`_tpNtxcu;QUtYNC@rz!$U4H+) z=cX?iSiJqRzx&ztkL~=e9sls(w;!zLHeZHO<%wf2z37zDWy^2>x25T8mYi|T)GghE z2S0Y~Pk(mv$}e1zUEF`g&E02qeC*PX{oSW-x%b&WUij@zzjMZqUR->|Fb{+TbWJM1f)&R&#(^#hum`0|U(Uj5liXMg{;#RG$zA6<4!dGo3d{HW8t@zos% z`d6N_^VxHE94zmc*?G~y7cc!-ZAW;^*Pr|Hw=R44%#nY3!?!=WZ2eD;oV-8(fuWn9 zT-=wM+E|ptj(^*6;i*^bSar+yZ~oZM@sC}8#GdCrw)4nuUB2wugWa8%9{ky|gU{Zw zZQ-~6p5BAH%bgWxmlSt%hsy8Xci;YQ_|qmXs}ppp;qDr}3?eU#%KpR?GUN6;OeEg3 zItU(m$d#^fwQ)C-u{$vGGlwung=_WQUyidZgd-raw{{Lq21E=X)6D~Vh})(STz zV@dAX$Q9lvAqVqtMLmvPv|+*nJKU$N$VYEed2n{j$txYXk$#KWmL&bOAPKG(w&~J?Ywb+ zt@eS58)`Rn==aFFF0OJX67DTxG?(a4OEM7#Emu*zFC8JbBYl@<$D)kf2WWEiIrAJu zCyCvgl3r0=J&z__1$$6x_ucoMF5TO**(&|c0BM1SV;tT{6CRzPRgWgCR};H1wx70` zTs=#ZBVxzPBjjD&Z_e(+$Z!_d(dTkpI!~Hp(Npd$lOYX0o#Q%T(4iX?2Js@ zdh1Mb^9((vEKNN6fiZ9gh3<^>rKd5<%wPt)aqIq3(xgk8Oia{jwS%o&-5bc3)ii&>T$| zvp5(CE|XBjwbFV2)&5w?nk?cC$hwR5<~`-gCxCv!O`7XVssm6GSkf_7Ayen zUqC-6-b9n9S56u_kh1ETpyu=-H zI59rhrBB0m(dR=hf}A8@y;r)GwTUNk$=WDs!W|1MYfGzhqt%IIGM(lAoco`@_iLk$ zCf%8A@|9bELYm}q&QGyRnpmR14DQin1T-0X6HPX5vT2gd)eBu z1Jk3)1jhE5D2^tHTz2&M(HCm+jcV=QZZn54tM}IpICh#Okh@ZZeU`f(D;PJ=Iy7JS}dWeGZcu z`Y4`+`wUjrNRupSlA!KNC$g3Xa#n@9%cfcyiF}>9OU#cCc;phhW`EhG*6a79*_p~( z>Mqb^qO=;l&TyYn(Bv%0v)zADjsi!=x{Gq+t?wpZfev?mie2h1OA}a{7efjFo zj4E^c^#O-{*+lXrivINUZ%^P#viv?>T1N$ZiO_b4=Hj*mWNWZ_6$iW(x#DT3d92e%%q_WofuD>yimR8rc)w0KCUTjxJ4lE;0 zx=({9^nK**JC+@I^;O@iCJWOCx}ZrSuz1@4^w+w%r@Og{)o<%&S1XLJ|82kZH~a;G zdjcn(05+}P-{`NTiBU$;5`SYl zItNG-4ynLTcXh8s1!1=Myilu^N{|yIU1Q34+w4$>_GV{Fno1 zQldJboDlG2VO!z!U0F+$5c&)?9s63x>aIk$ z2058WleLhO`8!+o0%&q-k0zBcmnBWQ`$3bO-OHOa$-VMQ7)+%{?>lfnVGMFk8g{m@ zzuTQyy^S=}!@idZ#O^gn!!}+|>8>lY_kVf5 zx%*b5@1J+0F>HkYXn>VJopv)UneiaVq`ur9_#j%-x{dQGn zbe`L55N40qSdLcb1;}w;@BS~&_xk(4emoy`Ronc@5MIxm*jKzF)zNvp8Y2W z7_Ywshwi#}UuK`$%*Hy7o$WAt?aRYbsFW*;8cbIzK_wmN${I0Wy*!O70rn);9*p#NdYRVLAV~FBC<6U5zy%1-x9ky>{=YpEOA!W^@ zj}BAS4FY?Y*S)rxuZnA~2RQr=Ti&*M znmcth($d$8aRSFc`O0>0?uV3A0d*?-j;P?-)PT8&h*GLBAiQ&ktG=r4dFxTk8Tpa@m3==!XmDPLEJ9>0QjSAJ>2|+|5&Dnk2giT)x%2AAt$@U2GS|;+P*e zj*P^N%nn+7&el2`Vl>YS+Wqt)<7md+wtF?%vlbYSXMD}az_s=^#RyRq=jMeIJYF%? zHw|1jT@u$U*t@fEFyVDzi4}Auj>PlQxH>1k8-wIxCgRsNVqY-#=p6Dt10;kQOnUnu ze&W_HYcj~9Qh+%Un+@4#9itsQOOJ>^`iA+?0clHkCu5f>cwAwpJQXUp{F43~fpgzf zc0TKe1=kVJfnaa+5N*>Yd9-H<&$HjzK7mU-+$v9d$A_fFc|5|S?4OuLPuU!#kEeUN z$9NfCYuCN8@3^vC)*(5H+lf5fzk$XO&OEu+;~i8J>Bzz?Ue17tt|bal;9BASpm$GB zx@@eAuc|$Z9ed3)&pw#7k7dx5xz>o`Vs4x0+4B~z0{N0W$t1_KIMUx*a_m&j(o7M> zKu=g82PxD=OenHZQMpdWTE#oLP5;D(=S%4MhA%gVJbv10ASd9jlqZd06bKT0ryL3) z3B3ZLX^8iB)R6+!!^kebV=(?r!li)5qA|2XU>l?`URbdNs}w8X-!;l&CBz^CzR^r4 z)W$+DhyIBwI4s-HJ5zBCFd;pjK!r#`&3d6CRRI{K9A8LJdggO3G$n%{rwE^yu%r`q z-#^42Mdg`jOgmIIXOot5WQd%H+xf%qD~l?c00X$ zAT;f3!WChkcwrOcwcqX=3=A`0-46K`tuQ_4A^-QJuaz)C=+TWt(kh)QfTf$>5mD1h zLni#ASk4^QhK(eR2{AhhJD_z5s@HDK1`OZIB}{ofRS=3t5RFCpP)gp8{59J%4fE0Lf1> zUu4(G#ep|klT0QJ0xiD&)S*WD8*h8G>dx$*vpoLTyQ_A_bAT9canx&}`9>U0+?-Q@m%CR-)QPFqKSsngWYT>Q=J} z`-3zYmk@@TXOdH50(B_Uxr)rL+5p;p69t;PO?eHbR9!jfGu`Amkb!DZ6-~udx#Wp9 z%a|wU>-S0{tc0k|C-@tJd?TQbDF$H^n87eqbKDA%p63~ejozUZEp9Bb&A5CLcQnrebMl8Ud=)7Gd8_mL>Jq-44r^)%1{59F zVp0Nk7K*57pGMnM9-@e>Vjv*RA?}faYW(I+zJHjS6w^*oZz>N%M`}dQ7u}kaLK)fj z$ymdTX|r1{sJ7OF5@tO*8=1N^Op7%4>5c)0^*yb|@k5U2y<~=8`MUj8qDidQw4b+_3PmxW&(g+#tOD) zfz(wx^0=I@%DyKb>UDlDDBEoSWXBUFb@rdJ)6uV;YDj0T^ogSSHfJfMy{hQG%O&(s2fTB4_e*Fr>HT24&?5XPVW!CP*tO z;C4yu?ND>gZAgcY!1*`eHx)uxn-m>N=s+MO7|IWGEu?AL4yVw%Jt5jkR`K{eRcQ%I zUW^sA>z_HsmNmhFv0w=1I$H8c>>fF&Bn5Ca1r z7K=GFIxlE~s;E>g;c!(K;?Eii=!_z>*gL`*ofqN?|B76KLhl18G3APu;m~i7i^!E9 z>d2u{to)Fzd*A=yl5QvmUA8x)%qBor$wEMQ$zRc;)afuz19p!orqhEZ)SOu3v^3NQ z6hjO=zY}%54y80m_Ng|z3R^51Ta506hxz@gFKUBrMmT__<#unE_nfTrFuM%>pp{q@ zM#F_kP-A&uBzSZe%=P4?c&%lsOt;8<7%c&BV3;W7BaTfB=zZUxMjbaBNp-~;YNgpN#vSg1tlMt zVo^G$8(HAD2JOTn>Z3``t-C@QQk!hPz&rVa;7ePgE#N%=$XEu&D~y9%GSAueRpf1u!9pG; z#1bG}4-M8O%}o~v@Ae*)AYa%NTGQn`%>ijEY}cWTml+DCs97p7I6{?xio>);0i;q& zq1JHlG!UasOq#&3D;O%mq0sZd3$*0J@{-6YkSfMNKRBgiWNF|n4>{^2sktDIQ|uKW z37*PORYDAL3so5$S%uaN7uZe?5oHWFp#y(csB#uu4CRV1VYb9q zDqwe=Bv7A38-qg-$)l>!R+I9moiA(>exhn=qkLQF)mzW`Ms$)w@MNOg7O&ax)p%2* zbd)GdJN@=6HB12Ox=@fWLKk?NT@TL2pvMyiWsg=~Tx=(#Aq`F33pt)JlTpety`)3? zNJP=i&t?S!a!{NL=^~L&0kJ}&Vpj!*p+|uBO;S}_tf^%m?2IcS3y0&E0`97ZpJ8UC zuzf{O6oR4b3q@m$Ord7qSx$2yur$EX&Y<1FUCfP~B#n*iBLs3^9C{gNgEls+s;l_g zMabvzi&6}c9SEdwfe-%NGAweHDtIY=2&0M&G}a9ZTiF$Esmid1Kzlued$SEM{eFD% z8wkt|Ta;8JAnmsTWiREPO zT4EDk#VIxkhk}Yzda3RkVGKR$WA2WjLfu}5oG24eP9ou+ua?G2;-?N!fUMB9s~eOS z&%;&4w`tz?UcLY6LCv0J$Rhr*OAXz!u=q*N>r~RO4$9UVBY(12+QfI+3^g%t^5Brd zXL$_9MZQBewIs7KvenE|)i9^iKD?%!!~$?4eFxngGK7g_=-Q;s#l#YmmGY=|cU>8l zJ?^}EX1LoviEYBp)-kxbb6orz3`Y3u)XE70XDheUg{XHO$Gfg5FeWSwNxsB{lk1vM%sp=ks(xy_9I{M3!gpOFe~y&inhD26}Oz- z<#B$+MQ}D3oA`~5@eCZ{fffqGq(mFoXQgy;9JiD+GtC=H{E`qqdy9ic_qhIc?%I7D z)g{g5)9C#s4q%+~+H2ZKHm9{gEb%Ojy`iGxlsKQQu2-K;(s@9h@cfZ{Mg|6#l!HO= z8f6UA$xN$chnz{~D~1V41L;*y7GqYqhNZ`0a-^6SbNC~}LXp`%NA@dP zPG7Lczc#;2l}e&Ys&rbpydv$F%Oizzx38F!$nq3*x$RE@3Q{2y8m0{3okjM z_O-riyfZ3+EI9p7g1vjWraog_*s`UHEtpbRzA4sno=lwguenk2B@_+?t3zSFBLP}hdlQonN3Ie|J}ule==L2gC*YgBp71tA}QA=$@_0rKk}90 z_>d4M#*3|Yw(HXWBCfx;4@+S2TGbIJ#y_K|>il(|DIzva z7fUmojg@MpPAcNWnO-^$98>;@r#RSld$!o8YlZhw*4xX6bFP40I>H2v$mbi%sF z#^%aLT_6434o8XoN89@SA1}A+pL@VqqJ(d%-{oVUkWbbv7uYMn?Q$mDayI@>9G}sH zTezbMjZ_@VbyLBakpKg?PE~MxSR0#1_?}cM4{GGn1jR^MbcOGeE~L$SzGfEDWmd`a zUI^lcKkms|M@%@5M9o)j{U+>4%r$H_H1npqiic1Mhi{{LV;{@AvnhXyxqR{W@#O{1 zvm0y~ocnR{Ulg?8J2UR*zFQJ#U*p`pyW-F0KnvPksyM~I>P4iq*zWSCVg{rWpxHlG z#-EnD@Hs@8I1^6qT!p}d3c2vwT_UVdIDk)(Nls)pX02@A(8|?^n|cVRQAIfbY<>i9 zfcZRT6<^Dk2NTTKEQEvvj$DbRwcDYD*BWr!+i_5QP;cujp`nOgC9W%{;l~w_zV>_% zR+kq)Y0kNNZLk$#qT*M5g20f@xUM0d!jVe98lc zvPa?f%Sbo-!=I=nj>$XZo8nZ&zSuPQFedWC z+#6#*XK9eZ@QUB!wr?r9JWd(}*0@@b12%C>V)$)>P3FbiqBJc%=AVRt7*x^yu)$>a zKH9|1;({x07z{7?XG26#$xp(0yUp3bq|xZt;nYX*UI`1wVE^nDp9IFK(p#-V=5qJk z@?~2yYjj*GZb2D?M}Sn^x5$+@Vv92pqSh_qePgiT5)UqZJ%8{+vA!{4UzyDho)3lF zyBNmL^x?3Gg`pIT>Juspe&3jFvdZ@fADZ+@JAR45v^3<~J&8eX{}|<$?b$2{VLVk2 z1N*F4`T}h;+ovx!xc++y&vsq;o}W;d=_;4O9fwqWVt@`6KmS$45X=asxZqGOvh0E0 zH8LJ$bN%Yz3OkH=jz%`-*B2m#*E+%E;@yX|oc2VN>PvqXg@-#&Iv*p87J;d{jk`4XKEm^>~} zRqTN)-f)q4NDDiWBrhX}Nx|lHsdQ`#I__$M{oKWovbv8e1hN^5x(J>m)lf5xp7nhiFUvC2$RZxR0vpEf8S3ixr+ zB6G(yq}*s{SbMgEDQ9LILgKPOydAcfo7%+KWV`3bl+_`=Vxr;=)XOV27_*OW*LFvi z70AXcVH`j3sO_Sjw%=#^JZWjjJikJESi=OJkV1y`Dw%bb?{y$IMaHC)hKmxs&;+K9 z`-7kMCiz9cYe2+4ucf?6G-HCku@$KO6ks3I~9bu$0i4VLOy?0td_g{LONgHu&|KOJ zsv=i?-5QO?D!f6!l*g~DYQM?_vobm66Hh)8_65wY*;!~2pC%xQ7Btx_oQ7dj4uwS& z4mWfjs$|Tfg$?pE&di%4gdou*E}Oi=;mR#ivIiS-V2)roUD>U{e0$80@1bWcbjbMO zZd2V;m$6VYdr{;z@wW7}#L~i;HB$zI4YXdnMZM^Ijmg0H!=BYmgOI#&550b$UkJGM zfZ|x9`91B5NAYv-KE$_>fJe${Z#a}Q(YL;^#<>&%PPbD`iW-ezEOMSs=z)pSGq>sK>0vhtjJ9I#a$NR47(tDFwCc z)TDikh<``~IzKpQRV0^1I`J021R#7qCbw$FkxmUysX?paa+;%w(ADldmb4)g7A&Gc z7m$;RvybK*YxKsow*-})pg66!Fr>m^v4$%yhCB=+Y6xSKA8F&%t;E(6L}{u7MH7T6 z8ZbtcF2;SW!U3%(x#3kGWSqJIQiR$~*mRGSygUOu=xm=Y3SftyYk z3W9+l_on~hu-WR9sRkPNP5U~?mfwJM?V^(3q>c$bA5}BYVX$j?x%}M;+o?fx$k#v! z_}aE5b~6}ounS~!*(xWZ2x(~`ejMS0E$RY#q%ly4Qylx?K3~WGnq1uo)FijEivg+luc}pRt?D-nBYn1 z_|x-IXd1)8nnOHH&{|FXRT4c?RnMzf^&nA_oFF7?KkGov%{2``8LFfj9PWz(Dy0@~ zY|u*}A>|}L^59;8dP-qsEqAF^P3K|L5Zf7Lz=L(!?aMf~X?NpriNABv#a zbJt^Z$_yA(q%j=+7iY&yB?3Rv{Y;Cz?YI=CnABrU%la|GC?`ED9fKVoSQvK|7$6bw zg2VV_L)-@F6jc>4q)@Azm! z+DZyxfvlTcW1sgBHDXClHE+XB6l9DOzVVxX+4lW3S6tJ<0=cwh-bpJqB%{U^1fBdF zTzH$%xnK{HmGMytSM;KgqFz#dfvm-bIBNj&a^Hj7fWV``b|d0d`>fFcF~_|kc_>W{ z>04M0OHvV;0E(E_3@RdGeQTHt-Kd6r<~HG)FOp2EMfXvENck-&<4jrP6pkK&oLHgX zB|ng^sw#}ABi~sOhGv^3tUR~C3oDhM1ie-$Sz3a{eB1Is4l`GUXf=@2z_4#K?2IB7 zRH%?_-KU1^j-9F;3`2tygvLNPGzg-rqE>QcT@6E0y-X06GKq}JELX4`Oo;k9;var5 z5uj-OsBt1%!FFN)aHje60Lsqa}0%QMRpF)8A~iwpk#asz^aZk z_XSKVX-WI!Tx~12wC4~IbXa$t4?!w2RwC;Mb*@c2Y;V<=PY+HxOAQ%6p7!a290u(H z(qfmI6n{AFG?AzbCU4D*43(>1YqEG0K{YZxgV>$&SO8pN-cJ`HM*rn836oHjtFI_*|p+S%*Vku)`FD~&2Lea)Egb1g%^m-f@eH!8a- zZK=$5#G$uLW}%$3(5p0wAR}T1=%Ur(t(Kx4@j+iI)P3>?9xVoQ`kk%Aq)x(vlxTqu zo97-9bXp#wa>L&rD1h?4pL+K2jZG)k={#;v^~x zhVZ#o#Kn84F9;0;1vbbQhNPYFxr?EjInqal$=Mu-U{Fh4^2{EZ%fk)_#yyXSl9W?(~|R-wg6*#zw|WfsSrmX~6IAr7R0s=%ZUG!4BOcWeFNW3h@=n zR1(khN3)29=fxm`(TVEh!Mb=Rtz82vh&D-+kDg++>{%JoSbQ>$jx*|_T6CTpEVqy( zSXu;bijh<&K~+yqv~a{JBB^Zyh{vkT*<%}JFSlf4CwdPW(iJ}HY~DdCfj4Y^%vC8P z{dXc^>4N#Ho#}UV%a&JMw_=@7`LJ~LI#g7zNwk93ssjyEHvvgA!##;V22NFAe;BVyu?#d8dx8LQ2LleQ+6<_ zg!YGAqe6-)x8MrUI$5sGlAt6(LYG0EVO;-*CXN_qbO+OA;Nb!2dzMDB8XPz80J)rT zuP4tJtd?ia7Jk<_@E=fX9uzJ&TCossh4Ptsw*&ROUB(7zhrL&?P)8!d{E0refZNAy zRH&>uf8{$wDst(O0vE$>zUF=EqVT(rlVp460`7Vd!JGXKBdn}Q+z2x_qPQkht{Bpo z)KI)F%ol~UKqnSAZiG_sA;DQw^)v}iTijy9YMjZF(WJIo!; zkeYN7b%6B~uph-?ZipRK9OTNTl+rFKpF+WXo8`HIgmcVd*bQMSGM8%=`o*fd38WC>^xqP>C`~&!-+)FshPY5B2k^CYN+zdx zHzwO0>qSLiwiCWnl}?OZYq%-R^!56i|#;Tw<d?Hp|4G>Eg>j3Cg!`lT4OfZZxfqmz%g!ZuN0-T#PNa4AE8PfuZjeaffxIoc=ZgvD zFNcKV6IMw2l(^NY(;>5GWJWZSEtb7^q#W_wxX{;x^bznSKdDcIk}gY#_@`6z08zD8l`P&!z{gBD&RZ2h?du@_S-Rnz&z&l(1$OyzYJ5ySIbw9nt?WOycwv~ zg}Yy%KjtW%Ze1*2kIlf7ip~R;rer!sjMqKhE&6IN{FpK~Nmnn?JwL8SOQdXB(c@3WPaKQZ? zcS*e0*M{3L=?euvFZ(*N^+|f?%Gj89#_4Wp4PE_|m7_Cej6PyCn<9;u$kLclUfrF7*AaSV!V=1$7+*o6b77QFyw>Pff!y|9y z$4O3;sEc!}4OikQc)#AsOj}$d7QaTu&QC2Q%n2Xu1lxr{_w3#~_P6{4zwl50aPJ@N z{m7$l-22ey{&4H?8P6X$@O=8&>B_f0vHz88?)~OleY=gpj&E72!L0AwvGb+N<;YiG zIQ03?o6*0F2JiHK->h%>x%PpUzw;w^Jv8=jA3At{`(JVk3D+k< z`yMuQJ_Rsx$^znaFI`+QOx!-(f-N&B2r7}4Di}9R4R!aJezx)2@|Le+!{`b$!ee&7Y zpZ(pBJaG5j$6sH1>?`Na#TQ?ktTE+pd-Mm7**DDn=)iwF@B8mMc=y`(?KijW*g3c| z9ls8P$J?&I?wz+i_xNWX-n8qLU)r$inMW_We}7UxH|I&zdFdN-wZ0XfS#jv5-&)^$ zuG9a$<6l|-P_GteJXz80k|&4Gd;fR0-*)@1_a{HvXRdnJc~?C0!5zDPw|VH>cORG$ z`O>K}F!a`yD@~t?qrG>mk!bYe|MZvl-o5YPUwrIK7kuI&x%kZIyPvJbv@V&wlmk$Ih(&+5EqF({p$J-P7}*`akaboB!7S#&>@0w|}s5?Z@Z;9z$lAC4joJF{%T|=u?7Xg$Ty@)x&0v;_x(F)!v~)J&{Al zzc2(0NgWR4$^ozT~(eO0)+mJJ*d{}qk zIJ}^aEaC;A)(I9RjF(KE=!o;6T!O78Ei&Cu~KCGDtXo)?vEj$Sz6xA)rQD20X zv`1T$Eq2-N7>?yKKN;+oz7SrFx#IvoX3oz$BlwVlWTsQB{+t*6=TwIktcuu z_lJ+c3q36FkWa~Ac~D@DnRI`8l?$0JSnA&uGM)^Ah~Zn$%Xxyo-bCO@N5B()r<;$6 zK-yckkzu!P`r57B&Ev&wy-RuC`0_M((o>%F26bI*v=Xcfl!(FPf zEh~S#k$VZfC@+_X&Wh-~fV6=p+r~FdPlG47j&GVM4o+Wst84>Lwyan&zA@*?^u%DV zxuy6pSc5c0G^^MHPf#xT)gxP`k6(P@m&l@H6N4{baMm-6Jn0Q=o3Mwz%GPapdE%Kt zaAVhtTXff-0Ef8y4R|t1JrVq2n90W)fP7~e@I(ql)%=Ovb}3J!m-7Ts-{Kgc_h%RU z?b9LC#VfPi8PIkWbDl6Dl>Rleih8mM1;chl5nUAUWRu2bJlWN|b)ax7^AxsCsO{QV zY{GUO3womZ#PX&osr+m?m=J6idBSjh!&|=q-s?33Pfq*mBKNH+$j0)JrCIf`oWXWA z$KQlf%8drj#X;CEy130PQAC~u+XX3*En9-^Ql13cr95dKQ;epgCvu+12|SU3CU{a( zo)jk_&tH^Z6>3WkG(nPc0mqh2PvFUPSo{c{sO`E;&c6&E@s$l-L@2{n;ztmz`=8)` zs39kuhx2_=xMzrslP7P`bjg+4SQui;R zNy#3lX8WBip2J=%@nmOcKd$RH=sqT9X^)l8(4R(WQs=qUE^THyZF?xUF4_JlC?XR$ zxnOzz#dG#;NzfqAuR~Nl+q|5BC*$+`_sTauHWJHP?rZW3v24Df&3#JxD=GIs5kAb8 z%XvmT?>FcBq9A@NzgqY1r*>br20XY;I=8Jy{>A-LT<3Rq&wRRH%2SN*yD!c5E7>u= zdvz_2_wAV2J#=pT)V{EfNk8got$uyn&vLZ9+jj20?iX?Y_H1939R)vBix(QiHB8OW#5PRk$XUN5ok?Xr9y6R7Iy3=hqpW{(Z{ILNS^Wq9hoDA~Q* zE8VK-@Bf~LK;#+aJ#EL=77iaP{g?^3%TZ>V@;#XN*T~KYJ$9@|4POFw{e);)K88*| zT&4v&W1{f#L~m)&fin)5H=T26P(6W(UZIH0uwoPCEZ?p?T@FP-Z#|*LUY#Q0%g-FI zLGFk0^PwCzXA8JZEbWy64`;dzpO4-r4dldhL3h}?@1yU0XQwm$sfh{p??h`^KmRjf zaUD=NSGn#o@G(G+z)}DYy+xiV*?TgeJgG9GR64}j>b*n9xL?&W+U9@x-9N{ZkZ&MQ zH_?0eQ8x69-it4z-(IA{8NFvVoddr>rn%SIAiDP6B2RXOyeB|$0=+eeH8`ys{GkDr z&JVqNKS_;0YXp9(e+x0Vq#;F?d2ATnG2%{}oS8ghiH)wd<>l~mO08eL#PYO^hC-7=g# z{Xe58+2COjqJ&e7KC;8N;PE$Q0UO$f~S=$$R0&B+e zG+#Wi@{{!>43t=K;E4_@5Yp{xG}`vcD~EcosGj6Fgz&|`pUabQl^r$RgcO6G9Db3` z&61u>JTq_(9l#0h(+GMGYPNqyPv}8Sb3n)KSy0()x94~jOFu&%e+C3S$#6J8Bu15dQd7_|xRv}D~4^z4V^a4*xbjhOpT*=lY#-rif_g_kNr;m|Kj`8t_ zv$F|jgx8rak6%1z>kTDe7n$GBhI--$vT|%#rpr z$feJgT%vgwarhO@Gn?a*=UrNFI1s`E4$IavYB?vZOYHkzsXoQ-WPLL ziJ37pe2$(%l}Bgdn#GN7j{uK0CL?jiv4fw(r5_ux2pIEP8^NK7@L{U}yl~rb(vtX+ zi!-8}$s7`LdhtCTK|=|p%o=N$H&5cOt09)T(!m{a(x`S3>e=~!WYJu9_Iflp6ANvb zMmb`~YuvT;Qh{+AZxOaqV^Ni}#%{J^>vddfG=V7O=|jq;W1eUxJJW!1q_1;;6s!bn zaK%e8E{jkw7*sA{rQn2`#|eC~s-zU0T^5~}n}ahfc_-&LP-r+(#buT6T?^J2sYg=4 z_=i8v12j&L_>-MFlbF{{MM2{O7jfwSy2;;EYBH7{;(%dTQi%kXa~MM&?z#SRrPf0`i`Pz_Z3#ohA8< z4I5o3gb-E?l31|QF)Twr9ZSdwes8_)1IkFBRCJ~!sv~B?6nrWGV(iyU+Pu67JI`Z9 z9+^B{^m7*{0n6l%F`k1qLSTMCQu8xJRbIjJpf^5?3E=e3@vJB?=+wEqGzOmli!>0< z*uee5vH-+-mtXs3p~}O>(EREIiDU#I@)^R}J?9FzcE{sBOWkSVaF=jK9@WruQj^Ao zG$EhogrTei;d{@Z*Zo{DG#}QiP!4q>P~L20N(|)LBx7+NU`U9Y^CQlf&VOox?)Tt&#;2Q*Iafwe=Z4W*#o z%G;uRuG13a_o1oGslw3A!^0Uml+L5gE}djZsudxjpPyxWQeBG0bLwP#J`=+5?f*=+ z_NI^UG#SbKA`VIsZW|OyrJ9Lcp&XTG7qOa0tpTT0KiD$w{w-@E@w!&{7^vU36nD1D{Nwjf^pMMWN~c8xzm@RC@!3jr=QccNn7X^ZP5_aNj+*J<@fr%Jl21G03WWqx))Su@#| zSu-E|*hh(UaPY*YUl#fu8F-mb5^k>$c}^ATm&6Zr4x^e#CKn`1+MNEhH5bV=PDzmj zS*>U1&ec$0D~K(#lbkmxeUl^3xl0x?jVdszDc3O)Abl2BapNsY63$w($_w))>bTaE zWlZ~=<3lF~HH9mp6bYl>T6Vcsh1ptkZ8;orPP;e5B1R|#F|X$9Ou3*&0HwQCTE!m8 zmOEG^cb*(f_cp!lo4E@b<;anzoN8DwLT);Z=h*^X<>+G=Li|M>YeX#2;*`KPTBCFB z9M=&6*Cw-yw$aN~yyU7_bEjjF$9+BGN7#${+0;~D>H`zb2;xa*>(WTk3d;q2+u?V1 z(%3sHL)2x-DJ&QQ>M5)szy5B4;k@j)EJev_g0!ZQTul*-#O^j}L;9jR1g$>mVl=?c zn$0jULn1diC6cf-y#QxU`D=;m4N^k?TMRbry~EVi*w0H`jcrkiz78QkXjf!+u!2&8 zfOzmIv8=UiDD`!zdq#5|F4xq=ECq~ID{MV0W{`wk{!pnLj7a8$wj5Q$=N*e+>nEcm z+HN6huM^`Y(YA57^g$aZ?5N ziMI~8OvR#KiO(Q4+;IjJHPnC+gPv`(^v`$vWoC-G%3I-1?57?pt`tP}Ec9(yY@#X$ zh(IC-wFGD4{-WW^5@v}K>sTdJX};`+IbjgmPpg)II3_8A-mN5?;J5ZPWsR#hF^h25DR6YS2{bxecXd;6`8@ zQa6Thur^pDrWtXtoP9D9H&#y?T1=~S?}}P5xEn5oAqVy1BB&A1X5T0_f!C=nf?V59{;dC7dSZxD z#v8t*@aT)ImSVwL^wCQ3HhgV5P@W5r*?Nhm782anQEbfI1eA;1hS(ZALz0A|kmf0o zw=XqZ>jV^%w-7CvVNhry!3WATL_H?-+>W&>5fufmmMbeRraeyCv#|if#)r^#s{Zb_->jT8NH6 z?Q&r0#0|_yU*ZzJg5U~`E(cZqm$qK6wCql7-ob%_KS+#^aO1p58mw8wXlJ&6o<(!G%~bW!i_dh5d6(ZlQxI~ukTekHUMo6ofZn%upF3Jrf2IK;4eCe!tIr6fR+`ErPLSsNvi zOH>@c?HzIR$k@#Yh1Rd!PCapY9s9_ZY(u{cp&flzMwq?toXhNA4w20+To*q(V{N|_ zW*A_}?Nru)+Q#AH60eGZh{y^(ZWitXLp=VAj7_Mp3E5-mtI$#=NdaQro&QhctM5x5oU~w;~1lk2!+F#YY;*&_#YsIQ-3tfqz7y3jMeV6!>&f!nE#G_?Q z$F`i|Zgaq@4OKz3GY*>ZBy`E{^<9jIG&Kw7k~d41Qy)CYvVh~05!&lN=49lEt0xOS z=bCRy_(XUs8A7sAUT&s+vqUU5rryzXlPKpLcZHL3Np~^gJ4!eioFN&{B=JC1jjYJ~ zhr!Gbw?1ZQVt``Y78Wp%mbF|fnkRxfewk%Mkzowj!OvWPb6}!AUmA!Vknn#mQJwWR zNfnk{6-vp1%5B0{y(X%qmp%f&W72Jhc9`G3DLKF%SX{r2+?0G68BTr5p&9G-Gd{EN zfWNZ>8b!PVtb+7_Z!Em4##P1>5-}#5Q2{P#9Sq8X7gbq6kO~U-ALQ5wEnkoY@8eT! zFwpUZ(&h#`XqbA4UQ6!CoPDzPrLMGwSa3_pB&v%bz=B@KX_3dbdsp&fJ4`<sgpX6Wqe*lqR=|Fng7n?RIm(k!^7&&VBf{j$Qu53>EH1*RdtYbJ)f z=)l`@VC<3D-9bw5-+xi)`xWIaK*O=Jb;=C=(@Rhcf8dl2W>QT8OH-$Sl4G(tBeMN*+RE(;WS{p5y#^wBei~t=3oT$ zwUx4T9neDO$j7~AtOf~maU4fB9zl1g+l)d5!7?{gk(8@;sLmogU9~2YTo{~a&(MMW zit7?@ma(hNf}4*Yxqx3zs3s#-4C0!J4vpx7neY$-4*JtFv=Gr{H)d-z7W=Z;>Zy`k z1neCxZW}en$k}K7?grie2O&7R&PAmS+=Y9_dlUR)Qa9mNrjSg_PoSL5{Tw59=x19q zN{<_DEgzuUBXtVRJy#?pQ0;tf^bI1W)oeG5(_?A#O8~J8<)R^8&-0LlqKw5gNf*NW zIODaiQe{e1i2(;gkYZKRk?XptOx++L1$|_?*brwvrq5Qa=rj0R3gr!pxb8OQ#)CQYS)9c(ds$7Z(hNfVTiV2q(Am>mCW1%h&Mk>ycF0i(9alOT!z)LL!lV&ZEkBG||Ur6}! z0NyvsNH-)LJO^f|1af&rWZxoZxyZDjgkv`bwdZ4ms8est&RGVST1hS#;HU2zh`B&$ z`qgJbuisEDY)rL{ZVB`>S`E5ZGk$m~x0vy2T(e+ah99V zPZumA;~0$J_^IgZ;ODHG<>adcpX`8Uw4=G%M9%lf{qFwP37yk5ek$@@;HA&R;9iV) zR+dmYVTV2XewVxjwW9liA-%JM;_1ZdlRj{471Ac zCgX+FwJ&gSxgGHljHI=69~F{rcDmW6aMYXa1f?ixEin32@^#A*jy;greX;cGM`NNW zE?P?(tcc=T7s@!+lzp{!6iqRcPPj6ZFDmmj1M_HA+QCRp2Cf=$LvjT6VhBo1sVfcD zNvN_t0KG2u6H{e(0MzB~s1yeHHM(&)59cRbsxA5eDAiWdp74PM*Hov>;In+nAz@1* zt7S2;c8Oet6s8z!xZ0<-p(6c8gs!&KVNmA}Kms zAZFIF%P<2TmP*F>7R(ay3UGH16m&o!w5kR3fII++EnY1i()l_P!fV%0(PrOlRi0~F zxx=p>ZSPb#G_>BqElz0(9WnPjJ0>A4u~DwjW7O9m)!|y!*6Z`TgsKwhs$PhTZqllg z$-Gn9hY>T{V=%LgIr!4IR8t8w8>HpK3xggZ;TJOPDCH;s3c9+g423I*g876%BR~sL zqmqzVKH}RZuanK{XkJZcqgj>yC`Jxn0lSX?zXW)+9O_-_UZ4dgVD-zGiw0%S1`Yb}ZJ`rjIDnnsBm-1Kn zzDj9g=9Fej>lQKm^tSCfz_rf~D7Rc*C4RH``K4dH>>59>SY%-J*l2l5EkzWv$8S%p z<7KSzz#KB6)Z{N>)0xunDfb+PZ>!XEF6cKGG>HV)Eaj^b*te_EQwKZI#n0QEmK?+Q z%2fr`@ktb&66$bR_n0)5g5?J~67R7nC$=PURA$MLq+}6? z95+;l{EiEciN+F+syE95>{7&X&}30d`eHAql>9XPVwwD zjf{L?y51Kl!$k@-e7ROBP6x{44qY}nn_{f%Z6j~KV&7-%P-W`~SiEX@sCZk2AN;Yc z%Llp}6k!MFp-;>n8_8IjRK^=S=p|g;C;l3=yX4y|_<54MBrTZ_!LE|fyNCKs(L(;_ zp`!32k`dW6SL%|oV8TBpJK@Jw_C`|!<24yAy)>MDf|9^ztWfQ;iB`_fazJE`Hv46z zW%D6)LqoFK1}A8iPW|)N{z~n(zR5FI@zGQ)uakwbmpaC#zIM(T(6^n5-2UA$bnt(H z(Hz_g?c=@Das?lgyr~Ozj>Qk|Xu~gFh%pGjS&D6@0I_{X#W|9egKZ!$GfZCPuQk=Q1X)&BjE#hF@KN|K?9 zwK4S658Vhme%^WMHTJ9p>ZsuZqc!6tK3BcTHoUyA#vw4h=p>H2#+f4xzh2f-@7ayi zrN1zmELd~FzIFW;tTwgDdX$!YJPF=@eC~<$X05DQ_m)DR#N&RoxPw#CtOu#z=gcsg zS243~h~vul+k0E2tOcsg^>Ia#w)F<8Z%0=48NMM+OEV^&^2ypR9QFC``Zf0!*k={w z%QJqamh{K=4yl38V|{&g{f#YI+q}EFdEReyrSu9f8>gpQ8xSvlB13!o%28#`I#Www zyF93cLn*!eXw9^ffuwc$d!}|Lp2P_K3e233Ft)doZ%_CNm0@U4e_^2}|&{)5jwGx_*eU%2_tKCpHB2X5c-%8hel5A5ySfBSdt zKV|sSgCG0c`hWZvA87vi75~fXVLMj&?#M%P!?&#e&$r!tbLE!Nv%Y=mKkRPzwc%%};)O(*@r?um3$OP4}&}t2W=g@BXjc`;{Ml=I%!y{mOa0$K>KS{nl^Y z{D*J-rPi58Z~EMq_dM{()3rx_eA@^9`g?PwKQ^0b@6IP=f`kCl&H=2sj){`&QgJ=*=;+IwH$H!yr( z;p5N0{d3>_&Rr`$)%$Gq;0v{NyDq-{><{%GpWF1kublU6ulw?MkALj?e{=p9e$spH zkK=W>yzTMZk3aV8Y17Z#y}ePYU9;|>Cx9n&zjXZhb>DpKGZ$a?$2Z?{{Dsf?{~`;! z{e7}<)X&}7_OqR*{Lz;0{L9(z_yel)|&VfP9}O^ z%l_3vwa11(JoGP)ANkM^&iz*Rtm#d+@4x;V*SmLKasF@o;FjID{L|jItv>!j$L_u7 zv-fZQ;O_UYudF!l7uF8%e9xM1o$=+zZh6lKr*FIY_P5@0&U?Ro#yzJE?{2kDY2W^% zb+@lOfB5zfUf=!8_iwuX>N`KUc3(Ac({LM#i`PMbxIdAp#!(*=R&}%;V*tJ`J z@jw6YZU6Yrn=byw!*9H0W$7E&)~_by)hxg3QeST>6J`5sO{py>J?|p22<^Es3;>{P`_U6~E z{in6x_z&Kc`;#hoGSq)s->Un+_5EvK`?ud)+dJ0#-78=E;l*q2e?z4(JbdQr7jF5_ zzj@KtfBoD{?>Bb!e)zt3-F*A)@7nd(m1lQ7e(O8`=x<-%etiFx2loHbhu-!0g?+UT zCg0z6{Exr7aq_u2@?^Lgc;fx+{mNBu&d-|HJkWvuDRJlA`h0POxLcctXyr1!rpbG$g!eKiz$?)dF+t%4j+Ey znPRa};98tAr%M)!a_gHz$gm20tO=8+pG`7%tu5hV&58o8XMk z-a#Hq+sb9(EYe<~OqE4-r<@j+deKGYs-|(xn8B)5r<|f|*e;D@#1h+dM)v!_!_@W{EIKn z&T`NJo^TBrlD+sMcv5AGvakd$f(1`Dp2!ofnj{O3eXqIY&_mVtRNqs2Z4Wh|*Pb3E zPo^8>$pq>KooL&HU2KY}Y2*E=Z#CqzRrde2FK}5n|rsTH}dgv9#^cM*~j^&u~2>dGhZl z7K0`5KXyL2AE+AbM?6Pp}Xe@xSMO|W!m>k8=ls_Hq_b4uIf94Q6c#dRUd69tS72ZQZm z$^~FcE>9SqdA9B6n(Ed`R^rcCu{3+_( zj5FstZk}w9+{QJ6jWnc_Cf6H|#*=jXk&f#SaX&mMiPL=Tk$PBDnB@=Y>XNN3ydex7 zwS@;dQ1`+kk2~WbD;0O#dV3|w~lZP-_FiOVT~Zpy5?^8YJ^wbEqzJ8 z#!u5>V8;8~oL{|uz%1rZ#jghP=7xOjUYqL}rID>QtlV(7N4x%FaZO*Ip6eE0AOA%o zUmKXOCFJ@?h7<2|foGl`UPPB`C1t6u%G=wWH!iEo2=cP7vCJ^0l35=XY4{4JqTLlCP~iIe)&k^S$Cf%6#vYd7js%l6IEe>lx|Sa$O~9l*2@? zylHTdeQ^2F!5+GY!N%Y-ol=jwUKlJ6zEXN+f$0vtR+>=D9`t{Z>*6n+IDF}&#nP?Q z^76QTPa-TW>h-Ram?kw%doR5B;>#~jPydxFX5nkqTX&&vIc;K>c5pe+90^T#adG|F z2~dC|sB5n?C~o8e?Lv{Is0ENUZ^-g)3_Z8@&;i&}bN$dsfWC<~iEF`6goYI3Q>F*< z+k7G4Lc0(eAruqGi zpeI&N`ADGKay=pFO2(g(X9a{~#Ig(qWflA60HFD)d{)G~MS3$6nXfqLO6LQld6E3y#qWUxpdPPCx@0qPj8U*4vAvuRVFGULgjEm{oM z;u`NeIXr0ba$7f{Jh}DCYp>NWzw`zlUW)q}a0bdaK~Hj?5Gkl{(}ZI4@R?in+1Rd5z8DmL-w)iMIiq23cMS z$Cq#^Ln`A<7OJ!jU}HYXR^Z&CaIF(#PAu8u_nOO22>RKOm$sDMxD#spIbf~KoE)^2 z-SMZBS?sbRfmYpLF-C0l*JmZ+eyabd|4?+E$ZSe~QoIs=^uTN)apuln(ExWdh$nlqhl~7LKF1=kw*Pj9Tho1A6{k-%)1N_MWKLz<(#SHd~ zPS_$Wugqt^<mfAMIEHYd=hK2wVT?x;a zrGz@uNw`Xhvs?*Clyb!v!c)%eW`ax_Tz<}eC&TbZSx}ZdOPj%ocZAUPaJ>|}EZw3M zMN5=RBb{#$>Bnyu!G}{6krh7;EHh4B_rhDdbOlX26pjk@UQfA0{y)n6HVqdt!E<_C22`+ji$9i z>y)Khj1D$|zZ`OoE#(JIjrTdTJP$VNGM%Y~blog&F+K+?iv_vGsLUcHoGuf`Aq+-o zU)CX$Z=A-V4@5(9B?=hfeA3QKNjS$xQ)COL68;x8I>WW8b7}%`s-C9kpk`0rdp zZ?z<*Af@P`bQE(nT)AmebMVlq2m%9D9WF7xLqngq0zq@e&P4b z8KN{^HO3at;Cf7TFyd5KGQiqZ!U?S0a*!x215Tk(qOiy?LtLjM#c_h89aeu$d&Zc= zqGhsC9 zb&;s1u#w`KeddM0)Ggt1AW~`8m6eg;zBeJ#X@s~Y&a`gAtPvOwuy)=u-rE^3rWuKG z@QUfPIOLrVskts)`mdLOV>BxBj+t5B2@s(SX|}A!*u~&^Mbs)Dj;YFMChF*D*n?S2 zI4D89Ua%L=!3yJJGRnumyb0!+Nv52^FZBsx`Nt3+vLw#&)j?RY8h}@c&S`9G3grS9 zJAfLrDbX@9jB>tGQkf`9SLt{D$qF!r&a!1IC=zV1l8Oj2TDXOAR09uWHg@|Jg&=>3 zwu=~%&MJHhu zhbl8Z>mxV{M(TBX>moQk<{{A{hQ!N06(SoC63V_J8o)1dJiP(c72T!`iRm{3GF z1OQ2N$2M3NZ4(Z5G{oR4Z)avVnana+LX|vo;aCWtVN_Cstc-D446P9kkPl5|^5ndQ zY0?{-2gi#5kR&cW7$*{J2)pkwp_Dwz4RH!3F!M-Hm9wXC|S+TqKoJa)P}QQtou^ zCX+PXL0Veqj*H8#$epN~{Z5$L>0TAcq63_v|CBWfH%-UPGg)B}2u@ZmaYZ0PuR^?% zfitoRE@U#4h>`K6;L2%%_#l7ES~{xx!K+YO^D1SYC>MTKhtQhOH~=!RU(l4>d7|n^ zj_t-@a1?^=N~9k$5piQzAr8(ap(d1I1Dk8C#6to`ansSrBpL1J@o6zuQ_|p++1G)F ztVYTkEE6&+F;{7i1wL~FKP%NK+jjk9vFb@fcBG?<8uuv@4sQt^iqDiT(k3{$4oCWS ziVu6wWF{FW4Q;JT-_2V$Wp~itWqJYxOCRJpDY?FF01ZJ}MpmM7S!>F|8KZ^jqWoMqLsgm}ONVhh zS3fB*mY^vX%L@2ApwQHGi?M8`IDSM!(}o7I&kX2N`trb~c(=Ud0Fl!^UgBozQvH?y z{sa1?Z^}D`rsB&VVHq_-iO>{kg;?Gs)=(d6ApyNr3N)pc^2#*Xwobw+&kXlQQ}P(( zRkM_geoRIKDaR<$CpGJRx0@$qG0bIoS)&C{s#(1Z3c_@d8fzI=9*i*;%5}<&Ninnce66i#!p+v{N3oln@K1?j^5M-^9*-#@9m{G5jUSJE`Qzaz9QzwgUv z8;@sg+=Kgs_XY@e{fzK&>WO=j zh|S9pS^e>>&fg5UaSs>X7V>>b>RH;8%b3Brqis|imesLz4&jPhbxi`aVI8dqmYV2`(2EtoR{idDyPkG&(HVx#W3FGsXfC%8{>GB zmlrEB2<#^jg`SNG2us}8iHw|hA#$piJU)x&ZGRplN}8A)i$LO*oo5~Ga+tfD?4e{5 zmoPUxCPkQDQCK{kUO7pzt z4e>stTMm)<$|Z{_mSj9X2aRBS_{$+&5g(W2Sh+Otkp1ma8qJ-~=h*r@ELa=mQDh;j zd$M3nHyX*P9c8;1f^Hl=e-!5K0j%gZz`T!moq>;{C6RHQ7>BaQEX}|oCU#Cwi!V*Z z+c>R?PWk4)>X6Ci%9$C-rlOT7Z%Jnqzpl3lU$%C%Vy}hdz!1p-tKn9sFawoZ%^S|# zqffwSaPhJ)+tz`YQsI0juY~p?R0@{!r^T)2TzLehHE*5JDDvB~Oqk}g3iMx@L@UFqj@~8N zRLFiaFgZWebi}-DX5nPWq~~@KsNgE$oVO&7`t7WehaVzM%jL;gTo1rxd4x#QH{&LB zJBcEPpoYv8n(PB95|eFI>0(YRTM$=lC^kAT*bu>3=bGE03_({!xD(qKH=({P8<3jR zI7l?kkuwWyUYPPAr}sq41&YEY{BC4Q`sm~YKx8V^Ilc2NU5#s)#^M=|NGUB8T@=M0 zLiI(|e2H`M6)-z(Mdupm`v!^oQNBT9-Lr^-(Tu0SoVG<<$B}SntSr*Kdm^yVqB`qU zDxd(6XSzN<^^+=3DSLB%4BQFlRX>pyBPub83nwbAQgdO}P=GI)5$~(wCTCvf%w$X& zxe|2L!p{kFkJ1NV!mM|?Y8Hjl&x+@rM3!YXk#=&{%g|`c*vpC#zLMD;yBm6g!IW`Ypro7v#EOMTNrSV3ZLu6I8$Z~q(@7jF zfS=*P3y2n{dHJBlY1o0uS-oxo;na2~k(y14ckqLFu9KV|u`W8)!%q6faH;9zv9T%c z|KQoN#1fA3zT!_;7I+V;?Daym`s(UMwmMyYI&Hcpc0LD{b46Q!#2 zbYEsf$uebwYCB?v%Q%Almoc|>tchrZa_S@VdM0OLHgBrSxqkqif@f2iw-`|JDE%z!Rp)e=z+DEyI%VA~f=vn^Pq0M5(Ft)5(h+S(TIU%d*}|3BJBBG96hqOO z=#AKs?OFmgN`^eTR;wW$-SbgxN(*H0Y#f!GfgVXs)7y1TAFLXJvVtV;WEV2>7zIMO zZwNSdO*h7pTC1rQI!K7Te?xUtDPiuHHRcM-d7~d69rYnq}MK7 z&&oR%qE6!qkT$qY$-?C^jHr5PkfEAia0wiQ88p}q)b2r}K#b@fl+6LAqsMBXs4TzF z^_jC#f~P4o#L}{(4CPkg4RkcH?zI8&6eXWV)jR5LiLGHVE+~Gw0E{QNrsLULC#U&?w+!gA8^^4xUUp@)MQlvIU&E|SZN%m&1AGfkzs%Cf};*8 zD>&}f1gt1?s!`?UCCuPqhuIm<)}B+iT~Q6@%r@C^`J#0VSnoKmt_M?6lE<1EC};4){f$ z2W#M-Pmh={w~}Gmzki|e;F#PK_upss0nwpLj8rMCtSTN6f6Yt+j?;v;&Kda3UU;YMc?mAYQ2e|vqW%d(!1yYy57bd#1Jf7&=BE8#Pm zI$G=u>RFK04m7r{9WsSZp)>Sgr|KUxtybI4DBhGDN8ysvA@)DgNuKncbGFg9%sgql z_f|{^8t7~Dhq{)TEZlyGs`Vt5lx%%gx{lwbA9c0JR(%U_eE)6%UKlDs0WDc4 zcDBGR8r)tx8vMG{UEL`^DaG-~n=ctDRS|1Z z;?-tGI5`{!#KQEL7a`k4V1-Jbpa*=Wwru}(bKr9 z3u-sfa4VRsj}NK&TC=zl7W#n&K8i2!!Fh9GH!FAPnBk(kynF!)96q zKl5sEv7q=6kf)oDK$dvZa6!*dl|{~VNf(_+F;1dn7Ad+jvut8&b>9HwbjWbe=xHQ3 z+6J2iQiJWu*qrr!NyTuBQrD`#L+ZKp9Duzvm)DQDz|sR+}NRayWrPqt_}D{i(CW zbP6yM)drYq&r%N}nri#e9ivC+!b!Xv-N2m;PDz%owBeKOZh6G@-v~+Qbj2s=I~)lD z12H4FL24GnkNC@+Ytp|lDNFQa+_6llWHaso*e1?7&O@nYP2_fbe z?Io(am?M6*fx^YgR$ZEd>m?qhMM|uhx&TCMMe!7y4I^w8qyRPGqLP%(I);If)iN>o zHD}4#2cq3Xc+pMw^5=yaI8E#}JX0nGEn|rl!Q*C;1_7b8##SiS*qmJ zG~Nd?O(LC7DseHjGGgO+pw&i2e$1myzQ*Drs0$&GgJmS_U7*lhQx}ckdLFvgJZwux z8g7Q73ZvudlqTX#Mx@YK&j=IG&Sp=7k>5ju=y^o&FhHAg_seXlePds}CNYG;?Op&T zmxZtQ@kJ7A)x*e_9dzHv32l0|@-gZ#rcTjK`P0CZTW^TmzR5dRBeEdRUr|U;EBI?1L!ik=hl!&t5g6be7Tq&u=->x z?n0&FWNIl}5h4UbE4$ON3e@pjFPAJ-%VEKmc7&)U_P`Q@dM;D#kKmHpC`M;vS-QW; zqpMx-jPneh%7#Pc4$+&Bbk#SQ75wJLkoNKSR*^wrX+BH{5jxCj|d z&`T+|h#$IZsTeMebLFv7Bp671ZPbh+ex232_DX*`1V3P3Vk>D)v33k+e$Zj?L&>bO z7>4RIKa8d%X_Q=`JEGCmMYaA0??LdPw6Z(!RM_Q)GhaF>z z=@`$m@2s0v4Fdo!B%%|?CPg1sW{>z&BZyuQR$HrWgeKFs1))vJ9#B*q>mrx|(20xY zM$?1nLrv7)D{g&}+D4~135$vdq?uR3#SX%fsFVeO9&#U&kejuKS+YtiBN6vhA{TI>wCYE%yac zm~;tyKQFE`2c`5}PiP#SK}xRIG@4fH(EBWF!fjBLbA_yq6&99^>Fhk8H3{<{1YI3) zsnB0Y=4YW1YC0jmP-ssXxbCVkX4rU zH4)#frKP&VrDARYy0iT$IpuqMPET-iH;Gw9}8ZB;h zH00H^VVoRjw}n+~AY*<0j}Y6xA?-wF-7H1gn2V~?`9xA_r%#vG%(q^8q}ER3u?IKM zC&a)BWJ)W#Ma+AMGuko~w>|>pkv$QO287@uctle&R8KcIXVyf~1smjU$jn$RnT_@t z_)Bu(=2Knvel4_H)^0?Xvs6+7>wRG{C#8SHWS|tL^Is?ML2Z${Em@Q=NsR= z66gb|TGBM8OYf4;DB-3?ZFG;{z+iOcMH`Zete?85ug|=P-JeX=M$FEsjzObZYxL0` zIxRF3E;?E&2bAykq{ciV@xVq?Jv+Hb>>tfejYmdC=hD=*F0|b!BjHr3&urfwC*z5a zqZ-ESqBCv$fRVE|q!pRNu*}7k=#A@Po5lxLM2JsHPLj3jZm7x&UD~d7(E@E(pHa8$ z%#kC9ud7`p{$OivW$L4a2Jm?jqs%h6JtO^lJWO(51ZhhASe;Mi+sP399*L5hhK!T) zTy((KZhVWBy6gVjj{H`VJbR=*HZ|Z&51_l<-c80z#=>wnfZGM1u+d$2&$de7YP3Su zJrNhItXm1UVXQ&B=vnNqIVjcksdLj>GITXYNf@3ERIgULF<$s_YdE^m){;4JN!`Mi zx#Or@RQW#{dmjL|sw#i{yqlNsCJoKYG%Z70+M6)Yw3ZSKEy#A6J7b_jb^7fHm|Gdow}lTz4xrx zj4fAx+&eu!xG|dhacuCjgFmb_cU5-8esl7Hvu3>GwwY)DrfN)Ru$JsrR zJH~p4_PsX$hMutxEP8hA-UI)ZJa^GaKfPUuI8Pb~m56g>?DY?pm;QY3&`Udi|MV#b zfAX!JpZ?V}>8z;SF!&$ty-!rcH*3d4t9#}T-ZA!p>{st`uG`r;lc_1by!@)p>guk4 zy5Y-X|2Z_asU9B-UR-eGL%Dh|`hi79_U(-aTRyO0?8W-lol^%^Eo@wR!wW@ zyWz=K2It4VoI8Hxl^Yj6ojCdJbFN)7XZq=1z4C9jTzc`xk30W`o1eUD^KE0V{PNMK ztJhqA-)`m;Zdg~mT9f%CA#eERHwQDZ1>28YJV$)JbLrKue&N7NTaJ9+mmsbm`_#Za8w}g_m}}c74b2vX8mP{9%Q3rr&hK;NcY=yAFzP?%WxzR^{!xU%B*C z$xBz)20Q2QbQRy4`ofakYW5ks*S>P!8z1?}&*psjn&&4=G!kigrmlmyBRnb^) zwDYM8w`|$+u}@q%Hnd>LnwiJ{WY@E=Bo?je*luY;k^Y6dbMcvO$F&EpIkNV}v7bCX z_@B?OTzX)BidBsWd|J@RD8yN*R48oNYQCaeprL#ZzW+~!MT?@*$R*rR8K3aA-x0R| z%0u>R*U<>6Aa6bc9N{&#OiO4LEv5CeB3Ud%X;z_}Twh*FYYLRK-_SLVQ}B6W`yKxj z{AaY%@$uMbs0hOQ2p;g_Kf+>`7Tg8CPg@u}| z%&s|Np>2J@F$_^2Q!-h~Q#_kRyEKnx(eKB!Sv4BWMMEl*f!u2_qJbPLD?-NybZyCSgVI z-IgZ9_$u@NPLsl9nnd@3Civ)dGF2|m%NEL(CPaxv#bR;U$S;eV%59pgA7bS3;0;YO zh9+zMx%4>0Iw2T;Ch@gQlb2q?oGQ;NGfnJx5n42vvmSnc2qPI{QZ!SANRnxSaziK= zBq^{oS-bV{;pV=zTh9na3-Eq|uM~$gfp>^DO-4qrLpXehwo*?}=9ZGQiITzX!EM1B z{`Zw+y$}!nt1y%tDUSx@Gzqv|&m@}Ibj(&ulb#@e8ye!4lhJZA8Wb3rbhtbnAGIGE zTC$`tvVOf8i3wdj-{Be6GlGPWkBuLk@le3WxsjQqeL*2$nuIhfr^?ZN$z=2}!_72_ zB({DGq6qw`yMbf>4}Fl z3FZZ}4*uTyPC>{ohO3bLVvytU$7uvK*|#tHr4~&j1)zysyOx3tTSrGnMv^_{Am3Bo zbjBH@EW6G)1AG#^h3qmEro$1|Y4a@Gl05sECUiU97O0GCG&!#W{EA1DWf zStX_kWY@gH(7d5pl$|KM0G^dy42zLpLxgX9TVEl?@Qa*9O5Y;k%OgzhwbyfdYbL#O zT`he-{F_{Ee2c&rpY>}}oE&$3nL6IhrTLoir=OmVu9T;l_<3~N@%=6>N4uW!vtq9B zO~U&W_%-R;?9hqE?}_7Qs8#N*e3v*rr(5_qO#NgCYu`E_enbS?4t=knt{Gz|#t^o_ zNq9JijlS_`(uSecN9!uXbZ+lVw70I_$>lxwa&l4cXul_YAuc;njyKq*U-WZjE&Xlj z0!O?DGW}YACw<0G3Z2|Xd2?N7{g)UY9>|B^66@#0rnmi@D81UH4)Nhf>YI%}lv@4F zu8r>J9OIXygEr^uXU=ln&$a5kkMym4o&7#)?Be!j!^a2WEuS9~{GH(Cs<zw3vHk+ zYLB_H8TA;3JYZ<`(Y}7Vp0|EbDrcg8>R&3GbMCK-AFfw6C_Mw7CwgiZWXi}W+|P~jFJ!@Ej~&XI zLP@j!{JBtM*-*OeHu_NH{$Ku%C1fdjW%M!DYew;s* zyl_Fjr0|yg5K9E`_oR@B#v`WQ$l~vZN%6IJeC9Jm?+!|h!bnSQjpma^cd?HnQ3<$?DHAEKdY zGV!a@S7?3oF_x@JXbvr!6nMcdt$qCQLaLA=cbq2hdsZm8JbG3q%Bg^-*D zzX5+`mQMogK2Uk|&`V~81S^syF3uY^ufNQQheWEIjvAh#V1fI;Oyh*V0@iSWj3&tl+i%(`QE0qkNP>WAW=6u0;cndx;{W71#|0=_3*J@V*yxgr2WJsNMPb#3=ow>FBxds8`+KQSElv5JMY?@eXLVYSy>dyJle zNlGsqJK4CgFZ^Q&1E&w5+{lFMKm~wu2Gcl;~TQtW}SB21+1ap<#ylmlM zLQs?1Z{2lUG_~UfLJ1HDB&YD7Q~EnvvkrPv!Cc$9EWSBc;vCs(1iV!Q~C~XDobhRlE=1mFN6k$?v zGbdbSfB*w&H*EB%Fn8V2DeZu|FyxlZc z`^WIKT2cVbBxw`3=|UilP*@YJt!-!xlJly{+*LWh6^_DK5kC{AW_Y@TP`%-WBMfOE z!<_M8;gGh~32j*7O%4ECK%~D;E44q2yS4&e>nn2;_BA0m2hHy|FJ2Io3bM?)wsY5@cs8Y@1DSTiIoY)_D+QP*GqGRdqJri7<8Y1yLI!=?>1JC2o3 z(WHvd$dSl0k|jJbPPRACoS?9@)gc7h^lN@CStbY0$WET&x`oWR`2z8HXcfxgMiP$x zktvS2!ca}mB5Oy^VUNWGMx_bIEzIeb@gbQYT9UOLq&64L-D_!|qZy(h0o5n+pXNU$ z+Q2E_63ie$8mVJSNF+MOK+iF|w2n^4f_c5;+lO?9+chjP63Ta-KEK!D1aE+QEv9HV z)oaKb3NpS`j-OUqVdNeT$8py#vw-GiR)($FV`%)(ud|3YeC+@ozOUU*RD1{%!*`VH zEc2DC%!$Z89Km!TNdON^+B+RP2!zgeVflt&;s0qgZvar}j5S!#S6%KyWXm_Gmw!>7 zVZ+Ez;!@%w^X?3TKn6KYQBm-sq_Ah@RmSb(L~(@=q{8yVDIpGn86 zEM1)Q>jkV)-YEex`A#ar%Mj4T(4ip*q;nY*gBG9yAV{}Ml8(7dP!^*l&XHb*)^syk zQN`^NjMhPBSywQ&mmB_4)WpIE;2o*Bwd-j*&tNy@Iq=sZnW`m`%N?(JJvVbM#jbNy zO-bdypDq@<*ymjqV_e9K6%JuFz?6Q8`gbWx!PvCord*FIfX+@1fGMESsJ@0Uwp#=I z=cItXD8N9N^FADpQ#=jMb1r98Ys|*I%Ja_|=uG<+38Io$6)e#`%ZD`XnnX)@c;V`o zRWz^tbRN~T>SNlgZdK&12shPNWP-a5%J#)$Jf~w(g%dd33(mg|g7ke3PAf7Rn3t-` z6{UV^bWm2%b@=Q9NUscsI6`JTzgwf@bNo*39P$w4)0FADDFm&LVlv(^Z0fpP-|eS6 z>81=CU|Iv|-fCLSU1??=O)+jfT18bSO5RLzMb6l#NYgM_&TtIPXZ}a|Tr)?##TwyR zZzo;s8f&#i1HX_I+7Ja(3&PK`b2B`f*6XOYHpclKn$QhX$LRp$1B9@%ISJtdL$wBnjN&Ft;cEjX{on9jK{`QZ#kWW(_~B#5ouOos3Uduf(VEcd?C zO>vNnanaqyn6KytmAKB~Ei< zoF!!_*0e3bY>in*YHgwzzrt~ED>m(e@M?*?hzIB(YOOW5^dT9g$#-$Znpko$Q{r9) z(P`8;({s;dfZPlNlTypA5f{CmHyX;z2xascIA2II6TU54?DYPNsV-c=RE6X!@Ty0g*6tnnQF$DaR&=njv^sRIVn7Jt)TrvoE>Xi&aC32s0>)be?lxR=PSTcU0l!(gN=q#f(fA5} z3Hkt2)EKjJanI0P>VX)(I?n}#&<}I%TFhfL1x@7$OFJe*vyXAW1Nfl%4hAEWvCQOS z91zB0aO6=PC0)A)aa@UbldoM36Nl~ORH-~!m-{t?VuYfWc8MOwkMy>=ctF|Fw~M?{ z42_i__{stid2;!>&V=xtEU(6wG3?W+%EEF0Rb$GjCA`?`sBmkh78b8Qxtd|c40I&9 z#VH4QM_O`L(lizyPM?|Dyhh}y8$HZ$X}g;yQS#GyTIFJu)5%YUoo#dmOMVB zNXGyVkfQeRJ>CQoJxczu^BjX+$L(Oe6cye=3e^@*wkfwa9mP5G;sBNK@d%_T1wdTd zK>jUx*AYc@SK{%Klfb;@GBGUP(@`{*@j*STF9u8qg$!hu@iVCE1D3n%Ubk)zb`8LX z+(Io;QqZ2gMn4tMwuC3DyfS$SF0EavvYP8I7Q#h+Pwdw!$HG#^PnMp8$I`5Q=Be&= zE~M)9)f;(jZQ$hWjgnMO;w4gDvU-eps4E9~Qf3F5+)brVR9WT-nPp9Qm^*sjHPREa zN;Gv7R4AhV`%zqNY zh)d7&Xqz{!H>Td%K`~erLnLBTF_2eG_;fd&PA*4vmt`r3qLOFFfY;y+N{y%ccAfQv zsECHPe&7VJt2Nl7Sk&<*O@t^;sZeACzr@&D4Dy%Nja zfabNkgU+Nyc#7shH{!_<>pCgVVve?fH{B`=`zd%XF$}|UPh!z!Jo3DB{o%U^y!0^R zYnX|j1x$X0Q}~LQU}2IrZirCKD7VnySu5a(KhJxJN#%E$Ib@z{Y1o*u5-)}Uvh*S_ z{f>E^T%fA4!7^*LjA9Tjw3IB%UXkz|$yzbb|J7Yw#=G%1S%0rk{v#~)HC-{-S@{*S zOw1S#@jfgA=8QSuD9I>kYDIEbH?bn>ZIyI~N7uabEK*+|xLp0v$IQ4MoOfewChh9| zT(--&TmeqG2BWhdV~yifzA}?va-*uw>pDh2d$a1%EKRBM!Vq_Qp}JDYBj%=Ld5DUd zev<=XQsmb0oMS)5PGf}C@+@^-(Ot*aLooTI$0PVWF}r(=s(vOorpx*ZhFDpdzWu@{`p==Cg85xl0yGtgt~PvrqP=GzB6bb7no zgFPdLCDb}6XYj@i=UpY?VJhN_D)1kZ1C;Qj&z*`WzD8|Yq9(EEQaM%%~dmnlc!E05BBn4e5P6!&j$4 zZJ5I7(7fuvd16CQ5sy~x^5Q;=3OacJ(?K}hTxuP4W-s@v1Fp)6gea!Hw`;!;3CfF<%}1Y=bH>fQ(zB_S!{QZ{ixS# zn5^2Z43x}2HBh1I^1SiP(-=ID28o?TOatNZs*`YB$K~ana~~1sxp;ch(eKr=%w6s= zXoRp7w~#9tbVec<{H9HC5Z{fQPLh3wT$S`glmnB23y`&dCk4 zqQt53BEbp{m?lWee$CXU<-8=Mv=m*rVGv)S5*JWd6YPMbf-b>)$JoGg(hL`Ca`W0% zSQIp)-+za6Dz&Ng2EoT^f|utyVQZ%_1*P}Aa);AJoH*l@bGmr(ai#C1S)zGz7emV; zf@iinz_LxIwP;@9V;b-fRNT?N|2|3$xKzO^!F(7^Uq#sFx{?{WS@Y>^&Pch2FPl_L zA6t);8fKPi_IBclc*^&L1GiWc*pJuvF$JE)t3Su@b8xRb5v_IkqBfK1H%^PR5zZq#5vrIX31tad2g^&W zjG`7vOMiexQ#?)mdB3DHUazx|DpEr?<+;$TDkovumVIKF7p1ySxsSBk*Czz<2dBht*t) zaGQHF+^3hKl!iLzVLH0&aHFNe>uKyfd@zD%q}e|}U5(2WV=&LigkH{x+o)ouw19Ay z*bX|DPn-(xtYrq(Snr&{_b0RXn$}69F`eSEkWplwB-XtM-)Q25JoB12-*>#}j(LZr zBouUrz2lmpcI+HL;AU4h!!5OE9&;VWDbyOK!P8%w~JNd+LK7JVom`6J~xly=EE^#p{KZs zI7+6xGl{2cdIckXdOV)K$fJYP-MFyA7EwuH@AJBna~NGK(--{SmSDXn+Ho)J3M1bQI2Uk(#=S{j%(OrL4{n!!wa5ozwj zv37|(ZZor7TR~#)1Ns3e+I)Y^W`HERVX0*D@xlV5YsC?G48VoRZAb$b-2QC9+Omff z@H)x_7k-w&$Xw4o5l?$8>Fpna()#oHI)|5S zEpz_N99{k>176Lzy~B-D4}L_GKV`v!(^-jI&O?&DtUc?B@Gj=Hyj!Li;ocVxGI^Wc zV>d|{ysz{Iz>Ulx53OUSx|uGxsIF?x6IH#l!BXRIa{5xLYyVe{bLkYGUc7$96RHIG zWFirDKPh$ZaEF^QqMwz7Dhr+&9u&CoFk=zEP@ws)V=fOkJ&QV~&grN}HhA<9FRXE1 z`xm%c!29YTS;ikEy@*wvzm4h5%*GFEmHk1A_VP-mXNdEMSyL7bKb_jklIjzJw`C_^ zCi+&YykB&vh>t{J7lCxzwUOln?}^uJIWch}o)F3@&GGKM<9a`@)bG0EvF@m!6Q8B5JD{CnN9V&$ z)>fG;>+a%l=lf^K_}dSP(=hMj6pQmBL<`0C{X1e`S&<`mieD7n8+e;}XZn3PajX~5 z)K1KVB4dB5-D>!yMJQJ#V zL0_(q1!hL}QGZ3(-LnQ4th{$G@5Fm+RAG@c77jIk@HZc+b`kEc)&*wr_vwju*fBr4QeG!@iqdjQ!?m=aEyk{Qg_7 zxryy}JbUHcN1EGT|K)wnU-bO+xo;1|pRX)xe0uP?7yom?gP-3%_QuY!pPcf<=Wp0O z_O3;TAIuE~2VNX{`ghx>1dqS%!9l!X~-uiQ6 zFD!a)-(LOVXaDp18=la|4?Y%;{b*>%ojbifU(F4y4LcUGu^M@Nha>v|#CvCs~6Ia(q`~L2Q+g7c7#8ma#3DzPe@Xjn}q} zopH_Y|9Q(@=fyW3N0vy}_FV9R2S2fU_uq_t^z5B4&t5Wi zc6|NR^Tug%{Cik-@k$ZXcRY7s(%32X;kdMks_CDq%xub;woM@NAh$HDPe@{+d_%wJ#? z6_7EVGUvZn;@B-OapkhLZ-en3LJH!Ua4J1QEBJ4XIbgqv>y5JLUQDpMi5n2(DJ-*5 zij1}vX&ZW9kK1##4nEzA)}l1TcPNCIq98efJ^^#&Q0pvexfs?@mCGr*?y0^1Xb3EB4si=nR3ZB15gt-A zkuc-tf2Fng($=6@{GK(F8hY$83qMYs2Q8W;nI=JtCP$8#noNUV@A+vtDB?qMuUeY8 zAx+9Och#ykO_EHLpp3J~h2U`DaYyef2lRgWG`I5ppd3QNVI*Lh6hfMu5ZX39gR}FI z6vuHsxJ+L%v|PpiMrl8fYB7&=tvO-8mT3Yzt`z~VZy{DV%>M4{uiN&yW`XwcbswxQ z=#1!Lw4DS^jLlzpePLu0O;VH`85wy7G>Mj*UqY%m3G8IE0SC|oX``cmh9+xi1H*hc z67|b`UCeQFhS|_$w73i~=NFfgK~N}{Mw4xtFttmJ{}HAM+8?5%wE?g+DQ}{+QP3ng zmtojw{@OLmkLaHg6DmGB^6IMud&NiS{EZt&k1$Q1TeWKG(!zSsBoeVS`O}{aOzak;=Wd4}`Km^%X|_rpKzVgQJ#5B?x%MBbST(F zvqnc=u{0SWRV*@1c>ho?PofEjKmEzbF3^N|foYKh(WwmL^S?`gRo69U&xk)mD^jz> z9?&FND5U5K=9>tQ%*w8t`QIqb8Ro@_=ydFyzt8dS zuZTn!Q!+bGebmq-pYLH&fI0EoVw)x_)`Cx#Eo;fHVMq>wLYH@a^VJyh@esF{(zkfy zc80hb8@{5o$(zwzPv0-y%(>ERB=LsMY@YZEn?GZt2mKTuOf9+cB=@2kx7Y2S>%-Pi z@=a9glld+(g*Jq3JIeO;C>ukb&tZBy%>94KZf@IcjN2n3ov$IxZQD#c zwsZT&?FrMkUS{kH#mRksKFynzY%AVQx8;!Djrd!Sp$%(m3~gKjj{eyUN4@hFlxLh{ z&(FB98&TNaVVAgW+84gLxE& zx&L$p!5)z&*&{}%Wsms7B41DI+W5##);5zmVLOSjY^KVY3mGTvG1o9=*h5}*OuL4t$xW z@#9u(%;J$~bjlPb{37t1Ly7}7fsiwSwdkJ|(A4BF5_m=!{#7AjZGj+>hBmQWUpi+_ zc~xP_`f}lW*=N?QDX$qFEihKhryP>bkMK1EmR6}`a@H(fRSvWC9}TF$+6<=#lkL6V zGDPOhqo%ck%=Z+R^^)|1Ax{K_&{m#h=)MWs%B{B+3b)=0EKi^b>=jo8fuYG-rU}R6 z@x79>8G>N6Tz3BK;8~yHt|r(+1-x8+gc6`hp-^m7Ga6-_PdWB4(qt@fX#M)7OUKOj z5{?c%Yhmj(9#5?QYiSZhV7~~9Fpg}Zk@A|A0Xy$)0B$M;z#fO$HTYUJ!t&4kjed!fW zPa|CJyrn25I>unJlkKCfBbA zcc8(Ed=keF2v(4zu%!EI`2^o@p>KqIk}oc+l2$aNCF>O-pJ3ZE-p)9mOrVM76HAk| z5u+o&{`$91Bk+mY8HSIR-XcT}(aj={-5`ReTA_2PJDU)#Io0geVevaXtOCR?zh5vp`S*E&9)iB;@%rxWr(A1;VQNJ zY2#ax+WB7#+Yj4=Ps>ufe*&!ULO%Hd`DDgozWFEm?0bi>o_~*Y1gioaZ97Ecf3XU` zi73bE62<%Ok?X_jKzLnep8wsGJD1CA_*+Ezcim%(w`}&zm3an!9!*BuZ{v8oxCqbM z7;X#wLbmNG!**JJA}6Fx38!>H7Q4~4PmWO?!DfT~M zy~p^f8J6=bOyb|H-J$WLXv)u%iqok+PZs%Nd{g536+5O@d!|3!v|;2p+Se5uZ;gfH znTc@@(!4yfe@fZAb7|P#w1eVuVG?d!MM83Uyuz20iz3ymk>PNU6kZI)P!+itkpvp zykY(U1r)A0WGHYy@!y0XaJ=Gq0&a#msx=bPDQqE%T_zGE$1xK7P826fK$zvGIbJ?XV}5 z!eGiMlhT?}`OlWw7DMXgp~1hu>EB<~PFR$B79{2`rI#3C?48oJ?zCFby5}6A9xA zgF|6Sk5F$LJUf2tkJ0>aJ3<*-m@r5}%j0nbV?i6X?9hp5*4(}IzwtbbKTIj&N1xDe z;8`XNA%R=*_EkF*NPiS87>W6FbQpIrYh7Pi>kb>#gnM)6pm@sA#(@h)ctq_*D^4%k z_xOSW85~;WPyy6<#c4Zt%<%;d(sPhgdWe80?LwSrGsXEPoEid213H6qn=W}W;-4nX zSr08l)-j`oT>w{TDlH6Io1Ck(?LkW^U6?USG|8-oKDhZN41+*Gtxad1EzkEga}A^I z<1d`wE5rLRX!|2^fJC<{(9CaOkirhZTme;hZ@<>vfo}$*)UYePic9lxTPz&w?dgY(DyPuQdVa;07S^22)9`DCb~%`|bW zl%Ap0Y?r7qOdZPOSy4oy<}Hc#by~qH%dPdAIYF3pUML*~oJJq%({bxFWjVJ-puBcw zs2UZO>UB+1POshYsgOhA&<{;by{Se&Dsdgw%Z&4$*$&4UWa^#v z2%WT_&pq~)Sdm~}VEpHnFbnO=`QXkx5>y) zE1F3;5*QyJ;=DQ@PAJ{>*Ip_iG>XO`WL{HFQ*{nq~^%i_{XhRyjSxkNFqrQjCtjDMLA_pqCd}yJ31& zjUceIR!Nr4@K3`x9H3DeVWM$nkyNJu$aMTQ0>gD;sDYHO)qTA&F4j-QeiGeoAJXHl zyu2Gu8yFdW4DCo(mbl&S8)-f3x5}(xkj=LgW5<*1^JxwBi*7$HRY#hPGak?N4EJNX z;TD<_iDX>5c5#AC^8m35I3MNx1UQ4K3h2rBMG;{=YwWOKT@RE1%wIDO>DVl)7} zWpREOGzYV~JjaB_2FF*PCmK`|orK5Im?w3kuo0Amnqs-f-^UQPmVN&P%+Fx`CS2#IOU@=k$YVC;zy1%m7< zG~w{R8Jp^r#wv<4^4>rZFI{kQolAO`o4H#uexp=HQpp?65S$_NB7_YZ z!65*SGGVRa&4BLIU;&NiG~`q;B_$}00H-PThI`JTW>ca8B;kCs2@H`35FOzt3>dT4 z=5(xMh+Jt9gF{@5Ph*as zGP)we`Z3GGW(fsmnGzCpOfY51=-2(i)so}V*~Rmy?=o;PAzQJ!LEt7g=V~&1uM}$a z0_U!~0CUM>-FcWO6JNlRSme4vni_+lxugTy zSLojpo|7|>Soq%x_D8-d;x zRiJi4L*9bQKL3kyi%~Db&726=A~>wbQ@RtA#K(fji(O=x9+u!^xZ@gNz=i8IX0XU8 zIxb$#p&_0!9biZ0;#qm)`aLAUtfhk)2~;WA22qrI*JcvH_oP&E}nMe*Cl0q-``K2j--P=7FUcQ z>fID`StKaa_i!A-_SjxK16W&Qq;u=ia1ucq@CRCOSSB8F^ z)mE6>bQkq^f>9Z z1G>{|bSRkfaQ$30o{Q&rt?8$|@haB-CIHZ~!H`6}4vK?;sLpESUQ%@f1^O}vmlYRO z61GLu{W&8gUMFOrV75}CnYnC_*A!B*sF>5wxY97HVE`mm>smlEW7JA99hNge zG_U@7U+?ggfG?w72Rlc-=j8=DX5j}m_f`#&d5eD;XT}oXJZfs56|F<*n1@E5Ih`vh zo>7lB@!6GZ2WI)5TGwxUm$R+vM*6F|nSl3_xTEV0ebD1wNmHqW$n{qr-9tJu4OZ1n z7Ql{|@%)N^J8eXPhBRaF zta%#}GwZX!T;YXFC?h+d!tqq~@f=F{x=+Rz*8C3EF4ZwrRbA;dy~LSvA&A4vd)il$ z!D90Ii&&S7vtBAG65l&G(17@M8Q*o8s43y9b7OMSJ9ub*JwRL+W|h!)lMm##2CEwqLn&zG|vUgI7DR>Lp^HJC!A9&MZ)pu|Gin z!y~zib?}(uUKaQ2KK6@)uZhbe&)+$Kgtw85lYpTeH z?@^6MHEk2eE7$4m?`r6b=x}NtbF*fw^Lhlna(F7=*wi_X`R&_MvdZ>wznzkoV~aMx zP4m>n1KQ$jdeZ1Go%L>laRcjQtlv707K!Bmfteml0z_|xfx>2K*i2Z#I}D*z+O3nZ z6&4Mzljn)z@nyjSyrJq$=a_t1VRScX*p;Wk4lJG6zsERP`d2U{xoJGPU zF&~ddA;VBLM31~B9G+8V;8vTgz1cA93 z))1chWcVjm6pmLt*B-?%u6sCG0pp;CV9{&Rgd(E>df0^6^E`wO;0Mxnr0Z^XP0(pz z1;()p)Nnrr9=>PTYhhEo+$q=vIr#)I%9)z4EPEjb;ZYOvL&0u=&A>JA;Z}ul`?MsP!WSUKF{rV4iKu)N(Rpd@RwE!?ZjN|_5xw( z3Kl2aE=%4F#}rQ)(*u|r*fs>GVhgj-I#_}#R>q7l<*l9%`&a=w5&X{^tb=k8oz!i9 z$(hbu`5Pl<^TPb-^HNDWATfEJ!haSgybW=NaRf*98e*D|>&Qu+W2w*enl8&ZH>ZpG&RyqlpVJn)vgmeeI;dF}Vw%a)bVgw>b04g^EL5!hbmzDxZ@wUcwAMT? zJf7ve@WoE4<7q-aY^ViYF3spj^rI$E3t&WHOhqKK@a%VFjdjBk-s$mQDW_RosbG$> z&f>^uFBBzZpBovPJVdmb3$ixk-j!N_@6`J;!?@@?v*a?F#5&r~EXG^5M>JP-761Ab z6eni@=s_c_{$u~dgA!Q&FiBXTN#4_XzL?FjLD+$!SI?8cz4-*65AH?-Hp@PE#V)Bq zG-HZ~tM3o!3S*bm0ZTb>w7s#+fP3YjF_9|qcK&!(!Dx=ra9OW-N$`hDJgMQ@KIJZl zeVbC=6sS5db~6vTHE%L}9+(#;qe5uRA9TPHk%Jh}*Ll79y6Q&~_wVVz$JzX?fn*Da|2r8<)i+BZuC> znmvZYvnOi2kQ*nNVVD-84QMd?0Z-#1kx-EU3eZ|)H8DYKX>6u*rjka~JW}(NoG+gwd;G=78x7^CRb!x`66#QeAZ`ki0st z$vnawj9~0+AYMPsb3xu}Q4Jru0}i;pMtQV_(Ht}vmpP};ce5^ac^)sDvU3hSO=}Wsv zVNzjikUsS|1Llaqcn`5VVOQjtyj-XTZI-JPwxQ z(H9q1YL5eABPcwICv0?i_iX4|Z}sn$sLG6_L;9LY0o?cx0Jsa)(ruOS?P#8~(+9@f$Y}TWrrZS#@sp%N0o!+*C zMuM5ROh>cgYfk6EiXZ76FtewL?={pMo)Vhq*#Yl2diS|E-sXG5{VQDQGWW}xDrLFg zy^_$k*Cgnjs@jk=D34*}Tq53E>KFNL=i)w3F6i^;=XZI>3L&HV#yqV_2|tz2cY1!> zso6n#F88GI^@<&s;H;*3ao3y4oTW~mj`42m;?*d>k_RGVykgW8rOT{Kh#HUCjMn{v z=fB;PJQr^3RkyjrGL2pTQr=4!t6sB4t2(JR%ot;^mBW0;Ylbdnp&~hbB$Rp3B(4ID z(q>Hqx0yG^yd+5v{^a{lH~9CuwPjEed5()Xo^+y^c_a-P5Ry77Kd6?gZIqa?Aw9O+Sy}Vc^7s$L^z*y=q#AUik95fdv_x0LL4U&h5j)NFGLOWB=<0f9 zSjz4=@6r^>8QWLSzHEWq;4O&7=9mS+tkjk zxDbiP{(fe-oKvg&a!`uTsA_3Vo#8Bpt>$BqLbvIB_c-J+)Dr@e1;!R5Tj(T&Na;dwQ z=R-+VS!Jm6dd?i;P@LgrZDns%n4yUGZaw>@rGI<%)qi~3*}s3_%nLtp#r~U_CU*^v z9C+aee?RXXW4G^oWi0r`Yv10zcK6u7f9HwSuU`McFMsiw%75?p@6n+J2fupng6AKp z-g$8ESJiKp>x0ZEzl!f1xMX4J;^1$d9b4P8_2XZB{e=TPV^5!XM-7*X`}(!NkPo`;R zY~TFgHCJufymZTqsZ*E4#KkjeFVtUoD)-|jBDESw$S9b0k@w`+H0Tc9+cbm%HZrNjfSHyzdDvpoYebtNfh%X z=99iHF4JUseEs=y{%mJK+TVFzyyKLemu`qJj4hh~|DBzS^FnvtU4!vPy2DS!rrkH_ zTrzd=Gvo~|?47^&1m=^jj;XG9@{Rb`w)o7qj=Xf$)BENh`|N1^gGaXC`}fcPp!$^+ z_wN0|=;&v!{PCjuuN$m4cima(O}_Hllyy&?{O#+6z!pUu`1p>qu03wad;a;ko=vN9FxH zF5ht3qSC^9U(o6Jox=;iJp4b)o1?vVH(sB)d+8+$SIr2{zI60GTmE$NGe3W6&e>aj zJ?B$f9{jhpJr`_VcIS^@ch^3(X8#xGoIWFAX#zPvzXqCk?kVw|Zp@3te*ViNW8G(; zyrt6y0>u;knCeQwLy3padn%aVBfvKjGQ$$e}P}RJ|U)b)Yoiensm?q-~nHBxQYJL>muFRvFkdz zK=2#3DHPs8HdB6(Xu&Xd3Y4Rkw{Ra!VVpjXlg*^ zp(X_*TqJtv(A233qx`i_cD7G=!u}CK*^exs6V|j7(O3kJ>Q+$8okwU_Lx9$Vj_dat zKP?RDG_y3rR?_1|XkNSQ38royeFf-o(z$#CL!n%Xz=@j)BSu!SNH0(XKF{_IndJ6) z*g}C9z|m%N{rZs+bDliRfjuF5z?syofbfJ@qx873N7}kI*a~x~XllF}D&w4gHg0+| zAqktNO>d%!Elg!@AQ{r+RYQ{iX@R8)2hfBj&?KG=X>uf)1YMaXNxdz2FJ~pnLz-TH z9mSX?G?6BS!kcKaf#wQxmxSGB(a_{n1DDMorwJe?D0M8?Bk-}(rpXDcmiF)#s8!Zd zp$y!IG#NjcAD9#JZJGe9Bk^FwoWD*+BdEBeZc4WGqn-jU5Ipz(5>0}D4i-+}LL&u( zBZOqn8PVx*mlOureMC=%9Yq*Gi}FV?(j;uWXl((06Ia0B6~XH5W=oS(P6?PM!M;Ke zv}j@uOoJxLNHA)~%(GM+)1nEvhYypXi9fAH6JnYi;oL)eTHU8o*3Kf8!Z^&hEY7#m zgU2K{C5^q?3fj~WO+<{-NROrVS$fFYZKYBMDxtZ$kn9nru>H0PdE!$19 zu&(ZMvorh+dX0fqAx>$u@ABq^D=kO8b>^G-7SYI>85@i-;zwjPLkoGBIo-k z4_p{K#xQ z5Nl`$Kh`hyM0+BZS}Rz030Nl?K~55uW;P$T_T!}x3e{edR%_WChQYLr6`PR_%#llY z1tmqaOL-0B?DhaOSrd#FSkyw$;&&oVf*_G_j&-IS!uKa;L8FUC&-qU3na3Yb zB%)Ez5G{{KJXi%F#UHohAkYNx@bY8ERB#jUk7sF8C^%#A=?3*A8I4EE63 zU8Wrp+gmiTn$yr;UcD_%o}eC90!{nKH?T71;kk2U1gi;S`-4;-9gRdr@Kp?^3FFDE z4xmYkdM%m&STZ!(WN2b3)3OXS@Nd9fawHfv4y;3(1coLkIguv81ezEaIe%`jwI?`Z zYtP!PJzHBC22BEd_F!#rTW}lGWNEOpFdEz*-2J@~<`+W~ELKO;WOVdcrpc5kqeqw~ z4}kLy9}bu%LD18)Z(p43JBcQK%7!N6I5oo@r^zwKXJImu7y(Uq<%UDK#Zw(P>!SePb>BcW_O0W>jwO2=haV0^fS!O{e>3s8V2OsDnG$gJ#|OcUM< zg*2Hcx`2f?O)f-264KntE<+QP2Tx3<31nA`CRTR+86Sq@z6IZ<2q)L#y&Q4eh_zqj zxI&zE+4LE$@=j>eCv3j4EyNLP$CmrE{oLH@$Hay7kMePN^SH0W1lrktv=2n0V@?SB zZ23#999;%iso&K1uF%(H=sR+J?Bl*9xmnn3n)WFb=C`inxSBln{|M7zHwhfH+8-aA zg`*vhE6?EQp5_4I=|5kmgjaKZseP4_3yK}ae$dz4w3W2G&!NngudPs zM>%hjkIAFU*)h~xW0`03;RkYZd1(MZxruOuc8bOqx@Fy&PUGv3&eJ1l?{n~JLq1GddDRwQ96+EI1$7LqRsO_Jw19%U zmz3pOg<)ZEZzrg!IFEy>P*ahEV6Fq^HO_zmFMmv!GmgU$5c~p6Wj^K{2J_;ryAQYB zZHp(Tbul-Sy0Rf0N~kX@&Kqbw)|gOg{66~k)|_!-rU~+>B(!Hte1tvoqr!ASjtp;+ z)w)-x-Oh-N-*?|2$>B`|qrcEUVO~tEVWxfSKAc=r{VbAuy*d^ zwEf(`L7X~bmc=Q!N@~Nc zamj7idZNz)Tp2K%5j2m`VfN^#Qq>Fix&V_!<8^OFb172{XDh0>Y8RL?%PL%`u{2g; zGp3l$0mNaLb}Lei6EuiegP=MZ)pn>jCSn0$z&mUm9M(k|%2o*X63IAuYV#R=LTO?4 zRE&4z3bZCQUiI4MI8h4a;8--Us!XCqjEh<=e-jGFD!^X?MU)rGctTSfI}D#Pt8RlF zN#L$wrD>(76Afs{uBP)`$4j|aFt!`M!7FU)7!9ry#n&|bn@ZZLc{;s=n{=g?ICAg^ zEX#Uz6jWo$%Tq!DA6(jr)_C8m#V~2(ql2#zuqKyR!tFfmWpKJ2^EJge%nX%| z3Ku(>F1t}xDOb{NFHAZZ01ghQQQvt9SQ+3yx4VKj8;o5itCa8DuEB4a#3WsD?ddG{Knjvm|tfGe|3oX;rMiHw(~O zEwmF=YXkpH@(^Tb5RnncOPH!*(&SyUX&8k_P;&-5bAwIS*pzGJ81q(*@vPB1CbZ!$ z*Rhd`(O{Rgq|FQ$v$7J*fxwTj=}e9F2*o$qnzejl!|h`>=brNqxzKO9$=3@q=;C?7fUo z$9jTEps5&J(cbNwHZl|b+#o06K;(A+HG|H(h55jUh*Fg6MA1-_mAC+coRnEfXy?7@ zN2j|dL5*|ic`<(sWeY4@z@Vli6BBKfg?slZ46|yDThNGc!HBN4xLXP9jgXGAJ{ARQ zn2$=bDk?B$6!v*?xxt@1#;#%4qr)E~IDpDqsWFx%DUJp$Mk}|u7PV_+;CnoRhV;dq z*#BVY6HH3C?qMRi=&Vg>(nVdE;-;s#kwlkB3yJPz~p{4n><<_B38lP00fCHMv!!(U)YY!z*; zg^v;xs3Th~h9<{`A5YiY^;yv1Ht+)S53f!qu;4KJc16!U}93HvoY-+wYKn z$d6`4fm{Tu%hy!e%$_c0vV$^a{DNC3s-ns_F*ggxpESazY@0_TstjX`9N+b#aH&+? z;Q}b_H52G0>gZd)JaUQ>IFhjRxkY`*-9Mz7{>79?dg6Azo&py}CN)MGcSZ<9ra(03 z_{@z#q2l{S%zZR$AXdKlW*{fp{{fGTT&#RCYn-$ad^cJ_Uz%Q2M5WSH3Scn`ZqM5H zb}T6Tz%qfU!Rk`dejapUUE5+UPy1Hb{rR1gke*#+@s$j=37B{Df$F0~(b{fSYWjR; z&^MjdJ&B^HJx`hi$jN4BOM8@OQYwrre)F($O*7si*|N4XCP zJlRGKZ@1msNKog#x<)AOeaI>CT@TJb=wPtgGEFv!eS|Q*tt^#2$?%MUWo_P$QKC_z zy#5=O{evCCcySLCjuD35S;?al>jaiGQ$px2=3f6c*|2pU20GAsZU#Z)o`q3{;gXTi z)!RCZd)XlPoNwdOvMxbyblG-52HWY_yy1~lde862ZRTClnz5@#tkVVzC4+-!oXkx8 z^5CqQ1J_tZxm$Cbqcoxx#YwNq+Ituw4HmXlorHb?PUlV5RE|u9FD0gR(9$7<8 z3{##ga$i^qNe*{~zmi5U>2aeA!-g&FOfr^q(c!5JWJNm^V7Pa)qM6IREQ0$LsjIzt ztear5No+^1)Yw`_MOo%W1Y#i%a{j=qBJ13c zg+aB*X#U58IZaoPj6-%d*A}&Fq&mccZ8Y7=HSOd+G@l0OJm7%A17!0E;a%NQ%<|mD z8sCW(^sO={L1qgbsnB^AwH$DdfP9DnF8#Q-iega3^2`p`o?ydP&ZTx_CNtn7?O$-o z6rYm$`o4;g!i%v5(a^$(LY&PtAsBk2r7Y8+yp$m4UR`L+PnR8>O={4$O4j`d`OSGY z$DDkcR&20bZSdI#-b2({eJ z?&aA4wHZf*NXrO~%oZTCtjx1oV!@Gv37+FH@rsg1?s`4q z!M?F2>L|@aLb>9Wcn>nR%Qq`JgkF~Ykr8kdGpzUgjuFZEO!!H(IGkan32v5xr=iSRQ$A>oa=J`@HO51HgQu-L!gE`2yl{-@$q|~z_tg~U z6doj|Be&(j3qDqik+Z1oDW>Q7#Q@p{>plR{K`w2%A*#T-kGqdCpzvNUha-UnkYu1u z-FSl~3H%W(1HMOs`?a*&|&RGe~@4^I!Cb%XZne=(+%J-VwkFs(IjKKLUI}A zs_$m|P1jh&yxDXiV<=zHiAPw(JYTV$mc^i+;cgAHk)SNs)PO&d)|I_<&(*p)Tx5<1 zMTc1g4Qzd$-E&jwB4(?G^Vj6|ZgePjp9S;kI_CSuit!8}BCLm4HKJHWc{KP0P30Q= zy>3{R&<2(ij{;nHj4Ncg-N)f({6MjoySlx@jM55E&3(@np3g}yX<-^zXB`OpFgqe9|rPNletBVnJk;uwHy3`vce6&LYUaD@eRH2)S3$aF5H_E!EyNN4d z-okpLg3jsu4q7QpmCiy0MP*_$@p6#OR!EhP>3@yrQ(l*GYZ(0U2zd3h?0zvqS$vpC z$b%A}FHt*LhZSbBX1Rpq;g(hUP0s7b00WAwZ^d#sWn6qkzY@E6k(34m zVsY38JJs(N>4GF7;*!cJM7<zknRun^nWR>&~PqcxH(3+qKk$LLUQ zl>tVCD3G{G<$Or=GrWzANa>Cpk6b@5ODr4l!+)Og6?NuHPA ziowA~bMKdMmGx|sL@|?Lltz3EX{-r{IV*6=6>?X3aOm*BVb5eX^($CAi2*Ghb7BA;+3Vw z_ey{|3p%hc*L^H#Il%yY+-{52CyTv8gTvZZp{&NV1sTQWz!%a@<50$HRSX(MOveZx zTk$A0c*0>Z<{?a?O94B&HsX|#LEn{R4UD!eOhFsOGz{V; zVkod66O)dgJgwNHT*az+#H+!kX zF^nlW`MiG&;x-ZxUwgYYd+iemt6YKYM*lgA;SpKXd7vAG&DXbL>_(WvT6_K2Zy4fr=v+P?qOTF#MI8WAW zZ67mBowm0H<=XJl)zVvI?Zp|7<|)y5%x8OTP;9@|@6xQckp7DEz>+$`LqN`tQhO1p ztO;aX-74g?NIGUI&lec2j!mb3i&3O zgwN+FpUg?4N67nbwI%#6OJA{NGmPX_o@F%XwZ`+F-??p}l-6sHSv|nIZrJ;fEVsSV zN=f-D>jSTl*zhGY(rOZP7mq9%&tuGXUZ;*3ZXe?5srJMnbpZ>r8R%ZbQ=Vpl5izjy z=7^X5B6Lpv9`W{VmZ$LYa!dDbYdm<3u3X8?AwY=46NwLc3t#lamPAeJ&r^JF>Vd)q z7qb4a&|N$1m=JloujnNbXKRlYKh0RPEnBw3S=DZ6R{QT6@jP`%E=+d4L~fe&{6nmh zrbQInSMh=E!@BrCStUceg7XHfV)Vvs?O@0I8RzTlQ`x9TEA+fpA<`-;)@dr)x-2O- zFk`HW=z#$qzO~4G{smiF>BZ|Ev5nm+t*m>Q zxkPtoqnO=NjI*(pWEGsKtAwup)JuNF%+wz(dSj=b@%;QfFBP|K-}Axd9nZD4t!uw< z&#`CrkNxu4|2XH_&vm}_?6C(w{jK@;Zu;?q$8P(V-50#^hbs=e{^>Q(J@B=27JT~E zACI(lR&4Iue|4W2-FaQ|U+)xO?|tW|>wf*nKds+A{@}<5{$bI7Z2HFwkG4Dz1`u2M}vDco^58eOM$2PsRsVBB?&&h3VJMfFg zKA8CRF;CnzcGa}M`hpnfo%@S(-gx}1^A7Kx`daA6=#H|BJYNXkc$_|C;*tZ@%*4Up~~kf2?=xXVdOnde-(IANbjh$9}wR z!NZ&0(OGuRwvDO8pRPIk>B|NVEd537(enQIqo04F`SoYw1JC_@;GAQ>EY5x9;}6V^ zEhuhCBszY_kJ(#p{@KpF?&UOBsPtasKsU)^x*~A)ckG}3^^yHAdK-^Cd~DM{?D^RC*M4cgC%1lS^e^Y% zb^BwR|9I(hSIm9r#a?gS(${u=;i2C5FTeFqfBoEJ$2PsO>DW#?@V(L8x4(Tx?{7DM z_T1iUbNA9Cb{V!MSdF;Srn?L>iAKuk_ zXYa?G{^Ez@Yu@{R@6VhwzA+_lh@D-%>~oJle#W{vM?X2^yhnch-xfW0#TgIvHg8_t zdyQ#wcYba1EYO7Zrek|UJdm+pl_< zWThz5LsW>N)F>Md*Z~@uGY9*9kG#$$;Q~}efm8~fYY7C<8I8CQDA7&|n{k6Zp}io2 zj0hI=B3x^NTaBPL?BvD1dA57eo=bcg#kT9f;A>z6%rk_eskuYf4jti|&>RM)wX}p5 z!>3M;(qXc}&QEd?N>Gi9v4R#66|G%9NeW*?THSkQ zXkG8kDaLhWBV&navUKyt%|~AE^?IWzroz#qkvAqLdT%)I3V0OuHugZ1UN5zgOZKKX zKfci$dOhY^=4l#@MyE^xO@@X7n!q8I@if_=2;ZSpB-Q(+>yIMv(>kVvqsiK}jwVb> zrpc3T7dff-yMEFT^XcZzDJI}j(1a6>uES>QqtWQ;fzRM_#{Q%9<`g18I-2wXnvBw; zrKMFw>~vm_sq|<-lcV%<2{D(#z1;1%FUH3wX>u>;--x)3M;EVt`DB_*vY4yp<)iQe zcm@v~FlLx^#4PZ#trpuA`UPC_W>kNy*6w%P)}B>y6W|e$`v*cDKLW zOEZO;CZnU3jfh=1XU@>Z(RGlMK1~qK@i66mfQQmK$8--_a+3EX}_ z6N2l-$ut3XrlP4!ZwPr2G+BBwOKe+P zkL&B2ng2(_myP@j*m`v_4igpcDflyLm3WGKzR%z(F%XGn9UaD+TJX%A^ek+%Usuq!oP6Hzvvz&R zpK?F&horz))A?xf^I8ZK>irGa0EdUQng9+8@0WvikN5f1>*3ZQ<6tr-po?MHKO%^fgS=ht|s^+^}Q5Z7UBLFLK7|53$u_4E7Gx{(niZ{#EM`m(^c(3QIpH2KYT z;LFGDxO&vC^$|=6yOS{%DU4ZoV%$a_^_&t5k!Z@}@DBt|P{-NocpZSvwb`%hl(rGK zv8edk#c@1-|9yXkc#qvm*ymk71@RRrf+e6XGrp_$B-pZn&n4iHVPCM?0h-9Gw%0lT zcaO(!Fi$FKj?)SbU2{hstpYx>(Dd8wh^G+0#WM^hHuztqHulcwg*3r^ zShhze$c>V80!^rc(LCj7axtF4NA7NTrUyFpccwY?D7>dmy?tszcs8cVZ>cM@pJD3# z|40)TBYXh1$L~n!Iefc9np`>gAoXU@*S>O zn{v`y2kR1YvTN7HxI0RMY4QyHemP0=q~bqIliyNTObiWe+&D1s`(^F_YnqgkmucO= z@1+ULNkEg6ton(I%m`i@!Jm?!ZwuhX zb&!wf;sF@~i-WfPI{R%aomg&=SA_TV$!#ll)b+sk@&y0I5Joj4IL37Nob$VSL)=Zq zh3xmGfBX#`C049N{=MO~AJ)IO-TV!TV_2s1 z0Im#G_^+$oxyxjXXS;5l8-;Lm4h)m|`~PrWbESE{5!4*s?_UvW!#(#a`L9c`9*^hf z=eO>cvxM~qx$qa>_6OfUD@aBexB7uxNP4miDT6H)Ar)P6H5zFsDNU1~Tf8|$-tzH0 zIyms%3YtLe=ve@9!F0J{i>(E!8@4HfT+BOo4UQ|^s5!Sp?Vh7VSTVRVfE>46Gi7Id zN%z+1q8iEvb>yXcU)b*`l13#pLi2uj%SY!i`jz@O!XuIcO9y8TM>x;p+TC=`pP0nt z5g%SXd8~^W?3N0%2shF1C$5@do%25G2O{eyiH1(N#gkogY85~ax)8Rl-7j9VyQ@fW zZE!Adt^*`Ucdm`=4&RZuTf%&lE7ZUOS1yM&-h)Y#mwwInFLD(X%I?$O@QY+>m8n$I zX$fx>B+Xcq$9>rx3?;^>QPy2sC#X2}PQvu$sX2Ze>EHYPiR%rHC*3vpiS)^jxpF_r zKKr=)4t;>&MAExVX4V&JcX-!no|7{4uW)p`evND2xy1EhQIw@HQde+!O2P(`upa9^ zZHp}uLBf;}aJrje&nyJ4j3ZBIF>i$I%Ai32f@X~CTTmd70CZPjHG(GDWRO`@e4DTt zJ1yXy(@&~p`==Hvpnqju=ltUx=s%deJP~_*j;+h5qV(j1M#UsV@b)6NgZwx!rzD37 zo4CH8W0D-lON4kjrH%k1b;4#yRM2RtMPvN+XhnPI&8OjlffyuBIk8i4WI$oj_Csa)$Ed z%DS8c4ecb9g54EB2zJCtHG<0Xcu;f&q;(E9TWQx1{a{O7^!a|H=lA&k4oMf04- z0j{OvQh^o%7Q3d`AS6MI6H zuuaR9$6uB2Vt1Dvw%E0l?o`>DGhABPs1;i(mYNkbZT%yvF5IRyK&7njoDBR!M3+`D z{?|B<;y*4s!e@%QtWOO~Vq4*0MW+lr&UVOz8)rTJO}dGm@Y7(csu39h?-HJL9_4Y< z0DNnn=x>zas*EW3b-r7dz7zs<@s)`x(+yZwwYu>XHD{5C z$FsNHvD2#-hbixu-I}V=(jT^-f2KaO#?o5j8G}4?A5Y~N1%=(-&XyK_lpBq8a4Gw+YBp-b;5Z#A(x_|kC2wn`pDud$UY=rO14 zr%ja0v#^cCsos`N^3-m^daDdxR~DIBGlLq96wnkF603W?T!wXpGDYrw)Mf?&3ys9= zjGCfh7PCr&I%V#*oFB_)?0F=#CnJXT6sN%)2uC$GuI zkT&3?07}(NLvKMgD6I;9CnlAD@gRV%Nvs}o=ko+9DGS}fUOu*s753&`J}7-Re#M6w z{tl~yHeIL585C0Z3p&^$cb&)+0g5gHYFSYagh&v%)*W(~!g2*!O4 z2~@O`ag!}$^W+_LxmRH6&T*HT^z`81!EiR=DCK*kXb#*x$ zFsu%F^hI}xp~Uwup}4mjNEU8KfOd=o-emrArz~rXOt)tg;-I;*zyb@B34e6dy6Z5q z0}m>`Xy4w#eo(S!61Y^OK2+)~Aet&saJDT{qr?(4%;T3TGj1ZHWO(9hIvV8n+$2gz zwPDS_1CVhIcT*5*&Qcrvgblp9K~3ucQ5L%rF}bvwGYF|8E>FS&l`MYw>LBCKD{~I+ zSQl=vhVm8zOV_Y2^muSbSw^qsVMdSG95-6L$UDLfS%+rJ#s;}zk->|vAbkh{qd6_4 z5gwwYHu(kIq~@`+EKS3*C<1)64mN4E;OCB_RUVD!$LE8OStdCTAeFjg?L6#r$0XX0 zT44$-))7LOwU(nBsDbb9dz9l^GsZf^7B%-=chC;wX(WF+UAdnciXrZD--}*6%gssO zB16s95ul{O+E{yC9<@yCJOZ~Us8#01H25LPb*`XcyzXRGVyYNNHQfdu4CcQ-RcQte z$e1BS4*ScQA9WxnaAyMpR(ynvI%LsagDYR@*w@tI-U1trf|1cW#)t-99BY){gq|=e z=Yvc%oH+zo`CfAct#C4Drb88xs0?GrtMgT76!YKo2D-<*L>T>%g|%K)g9|<5-2+Ax ze%3lMtJo%Y)rSCZVp+%z!-XMX;ud;!=dg1L&SmnHVS%x;fm}y|^OcNo4bU9QIQ;>4 zde$`O(RaB?1t(=6a_L_MPFJpeT5iFPo;efx0MjFz(SfZqU;tMJ+{~TRz6V87qNKJo z?8lfAc0bh+F>Z}**rd3ahaho~P2(aK79o=fVu+a#XL(Y_^Nnt!2yQW&SyF3FkYo$4 z%#*l@5!7f%I-M;D77Wczvn9{thKyehVb>l{Sud1MALIkTt>)TzdV5&c+7LcYMca_Y zrxQ2OK1%4PSkzdLu=F(P%YcO&WnwfIaz>{S3@M5z=n+Mzrz{%6<8Bm`QdJ%w;2*Zc4J!()JG7Ts&gEG5rH83yF9~ zcUb=YLdR=RJL)g6bQ`=Hi}OUW#GsiSvLzYK zG>@^D2jdz^-4V?kQ3Ef@itvp-$TuUVK}psN>F6whSielt$am<^3QXi2zK1|lNS901 z?p8+WNFf^+8%AtL`VCtiWNyk2Y8x#+AOA#a;WS`Nc=jweV~871#PcHn%2G!(nCuN! zCllCGE4uWA7-a2XF$A~|p;+WACb$hNJzdt;%d4$5R)|rL&CQ56&$A;PTbyqiBF`e& zfNjD3NSxyVVu)bGtwv*n&VzP7K}*Vfp7L5c{_QYdmOSkt^cPS1!jEs>!vK|JDZ)h~AF{gYsyVuKSTG4&NMjG>PbPA&;$BLNa z*_hP_2W-^lsvdLt4pv(CJf%cVm#I^jrv9EQZB4aP3}#I%8G`EXd1EAISIA?{ESlRB^-bGJ0I1OAiDag0x_=T@O~TS=OO_VtP;6NPHNti%}Il)6RXFaWYs zL4mN8RFwD9R4G`x#-oBp&FVIC13NmSu!&)iuwJWi9Za8tIggf}zu@v{)Tjg@!XPA$ z)0?s3hjvJnWQKGVW_*kcE3s|9;Hx!Y7?+doVW}-kQOPizvd#l!!-J8)mJx zvn(?@f)QGZwmCPeHqn%;xTOEEMu}t-fU8)E&;41L95-hVqidIEz2P*5-ThHYcjOc- z(m8F*oh?kqtWx+%XF;<$q87O36-{I1;)$XvSmRyO=C++XsT$9a5Y{ z#-&ZAopVGNc&CXqh0dkds{OzgPpXwH!4+G%pn|C11@1IJqG{tgm|_LVRY{>(@~>5K z8`lbIg=^4pzrF=itAKotJXX4M4-g~CbKHUO)ew9ozr|c2Y@sBepbA2D9Nuy~cV}bP z_o^f4N_to}W@(*oFdsm{*V8ndR3Fzwm*-kk%C$9JO6qDIFIKoQ+X1C=n0ae_b2wIlQF@3on*26jti~>3Qtj1U_HeNAHeoQ$kpgLcaLTNqoIj z2&4I2v+>@rJlbNa(?MqBU^~_d2Zg(!pl3MY zCM*i@!$5c7w&!4WbKMglZG=b9t?>#dJ55+pF#X#nCd0D>56dfV2;+PzF4$>tm(joXkN{1RI;vT`oLIoDZi`>A4AxO^n z(80N!LU_RyBpret=tm?QUI*QAwPP7Lpufj6)don|j0d7K`zz!^KrB^S`H)dU!8QVc#M%xX4O@e1AZ>BXu@Tj7zk}k&Jn7|YuSm0Qpxw0bJV&fZa+6T+#U0hVn1Ptr;IjRQ_%&6z|9w^xm8YD`OizbY8r1 z8MV%Tu#()Fo^l~K=SeG9&DL^?;`xWQF;_dYx^2=L#!`%N#5N~$QjD66;M-tLbh%tb zNAy=_Q*@-c%-`?_JCiH1pz0lt=H@18#e7e#k#}<*H^z6B-y(Qx)9zNV`W~cA2K$P` zZ)!4Un0-30E}Q+)==7(W3E3DJq0)LB}nVLCO(uXp3_n+8?BuZrGCK>ds_o1Ge#M&ws$-1wQRVC1Xkz5E6F?%*}?+4L!4 zRqT#6^zn>V=kNeh{V8wf_l7b~YpC9~s(f6;fnDl>WfDe{|xMyuir|AZKhxD3%lX+*e=xQR>criro0#2WOt~ z&sT2z5^F0&q>(=l5 zhp}VdfAHzuxBud$S3Yt5niux`^7RM)?)5ibyX!BH{mFCxc;6jAdF9u8zPjs|KX`D@ z8y^|JZR_*;IcaxE6=;EGvZHIcjhVB(dV zip#6F|6StepF3;qx8E}7ZJSno=JLDmT)OKg%l_bFYw}-weZ|&w*$sd6#+|?T$8#>d zjA-^-k390qrq6z3>*hb$@#?Y7y<@9yd2IYa^NlGJu~)x7zTmzGi?3WiX19_&xc>I` z7;W7e+cYv<=?6AH_Qlb4oBv^R`m;;# zO8#+d+H-|XKRRRc8Q)00{(wA z`N`Y`*Uw*Y-g`h3CRFUdKk}*TKeKt$rdz)H>dj}o>6Tkwf8(7m&ie3YHaS(vG}-dO z#4F#qe|b9=i-9Dvch|9(rvJrDsSmxlXJ+;vK69@B(j%L0e&ECcRkeo!OlN<_2I8x|Ne1=f3vrwV&Pj_}tC^>qm+A^v091t9~rY$!K={|2%g|VOD%*^o&hQfBNB1 ze`eFXXywXrrpbAt%yPoE$Cm$|nD}06=B>BCIQGi2_^PMZow4py@7;9yXKy&`kvG=9 z6%$C@!x-&udFWt#jMZA#32b?rH8*UmmrdNCf0#UF099^MuA zcY25ZOCw*=+kf@?JC{!R>>D3A{Zo(Mnf$*Jv!7eL>DfPg^U}w5T>pvIUtMW{8jG@kg(w1F?Icx2DCRjEXuCSRYsVACfSUV7#1xpU{nZl&0 zC{QdzMB@>j5Dmex4l#sWw4fgR9H}=to|;I}mqw}g!joN^nE2P}$HbGn=!Jd~XYjP~fulo%gRrQAjp7ez1p7Y+CSro)-9i>Fat?anz>5$6ov zJx4+xph!ARsb3w%S!x}ZLS0xHPq~8dPmD~!b7;stoAeLBo@(sj4dN0_Ot=x#h0_QZ z*eH?jdl|XZhmYuE?mCF0vo53wR%k<-Ab8`Ymm(HhFGAlO-5Bi+ZDgACTojbv&^Y4i zIhypY81K=OPcH4HQq%wS$k47`G&eQ({E61RnHEV- zpb6(Cl@f4?!mj<`-!}uAMAG5DV>p$aK$CTd2Y5H)1Th5=MJAHQ&S;7rrMpvzC^*EG zK8gsOuJ}^KrJKMD2gFAD4VsLjT`3q-ziE&VQ81Ms_;lA0R$v-WE{>iW&7c70~#vAB;` z*Y#1e4pe=aX)<-`W{Mv9drF_-XtH=Qz06c%`u2eNXP6dnZWu-U#tC>mf>QVk6XNt7 zIWj)Jb}eG~FinOS{?SNk==}5`mlH#8UAK|0#0prLj?-i%F5zWMSZ|_WDGSzE4|4LY zBZ2OsNQ8CQ;?&Z&y)Csaa#`=V?m80cF6XT|cZs2UQ%8oxu_vGGy)co2?xJ2OC!y}@ zji*La>rzX(ignSb7)Ye1OaV>kCFdW&{QR3VnOIFJ)?G&?X)?itMfA=|-IaP9Qx3Z8 zJ(Id?BG6q^XlkH|`?W0&dNedi6X?OJvssa8MmwzzXyT;d z+n~u1N-uRZSDt+(ufEp*8x;gZkXepwCA-J42@-=3p^1 zas?k(F3haJk&3}l6*JV2?-=^{EgRW-mI3izglzm@Awqd=q zLzq<`<_cm;CjAwcxLA_(?jY8q^TqsHqT(GyTOQ&sQuao!6ZbK1T6PWj=LdE6V?PEs zqM&W1!!`jkU=LsmVq1pg+ytZlJnY-#btU-Rvx^hSBVD-?=I{5F`mqH2{)S{P51O}b zNaAbmq{qiriJ59LP9owq;`ztO-=>^cwcRxrM861&>YPvF$d~SzRg|5K?-<51L@dO9 ze8}J$F%sj{kH0v1Y}GHA62v$}yvCWh&ZO$Cgb4QLL!V)T#sH=2%nsZ=sau<-B$RT=0|C|m^Ai(pjiX9rFq)jag>-N79(FpjS_Sa^ne-j$;t z`ADTQapjWKEveMKfAcpd(!{B}jiag8U*pr!b?;vO@#Wil6HJrwqp!L_dXzTy@cD>R z4>Uo%T+k$in2~HaoJ13b_;h&4pGuRVxB~idn&o>txu)j^&}^ThXufOXyfS6 z>+y+RZ+zX)mw#>f*G8}9elIy18^zZOQn1w+kxPNi)F|vM_rVXC%}f)}hKEPM)=N#& z1bm2Sd;v{*%X_0s*RAgLmUE3ll_HOrSuMA;ePd%SaDxN1esbpgEePqV7u~qmwkj3jML6 zQa}?xw{CMUwRtns1o?nOSC9L4i7Ox43}M3eN)YLD>F8*{XZW5;FfV%_y6*f*{h{MD zVK84_w-Gd19o!MZ>8@@-lNjrPFaLbWlHA|`>#k$+M4BLXFF!hzc+KgqFE8J|{Ntn7 zGLe@=Uxiu8c&I=&oF6t#(qtkK*^_C)y!B`zl}rURIW8whSa&V0u1*d0X;PsLEK{Y? zQSNs>3ZKCMZ);)SjNU*rwG#8zJv1@x$t7PtFp!`nG#JptDIFKAeTWh#(Zqe@#nB|t zT9K&xdJg8H$0gvUAwQq*(oz7%i51w7HCR6}j^c^O(*{q9N%$Kv3d3VRp5hY;!@uwy#EOB4>B;B)_QIHm zLB81kIyu&%41EPNlkpi(FNe?HWtfZnbWjd=rexd-9-k+$w#+;p`cR56PYBCz_UV+q zZ%HgOfLVqxz2GHQlCDp}9u3-w>B)M7_Kx@cl=_axUv&BEec#U0FACc$XVKohiL${_ z-*-GlVE>4B9>49rJI=T6c|RXw6rOk;9#4#?2xun#6k8`eKe_%QYfXwAK3)z5`@VzX zl9TI)51>YU?+)uvGOFtHaT+|sp&a^7!hg}a`~BmoZJ*S4hAk-HkFz*3pJxikVfReX zj)ear*9SjE_dIz5jPBjh$=7{ckiJi^Cs)or@B4U0j`VSbHyS2b@^VL<87f=Lsyc~1 zneG}bjPU=%tlIjytosi$*l3pxHnw{-f~(+Oc*|69&jdGYcnnH}Z3GXMJE@?Adv-kG ziAw-UK(@cZ{opl-d(el6=DOeTZdf45jjb@c50MJXSd@|mx0>#m)Od{&ghE7VOf=+X(` zgx3MMH2ry8>i*r|o+9qokke@=KF}v#gh@qQH4c~{=@X8c?;2c0$~a2A8pO6F?Xqid zRm2ZUyT4k&J#@P{Q9$Q$7w;2E8b-d>A7$c}QLTF|Np6xCoM2}ME^BQXn*p}uiH5kJRv8~=J+KNdKF$9 zIxbBob)bJML`<-48lH23-$s}-IJjRy*xZfb=G(#DcKE1|tajL@F~N1v#AL7C0X;kc z2$upm(z0W8xmY+{m2 z&{=nGaoe;RBMir_qRxWOaNSDAZ+CBX8H1w3RA1#2?%)H(&b1Zr3&DljZQM7$FZ^~% z_(CM|j_EuJsRs9HFii^!GOSy*Ck(uX1Ca9qBbBE;d@5{%Vx zOb4Fj9E2VBP9Pd?3tS-BxStO=&+YPckMiy@D$+qt&c}VQ{VVEgZdBZHm8UPmuOG0B z4XR0C4+gnLM5FGWfQDs!?)`*RCgHP6A<)Kw(3a>azG~?1<^g&w%xo!OuA*fL!}d`q zTy9~^Jyp^=;4QLYdmN!j_j&UZ>0Y(2Y8%v#eCWHAehg{eaFYkQXbZIO!X+)*4aFcG z48QJc_Lh|x+#L8!S!^25c*Y;*8kG_j&0=?n;eUrjz`;>re1tZN-pbGIjy4yyH7@5< z8uh8Z(!|WbII$9d%aFyccDG`MWSr+2AQe><@(s3mp+Rf_Kt12(ybJ*)H(7_HiYtfe zFLli5`)=HmGVo(B;k=B!D396>mKA{n0J}o_Z0-)5j50;x*SUlB5leMbcUS>S z`}tqK$B-3?eF>n$6xTh4P3Hlv+!=hC zg5*BhX0b8+R#_v#a%IV7uZ@U4QR8;>8Ixl)O12=%#$eBt;2sN;E>lceuFZn` z$`&EUp!e1OXuiGAjbK7%;eH~EUQsEj(~Jx;q8zskyr)IWSdvI*No_feQRiXgh{4G* zu8f!Af*tg}tO|pyqbsds-ih(xqe5e zXNEGvo=+o~20%udU~zu#)dPodqE6ARY^Q0^4-_9(=-FDKSs#%isv)$j@_eke>YB0O zVd)mf6}Bcho+K1xx#y}O_>7{fl?%BijjfSeQzx0{M$7FQ$=^1zE(qX1@q95X3c~)!Yz-i@WK(D7mju&3)HOdp622nYzp=C@;X| z2WpqAD3Ey*XNzjCK&ipBu>x;Trn`nL3sQwo^c_x{Nv#AT2$GqlCCC~q|HGZbZT@tr zz#LWxR53Oh@Vn7`8Xwv0i zq%?Tc+Uj(twhpV9do7v@Nv*qGfD8jG-5C0RpaI`7H(DC13TJu%L^{6X3w_jTn2GLo zezSNZj$wV6BA9%_OhBdt%GFo})u|)A1#Uo2#QDK61E0(|mWnpJZy2p*h=QqfXF^CW_Ab7+I7i+HIDb*r;C16$? z1hX1_mk>lPThh}xGKV|V9fopYV|*K-+tyJ6&2w`G_4BhCpDJja=2^4x$yc1gK+ltD z*_PSo%3%vMcULuB8Os7bhE8QD#tPpuJPKYHTxYYvc;WwVX=pv4Z@Yj@t+J{}6k`?W zA_GZPp?Mv}_5!O=Vb!+loA86{l!z|11>Ql?8Ylsa@Vse5S6Y)?j&5SOwr`S=i8 zGZ>_|>W0W*vzT!)IM*z~*RpIU z0E~`iuq)Y%6UM*T?{Z6i22L`hhM`7)RsOex06ff4UGx|&0E!=HpsJsCywza>Y*Cb~ za^F~VHO;$@yoT2?i80;bAw`zUW2+W0TQ%}yEVE_FydqmH2l-aEVc9lH*w#4fD{A@; zx!Xu%;rU7nEi1=u+;YAlpKr(p?Q1vMBWhpEb=?Vo72v{hp3fTLSU{~LB`kf31#lIM zvX{3kO3Xf%tyKj(OxxP^x+SfoM6pq1HLoQdXmN$!K0jdn%Ui*8*ITpGv0=Wz4JeKJ zxrUl7v&{W1t0%TxZI|=udNO~t^x3R##NVB0+=N)oWtMUQ{Wx;9gq^9ZbxRd+I?2n9 z5U|!;$qB0%E)1fmlhh(ulq$}U#X^Up7N)^E3%s-S=;0a3+f=IzP zS;0jGp*3I#gLn8(VbDxuf>eVW)bWJ*7?!(0{`l)X}1KSD;|2IoJQ3~KdU-2^6T<7O09WK=mwa@>Oua|U}#a2>^p0a~hvyJHQr%tTJYJxS>lWf`^D0(@r1y)a( ztnp(SG9gW3JyWck-Osb4ukjP{Ak2m*x%*F29r>Z~{e5xoOfdya!A(=E&4L*Bh516k z#*5shff?b`oFemJhiwvVI|r#@*zoqe1Z8EmPKmBQKfjynGIpA7R`zG-E4}lg>|l)A zH_dw9v)ztq?ryg62?OSme1!f|HWQ2(nd3pylWjIR2l;-IVu_fZg2|UQQq^IIRBb`z zAZ);?@GzN0`1u$-U$yk(8a>VqX-8QKeKX*IVjG`P29u9}QP6z{Ac^mdkW_4QZJ|r-)$bL9{HzG!*0VgB z+>4An+Q(2-uuupGwzQYXLK`LwKB)kI4i++H1AW0Z!js_Db{u)#6gvW=-U_NN6l9p! zl7aQYMDHvk=QCcY6saOFTGn!}vv;#)J&jB9B*04&+>QV{*Mu<@JY3Pt{Rmt-2*$Cy zl__u~7#WZ%(DG0%1V?i$`b@ux1xA)x?P<5+hNrYHr$N0eJoC>d=M=+f`k-3^V|`r1 z81MbLyeUB!SWikQu(+SZU_Jt1bknlPju@rbkWbLTOEi6+dsJZEII~D<1;Oo;=PJHy z;@Vv`8RI#rpnY)OW&545JmB5RW|FXM;kg7y318(5D;5t*n(#3x@=*{Do1QZv{<9KGTda=y9#JxT))5uq?Ln4LzM$2?*i`Neh<19BfG0IHPH#(lR1vxv)CTT?eivVi3SX$+NxvJ#elTC<_!ael@0>}W+hC0kTwKg+q; zm}-k`tGtNnIUX)!X*Y&i_$JYeMHM;h2TLVX9Wv_*?Gpq_{uM$>qg=w-C z)@$zT3K3FZBag9rz)ct(Nyzaj?BvX8{xqzv<{;OMa~?j~WNj-DW~3C1Aub`{%AaF^p5@LBI4lo@i?>*A!gdF65hwm=HTi$xOPLN=vNahj$wRoI zri+i&sBmAj=hbIeP#sll%z)D~TYBJXF{2hlqKbx+%ylhkyQCbvu!s3Y6VGR*T zm7v2cNLz9hxgg0m8Z2f$ji9!KN@p2_S>$ghI#5=wJfAjHwK^0v*v|J}ya#G^_0{#_>QEBP=2k4~!9RSKE4*>#YYm z78#)Q+#&Ncx5tAEE3dkwHb1kl9N4_^R!Ub_uxQ~jJ7;&m-0xE#hTz(Bvp&q%kq)tK zY9;Lek%Q+3Q=^J|s95_9lG^Dm+;c2hQK4xk>$8yAF3Y`}7w~mUb`S8_#x|n>hA*%- z;Ws-VC_UFPN5mcs<0B>#llL#p{guYm)H1mVvJ>&^Iy%oX6lF!3zHz5C_{qLxL? z)`ew~H&F0=P$HTp*@5L8@&f^#C&gi`PR3abuUiZ5*NJ6xL-U z?!-q@7?~|s-q$W(V}P@;Uc{OV2CAGY!eDaZ>V@q+O~Hbb#!UyHvcnYTY0C;P1|I>ZWOB(E@2f9)>iPC&-$L4mRa*6JGMZ3V}&Rs7K=+X z4{bM<)M4pgNmnA&HDhY%-1zrIJS}bYhCxhTTjLk439jEZEV(^k7%q3 zOT)LSNnMo(DU(clV(;JbP*UK*y~M)f$-c@=9+_ zJ%fHGhq)riZwW=vcSY}|eJXz&$<)p|My(c^0ri=pMU@?$-KJyoR=IHGwn%%$?uRe; zMyFl3)xVwSZ`o>N(Yr~j>_|s0H068f54Q?6Yum*lQz22@?OnK&^~(y+UU{G{YsL zrZvQ<&p=Cbgf;_CuF2$S2HTHhjMGNV81pd!%*{-0q8ZZ(phmIJTmQ9BRd-`DdGqd@ z`3F=etU)X;=jGCpYJm>s|_d%vX4OgU2Gc@shP0X&cd-=bhG{-A+xWV`U;+WKq3ncBMC) zZ*-6F5^f)BHg19?ajD={m{3{QXTcO7P+4mC4NFaI2ZsC-csQ>0<}4mSTpR@3yI!0W z(EFcC^sn(uvCOnpT2Y1C@7WSK-N1!}_fc|2%oi-b&Bg4}WFnp{uq# z>cBgnrQX>OzdCu>7dG~8+WKnUhJWfYn-cfdZSSL=U9Vj>d+($7 zmTr~uruV_!SL}TFS%1?t;T0`!e0#@@kIjE|!^pnM4R^mXxU}!u1p~AEmp(Cb$+Ark zzV_;@$9B!!bnn2cJKuOCw<#RiF?nQUhvU0fEMGUgq<8p{pU-~1yOLPDc413#cCIt= z%Ix`cHEN?O4Bi=&K{^m;Lb9U;f0_-!~t*@!*ub2R0wI{ho=BZMmdnB=k3ik9=kFJNt4y zpWk%vhV4)G^emWv$*gdH(?h*x&W4%k_ucx<+5dfH!4JQ@@n3d6chX$`_^|q_9m~tR~&h5aq8A^_wMea!{0AlbLDBLE}cE|nrB`)hH2t|`LW-;@6+eM zaoyI`4NI^2%vIMlxh2e#pz*p>63L~vGEHJz4(xg9cXhYC^HTWE>{mWE^TqFWCtB8A zH>>TMokMr;&QCw>!(Oi|G&$y?-jRJ*zVzd*pWn=|FI)8G`(Fvyf9BIa-u#dB`oY`< zKmNDLJLgZEb=lU_f3)|Jhkx|VgIB%%`ZwP>`0=0I^XOAs-nsT4hF`qrhTm6%C9A|)MZgpV$~q0%f+rSE%CTbj^i-q+;}{hJa9mKh;?SWk=of=DDW&_ zK&|O?e6G}k_JdRBfitms8ajq^=rO`iLHM&i499r5Pjp~;lL84j5y*nVb1(4hZEks|NgsHeeTKBUCzkxlW7NM zr$?M27!iObX#4)S*gvKgBta8pI1>zt9HRynfHf86W+u=IQ` zT(LeC4_m2Q=8VO2idrXH|E&_BmD_o8QUjN83mxFs=XgGJ3yiQQ6ev@)jBA}$t(S~D z4o0CqAm{G852r~dk8!T$_rH~dgXzCzHh(T2E?X9#J9jR`9%L72(%A{wWogpcJ!1yu z$||UqO{_)l7@CaAE+=hml+xMOG)jOXb}nRXnLq3=G4f%E zbjZbOeiK)Sez+XxA8~9PY{1v3T-#wbe~0@ftX|>ok+63dF znLAap7vO9Ir&Cb$wWp4wT0h(#+7Dp&$o0mL%|%>Wn9&b@i5EM@Gux=KBOZ9|%Hjz5 zK?kpxPT9LFq5Z*{@50DuA;n6J(?RiJ=p5#^5$SdY4%U1U(is1VQZ7pOW2PbJ4eG;f z{%XDnt3DDVpNR1H*yvH!hhoic61Icz+lcg7)P9V@gE-03wOMD4*pqx2K`u7n+9&VwBz`Hi0AUi`TY4KtCChfVST64(Fy zkPg$~+_{if%a+BKMK))DAi(b1dd{|?YF)z<8pe0mRMV?rc$g+qe&{*s92&AInNE68 z-i48bZ4OJ16t6YiXeJJuHT-B}ZKVEWh>7+xcW&oj!`d7nwrqXX_DAy5VT?yLXU=oa zgOh5lwVMaKESA4ANcI`hrzZyao=5ywp zRa?)*ULL--Q}qDzUG;|H8#30qe;};VB>o)hT&)KWxs$Ong>NxCFij>P=RZi3Wum>z z4Lb)wllALC6?~26&j?XwlqS4ZhOCMHi4cY#Uq2KMg%DuJ9-GZp)A86O#6&?C{|ji6 z<^XF&Ue{x>Wrx|tjtT$HJi$j*)2jiy1D4WH%DXot9P=jY&?%->5}u@Go-C$p3@W5F zhPyG(ME{)t`%1tn^MpECorx`zy;d!sbv7!9SxMuy`O>sNg{{#|=lj9#D?wXm^M8K}eTb z+dZQmkXGrV52!Pc|5fXIFm_JlTd-=gSG8l5dd{GM&qI`Z`hlFPmNR7S98s=n@5uc* zNp5#cyo;}~p%YXW>JLS}7H_sTfYthr=6(E+dK4m6KZvo8QCLvciR=(-u)+T#+G?~{ z=jodLqcTWO@)hxgQD0R*k27tY$84`>NA=LI&#;g2)3{0lvIlZ!8u)|kQTQ=T%9#jf ze1)ILGm%`+@j)(c@T)x+^plsii)mrj{shNq9RwO7*dv4X8^P%6o$bTklmLew#3Sc% zL03;-*8&fW29Yyb{apcNZ18G#gEa`~@FrP4zwd7>7mle=4T>-@d?VPWc(#f0Wj*|A z2%Io%it+L^O5qekHD7b~psQ_6k_Sws%ny}f-aX-yU<6SgcQP0x;VZsg)#2{y>e|GbjE;Nwyd@?8mi0JAIL(` z_5vBt_c-i~_9aa@_GAZdPGgX8Q7-=l4mMRti$ygEtY7QGrT9Xw+g^>=l5Nmr@n7}e zh!!x4?3hx>IgFk-yQTP=b(kJZ1e}WJpmB#rB}UCrX{GQRbAzkgEMJvaEb@gHjyg_b zjhB}yH@1}bvz`6+!)NSSbBLh$Z)7MJz>E)S%zE1s)#qsv(cutB;XYsZ0<65?m=Ehw8?Kb|Zu7fm}h+cHhCHa16gR2L1wz zaxEnd2a>x0OEa?}4(~fSu0miypVE$);YPvY5v(hL`8!{WP!(sR!x$SJHJ<;P#*9lv zk2lc1bm7nkamD+D{%C;aXoKQUU^(ARpTh8u0&GK-{E93#$FhT>HpIPAXhwrA=NYnR zkpmpPltIXtl_0K4W=CLkQ1&+GBx+(XfYJt@*+CO0I(?j8bhwgEJ3*S-T*oPKeJyRX zKEosn0yL;~lM6SGazazFaudYNpb^?@!0$usattRBDiDaGmA`!C8G8 z?Vxm^i`Y*BjdcM8N1N8_bZX~C(V@j;4e=~}oT3Zn77Xb$uY-X`k29`DhZ@Xl*9vr@ z19&_1a4*Oev~dw_JuPr(YlOD|jVhiWIQ96w+)2lbCki%Mna#3<+1K&QIH(sh5fZpB z&x!LeipIm-HPR*1f)Uc8V1Cx`N{<L=LeR4UzJA06vMN$PPIyE3mxI9S$HH|8L zZ9JpA)yKICZca!o;^n`q4S459JhX+tixYnwpi^Wg#IcJ5xadeXl!2FpB@Js2Ppbw_ zM#nr>RSp82`qKp_w8IKbBp_8=SA=F6p{vQZ1u#p>!;fz)rAs(p)S$VbZqR|og2E-W zLb=H3E8^pu$t%@Kbq_u%opu6xdyvagIDvT}9Uy|i9_jO`q8ruO#)E^Lrr=(Z$KW2gN>h+9UOynfNp#;a(uZH))$ZXeughpE zkXv`=ndls&=`Fn##~}A8vt1 z$0?bNK_w74{&I+z=O72ki~4D%j9OBYwV#q!yCsAoH#Y@lx3l<6TUu=GM?B4`DJF_ zMhDjE9c{qk60YYuZPHxO=k|0N?Q&xok10|i4};~u^Evl?4CYcsqi#%e-~e-*iHKz) z$b@4FjuvI|z*@&es-qkrfK|8-)q=GY&L6In&|cHwm6CoDJ{Hh6}rO8+n=Waf(hlVp>Zw=*cSu zgd;>1wJ;CxeDd0<&&dp0N#pi&Lm-E;n^J9DkRgzroGMcy%krk3Ruk~4hHEfuan(GzgEVA!NAY@(6O*?~XMySMasvlL zRxBind}TSHI}FG!v)}JBupOR^p)}`!A>Xj9F2XH|UXya5r}T%Mpznk5!47!MoF!s{z9Z2g8jzA z?E-&jmdk*v2(rtF>4mCrod38hmyY9%%=2gJ`sdMZpk!OXobUIS4YRsauc&xqK-=nB zXXpYHn?272vF~#=UiOsW%!xB^lT*O&mp&ui*DvtW)}i~fDlSxTJfOL_j*O8xG-@5! z@ggT1=+Ao4LXMF(HlL33cOATgZ$RVy*-9TY217YhnXtO-qY8|2&ZeYC-AFnDo_ABffx;z2Q~P6$Grwd&GOcG z+ZjJyw`lJsEtoQimzeNrqm0xUzWXFM#dM0fbABjdizS~SDEq|gOqEoi-0kfykGAB#U^H4oxP=^WCztaZxIG~NmPOzjD?Jx9SShp% zgxU`WrdG)ankGJn5{xScFe*(8nbik*KFISe`=I_sc;icj`t;s#SypW z4=#j+&r7@Vyrk|W^lp3>UJ91uiLQFW5#5cMQc%fLgP%>Z)T|3kzSQ70wD&(@y0R`b zctFFVzZojc^U`UNI&NZ$J36aj&#n4ZV_Vi^_&gN^Qw=j%*8sBv3@SCRa~+T8dV8mw z&QMWWQJTlwg;si*>F#rH2ZoZ&;EY{m+Wi8ASK?9=?`60vQ<d_2hqB=6SsD_P zbF@c=9qm1X9gUzXPm-CA*FfzzDLA9^T!uh#YQR$E31C0hj(J2~e!tP>OoQ(z=`|NP zExdA;@G1*tIrxLG2!@%-~plrX=U7F_xg9S|q zW7G^G-(|h{<~kbe(v6P7se<5or`=;-IRiGUfQ6@)0mz2Yt~G1(9jI&EDV(+)E0kAw zo{34#j`ii_m>6qv%)6e(G1QDJhKgVrpsw5*+grahyZkF5b%4Tf?z|AyaI2ok}6>r2;`6T9i?7+D@pEetk0JM?aq4}`PZuHv? z_|UF_5_rTkeR@6bo&ByB7efqGCaXTk?Nl0g!)&I|N{w<*FAy}~S3F_FdK<#aPtR!wULjtxdOrRpnd%CQR50C~^j@=YL$!CP|8k#NR1WUPtrPn#W z=n=BKj|)Ho(19fxSn@o$R_?QG*)TW!=qUij3H(F$w=~_5H=Xrq% zniTasPPF58mLJqe&*uWVN%|6qdfaRLil2ndfxN}ZaRMH@$tM^&^*-h6Sfc^vjb>c= zm|nu&F1)+BGQr@+nswno@x{RA9-)UP{3P-;^9^qeCu`{syzHtbFdp}WM>o}=>@F0{ zDpCyVze`zWryS^9e;hptI+B|Mnmnfx^p@~^JP_LYl_m&I!*bL=(x8bfvvy!iTU-Tw z44A*VAjyW@J4MTfCL5i;CcOLrjS?OTV80faHbBGhdS~c*Dbfhm;zh$(>QtU=^+APK za);`>nz&u3krl=y2Cm`%p{oh%825T=(LICv=80AInC-nZD=v+u-#DzF_TkxzEa&0PQ!MUcQ>O;3yU*gen&lZlUbDwT2DnCX4K8YoCOQ?Xmx2F9 zR>O>?y#=267xNE*u#5=q<8~WlM3T?5hvgRV%CItjfOQvEI&9nznmq=DaV(qyW|Q!bI%o~ieZ9PN`qwXV+as0;pzsPjS(9~g_1}AJb{&=U#e*|=x21l;=UOx%t}lE z+otX7U4e^~2RlFt8$@y{K;szh$9@1y?ZZ14pKj_S^El$SNktdGjRgzQjKVHA$l+O* zkqll86H((uJ33j5I0GoOYe5uvDq$&7#&I4hTbPcpIetAnQxf!Q#v`u=4zOutrL~Px zRRAa_$ys@5aOhYoOMB>n9@GwFqc&-@b4I_%S`X9=SBq^b@NLRbrZuC$0b3hvU%28Y zIlktM@Ry{A5j`Tb8hMDSjghzLj0qm=LLp>y5u!z#8Mizv!@C|dIg z|F4!5v$;%>SFs-VY@XHR4)opm6xB6)kR_WL*e9sv!bvX6JB)TUH8=I$d`|Y6zV`lp zccIs8-09nHWub10yxvYLy7>Z21|2j9ZdcqtkCj8<%M^IP^;z%fb7)c4^LPz+&jaTE ziM+d?4qUUm|`>C&Futs=+`cfOCRA!qcCH@_>1QyX55CnPZE* zGUR46Z6-2-+HYXC38sI5ns^;ot6j=ntTbOwlHUPOCV!IZ0ExVWYTDf4PyMSL{qF4c z<;~Qi%=x^jtM~dCbu6mB&ubIV@42+Z@t=o9O|F4nZ15WsI0b+Q!(O7qs-@%PW==bX ziyfIfrr|r;oVU7CX>Vt#nA=cyU&2kZI=S6ll1xxy`<>)!ZJwT9$@c2=JEkS4Hcl3; zi9Y7eUXpnKsit?swuf%so;?2vSG9liBLCEF#q+Lr@M|19 zT!R;RIJt&~!kmtioeoI7#us^psi`SoFT_;Ji)RASE)|`>#m742pw-eI!oPJ)~mhjvv^wi}FZi%`oF0`12J}v=4 zHUItdw`@6P#*D8%_R`4u_3K{w*7ts~^wQk*pT6Vc-`G9-vnM16{(kq!xyLNo`{p;F zxufu_-@Z2Q!B++@yY9OA^S5r9KOx>w*I4*i-Rz~4KQQv>&ey|3;mF7huPpt{@_%0c z;K-}jF1^03W#

!zy`M?Ld}Ge3Rp%+i-P{o!Q$+Do~Df3WrC)u-LPdgb|FBsyj!`QQ&~_Nm&g8+Seb z)iW;n=lq>d|6*X%k9K|TV|QP3_viQQx%0o?USD|P-uemOI)C6FZb_uW_SP>Pe8=0~ z|En86WdGOwFMhfI#;phc`IFD@IdSWrJqOpFxpnJ~JrBKW$HD*csU53+{PFw$=j(Uv z_|u>6T5<6Dd}7bRcMjb5x4Uk9@!-FFy8Y99u8EaN|KMMy z?{D8w{b}ZrfuBEg59j-}It=DYvTTYR(q$FIqR&t>T56VD0!cP%BgV#)A{FRt0_ zFJPVjLke&9`bO$^y>r=DhDVkppStG<;|V)fZaj0*rPBj1ZTrUETYhrs)6ZUV z>A`i|Drf$;34PbmiA(>L`^oNPVeO9Q#d_C=RzCmL<$u@8-*w)afp0voKljmRzwpfG zpWXBM|LdOHZagu}AOF-l2c9Y=Zoj3y<*&BBHy`}-vDN7p+9Tgu_p$af&$j>Q*{84B z)BefivTNV-+P|KDs65dAqW%73_7t{V{HAA~{>vY>UwHAt zZNIwvfm^oy*@=JmmcQJ+|JqX@yYituFHc_jt7FU42QNN<>(j^V`QfU|SN$oc z-?L}SyS6?3u}^IMSo`vAPyhL)KYVE0*7v++;g!dozVq&Z|FU?`nUj;R|G-;1JmEfr z{ZZ4j5!#9{X>JkBFNXI14i+mOGsXJO>cS(XPfRwm4eD$X0?bHC>@JEHtEOaursWVT zdx30(*xAjO##qk~hHfuXXGaoYK`0v|2WI&$F*(UrKNBIp)|n;$Gm%@$GlaeE7p02Xn@98_G1grj#m9uF7Ud<1<(nn!?&sd;3RbK0JDR zxja2eXPn`!Ete@Q6iOGBE`m`}royR(g6x?~Q;fqId=A4Nx~Pt>wsGt;9Gxkb;qKkb zAxAmO2u2gP2yd#;pmO{Gt3a5DZ43G;tVi`9<@7Wfr`^SKNcQkdMVSjv;zHdrHB~!~ zgK=9-u~+cKJ!T11o1@|hc}62V$ufW^SS~z|C$rJMEUXd-OuMz}4!{%C6FhNyr;^Et z$K@>)OC4y#2cB%%GP(tOm`b4gDztEP5}d(mf0}MhbDd7-#;t0<5KnDmo{Ww%4a%|6 z*;&UEF1~RnPqqn9%HT=)j57{0Po}>BnwKt`Js>2viEZK1ZmrguJ!Ra>M{L5Io0I}w_}beZI@6Wzg6-c)}!?R)4a6rX0A&IpZrdD8XM!rjr%2tdRW=b2$( zDU2}Z-mQTroN}5{S4KP;WuC-h`}gmE0X(^!m?Nvoqvf@y{hH~vHsT4V3|jF~=E?qe z>fqWtW==be<3?lU*s;@d>=yK~7rQ)}O!<#a?_tqN(e9Zi<(;Zbh8?ih8BHWw zKj!*R!jr)1E~l%wzgXwP-aWYB z33^ADC+MG&7Cb3Lx@$B6p0rxC2c*A%Ck5t78G8?fClQ~IdO~#9{y2GSqkh6U%+5Au z=}OjJlq&b|1grGhp5qDnNgKM0(HAq#89a|GmSWwt3i}v^C#%3KKLs7;R@*atnfq-I zPq3DK%EZ8@4V>7-Vt< z*X{p`{9_%rF^I9lxH$61O2N4S1rMLA)BT-2df2l^dKi22{K(%8A9MMRclP#?+ruY# zy>2HQ`z!x%=H3TR&Z@i@f8H}^Chts!%)6UOoWzBk9Tpf?z`;ctXf8Rs4zQ#tPC_<` zRLKNWE?Tb*RU72mMxam3YN;B_FnsIZ9jGu zP>Yzk&-Xd+>}~?~*ZzLL-rJMxocEmf{CUpv?>y&y&-0!z_M^m;tGGUG75_zr{FR)% z06u^y$9nMZ8Rm2FMEYG+K4)Ch#TQX|8RBh;2j8@2$=Fgurp!|UnM=a$Dtf2(FS!nQ^gD@_qWIRLzulEj}7;&ECl9);C^e*CofKO zr4Va5_y!_2RQm!w4jd6N5Kbq&u2j4#Q(y0Tx3yU>OP`5)IihcK4A?t)_;fD7SU8=a&TRht_}Kg?PBU(3em)`p z!_6{cN=QssCOi&%_hUcDJY>kwBQg3pWLXI`sjpmS{V^@N#p|S4GX*D1u+p2J*4l`E znjYD~GWg7)?nLZ!G=YEcZRx^Es5{YxvpF1Ka@}q&)?u6+fx}x4P!I88$ z{3E7BGC{1Fx_w<07Og^{LZ7vEJ%#zgn6=IrdDL*PmA z1M@V&xIIn4qS8oCrgsU?iPPo`!K?RJIe}f~F?O_^Bp@e;`n;U{;vW+Uo`Sa=fBcq_ zGL8H(!92=c_}J@TPqh3?;=bwS1YqaL%ZYUTZ;_LU3ATbUm;Y}K@%J_62fXlV;sXjy zldM=4-nxis(#>6Q2sDYXxtBnbzUi1IkdxP@iBK!132*>8p>9l*W8{Q-a?+z!EGL^F zCx=#eIr+f0ME8B~i)qr8FPwCHG&$iTJ(@svAt&VJM27Lp7zPwQp0Ue(Io#*P8}fOYx;bN!PW>pe#>%5oNe7(v?e+R0 zDIfICYt-03C~=%taoj6kkK@=UvDdD@Z-h(UmhgSfp5@r9dvgrSM|_&^`!r?7kimVf z8Am*LOuf0dR~}IiB{NpJqszTk8e@?B>(m-Aav^?R-9C>k#G5MM67k2SFwOcg)_g2y z1;+7}xCrkpAxf-0MP6DUJ}CFSKchG5I#IR=U>&a1YC#QmS2>q{cUAVVsR|f7Yk6moM!A%YZ5A&xj=8;F$WMKPNJ< zb*_(v*UA1i?w9A4Q;ahc;}SVGF7~ep=GYAC%um?)iP*}{x;PnH){UL4y@88qi>5Sk z2%7}r&yGs4C`-zaRfe0eYc;a)22LpHG)h_*m*%O>a%+-|mfqWu7w8@9n=x^r`N77& zHinPuW2XVC#KAebfwNsGHvt0vZf{CB`(7_QP!Eesdj<2O4=Q>9q9wX%w8Q602t|t9|TFi^TRP|b97SH>j-D{ zE@b1F0sA2Y(tuL4DZa;$BFDy=ir#|zd{5!aNxUc&h>i)0792tugT!0PT)|*X=7Rwr z@Lh{UX;M5T<@d7Si!%>>Y!@n@y+4{tUN$~lrZuY6H*1l<{$ zEdOSigr`NJ%9v)k;o1@OMlZ~RKhEfl9vEV6;xFbX6JPjfHuqIwcC`8UOL?>H#=DNAD_Hwzc0G>;Dge2iM zV;~v6N&Kl6c7l|A7YZ|%0YrgO{6{VSxqclT7PUik81G#xalaj^id#k`j%ZblUE;#9 zT2EHwXt8}<7FQLP#OwI?=6pqReK2HZLG~907r3;NrOC5RPtEi&iZIL2JQI|A^g+2f zPRnWr(V#Jz5lHGAUs3`X3l(?>7sXf7Lx?Fnc%Gp4wkk=A8T3lI zZD>eh!Hxy(X2leaI-z{Mn2Qa{vpW;D#C->jCQ;OH9`sy5(4BKIRm_>1vToN(a zG`>42naRjP9qS<3^wI>K-eWAjOtMAF^tUcf`;d+|e^o>O7QRjc0fve1xTE9-+u}<- z?nKXnH7trbG=Tf~8ztA$1zc5G14o)$3R2qHK88#unXiV%0#~Tpya)efqQL~&=pYV^ zwal6}$$HRH#a3oVC!ZB|G#OEyN3bq2mb9#Rutx&3gVUY7yk*new@uN3km1#lb3F1% zoQi2_gQMf=qt1clZG&82M>Fp)sfY~J8Kx{nb>~J!i?L2P>|6yZtwrKi=mP9_D@{^8 z>ymB~PenQfS9R^C>!^BI2_|Km!GjNMR-%W5Zd^kQXv6*(`5S8eF3;k+V#+S_G^WuCc3)yU zcqAK^J_^rKYh8m%*J zFrM!;c733E?As5mj-sJ{Zjqr@d5A86#&1x)olCE;Fjlb*KES8vnS~vFlm}ilO6K;> z5luGPkjI?Y3pN0|0WCfg2DPF>ijtyMO3i#T5*>jeR@Hm;BHHFJQr5J3o4aEZhh!7C z$j%0AP~jUjl%&h))?^#g9}D0p)x!9NfJNuvTTmO30}NHT0`k<18!98py&k6G!-gPD z^5B}5uc5F$Mi*hY2tEd>W5w{VAS2CbHXRQy>O{Kq@QP@k)l;2DE zOn0iL6b?9o($kh<4CDPZZB%#Sj?iXKk>=XWfSB|GQ6ot!HGk@sQh+$f85>lGNSjIE_O}VwS+E1!2z^sDr>thZ#eY_~?LB zz-|;o`gv~ZE+s8Z_J@OE1Oie!L;X@SKsgEC#?(-66tEP?%XWmC=jx=R=Oyi;09A1& zCnMBM9%ew>0WIe)TIiI-m!9Vn?jK*c51WiPMpE|LB4tC95_7ON%RMe+0)&H#^*vV` zN|p3vhw0RCR*-=Al2#WZ;pn>IAE!VeA2N=t95B(=*W>X(#f2JU*Tm!})lr_jL)ia@ zl?qcY(ou!M)GEb;v>0xn2i+iZTqAG+oSjeH76O3=mSkwp*KHGEl~m(a4QmP=Wcb=< z!i9v*z_cWT4ni=hNZnTSQsOT9xQ)xg(3>Fg%@|8w;vxLAY`J|ZI{3#EI3t)*bu-9IfWWyl}gXL$zB7eP8Mwr!A4R!(Z z09$=Pv*pX8s0LF2szMg?D&bfsZk?~bBKCZc1I`$3?Si%r1FP%DF)AXs{S0fMQ_zAb zl#-2z`cI`gd`B$~N6JFPB}CK#pM-le#u@H_6{0lDm#XM+%e%p$AB^|1e-QszG63WPI%sWeRROlm8d8Y>L7(ATnW61|yLst37Q9Ui0+ z$hUzW>C{+K#?9J;EF4_8Nyaa9%P#?FFIQaRkP{@{Q*~P9$+2{ z7#Svnt-*$Szf-B`zI-PY9ypWK4USG7>)&XaXVDOFT3e0d&*)HfXL{e67tSgJDO@u8TG{knlknT=b# zIMd4VKQ>Twhh*V}Q*(Jf!Q}BM2+dm0@wDqO!3L}^Lp!O%c0U`y*YW&o>|pv@QU@9K zg{+4tqwp=$au}&>C(;dWn+d2wyHH`qY*51z6dGRz?W{S#vB4H+*4wTKpF944*Fxe6 zg&BSw7iIPWbhV_>wN%XnR|>+Ehzif>8y16;f{#MMV65vf&r_mdp}K2w zLB!S|YfzriA+?d^g#ynTH{{KIDl&tE+j#L#gFMr1t}SQ9xD3>QlH-midE7kqg}}3J zQYNnqj68fZF~h^pUyz0aSYH*>=2#l1cwu6QGTha*hDtLRDJ2yMYB%l4{ne zMI8)baac2REYL94u>oelmDIkH2N@P2pcX!>%%_6{S{pVjN`)~!6WG3HdWzr}AJG^T z=aj&VVBj)EwCH2C-D0V9SjJU3qEWVdcpg=^hVaz-uG3Odf5z*@9{VY)>gR;Yq?l*?vYuwtqJdou1$3 zhegmHg?7gKn}tz$A=MVu7QuJkGGOU*JXX zQmj-_xGjeSLS_k*19^>#wlGmKPlQ=K!+0I%gPBi;Z{lA1x5@*yii*iYat6pX_-&)%n*FdBok z!NZ*78CH)mDlcHp&r)z0vl$!*5g644%8E&-L|!mjOISbRU}U0Gw4bwCPQ=79_G_Tw zR1LFG2)sohbRLkzD=dSpSx9Jw4<6{g$ezV5k5k3r%_iSAVycKpk3oDRjNP(5!Wvzk zT|}p|YSnfLQ0%Cx$84~dajURQxQ9FNALVF7W!%o{Z|M0ZFF|#GzCU2g$qE67`XW_q3Emnjozn%TP&?18pa$D)sWDDiQSp+7$-K=! zdtQu>FEK}qMepZSbP-{}$-tO^tuCCcMB8}@FxeP9juEl;Dzxl_I*li5AkUF*2Q;}J znJfc~sydRRTPdvKGibDO5SR?YQ3j*Qip0Ay@!*YvwmOaHO0mw!vaO*{i+4P6I^SY; zz)H^%OtI%fdHs=;Zy<38@(hKPl}AF`!q8ga-<6|6)Z__mS%vvsx~k#)4sP1;{9?(W z5U5S*HEcQy(L$T;Q2)4a3b@}v-Z${Y=tU7PH~FGqaW*5J>EyFjym$b^LPH>_L$=a` zJ^k`23ARSc)EDZ$Y$q6s@X-qfwv!F8Gmb%xitZG_hk>=qV!{oy+_JV2cE2cKQ@uk$ zv%m{mrut}5Uj%Kj*#vC5a#n_yk7-!yIHZ&7w;-^>DhS-xxU9fJ=3h4uvQ{QodO=B+ zqYjfyG{hLFgK#`CgomR+Q*#L<;#MNLfh!YA3U*&QEHMQJ9q14MJyOtelR@MnD2_nB zfafsrC-FEv3=i;%+E8^lj@**L!2&OsLAV?7T&*n|0Mfyr1!Ax~BRb(v?}kp%gJC)#3^hfz72cFopH1pMh)>uzL zO%UC}7NJfsGhhxM#ZwyjOo0zgyBC5@yTdy?inCs}9h~-Qt-CtRoS^iB&HH%54>*S@ z+rfbNlK-5$ZKLYf_jN*~JlrxW+7p&kjp*+}^d}4M$Iy^^GpRLvqpAza zLh&{=-N^U!cqt*46U=k4iECyWm9e{m8*X3#xZrr~OIc`g%%YYJUB5O)9#JC{vdS5T zXnL6MIb!QjWm3qS_u#5f-% zum(;578>#oN5wL?K@`Fy890_&!03(RdfY za0UIA@aV8Cj~qh58A#x%XP_+{DxhhShemt_NZSUN0XV49=Bt&Ua~LSu1km4KfR=G= z;@-o}p(_5kbv8npmT}iWme1o@p)a3c+DFzUzBbHO7RGvJ)-r_anX|)>4XClRqwtT; z>gl5Dg;7*i zQ2cq8U#c4Q9cI?CC;6IVDu#6|Ob1Xq-dU@HTn3v4WV9shoXXv|2ss{t+URpzc`q1WLm`|QMN%>`W zt0MD&YAUv63V~Z1@VaIxjb~1Z`VW-C_3QIEmuS)M7RZyPMf7Zc-QsRc$AV+csSg1IpZOJylM=u8{R-C zU&)-`p4@)FnM$bz#|?$kyV+1@5Z<05Wlea(z`2%29x=C1xweY*noPKSsWI7w!#DJ+ za-kMpv&fAZvnK11_}pEaLZtjy(3e~w9{|X>C)8l!&K61#&4Z|6CGD+ zZEJ3)fxK>frp7Afk#Jab+8M3;!?0DroMfV(wJ%CX`zX^n9Gv{+$(4cO*;hVL;lm#c z9J&1uo?SgWJ#ZvE`RyObzVIGbd}4UR#_q%CJ>5O;vfKZxdu0F6hf4qa+>u-N-<+&| z?3NFIbLO(mGo@=?<5pL9&A#V9B|++_5`#{BfV?e)h=^ zY@YtoZ>@a(-4o|+7`r^9-oG^LyLS1&qZ#_ur|(j~I5NEOg(Ih?{^w6Kbj$tWpKULl zJ#g?#EB@1?SMERK_bz^J=DqvRyX*ra$DLb$Xhmw#@2jUj@`ath_OZ9$^vdnUpV0Cr z@?X4i=LxkJ|I;;0lMg?z^zN76_{c#Z@+%mcQ*W|*EO#B))|*okNn;>f4Ael z|Mp++fA=@{@87a|)!QF__?DCJeEt2IolC>SCDWN_k3a9bzy8NR-Fo{M@A!P`Lnr+9 zdFMU5^R(aHvf_;WFAtx07sIPka@W9R^-TiO= zjn(_#{j;6zbGDpt&fiTR`K#2sSG@P4{rj)^;EJ6u?cBff$+w^V)E7SUV&~5GQ&aC= z_>;fQoc7Hp!tkM6$4~h2ou!Yz@`b-Y^_I`miWd)Gf69>?&)M_Pmp`-i`%|aR(&XDO z@B7$OZ#?<_4}Ej#mdif4cI!V*KKf)LdUDOf``^3s>=V}h;uk;If9d8QefG$a<@;0a z@Zv=u-nn`CWi#W6VDb*0Hp1IBov{D%zyHy))tTYy(&3NgPCond{kIGZ40OBSe0E2F zyZf%qJFnR=T>Zi2D)oLfOnbxc{Uki=Z(hDD^NW|K7yk6fsf*r!Nrn~-r$2thsP-ip zc=|&-Z@l>B2ibIA`s~k_KmF|a6Th?a#T#$>arLuLefu4M*x32h8JDRe-Jg6f{mLs> z@BiWS{?BiDBYZ&>7_@` zyXKmmyUsnd|MTbF`QpIN6CV1tYtDG~?RR`Ab4%llb^A{E@{^x9Z{umhuN>L3{|)cB z@y_?Ya`E)3?>PDRozGr#WarKuTmIqMm#sS2Z#cy2m#VtFZ{n}@qfB&6(zIFe* z`~UXyYfgIh;Zo+oI~JYyw_hxM;*|&g;awZ|r&qlA;=(hI+<(r3yAQu1`?@!-?9n7M zom)Ya+p(fMkx0-k>=u=MoH%1~1QXE&t!g(WCg7ul{9kWuX;(iPPL9yTjBI0_$c;EN zJ?;H-CMG(RYr+$0diu7Jb8^!&6BDV_#Dw_#R8b-jA4eaybYdIW^xldcJ%d8GP4#RfueSZcTt%Us#Y1`5N4(w$$)6yTPMM0wy;1#?@sdN$UESzmXK-dEV|1`V6CG!Fb=7mLySutS z?jCm>WBfa^*BOJ4!<66>2Xx@vAJAjwi1gnYWQayRP1+N`iA~eU&yG%HUZQUf_Gp3w z^K1l~G)8@ka)b%fWMt$Vn$Dg7SUL?iOQM+`P2dV55X|kAov6;I$w*>)MNE?}*@TDd z!Xh>xgC^L7Jd;kQv)InhNV^56_b|0^R+G>K{)K4Xxvo5M*umM!1)amWk%?|!Uy#gD zH{celY}_$nQyVZJvK z4%2FSfpZ>U&dX(2Ctk>Hkt1g~^nEE*II|L~O=^H9*loU=@4V2>X1iVUlHeiU?v5ZQ z+*P-X;ABKk6E7!t9LSlYeH%xZCcpWc@B#ERp=9-wb2K@!an&Im97Pks^r1t!+&N6J zZuc0Pzz-37u=PBebh|J6z1rO_^Y3b=i9jMAX!MzwCObfr5npa*26965b8aR1$%#vt zEBlhbn~dy=3HbGO*~I*02J3_!@P_0%UHZVTzCP^g?k+^*8gB_Ql&fx;d4Xy2KunV@ z-lGvtcO%J>K4R*~!7<%jazQSaNG9Ygz!&Hx{`Va1VkAtwW0%A)F@3gp7;;-ycN4iF zhcW6vFnuKajcl8J^G?|&0>2{CNT?zOdK_Wu*=AS;2;x?QM)uRcZgbM5&?$V}Ba`M?)TF9+r zbTA0rm8-se<|U!Y7J31GjS~s+{2iIdj^sx0dK=n{$DT;)9Jc)nO)g<6c{8n`cYr2* ze+%Jg%n^ou2Sd$yt5=h!NzUSv^-x}{cRWoJkAWgDcatCC`i?j<_b+gu9xvteC`rF#aXbC~48_3d+_Iw~Gaqc3=&3H^roX3c>9t-jq5B`do%HRd$U;l`&=AaHcXcOly#%)U< z3`4Ik#Jr|GG4?+k)G-KA!2dr}?;-j(tK;MH(<6 zY?ZYi<{q9o45(nW%=fI9dzTRoi!?-#mN;;R{&6XY~@K-bedxz^AS zG(U*ntD-r7#Q>{fD}IP{RTF-W`FZC)`iik{pTq^7?)m!hYTCzF9jIR|K8n=ym+YO- zNH1PhZeG2D?_FJOUS0BMJW5+~{vyd)kG}2g&8u}7Ua+<7BBTqJ)-0ffao?fDz4H_c zaSZ>)tINBWi@&7L@A+W%${lqMBhpv&$+Kr>;E%7)Dc{~~q|-cKOixT?zf!p^(|&6!N9C`e_MzOb z(8&7^9dg{r$Oudk2(qI@aCnBBc>zWE4^Ov94g{P&bm+F*%D2Ndy6raBd9j}oPcu2O z!thl966=BRJX9J3!m3n$`Q@2pViS#24i%?)MlZ`|i@-!r;pjluGP+ zuDeU6c&_KxRnbVvYFDP2DouD_^Bh-b(eyOWBLVi{R4*x>0#7g4TYapDtJR3$+l@n} z`*1#i%wY+rPHu)vTp{OGCm0g&X>wxY6<6f8%s_)@>Hdj{88-DW6|f<6h^9xT;ZMka ztmknhzMVMb?GQZva+n!rLpA}Lq%*mk(1e4f)!m7=jf^}|op{^ED}Di*G^ObD#7n>z zYvOc|CY^5I1Lf_{JmcHy9s)Lj#-DfLOVxd$8ItUKXIo;sfHzB%k&)YO!~7G|r0Z>i z-0IvG^iieC1a&6ntdT0M{$T|)$*r!i%43?W_BZt3aosJQ7nmmEn|0xZG?PeRt~xH2 zr1n2fPmPEfrrGxH(WJax`kELylm<bwbhiJM-!Sj)CEll2hPPb0oQfq2^Y5upjq(j<5_ zP5d`My4@`T)9Te*wqz&p-H5jeO`LBSb0}!SW8AW9$HAns}Dt4K@Vw#+A1;d?YnrxZ*#l#5HWJ_@e zw<-2kAGgmmVH9TB)XFhUM*932<%wLS(rkJ;!MT$Yn?$hK5(Z7W-JkBjJb(B7v>G%K zROjg~^12Jx z&|O|m5T4;K1sO-_E(Y%y-8D;-Exrxbj}zTPJLYtk4_l~QtO^(rBLKEmN zf|lq)cQH-kiFMWoF!k3NtS*A3ajd`MW2$G~Qb2rNT<%PXiSOe9Z9tE_emyp9QslQs z>czes%Z0=}zeMgw+Kb|L=#dZ?v*mpI2I;Y0I*a6@k8 zB?~_q@QnT%^(CIgjUS_=@rIMfqA@nSQ(z?(`wu3@ISwT*A+95h`=`d|C;s^H@IFC7rs8hZxQvvdrR1)?vU?L@8q!Uq+H4Q*m%R^USr}k zPu1cxxDD~I#qGp?j|^9-BKkEhK4Y|8+LyGMmp?B}NQd+CkBMcB4+7$2{3H=ujLoNJgD}{u0!D54 zAAWlQ`xHF-Vw`9nb>iHkY&yB=)7f_Ks_5odoh@w@tP8^Tt&kGhSzP%IFL?h5B@3%k z!@`YSL+Ev~_K<52>wKMO<=5d~){(sMSZCbV;U;RFd%0AAhokHG7XP&&fTSIp)eCCgReWt{^BA3$ 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 yYpZf|!)<5b$TYv-a@)X@CqDg(C3oC0R;!Cz zS#t8``G?Lr>Ak=Gvu}Lse?{)=|B~QwFvu^>o;Z6<_3WQd?EL;$-t?hYyzw_z?pu50 z*y^3zw`XZdW69?p`0S^jc+D$@|LKn3TX)`l&6p?Z+Jq-!9%z2Tv2JpWW_b4lVYqzR zF^M;Lq97-A`smqU%TV@vJW#Iw`Gs5dty;Hw-Kv|n{b7UVZ{EA?p-+AEk48RRYlUCQ zOqDoFaMA78{Gj`bbGrYY&F7gXnc((2ZvWidUia74kF9ue$O=^uXjxvRHa{iY{=^@=OjT>az)R~`1xKP?~o`6t%izIxp&GNb1`ecZdB zyK4GPTYlyC?v^5}CFTjsiOX#J-kj3cZf#!lssFj|uy5Zn_B0xvb4#xNxBEYRLFVfJ z^Pj%)!?`t|dG1dVJYEcT#%7mxcXm(z=ttcyVLz4Zfb~y*W>2CV8b~~6n?(2c0m}=) zv)I$$rCbp7?xNU7G>pYUbo>n2FI3+~>EemiYPnpNvv#wofo-i5n1?eIkEfkGodjHT zk>8j7qu_;MwikmW$#6w@Vz|2#NN2ELpLr7f$K-@ZN8{al=tY_G^PiKR<@)~!rvn(eXLlFz zBr{pPXz!1U>)v)z`SjDhoD6%O6g#usHqj5+XEv%Gf7Z^ObQ1h8y6940f8j~BH-^4T zdpU`Dat}RA-^P}1aZl5g!^1ck!rT~6r@H&73pqi$H@xAVdtmO~Ju>p-lgCe-d+sTx z?B0Do&ukN(bUjaoASeAgFchYth?Mb z+yQvqHA{a%d$7M=cybaw!`<671x#P?qzj&;araP{scwsJb6d4?(19h?)Ojwc;w?Vd-1tMS|7zrCNS9_FVAF_x+y+mcopGH zpO1$_fCJ#uS$Dn;ClDX9k2k<5XZcl;!(I=ZdwhRE>)VhIVU9|{uk_9tQcG}rM+!K0 zIPJEvu?Hv*bCu37XESbJ{#@gGikTsvwchOg0RG$~&L!$lEl1g_n6^xVF|K6(Jxzbk z5&jxyD%rhCYfdk;p!kd>!Z-4OYk5S1v*LK~U-dqHb7cJ)PhUr+-cxK{6^C;=oWnd+ z=yrecc-V+{DxDsIn>%N(uW{JBOKBwc>I}ZER?w}HOFIIaR`4Omzt)1`_7dwOdK*# zaQ^CmJXw(b$}4eBo-uxwx=%jIeFAm44`BCS2~VyhNKu4!wiRz4Og9KCR-AU)Wy{-4 zlHpnI{imzc6`pjvQ&V`p65pffuES_s;J*9l*ToXk?8mduPN!4D>EXAKNc3=ec4U~{ z)6A1$9N>DD@MIk>m1hEVg(qG59p*_|PQu4L;iytK`TRr|AIgaTFs$s-MFC2bo8S%= zASb5`XXMz<08c1x34oVIP8Q(AquObaleEZ5!~@WaFn;13dUDc~n1_9QFx?Il zdO4YXoy?lWRmy9KCY33!V(h z$pYP#noUm+GY^tEOfFqzZseFJ!>QS6)`#H9EYF>Ic(NZ)a5^$h$8sX$ye_^yvq(<< zBRqLYLD@wfzZAH|9v)Ucy4Ys`yeRGOUTh|?*x$wGe;8yC`u`#Hg#M)ly>LJlLp)|$ z4B1_Md+<_|AgV6*IYbDoH_f2ue-aKzmH$FmK+GKZ4I1A6Ky)^J>tP3;cgi(vvXCUE zf+;KX9ehJ{Lq_&f=y2Q`t=JS`-K&zKyVo$J( zVR5y42j>>z^&-$C;q?$;muWW207@OE)7h4SMNfGE}#eUdknl!?s__dfk z<&n^ULnmP7eb+3dVjn{uY1GlAQh23?N^?f)HHfZ~)W#>_m`I$gS@bOn!DHZQ?rjGE z7I+(*3p@`D`(<$m+IA^(=&HqzmqabprEb{ZK z5uMmI*vPlbv$x6=L&E3wf~GWFxg?>GkOR|d%fDi)~iKXzu zKE~X^EvId<(KqrjuJw@;a^z3MQ_>IADj39IAuevv&n&3ClV_B$_dxYZ!1Nv{H7VKW zCEg6q$y4$XYYf01Z@B^1M{oB67s4P@1G2KgQulF|VB3o!4*VSe>;e~5H~uZWZBmY8 z9}^SX`C{m|&|WrH{A4%V!f+3t#lw3q2z2tWvYfg&m5ODjU*$1uTIhNB*6uNIR1Ozz zZ-Fnim&LK!8R&i)?B8D4=CP|N)MrVqou1~y6B%$|Jx2rkMfL-%rXhDjK$6qz2&zGv zjKKqeQLHX-Zo1{uEfhURNh9)@!Y=D{Vo$J_tzFz{2V2clJ_jMOn zFj?2ml98(Wic3>9oWLL*)Fu3V^VPCLNYIqXh5`p`Z%-ytgNeRU8YXsGO5#Cq-cWJt z3=G9KJS^ur?nv?mAQtQfNFai+YyeP4_$Odvrzgq~8P^XZ>;#S>DF9$SQJodncw`jK z(Ag5wCLx8?F#mVt*X$YQZN85*1Bw}kC1Q)Ui*TBE&a!{MbV{Zb{^>!n%dy!Gl9-Ng z&d4RPdbD(&C9!vGN2xJH^6v;g3uWxA@{s^e><5OVy$@tYgF-HiB^YtA4`y?)EbU?s zAJvI%|F#h~Ho*cmd=(&xB_WHGyyCt^9zDQbHcuu3%00VH{CXfK1`sTjqduE#Y-&-R zy<5#Wv&`S%a4iaADVN zClL*L72dHWNx=xgI3(PF5imz(Bd-iv3`#KA-)KD|iOPc28ZHB1lfvU%rFvqGRi8ZL zLV8XK5eOuE1}2pR_Uh$9O-0ETOAdB}K?i}Lx6RdB2lS)>Lus6;VbS&l6oa4wF_+V^ z{yOHQDfGcEup6#)0!M`rD-BN2JN%J^1&C$E%@jb>!>xxoxpy|go4grlVe6Ac5-%fb zxspK+{H?%d@d$*`zWrKu&BUy;LP#cE#n!5c+ZcF4v`j)&^g{ zNzkW$EOdnSX0iWVK>=c7%pv#|5BqD2VH9|Rm!AWtVD^VFDYA&Y<3bsQPX)=&eiH^e zV$KSO9ecJ~-WkR%#skh)8Sw|1EHIQ%&5SnE+i$X-kOmQAfSZQ=wa#FVtB@&-RaDW^ zrU>H+8Xsdl%yJTRdX!o5-y~TdCODrE$4iQEImU0uuv~_ff>0a{*v8$ABk_O$SQ@V} zX)Fk3den6W;VqGnc!FSHH8mIouu|l3B91TM=@4R!MM8f8RcCd@V*pgjJOTziu+T>kS>V_(}$OV?+Wkx zVzBtNL2mFQMTwN_QHH^H zuSz~AE4wf()qKvtz{m7}@VF$xk(5k0rSvL85aAYBqEF%w(|aki=d8QVCPUC;>j zDvXNTew@2}7&PcvqmE`SwpahFK0Kp>np+XQH zc=xu6e+%8HIi5+VA^*PK%qyBS{1f*C5=b|yC?y*tUMKd;X7oJyx#T%_Oax8*4XdxI6NUIp8kVuu;mH2TlmAhY%tbSz6pV?3!9By;Mxx?h0ez9 zPrfyd{R(l2k)1DA>9_?xj3q4jUW<0>@`M6L5!4t#_dGRBqlb1$tI$h(gIpqpxj~ZD{WErpSU}r~Xqnl@&b%=pYmD=IYNzNLd32H@;QJvinM=ckXTV>ar)AcHkE;zQU z1{~K#b37DK#-;Z#li4>tuTKkHl-Be;#>KfH46=+d=SQG-fjZl{dbskZ3?J|w;|Cg| zb~YHJRyuqPh~C01iSSz90-rM|jHKo+q%}gK{ZuW8fp76Ot?Y5K8g$2%hsu8!f&%7# zgaHy@jC3BC7?t1{l^mHwmYKyg=O_vl^!G|g3gHqMQEPxx6KvZCuDcSCjg(^QIlqlW z4kI~mJ#fK%&C)mr&SOB-pkPMTcyQU`dNpyOpy6y8ffe5&!)dMIX6KZ?latTL9#`uc zbW?x;_G$z(wiLH8Rg)@N{)3H+<`EIsTaCyk`2!s>e!-9ht7lAR9Fg(mR?gE{$l`#k zVQ-J*M)77G!Ui-g&9&v4@OLCPu~ay2sIZq9qJc9N*!BgfvDm$223ojfjR?3)?&PR( z#W|0x_T{wbw0Ltd7{y>RuxJXiw3RSG6v6|r!DI-nK$^LR7aj@9{FpJUEn-a=g7gIx z5KYDzv;xDiBIXfuU%nw6px81{1TFNClELk7pu)j=f?T776+dPaC!2`HRT+}gBq}fk zxGk$ErfjPk88%%6KQ1^j1r{vM(%r&XbE#G~u5j}Uux%xv32rCKC<`0{YOxBd1XW23 z{JF(6z;rckCs;MKNGRet5`o9a(uo>DbU9X_v6pd-`AHV>4PtvPNcEd&gyKxV2*Lem z(}ZS}>9EZREePW@?p$YBSfjvu^uQPEL7339xCLGSlQgFUG-yPo0p!pOyr(y8Z{v+d zCm1BCAc!5@j!}a1KGCTXjC{l=fP^v$lw{U+;E)#T=!Uc{c61tqn^XWEt1;*ID545c#HGVm`|}@usnW7u`yEt%|LEu z;NUh3myvP|vl6$>aFRF0)t|I7MQF2MHuOXkfpHGhgVO^B2k5hwDa}YUn%F3Qn;AMD%PW+%2qf9%_!Bn_Ay~hhr?T0T5344Jp)yvaSQ-hjd5>NYR7dl z!Yb~&+t^Pj<@r6nEC}O*f+H7R%+I#uk(I{AR0uOjuH?9^q;owg!Gkr7gK41Q#MgG> zW(cx!O~iN3Fs``PNrgI{PLH6&FH=#!T0tEc->*yGoe+a?2Pg&*=?xL7vmB{Ik=8y)(1v5#*kN4GZ3X4;S)sdC1(4IEW12vXC*9tou zL)w)UOL)WRIIhl4K3J*|tU~6p2Vr@`*1M8bBtG}U$HML>#HM0}6 zW4-ftV(GT84>t`X#q)qJysOY)Uf)IWyuosT$6e%T^z41zkN@(M11`|;4K8d>MRPo^3cUFJ5*)WEG$(& zq0cur=qQV?q*3Mw9%qd2FncDC4@13`sgqOqg!AD`IlmK7Fi*#LCLq`_zvY@d!wO@( z0o)j=>`kl@fP$Ix95Jo&sd-@89_OM{oI@%{u6`%Y*F{wcgL2dfa?}oF9$=9Bsb1YN zhW0Rpj#9uc!7={KM>WoIDZD?7LS`j%qk${igj+Pid8Bwem$pVsx|ZYWO0vs223=O% zq`47sEV{+PCm3Ru>Y+5#QyGnkU<;qE6HNU21fl`&7!+Zk4bmnhL?($9bK6tMOl!`SPDn!90L-Lj&QFMlr09un!(CdXk}UTDB}Xg z3Bq?Xw^o7>*G6g@lI-TO5W;oih&;0ZV=THFHXWnH4on0vEHa~83wHDtmStu|ROYDz zaPe(Y2o%yeO(8h@-&p}IU~4X52cak)m4hW$7eb0G42O& zYhFuPH3@%a2sb{$dIlnL`f#Gm)`$^ghp{-V^=b|;T3MX$fx&~B;3_;~^-}_wH#$PE z0cFSoi2&%>xI^cRwqk&DqeDV|a7}Qi(qMj98}%AL8dXLz$Kks{z97ETSs;UDJQ<8i z{YaZaKNzN?YiGsU5yHqL>xj6Ju-M z^FMcXB^laZlDF5^-nn<~$GPY0o;!2TTvq-QtxHBKD64Yo38-QX)K1IU2;teK!ZOSC zEaf_y8*tm(#Yb6@p|(eA9S?XpbnuktvL0(-Ue8o)cN|FNTN5xrxp6(B2q#z5l4Ooe zU`AN&Bn@7sx$Xd#23%a2+U*OZ2g`Mo@+XwVqRf4!D+=eRg64SzPVpP?D8TCd0^6b^ z0dh>JyM}c1%9*YApc)`xxM6}d;8S_IC2z;L-KhXkR8Y&gh<(wsss`|=2DRWI z1A@;AiW+NWN#IdnoO1FAkN=@yYDR;TUC)DO(~qSB*qEK=jVQmtwjsZ5iT zJDC{J0hql>M9j5$Lar($gn*1-H96oV*;DU|yPoW-Y&d7Qa<4uS&~t z&JQM6odkfT*}`7GL}p3MNX?MStXK4`oPUCt%vmC}c#+qc*(jf8c;^u0oerFxG2vV z`}q>{c;I$`wF2B8(GzU#vI_A*Cj10`v!g5@pJec*yzk^4#5j*(-Wb7vEINBVItw`9 zlzS%mk_&z6s0Nb-;Cb!TZ!zWV`V&lqe#HpsOkzr7C8|8~ z`W*Mixbp?aEn2#j2V#0qV8#(|E9)V_v51N-E%V&=u}I(qxV_il3j{a1GKi7|3U zCrj78G@hdg-Eu1Fz|r*S9BZN?`6rB$GsUys-UUi|$=D5NVUEtyiB9v`%#pU8xaFnZ zM}m=wJtLcZhpluVcnrAh(Hf5v9y21&!#epF&4krmmYa8Mo$aL+7pOHi{`0f{ zM3=Ztc+wd-%wbiAb5pjX*frkM$oBQxwWW*G&B;xTrRFmhWlE~)>T}-MjMQ z>Y}xsl>J*?<5@C&2W@8=zPYN^a;{m&kOn*vxUBC+HHQDZOgsLa(@d|Q5N&eU+F3w2 zW(7g>WGInledu~Yt|5T=#tSMMe}dZrWyP+UC5n203oG4n2ii9m!DBPDBx!BI8t%Vm_tT=YkCKk)&^JHIY z2e*Q?tzxh1cy^qMSacAcrCh#Q@hE!9-L!!B?oq@2uwjA*hbH z#Cm26#c{wWH{?v@?xd_zy{vCfI>l|dvbEi&&fW&Ys#eQZzv8;>J4aquoqn*qK@TYV z3>9nfp5Kr!xh+?Dye#+Kv#$QVk9IVdp0ZEK=H(p1pNtOyVmQt zpU&sLpMXNDx?W!8oX0f*)p0yX#$}NgeYEFS*R-)jmw9Oe-&ASF>~c9lhb1)~*d*U7c&!c6Rif)phe@U%$3#-^+XUjE#Lc zQQb76Pip;e;wu+&%VSq0?(ea7Ju`Gg_JMy`?oF_qFimWnUBzU%_TSEK&7HOG^M~L1 z>W*{%BYfY&SNEwK?+yE}d+8fT)&8TcAG}o$Bz5|QYsN+|U$c9B%U8#4nc7vo{j*zU z-snueIkV%8yI*h1j{WGOyJsFbkh$btU5|yYz8-$+pYQteOJ9HaySF{J=i9H2J^6z# z@80b_@`RUr;lcY?d~NcYZ0-ZAc?$f?)>W^zo?>@)eXlY3#CWzh__I&kFf;R?KRot- zpPA|Eyz@W)C(?wUbtoX_t$@J-`-DdS@He#dmG0-z9siu>GNGPAOHCBjXOOR(L@%GHhuW@ z9j*Cb-QL5;9(<$xpW&9&Prftp$>(P-8+z$;GxVz;o;18qU*$}Uy!;m( zx=XFUT7>@=O4X# zb8(Bidr?z~b>y0+`-gsb`HnNy2fB#ji`srX({_rT?fQ0u^KG5oV7=!bXEx9L#}C8n zpE=sq`S8x=|8eU~=STncl~0{KG&8(o=xgsEzI^j#*KED)lb;+O8tN}^_{bj)?HFpi z`o`-A|9I79+2QvL?<>y?eSGMf*Ecz_6lVFpeTF7&+Yh|F<(kWW_#ay@*?C>=vR_WH z?$XxovFBr+o^YH0Y1;0*?u}gV{5L!=|ASocgM;={EGJBp3L6k3m8sUl)03S)_+QJv z^ZoC2<`NIwzjp5%*%iC06K$I=zk6B9H8wSe=~rU0fal(FdE2%Z!*ZD|U@s&}O=b_u z`g`^Z`zCDNn!@Lfxpewa^a)n^{_B{&>@w<}8sy7Zfyz7)mMBc|ts{kkF`XwTd8L@8 zv}}IhaNm6r75rwLtWfZ18eh4^c_%4oj1SUhh_;oP+$jq24P}yVz~YHcSfG^S#NzmF zEGMsYoI)YY;@W(5)(O%v;;~pxEQv1?AG4?OWjS_3LP$sOeOZ((qfPm0G0IaI!B zgXv$!v%_IwaAiKEe0Qne0W?{lFODZ!b(`Y4>4w;20@t=}A>ewH`jPx^X|k<6c|1)t zXp)~QhBcZ@a~E}*;CsS`CWW`r#8&oDMxN)qj}64~Cy909(gG&;)=8 zO&pNOqmzXu@+sxUn9u~=K*^Kw8!+Lmr;9~H6Uzckip2>!dep++muWh3=um#8=N&!D zcb}$MjV9KYV@HK1sZ^XX6q`$vZQCX%V?vX>p~+voohCTh0a!CMF)`qorO89tFzg;) znP2Cw?B3WPXC9i&7JxFG98#yrD^sypc#Lc&3HQY9G6&3~$;{kSTZATCkE4lTX7_Fa zt&3qQj1^MlP-s$^Oj&Q8cG~o7hYthd`7{wsP;3>`WP<4!hJ{BT4a3)7^BRRF<*`qX`+B49eS&!dq`0vqLHlPSCMq zzx?I&Yw^R@Tfg{4e&tCg9XnRM$a?zVGv%0^mr-Dv94o}*VLZic_tR^Pl5H3x&dvZ$ zQt_1`^I4j3+Eamk@3*B%7(O%@hN=GU?tX9O%8eW2DbPf|iJxMc^c&dOrhYt@AUhz? zWZ^7L3bS(Z4m6psy9BqlfhOHFNQNe&y9`aTS;j-WMw40HWoSZ$GxH_L34_ht9N0Vd^GcNpm|i?!sDIC0zEv%0Hxo=GyklDmi*nw z<;XcHF2;_s$cMGww}hOFRl0%jT|RYeG&Xe6Ait#A?@v^Z0lw3NpaCUfRU?W~ZUq;aeX&h$7}&itTCJ?-Gkkm`t> ze}Zx*mVBIRa^8yV&bL4Eq?`#tA0sX2!F`Oz5%c;%Vw}ff&LSawDaVV67X1|Gl_1YI zXQtS-J`hXa5@!Uq`F+pEfMF-yBynww)*RfRuUdYT&TJ3#W$T#M+i85sI;Q1SG@j{m zr~@&lJCGlxCEh9LuDCpg1fl*Fd2a8KOa|~FjlLwj*PJ`V^Vqh!KKWfj3VMmA)9Dx+ zF9*L>eDto#Yp%KPzH6@8I$40OEtgY}@f1F+pW+E8jZg50X_-Kwr{df-=ki?P2^?P} zwkD>hQ`>0k=FNqJtl3u;R!y%GEyv;TQOwPlbiI4a-C3F84;9LB*4bX+;MT3N&4q83 zCr>(Q8~2_aEZo)hNMV&_mCHCQB7EAiU_I7#nRVm{eywA4aPC=7Om7pV3)>3j%rXg^ zH*eea6lM%_4gjlC9{XgmNTW2aY&`G?d=xHBhW8o$CPsu9L(p*0WYBHUb%->UTZmSdIaTkk*<%s#j>HUMk_X&^jj z4j<6}w44ClIJG2Ie6+mngC8uH`R_i%W2R}56a0ys;C(>Z7}JmwPKTvPPB!!6gj-_V zZ37M%BijnAQlN>nb9fr1ASVl+4nyvn!yz&BAMyYNH#=Q8$Z}Gil@rtu=q!jT=5GlG zANV~gHRl9Oo%D`!a&X;abvdc!vzU-}D?QrPsyqdnP>m)ckgy)#Sx(Gpm-X;JD<@%U zx;(jcYr1W)3Yu))3Yv(VfC2@aqQo*%qe+2j5P~KlXu`UU)0crJEGL^oSfA6W$#C1< zcS{S~4$h~^ba4 ziPN;ilShvVP0T)kD2NJ*TP1IM+?Q_x+<(*!oy+vS95GEYvt zfbc}}?@a8}{1uOncORF2ycWBtXw}+DsHnY~Ut;7_n6XdVi1Pkt>g{kEJ7l8rRupsE z6*y+oCa(EcHYEbQ|KoJS8RpL7JvCoTZ*73O5e!b`C+I&{>yy)J)~~VNX1Wg31rqyn zVdP{z4Zp|{%lB*kk2YeW&)_Mq+&B5RM?RV-L~um$>{tw(bJ9^<3tv(aiO(K~hWY-C z6vYj}{QOzJ#${wGn)>ihl=uOTtK3l#`6pJnyjyFhA&~m6@fj>?F8}vYy<5Jd)*wDH zf@juu(DZAcrjTK~oaR>CUZRuVvrI=YnR`j&XQ=mZT_9%`c7->Db9^oZ2I`$NCV4nJ zKRsv63LD64{*Ttwh=~It#DEpCy*%={TpNu6F>rwX(R>7F9rqk-&bRlN)c?N#IOhc& z#dueNYxDcx2kayY2oFSDUL6H0P?~02a%#o+YN~!6klDh(rCCn?g3}xaQ&DMEFK0?3 zI6*O})kA5%no274EW5|9muPsctqVF+5R0QzW{= zUoXu+ku4C|>*ZO)==!}Per%z!-6J`I3tMH$EU;v6XU4Wv%#LL(yxxoYGd-YKbRA&l zNmecu*#UCU0NPXX2QNHxm!P2J+JqWpCibmpAoK2#)L}>!LpPUr^)PqLzfl-JKI3-@ z3O~YdwWrhqae$v1xgm&Vyz+J_3brs~G`^cY%(jO{BRcOo1ugSkWvbv;%P(PPkUAa_*d~I>rY!IfK*$IPr_TIcS4cL`?Oq60+AFdF>|6mFuX}5y)=98S?yw@a{LLm2@!5Aiyt) zd5vAa4)sJsv1(&7zd(pwrY);O(nvY=*}*}gr^kwTg`8&zTQZUkHnBLce%U$=BHrN2 zfo;p4Q*60nP)7|qQ4zdt0g`lW>;cb=$PKiUGxaDZT!)HD-6w+zunmJPY#!5PNTZNJ zv;@#Dx)6I?2YtA9wD?c>RuI^}s~Ca_LOort?8|=-`2l#rNHccmIB-%7(iJ_5obmQ{ z?dSl!q1%H|N-#Yb#mY}(kJ?>AMIYN7l{Da>13R!1;+s`v%w#df#jZ}MV7={*(!JQv zN6io0OafK$?Z7qf5}W%NiV+Jqw&R+i>ec>u$uNE{poEjKE#2$1VgP9)yedvwl^EWh zacXa7@&>lDG#ikWUOc|ys=oH2EhZ`gPIDkIl8ucWjDF#Uh zsKbNVtj&2UjGe%OF=ESBV;2rj<}=;WpdE*KZIxKZY8z;dY$e4csZKP2Jj+;~gW3k! znhG_(jJCWG<@)fFstdUVs={F8aS1aT!RGl*Hg?&r?J>f$y5dnWwKcr9`bwN$^nz)HgELSBI0IbW1v)@7zU;f0gn`XkyUKhgyd^^SiKn_0 zkG6DTBf0tLMnzC=GNG1pxlX_vQ}k&_nNwuER|Fp<<8ZOZ?^%*#cCfoLswuVk@06#2 z_oyuYRzb~VM?g--5ANj}P7imeqP@eDr1hEF;dvt3_Q_$yM_tx@3j1JLVq`#ETnD5( zYNgx;sLV~&=hu!&L$ELy*^j9btQTZ2vQ9GsebI-`9LK{s0V84v7=zg6Xegn`y9sf# zpW*y=GF(YnFf8?I)RG@!^a$5jr~|JDRQKIeu+w5_!KN)wh8Ngq+tn`5NTaTsmhHXL1&>#R8zaWwsI&nNWudd> z5dgti1l*cqqt;_H3?X0dQ#%Q6M^t|15)D@ne=hB;>A4)mD_^84VvA zKo+zBOg|@@%K=k^Ap__gcN~>*OiNrWY4yR*#N8rpYrY6jCEBCvXx2@5uAwjx;GhNX z{J{8l*WHfF;JI<}l%yj-Of7$t zAchBEIg5CLxY%XID0Yw+WE9_G3M9pv#0&r&82;5rE1}kyJK@?D4S~>xF%@(4{UA6q z05(tC_I@+%2oqod41^*Fb5;dnhBUf^uN^nT8Py!N{#KYvlD5vV8fll^l-xtRW!BJv zaSK;Zl6((At>uZyW=O=@82q`%p1>~d(OZ-?#bbl0Sl!C*tpwU_;aS+8BAT#2&DHHd zq=UzX76(|RX!O8s(NpeP_}MkVDM0zq>bJ{1jk-#sKeDHI7!>U1cI{rWcfok!`D88I zdev-z(g>JX3_p6dtFxfPe*B*>yUOiR()Ng=^MQ*hV{XK+n2K=QXS-fkN22GKW*4NP zBhOTVTOG5rBU3i*p+@iquPU9)ZaA|x+jb(~Y~~ywOeM3-_lognLBEMA;|`SCH4c6^ z>j+n=sFUeiSQKswJl1s8tOK$qLHhQEyR0jBSE!<5%FVmf$9b?dTYRHHxhqZCg+d{> zC|V#$^s<%i_o4vL{W-TmiAk_@0e24$he~AzBs)(74Njo65`$PnE-QXJ7Z&daTBj`8 z+D;H!8xAQ%9~~)@3b6Xoj)EW6IOE3w2U4IgBD8ZQ?FPyfvxr?`w1Rt?LHvB28aT5t zW7BuIH>bgCaM)%W!&$=30)rakzs?dR*5(;yok{J-v5fI;=m7_`(3p8m06k#Mj9YoA zLnsyPjT*0@EFKD4SG)gCZ15=iCPO=ITHtC)xGaqjM#nr9OEO9;42#P~nypy^EZ=oF zp2~A+7F2x-Rbm!%E7%^WgXZI!w@mc1&Za8Vi3@X1Fu-k&0Enpyqmkp${YlL;Cf~i6 zS|;4s7&#pp3V~R17>g4LhAipbixCD%z8)n!$4F$GDgH{YPzKKdcC}z`wIM>)3796F zKf(xbz5FOxE~aU%#r!ovo^QL(s59ET%z=#bD0^Z&=8MN8x7|UG9*s^b9wl%CgI--& z<)*4!4O~UEcey{t*bzynDjIQPaA0$x!oI+&hU^hm#8tNb{9B36Qh6CRf~ZRev1%zI zwcn-nJfS+w5m?h2(IPzjG*$p(;OZh-oBT$xhnZEK2)}4aM27>fx}1R1ekT7^{3>q5 zm})L9XOy%Hm+oO>)^hy@O%W9Q7fX&aoPjivtg0Y5lkrJGkfpwAgU3ScuY4Zg5Fv;^ zxSDO@+lU3uc6+RZGlfQM`QT98Wx0zMOTJ7((rJbo?w6(dO#~0Ii#;qiV!c;;uwu2-tIzt9#*g1;PNpIwT=sSwnBDm2qjv`mG&bgXJ z4mr&^V!x^V@CkXoL8#w zXUq-o_3ffnc-PYl0`zh+Sj|?0czl5N2v# z;mNGiV2{+s7|2DkgN*&f+`{-wvu+<>V>@NEiQMchEXo($D|#jIT~u@0H39i9bp*c7 zGaO|rfvhT+pAle#;aW<-TEfTDfZ~l1FxDbE$2iP>50H`=B6#wUSj6E++b{Xi*!4 zVWzgut)NCNbilOG>G=4wcxb@oznxaAw0S&kcDdXx2>%zwty;E~wlMDm z1URsK;V!_n_(8^Kj{|PFPiLx}a(j!A9G(n#89h#;ahuW^mONJ^%ZN=Bz;k~3!U@!l z_i-ZcF9#C|1~gAgPSMe9@eHu7(j4%R7s=iuvJ_h{Jm-I51Z|`pwu2nYeUBq=HdJ6O zv4U}@g+Wu0k`*>MvweW%doEf9{w+;R7X@=NuqrH037=xzBly8qG2gnok9D7=xPcbi z*!Rt{TmfV)B7bgzOI&DjD5KLh8;O;anM=0aV*6ht3m7< zrF^@ci(siOnn|rEyK%*+Xz%uO9e4uU*>)X#E*A7!$`UJBM1(1zduW2&_bolH-FPOr zEM!rj^P_+sI(G5c?5WV1;x9E z^$8fpT_M@B=0sXKcnaZTRY>Pm9P0R7K;z$LfN<7qFBkafsB`LltYdr!8U=5Fa88(? zle&05Bc!OU#G4|acX^IvAV}qO5zOGa6Rg9kIcJX)Q{4Ir`a;|+c(fJOmY~ss_L}+E z=OrW~UURH5VQXpt44h`zHLs3Q9y1zh@dV8JY%C$z%o#WubMDwAi-eY>60&7Y#KYHc zf)8T3QBWbUdAR_j$h}$^p^|bO9wnR0+^+89I8csRA8P(%m8K1UnlzpC1CBIv$U3$@WjRL&=>$;K%l=8Uup_w4){`zlX|Wos-QqSq@lVWXhJ_TyxLC$ML75LkV+PC_hRO6L z>|T()po6P*W|gjO0sHg_c}XSe~fuqI)zn4kEcZ?= zRTSPsPcXSxoDi@axoX3Ti6`LmSz^mrRn+m5JoHB!u8kf96vTHFr0?lX?>WT?WbDBmVRVC$=F&wkdW)~*Ij zl=}NLW}kB(FC_4|l4$JwpYnDUhy{lh$FF!r z+td4=u${okxlI$)alvi(yGs8gxo875G_7rSdMwECh&)X2dAWM&VxFAx)RC~Lvw9^{ zvbdFXBa_l`m%Edb47267@f76HA2ZvnRV62q7oKVm(enar+m8hpQ*vTIc)j?VBRLLp}5+~I50oJ?H9h6ni` zJ=Lo$=F#OnReQj>o_hR58@~6GyyW>c6TFyy>Z=y^nll)kc{`DD?N;~hPL(x#lMz}s zoi*ldZtD7%nO}LUH>^IlarnTs%ig@_e)q8huQomQQp3$nKfAW;XOAzp$HxA}{_;Oq z^odvh%KpFavaHvS{885%Z$0q)Z~bC*qVY zytJb9>L2gudUelj2fmzm`0;AvqrbRz*&B~Nu;-UEH%}g#$?a-e+IUCGft-LQv140* zwd02EU5{OT%{7PmhFq&Kp(_wRWC)Xi0kW#oc2~=Psd^w#Jk8{VegNEhEEgSLL?% zUH46=t*vdrO^F3JKXTy1$*=9UyuY9MS=U={H8kGy;I)a*{%B+@{QA$j9t)T6`tr?J z-1O!0$jxtsKkJ$~w7lQH;r!K?pSNn!^ZKX7@h_e?@Vc(F?;ShsnnxZP%YE;*W!Fr< z;_QF!){Y;2`={yL)ECeDlY?LX$l_1X4>oKbdg+Ewoczh~=+J?#9iM#ZtMA))VAZ8x z>uR{+%*9QMyOy8?9mn`r_=j_hNTM|Nbc?tX0Ny51+o&VK3V-+wR%-Lb&|7U$dMHWo{eWw9$Qh{Yx(mtzEHWM{Dc8#SdoQ)!(<; zZC>46y|ZcQZQh$(PJiLq;Y-fFYyf+UTZ4VsZDr@(0fS!_vOTu6nFL_5JHJ zC#~-8e^2^H`@aADV}pa=y#9`dZhQR)%b$Dho-hoDPk-$C?MvFu?R;Nu(dYB@(_(Yt zYyZ5RDptmEuGyZcsLiRwwfO;OY-7_cFRtl0F&CVD-uEZ38Qy$-Y0FG^+qTR5uS?Fn z@$%o?F!a=s1BJW4Za3vJ3(r5hDY3cBzWbZ|Ce@oS$XU`Rd<>gCv2`@XzcDsWWGakH z99w{$%h&@L~Gl1#j z$Ej2*aDj5Hcu_u&{CIq0)NB+|R7l-MSgyk3FeUxSX5(^!?knF>EH1RE{J{@$&WG>f zz{=u$?1DzsQYpVOzp}KkSVUi?jcI(X57l8;afqkmROXpFHoI3?0yZnLR*re;w2Ylr zS~42O$F%(Bc}35S@ZHl+BD5*Nl+DTpXjWo)nk+laWz!^(1rueOAzPYG71E5Yav5%r zaBV8bU+z~Ez!~E%g~8EE*bpW}JNvPPx8R5LjChU3Vr45Hiy4}v(`{{_O#S`IU6h(O z+iLG?2+3!f9G*PF`Q54R8ck>%`>P|G2<{`Aq)L}DO;SvgV!pc&=ln-E&f7IjTdB~! zG_`;R=^z7}j%WhE)&gVbj>%0-lgSTmouvue9#JT5WSZoeCfiYGmL{PS&Y?+p?*458 z24d7m3n>-z9(|PYJUmQsV`cF;YQHOEDJS))S3d2e@$vtscqX1 z9g1i&jPgtkp-C}aiZe|bd^&@|!)5rTGEK0*dDSXzvjO-AO{kl3f4JP8jui||`kCS5 z8O&el1pLOf5{sWBrdl+AnP# zUSFpE0yA`IXwpwBh;U8T9P3lV>cnTPrfXzS?w3fmS`tmQs z{+F563yh1`j`%Oq%P%YSG2ko}hVLUD?Hro8Tq8igkx-@Ll!c~BrQ#_gC-7(#-Svkk zFEn9^7Mhp<-G#wH+Jz<*V)+x%B+0msm-7)#7;nt;EFY}9Ru;T+;h~2%LO;xg`=GN} zcNF2DBd!skN%?aFyhB zz&pm!WUlU_@-KgxdL|Y!O{UA7_2NR%WRP)&G4>y)yLuv@JuC9joA1w9i`#4YMyBzm zBf8J^*+N!PJBrgSm!bqOJ->$g@K3bJUZYCxbwsB`?X)|!bmW7$rihpO4mC%9lHxPS zONTYJ*oQA67g%o|i1hksN1e(=PkxZw3;R1I4v_}u>3T3@f9Y{z-NzWYF-Qgmu?N9FANqTEea31+V&S}Si|6>$$zqg}bUISL&i)SUVaY-{k z-=P?u60@ok&vzBgFvI>{twpbJCxxo{@8&+*|i!gnxA3@t&@b*Azr`!^H_a`_arIoZXIddhrs!hK&0!=3zg4(U z&TxU=gB3Q-y6zx_6GR7DLv7@B7}R26u8-hxA&nXFXbP$oNk#o9@C@wJAkSxCCUN4* zcN-WH%Hbf3`rw>7+7(rT0P7+<$@j{vq*y%_2gO$i4^AZvhpdmRa(TggtKzo_jH8#~ zS~V?J>f8RM1fO9FzWkxU1-~!WU9ca^(cHpwfoE*nsL^op;6c{Hll5Mr(N0b>HtU(c zMff=JR8@eF=Ny_as$T?6o_<<7_-}AfPNxfVX+loOc3Jof8st$-QUMO;GAl=+P!O8T z0oA*V!$JOKnuPIk@gng(eWre!X%apyUZ%g(P|25%C%nZVO^0aXZU4lLc0NrO zpx-cc&N+p_FzgqHtEd5&j9*-d__prN$<)jEXnXMb( z$6ECL1u41ut;0=(VJcigPK=J3PZN^|Z%Ve8G^0F~(kv%zYKE!)VIJCW$kH0w;x#!r zc-Px#BH?$I6QRkApvN4V5NMJrmkcfDuh8a)NKU9OCj>cpGo+&UT^2x-`EnvOF?~pI zUaen3PRhlDSk~}}At%|nG?5}AC&RzfP!U2%GR!G>U%s6tCXQ%=@KmZXBIwJzb|pkpAj+Y zoAg9<->LgeQtiCPs66&c*cxdAN4?)!KSwF=>^5gD(sL$_*Mfgg!L?=iw&`=OFC@~L z$GzS@&ZzrZieDm$pCRr?OiTiBi zQ!OpAhR^4SlI+NjF}BVaVs?v3!%uMy($U$2@VUDxit+xkc0QwZ@$7y4+STaHLXM?A z{2MuK?-9SoK>Fh}^>SRDEl+!viHUDlO$_yaAzEjr)O zZu|xRTWe$n z=8i4DwG=`Y`;#P#F(vP``eO5{$0iRawsoM2800m$MK zb}YgKa4Vy(QHzB=vQ9ZJ=1mzBY`itMd*w^>NZ7qK+Q6d4o*QmU1vI-^oAbQ=wLUrK zdulFxNSS^uyIo0y9~nt|uN^Sv0~pJ^>v~355frG@FXaxf5A*Z3<_qhCa$ge=!N3nKvuLU=wo~{+0 z4Ri4|9|W045q!%GarV9-E~usE1St{KGdx-QtKT)@;cS$nq8Kmx3bF&V3;tqN;No?wfz#$; z1S+DNhE6~|)KK`SI{)-)fk>f_lxkQqfbpxWq6LZz=M6X&>3p|u>l%1yTUv%PMd*;W zajl{vm`nr@fX3`_vIC)^wsHI)&eY-GAmG_S>R=zC0bQFKxK`qYfYDExJMtZL=yD4; zgV+FJiDlt+I<;flwe*lfVWwIDI1LS{C@=>_lOk~&=&}4_9IZid8Mj!9_fR?@D_vx~ zihrRt6$06s#|80KHSw@=gz1Ha_|B<@Z|vSm5o|@yV#kp!Z>G9IltvR6Sg-GtD2^Qf z)(9F!N2YAtnIhc~P=h5yxBn?{;`&0Z4fizi1p_z5b24*p6TD=C3b`4#wn=*2r@!=f zmrCP!5`~SA8p?b(Vdv!)41^LO9Q^uZ4{#T*1s6|l(h4dn+s0aAZWkU*SBSbUpn_E6C0LFbd^LkheYj{q^tgXd)n2c`M3RXv{ScxI3|EE2r`62kHBu=wipdjP)7aOfx>kFdb5a6fGJ!v7C8MV zNbIR3Y>M4YR;@b8XUAZhJJ>PFM#rd`U@TZCHn`jgF66YE#uH@!(-V3>3#`>K%1zp> z-0(65;NcrKK;Rg|Mn2t1*r^q`BebT0A)~5oLI2WK0H}ebknfropME!!DDZVK62K=a z&9+z~%PTwvw-uYd8SOY>1_+Qgxo4jZQPrZMfVgRH3)}bv0v;WUh0ZYSw^Q$UTw}jn zD`UrFMPmnXyT!slPn~d36ku>=Hvyj>tHRU6I3{`unnzr>gITGgFYx1ZswFFM!dwn) zLkilNh-roA^F2IAok%AFr`SKPS@(}fA;LB>*6SARf=*{Yt9h?!gdQi5iogi?;ac)x zQjL>9xcq)3K*vhOw4%_RP{o%+l(or@Lf%A%zc>Vr#*pMM%8AtTYz}B1&=k*en5Ys} z_@yXj8ti`$9Q57VVe0|-g_)yW&CY84_?S*8dealI)$EM!k}bN1*T6=$Gb)_~z%b9? zWfprboDW#w&|@EA3{(8;2PGNml#D502qvT%J;4B#SZwkTTE>a(Xu-RZqmgWFqqguA z_U(ET8sg(?)&beT!dR%!_3e^8zV6^A&@D8FvX$ExQ%pHDY{w@Yy`BItUA7jIqn1ka3F!h}OKARa zwc}>RSxi93c|K@7APD;eTyVH03$GSH(W-@`hE8zZg^CngO6PL9hQDTuSr`mWoKL`5 zPQyAu2yFT*?1RPm9==ubWKOrRV5{OZ6rNavDdwXwO_pM&)dM64)@uB3slvkpW3e(? zS1}aDKNA&cxe4n&%sD)(SrrUFPBzv`9vp&QieWt^EQT%g$hUel4r^+-Y~53dV%%Ls z8e8;v{&A+9wN6!W*9aPOuo2k|k1?ZZ+;Wo{Xenkwhq=b-bc{JVM)&gXB3Q&0c6w-O z06U*=;SLoOPO$=T;)D+efbBS8!B^}8<+zL71elfoRrN>7I!oB$lptxjmPk)LkoSir zzv_a)CjzuSK+Qfa;^};8i{}6YU1Vk6>^vXG5wZ-Q5YWBSx5s;FQ~P@QgU2I>lLkc_ z#j+_vvHCD&WDpkZrK=ZOthSV|ot7Xlwiq@(Lp(G-o0^AO+Jgx&t``!XpJk?aS<|6@lAiLI{VQ47M6a#}h`Q1_=2rC>3*{#MV@p6O!W_d>vZ_>Ux1t!k z!kU`(Z*PU$;?}a>L`8dU)wL_O?WOO>MCS4oNBD;cPi4UvJOp<_2N~BMi|2S*=+T7T zz$F+!QBtCATw1~k!qr{e?x^NYt64y6{T!TUSM?K(aSc2qrpX=1;e}leAacYb*IF6D z3-BY@tK_QU{!Lk17kL8nZ96yN-oip8?XnSblYb>Wj3%1<@L(*b`T`abWj~-=9BuVo zU2%6&<_pAg+_xD=XJo}%=27*Lr7E)1KCL@Nup5+Dsd$!7Xz_Frb)xMF(kobkCz5W9 zW;@Te8!mNq#ktO>O}(4U^Z;=?(~nle{LiHxW)~Z43EOY+RYj>lIXD=`$Kn{%WC9M# zJl!cC(V4c(C6}Qc=4!EDHOc5Wa@&b+SB8-xbc{yV)hlj^1zY+?IIqu#c*lKp9hc3( zsVWL8(t->kD+^rnq>Ab}#eIKW53rVNcPBcsR!;v7lai;W=l5&RNzjx?m~Z(aQe5B8 zXYDc9bAQRa&gGO{#GW;n3a8{~beRJadoOr15YP9X7_U-$;0|>`z(X3XI3*V0-I{@q zox+yTe#}I`jZj;ef!g{N)-}val(!lZS?5Z=A2eGDS9e&-$(zaTQxjPl#XebWtR$|* zwnjUrne=S71sytW$H~}LjDYL}Mxb(e=JqOe+Ky}crzjl7Nc1kIdxdePl-}P#%$027 z0-gaNNu#!7LA(tTVKuZ^feNhaY%bw5r`l7bMj0w@EzJgX-d`^t0N|0`6j;5dJf){d zj|bT+8FB^aS*ha^kX^-pnyz*(a05mtrrxw)GD_BVwT~HsXJRzBu#w^xyh!aSn?}aQ zSn2%vnX&6I>wfMtOrm%K`fz83C1Wgtl)yT<0LxCLrdZJJV6rmdvcTwGaM%5gTEX)d zqcL#ZD$GiMlctIa94o*RUu|s|WfkE1JODq(deMGX*%kUikuiJ|FIf5*2Eu{ov_|t} znu|NU;?Dm)&cp%ibKv9gT7ribGY`66Z%BuCQpBT+58n6RkHs%CH z+nxw6DW==Uq37Y77<5pQ?Y96N$l?QI#D0IC5=r05_mb#KnW&dQi*OvQ0Iig~lc5gH z6ASE|(Nc^OfgO~BVA+#PK!uyQ9ZX$ybg@#$EQ_>!!O6z#&TB8W<@v9H=T^H>pV@2S zgiPG`|D}Rjr4G!0cqnO&`hBc0T)apTt>w4SD|U{GP}%Y;w4slfS%`*QAOi#Fo>ZnXxfK$Bt$|8E%lV1wbBfl9z_Tfa|YCD*?W&v!ao5d&(>-F%AS8?lpk#by=S#Cb?i#DCf?F4vo(pnt{uuLjT zq0y;?@R}pfA}vgpJle6Wl?UWl_T<=_;L$ia*LRf@|A_MUa@$HV08WOr2@7XS{NbDh zQ-K#-6)Y*?h_qV)YQYS659jCsleCAKza3eQ^p~FyQVC2<4oDD+#J_Ho&3V%4<_c?_KKF{g;0a7*v>-)K{T*vj2ZJd(6Kn=7 zs`WBTr@T`#4(OOsBNrKz8YnIVNtU|lO@ouD(zsgqfiQ?%Y(^iY6TTt*TTAx29#9h zdO47BJeRC5+FaI%l+HcDD=_%Y+U=PW2-8QUosukd`F6CK^m&3Jt54C0d}4*<>u<_@ z!~xU%e#`(?2McPum1QiH{6F?aEjEIZUvO;T5e|5+@E*cig-5llDB|fwe=X`KsqDbq z$cyF=z!JqQUEg%Y<1ON$vU!R}6=#5<2vS zV-(Lzmog%7{(yO8$}Grc-1vEf1qwc6;8xiXRB7M(DR8XNs6s(r*|jWe=k-(CRlP~h zvlJc^Fk|oyKa=)(t?pv+@e^LjfPoyvQlx>@ASsUw)C3yRT;;Y2pBflxPL3giXK;sk z#ECHHZ9wEr$A+t2g4ltHec#Q>=ZH83Wkc>d+ZJy)*M5m**VVjG1%hw(aY|YIes}6t zH{tr5a!|yM!=nSbmDOT|6XzZ9`~x^dRvEik?P?N>BokSahMndI*DM{lK(Fm*#_?Gh zY7T&ACF%~-Nr%W-C)!Zxi5)sxaV^WTdYLJVM{_{4{9wkUSQ#;V3Cf_1WP4aZ^EJNx zQZI)PwaAf&hu#)?2_nQISQxQSi3wUK%M?k^8HH)z*#!^SxHTd-@KJ+K+unFuXD;}Q zwQJj5KSmF?tfTWUS5BhB0`rke$?0P)wsXa%1_L(uyR6a=_gbxM%ewic8#u)S=KPchtU@t>;l1i7zJii3?p!&f9Rs*jCLew`ZgTXN6)PY|+7_=ERWuAasy4&RR~&meyz5!=3wc`wN8?qv`f~+A1uzrGr0@)x>t^S zMQ6=&YVLK5&WcCe#oxh@mQeHgp2%ZP3yZRqP8)c59#j@D0(J8kW(0dX(`0j3ZuNnE ztHa@;q0-Bj4-Kw6yL<6t=l|(t!wmv|Pz5Bkub+~QQ>EGz=I=Q*&#P1$Gf5+8dUwuW}_Ek-% zFYbE4Yd`yz&J9fu?DZ;pNA<1+gQ?ULTbA$I{Ev_9_@^8G^iLmH{neb^lv&Uqx`C-} zJ9;4K+_3rHM(>e#x&CLb39tFLvp?E)&l4*iyyn){tIz$z@m~x!9jHG4`rU0ue$-uh znRVB{kG;NQ*TjadTU*cCUg_#Refhrgp7`8~O}Q^7ykc`##=5g>$G;!yO0MYk6Spq% z8|_8Ec;6*&Tyx|3U%6rRfde<5{?*m1x6dr@+|+em>o@*y=gv$`W~{D8MTbG+2hPt9ojw!Jym9W0LziE5+vN6-UOfH6TcF7Y&iT)89=i2d*C(2s)2pky z7PjrX^E*d}-Uzmipde^7k)pYX<7kZCx_{ZmW zytL%}w!d59ukxA}dv`^0VqHmkdnvbJ%_B?`wjDlu;F+1BrQ4c+@#^t(K(|^b`@haZo*BkHO+|}h>w&T{WO-;Fde}733ZgY;Mk!nsRNEi|w|= zr57Ct+lIEZed0sMT893nY0YULI&bae-@ANs*Qx_2F8=WbZ`0zTckerL(n&|wd2gM6 z``BiuY2d<5EGLOI8PC3Vv71ic_Swy2v72_iyHKz~MnWJlVXtQDHj;fJNJpXQebl)Kc-{b)AvG+)Q# zF|?V_XHUZ!CmT1)`HNvn9QDMXPcQmD$@s7j_b;e$*SEe^DCAeBLmH%wSl+?b!ntWN zv*#3r<1snKuz*`;&ne>~O!2_t;Yp!smu(kuE-Or94>8|kXy6Utgk^ibQUYxmIMm^A z7z-(RQepZvLX~N`M{-68HX57OgeJ%h;Z0fPIVWy*_{zp=OsEGJT8$R!$KzHb)1+W% zLiFDE77pSRy6b8*kzK*Xi{K*4Gy&Un(&Ow=x*C~@L=0EgFC<=M{W|F z(&o@4tkEO}nxtazAv7?g;*5`EvLJ`uABKV`#BSmNVlhg|d7wC`l!PYY56Cp>7F_ec!4#TcbeGffX!6>TWLM#E zC^T^#&tt@9<0+=eC1Fy|4@9tSyHK8HO~Nz@BbvM!7Ph=OJdE3gRAb|Gij`5FCb9aS zbc93Gji5=P=6@hDXi}7ycyU~_U65jmQ0jf2XR)B9)7fk+)d<~XXaX0DRjj)hf2_Ou zg(mRgrs5!ILS>edWPuL8NU>6B`d9gtk!OH}(_|cw9|}cxr9_kc7a^Ilth(;vCB6x% zrDjb6ns`E!cq~;e_2;{@S!UMQeBA}y4jcRlO;~q@sp-kdQ{K$yBm9S1_`4PeG?}Nn zUc))GVOY~$bo6LAC^YGxr3u8P05`?Cy6ed>wdKu^e;oIjCYGT|O?QDy=IAaT{ESm4 zYipmnZ=I~2;A4kvZB%OMMI8Cu^&)12ReS{5#9TwhZ&CaXvBu~rNqRAS36#3G$yvEopA$$Ip^^TX~#w1 zX3U)SM!g7D?!6S9&p3-a#J$SE$icuIogvw4{3um(vF1k^;l77j`WOejMTVajrswM!OJ1?oZnPi0RM%NVU3?^X)orBi#FDjP^(J2B+p8bXWNg zLECZ&KOwfilEyZvhm%DXll;q?izRNo_;L471vSx&#aMRnN?G(m3hkpZtwTQEJyQ8WhPOYUBz9&&A`!bq1^h}Ca$0mz-^T=gh zGj2}sj+>k;<0QjEQ&V_Rr~xx8vZdMVG?aWiEX>SMKAnzd)1l{SQQ?HAO;d=VjY;IQ zQ0rd;8n+1OawjoQ$XUd8eK@cJH*)22zCeFX=F=4YJk|Ca&u>cO+Xm=99i2!nGt66=zEe9*Rtp!4hy6#)KwZu2825mk$RIit`)~AUt$PTv;BrU`7VGQ95!gW;oLohD%@ zG#NJhW@r*(MPNMJ%J`l{Dm;Phuy_g;i!*ge?KV_=F9PGN_qD%K3;6vN7L6>f)f zEe<*?2u--u;gCR+aOp#XOPBsW(_~oS5}GhoKSswew=du}fYW-Y*q#7q-!!xod53TwJc zK$xWoI8JzvPG;R@o7F|6yYesrlF5iB&+(e^zPIVFli|lm5O!%Zn}wW&JU&B{y6(CT zcJnMvIE2H)LK6>=_yv6GhiWvT?qYv_mL|eQq0mHRIxHSy+X;uXQa^MT7g!mFth>5- zn1ku`@Bcol7o!v+nv@KxnI?n7xR43lf-jv5)IaXwEsVs-kDjQ@{o`Ylr?g2s3O;oe zdWJ1;>LfHi8C?W(erIC>0H(t^@YlMQ8}f<5xdV_lu>aj?1OC$yguM<@fm9Fh@q1L1 z%8oWA0?oNk1zbjPYCvk^kEAB&X%u)Hx_{GP9iK5b$lHL~#N1FD;Os!5l#Z^Y@mup}^kx6!+%RsUfZh>J|AXPU*Wxt{Dw-YREOsoQ#gcce zvw8Bzzrm?e06*rwCCp6PPra{UNSKo*Ti0CLFF- zN37f4V7AmMrA$uLjwK6kxg0^F&;S2OdmlKritAqd+|fwBE6diEke9_6dsYY#8<#A| z5SKc5R*{WxDUprk7&pPfN&EwnPhwJvA#LzT$c}6Xtch{#lxKtksaYtH*Q76fNz7vN z`XhP!z)1-tedS-u>uX73Ho=5Ig7rJ!nXBEkfi&;;#$H|B`FrO4n=@B)?g`zGaUv0X z-kl@nJsBBuDj$(M95FSqlzGH!`SEPiO*lpoT3q&4PbmwtrhL~^zT4yq?QvQ=0^Y2S zyf*Ld+>i!2wi<)NA{#OIj+iwQ1N->t-374-Z@cFs!T~%o+I2y$pl1QOLq&|n$KBHe z(dG;h4=XruIK#{0W`b167mh+mYBHZEr!_Yb{K4Qb+-`8I0+s0#XYvGWKMGwt6`J=g z#Y}qwy&5>`-W?-(3MaOxOR#>cRvTrmJ_J?{Dy%&N8UnA-axR=jQO)<{I9QXNgk6lh z8BQCz_>IWNbtoiGC?q(NoFa7T!03XaCt`_)^-x1fGJy_8gCQ>^9e}nz4)}C^;60d^ z{TL*`f2VYCm{nQ_T%tKk2pL2#(YAv-F$#)O3eT+NNAvE7vLq$h%+ zE=8F`LT3mIfJW8fgh5S^$HNgiF3ji>NX40(GbD!s+a2qtrj|X1aFnuX2lc!td@(Sj zhgD^iiRI}gJ;vgnViq+T{Y7~kZZ+!g=W880PY?~k*2bxM(c-Ey3sLH0<2+~rZFz#X zC|PRb__Q5y;)5Lc@B}ir226epuef$!ouygdu0@HtAg)rLT?}3 zA&X=XfyE`nq_DL0Dgk9`_Fyh+i;Cw%J~UODqDOm*s}<{YRKCGTs%WBnb=@CQOywfk zhkgCta?h^jA#?Fiq^u#poxrp+=)#I@oyDc?8PQ5NvX!DTCy~UstQgnr3wlVjYQ9|p z`cphv9rQAEN^-XzQ%#X(h1AB{(eQ$xeI@2K833!87NEpchMGZG5dl)zSkVoju%>K`7qWBk7y{4mA2=)IzAyo1?$x+E zUrJ~xlNCl7-}HG|tsr8|kGi#_Bukn(l~U;zEoA^emXzqFy^Jo5g=3CR^#Y&9%r-k> zIXJ7*W%agb)vrMG#*{eCWQk6=HEUFw*)Pi4O!raFV8M~VJfae9VJLkQtHfBHNn9HjNg}EXJ*OhV^d?e`9gU_=6Lc9q%YSrjp$ERf3ljP)w#w6$X|0(Mc0wDT$dH zdFQ}o&6jCb0H#}Nm2nol(9O}b+I=YnC>Cs#3LRQ&(m0zw|2>}J&7gLV5`oHdDR1v6 zKcCWh;qM|pu+emtROpDx0vN;ISzG-$szH8CLideo1YVTB#;XiCyV0lNvE^!`=Qr84p+h2iPF3T_Lwmo{uH1SIGDDF*hzy>}uw~C4WU0WaGJ=^hdlb(7G**=BQ$t<%caJQ9g)D2Ghv8nr-6DVK|B0fb8n>Jyg`A z451Hws0qO?05S<)W9_`!Mz7=GH^x=po}z%DmaiojlWbq?b(pavktS33;78GoMk|*AnKJY z2KfJK{t}g*ew6bcrO}M0tqhR1fnBs-&SoeqmB*Cf%AQ=w==Rv6cueG00{X!m@C_59 zB8M0z*4x;!oryMr7>cs+M5K5_i37$o5(CPITVR8kR;YRl{**|bQ0~m0Z_gt;t1nbI zWPwo#d&;WOe2*0?>t5619t@%)8bkdpD-bM!{iB#Xk1Loz_R=8p4D}l>@`t#SHs`Vo zD}_F_VLoJ5Qw<))Hw~e{bZ5ez=2SDjFec8OC5zPG&^XF#Mjmgeyr18v+6|NS<8f*< zU=$A+uxUfXW79rA)Ra}j%Ix(7Hv}pS3~X(6gy>gBE9I5V;7Yg-#7m%hmglOVc+4~nE{`y>5INZjbq0%@B_ilH$jumI4cJ|9 zEvQlc!9fpY@BmPvz4E}tXL~iR5d=*!%gAD{pN`yAJbTCK+OI3!6XCfU8MBLyPZF#Hd(gAia1QOAW*y^kC3vtq-*6)oBg<&03D@svMcWif5# zir0HpVlAaTtMc$*I!q0#{EYn`G;lTWcVM+Hrf0clQ-`BI+9Wo-zp1x=TjlDE9B41a3)-MyHp%d;PN33^W|_WF(pT}i&`1qLUU&~r=&kML z;Nkv5#5g?8P){8TagphbCs{nQ=brcha$Mma4@1T} zw85PjWYqKf?OiU*OPr3;Y7azK%!ezf>9aZ<#?R7Pc)o{D0%#6cDQr^ckMS}qiiYj3 z=?Z-suIJMWSucoEU;>o`NxC!_iq+ku>iW8Cq3a))cH~Ru1waA=k-1XhBty z)MWDrL=iT4`p`=r&0uch1+KMaFR7e@q2yCd*J%qc7pL;HSTD*`u{EkNN@bc$(?Ji6 z5E$^hJi%2gw%tD4)HakejI*YFjB3&9K6x32n#uCOavL~x)G^zw2&LjJ^>TQ-x@x_(-HJ63Krv8d8*@ww)BjQ z8V24@;O)2$BpWy$CdT!y8f3K%ztT4Ou+#(pP{R9sAg{_-yn!pYkD3|sVe-Qnf(>@4 zqd^MpQN9TV!Aa4)GEwgA5HA``B+QF2lyaAl9EP`(U}xwfAJgPTpH(M$drd(1kYICG zmo2@3&l=IzVTjs%Wd^<8&u~NDVwZUT72Uu)syZ`=f=6_B0Hzq8`gouf>YiXn)u;1% zRyHs)d_9DhrwL}q=%Z|(H4`lU%=#iRBVw)QKHmA|Xud^BajPeW`hgzCVZcZk)eEl4 z1Fy18k{6C)BmFr|7I&=fIZ_LlMoqg9@OeL$FVRJhW+@U}M_Y8fc=_hRgQ7NFZL1%ztqJb00e zK`!&4{TB+nS!wGk{?E9z%F#+3tj*z;vbP!^XvYykAT4c-_P7n%lQo|l=~jpG>A^-=ixS#w%oBrb(IQ9%4tjzRAuMHjc?$hWLvHefpKU!(@%@^bq^eEVzse!|K`C zlmtg+Jm9j%Q-u(V68-sj(A7;AKXz7R^7(G=UJtJ#3;QMe>qi({61XskF{!#SE)QjB zfUjO9!#eT?9{==&e>!jTVnYiP!75>Ya9y@Wh|`Cbm2>HyM(=F;L7e8!$_Tu2fjLA* z{GjLy%v0d4Km<+zTuS4+j7+CU(@Xi=W?t*X`{yYCWLhT#mwg#bKgw2s8kBu~bXwat z`P+@5=}>!D(D{dIv6|s8Y|uMmwrIZYq_E)0B9|*mCj{)p7s#ItqiztpHcxw3(xPH!keTnkTyj=xS)=dv+hH%FTiChU zH{Ph?iOROYSq>qvK%&K@X z&6yC*o+kI>CM&H2-qfbu5F zN2vA7QCg^TOhv6d=Igp1j;QN>rE_GTOU#xH>b=N5BSFO85-Ut4^V*xPOjcbx;>+@i z+;O}Qy*7xV~yJ`B}_l&Bv=l9XNgHQ(+s$U8FZWfS!_?_l0z6k9)S&3h`**Ic&qK;(g* zx@b13v4OQk#&~KuNFii}ad2l)iYEpWxy%ElvQNunzP~CPP4$Vqe>*fW9vbK%>lOWA zfuLo>ij`GF$-s}yJ+keA-2MJdv@D)mh{t@2ZOb;Dmza5adSJz>pP&ER^KZOy>1U5# zz5m8dH-74Uf3oZ^ukHQZo0~4U`nk2$3pQrf&z$+0XW}b*OY>&0SmmczF-@M9X9i4@ zWP6sMO5OUYqp|rb?~hJ@H-Gll4V|k;<}yvLJ>^q39=>zWbB90tEX&sV zAN}K9hcfTqzdC-$k^8^;%5QpZe&oncbKmOZ?>uoX(?p1ypF8p|^E*F1bKBv;kDm3@ zht7QK@U#2(Z`%5sO|#?I_0pl<>8~CA#990Q`+eT?zxnC5{U_1D&#rsVK>R%?{p;GJ zPd{?>bAP+-uKhoKu(P;zpMQG#>|YHJEdPIdp8xvQ;+600YyGhE$Jy5w=Wkwn zyc+$@y?M`&-%`HJjV5TtKO4d_4)-z7hJyT{L>F#zW<58*mS|- z&n>(9+VgLCdefTgjvf^kJhSS$MC`f`F-^`$&Rw-4zGdav@y057W*TzR_VPjMmQTGL zi>9QC@44s34?VN^=U5k98pnCvWU@-S;~}zHoRVTjEJoSnZ7w{aJKs4z zd8~WPU8=T_;*rRv&e$gp!=R@GBARi6zm`=CdAnLbAYD&$H)U zlc{-Y=I-2CC{*0pO_$twQTrdBa-B_`cpT6u6-^c%>DGumlS)zYRgCf)Mk`d4Ne^BE zI3;S6^~f3|S*>Qzz&RJU>XKl7;@k71IjzM+a#U zS6)Nw4|2j8Ue_^Kf4oZl*=m7DTT`jf^3+wOuT!;99V?8DB?)myxW`R}!pZJrZ5)HK zu8z=!gy@J#yp@MSpFV4>ae~W&?zr0POIjw->@N!9Aaxk4>DyfO**e3!ib|u!P3O_=e*>`k1$QL zpf5@`b!IVfLYfqk(Q~=l#(1?;=oG44V*}IVgZJK@+}J<3YSrj3BL@oyM|RViPDqn5 z!S{n{^6~Z6#dm)6;G#-p{3vLWytgnC(gfT`i#JuPCo>wNuhCli3gHC&t4x!soW^)w zY~#FG7sf8FoiAK6JOrOif+li$PtW)-kE6*r;x*cIJWV1;JKr69b_8z;VL3qzy<}-) zG&1(Qtrm5$5D~M8Y4Qtt65)#qph+jbcI?Tun-*`{xT(`wv*xO+j-?5xfzP#tNF*Aa zl#|czW}0wG%HzJjMKt3q^2V7Knd_^xO^=Hm(I!+%iI&SmrjZxjXr-G~IXKPY(55mEE~!J$JeL7&);H z9o5JxCio&bU-j+>#o z7W0=Us*6M2h4CZF#mTjW#VjYF3G~WDax`IpEKQDj)Oj5=xx?x%3UwFLBv{*}2{BE$ z^XlSx9>TXWCLGB886P~Crm=Pkbr-Z6U%NDMV->QX2_-uW`+K?X4bWZBJ^44kPG$e- zDq1xDQZ-2-O~M4=izLs3)%1tsDM8ilyE7jL3)2;FZpAQS;w2+g}({ zvD+WY=kxroX(Gm9rWgK>dHXUNaq5-YwiO@cKJ)UiJFkqGbcEZI^B0_iDZGYlm%8|k zBqqvlt`GLfr!w$c4E-JPehY#4kAEyjy?}=8eLz7ASNJdHrM#2J`7y>p{vYFvNLcUB z+;#5pbFp)uxIVUnA~UPEFO&3y2aTInBa#TzLv>=vXJ3 zjKEuPA|>7P8ays!Jva^cAvjN2Z>=hHAr<1u6#PCBOS^L6lhDN%c6I)LnDB-JMerhX z_XXBytdXbL`x1?0e>sDdZfYK{b_HHwpPkn^`CGhd@>+b}d5n|wyLW>oAOHA9SdPC( zLTE&IGcM+JJUR0nXo82fNxT7-?XA(h?I}%ddKL#G*rKbhw=@}nA6d%NjH5X-I^O!- zc0GApI^%cJB*GL)CfB|LO{^~^m$OAsT{}UQ?Z$!`1qC=Cp}uVbMze^k&+diUNHq$-=mc0Cu?ea@#S%gHI$QI1j*a^h&R zdw1#gq=}8vjL6G_uq39?g#Tk@bvFep$Wa=5J53H(9DB*{D?-%|2BXp($Knmh~7v`|hQP0mI((ara>oO5*$$ zcdX$H7&UeM*RG$$Un_%Rbvk#)1Ywz~aV_iXhjJgjfv!FBBNw~;NZF0kjRT2tMK&&@ zy%*sXHrgpS*AeV_T^X2IlYMN3gD;%4a6i`yp~3lNDTUVVmBdr| zBb0SPeNVe@0ov**HEd~Z3Os4sgXi!pV8~!FK!MJMLZ9vjWZO%&+m0}O<-T>hA57b? zVXmE=;vBx0+^$yRfdw}M2^7>spg@TnDW!8C=+0JY+qmSR>HnY9RabgyCa2MmmqziS z!#|{Mes~`uaWaMF=9o+*Hxhm+%g3wobLpsyJNqN&k2B7&2mhR zOHwO?+~tEg-uLz#N=p!inULB-&5IUyN6@+4xS|yOs2m&)+{y0H-F!_;?7c z4EAhYdY|84}0A#GSa~)V>?**olUBx_e)rs1t;^fvXqp+3?B* z?)~XDm-90Aod*i1Ndw^y=y2*@v+nGJa(C~*r3|V)k%IRZyW4k5#$86kTU&1x)rFpF~)*1!olsi8OFPE}G~q-`cw?7P7ym3P^9 z<1mho&Rnxm3Jf&@fuq8MWRE<13ZryS1NGZadjrzhOs`*5ubZFmg zH{@ZBFOfHjMivy_6?3`vb;%81iAw7siMFW_rXXV|$_!XRSFPkwHa8MPntaXiuKd#Dt&rgVH)WjZ~vf zX`PNzMU;bb&|Y1{VYclu8f^!v(&OWJZj9$M+^-nO7I)p0YI}@mHRHV|EC(8TkjcQm2|r0p&cgIZ%?68&IJ1y{6=18 zy?*ItR_mjDFV0GyL~v9Tn$5jlBe9w>##p`SxY@xp-%6z&wL9d;M2l4Pw6xYZY*?cq zD#xk5!`G@Pbkum6K=%ectHlznl`@oK;^fG0$qe4FDb{)EjF7PwogPFPmzjW73k!3Q z3g8WUTpA8lRu}nJ&>DI;FM;GzC2zNp40Vc$pUop z{9->fN+b~haviuXBRs!PFfH&p`=Cfo8g83Ot|I*60Ok*x6(1^)wP$n%Go>2h&4=eD&5t+nxsMGRqN8=pDqtC)(QFB9spnifMf)z8pq&j=mV^I&#{$?Hion+v#WYi`Fo zW#I+PC)3sc2HWWfT_>q`Y0Uppj*iE`6BlV7zi@1lnivAz@rH?r*Ay zk?jGq#h)SBpyDmz(pfQXxrAa4@u857FD3++2gzD1K_+Y!tc{Yf?|%3I>jV~t04IWM zjgsvMNHOHK`D^dZfYF%2I*%(-itOV7=yEgEwzV<7B`Dk4JeJIZGd&}5Y;Ri-V~lv3 z$)rjQ6L=%a9p=910W+=nl6Cy~84T&z+1Otq*l<+-;0I^&x1p|>asMbYZJx6h99O7en+OV<0iZ00O z4ahV#{Q_e(Vi}!ndksx!&+YP{I!f@6W%V26MQc>!nUfH0zN5tVnYLw*PQ9+FGOXrs zgqZQ7&dpyXy7e}MB1o4(?~g>$u4aKT&n?LT4_ZA zk2H*z%a-~EdG)F*-{i&h1Oq2fL!Q|VW@1rP9`^`I%(n78;(UvZ?*k*uQ72&nUi%~) zYKv2Up5=_C^$@|q&Zv8^k1>`+km^X8@RF-6#aqDWuy1sQR8jV?Tqj%yHmUBHhsjfb zo%w<1+HfAYf>jGJ(ZlKvlf|U+HvgC;A@OdXatHEK_&&=l! zX8b{4@d~JPe{1j-D%M1{-={w9pY8{Y6QKrGrtLS_NZ5;2UaK@o%!v*DTNR#u2pEqP zQS16uyuEeQ(=!>im6e4iO8tpDR^wL-wpN>-r=q;L`^CfoCgx3y(!BB;+d!8Z;y4cK zbeTr``$Q(oOHeM-@D8l-i@cP^cy}TEgtv3h&T$*jIrT=QPw0pHc%dI|%x={EABoi@ z8VNCM8Z}1KIAeP+?cEmtQ8t_P)7u2g_O#REDr?&7DZ;XLs7D8Eet2yUzl{cTMU+kY zNFbwjX*9ad5{Dq&h@Li?prZTinxygAPvQqO-x}Foo>Fd;De$%hXhns)yKS4PYK;Y> z!p1yyH-nn{DHU@pWxD0vT=yRpL*Vh@rsaS>Cb`$5rutT9$95{4ZP;@+Xc?n{wZgVJ zLKkIWHqK4# ziz6Hxi+OOWUQ!?SF0s7ipUR>EVM(+_Ji)}42FUjOen!w0F@(D{zWIRg51i}2-`}TW zqch@zbfE96%hnnB8QD|PVu+1Ao&-}YV6%i(=?uw}Ewd1Qhac90|2@dK6DGd9AH~X^f*>~4>`6tfrn=x zXxkqodnV!Cl0XCKe|%}$m!ojnWP1R0yMp;fc#om6 zUtxHGOcuJl+e_&-SE>u{v}_ogh0WKO0PJHtybLEH+YjXYd#E|Xu*J;F`BI)}7TPZqQ>LYlN0R|e^?PhY*$h<% z8KtMye5g)Kt!Y~>t!(A-OA3dO{QBNR!}IGXiUnRp2EoTPTLq59ITk(ed*1DUc+dbr zz6X0?X9rouYq>v!^>hU<1z;~b3>cl!VNTUi6ZLYUZHY=Y#-n{&q~tIyQD!9*rAOjn zl!xEu+tdeAd5AK`v=kM_GIr~%1?Ed1C?jsi$%FC7#=vB~&UhmvV$2HgxA8bgU|+Ds2h zc%C;n$Oa~NvyMmfSTWTz?uo;&KL@dcVdVC3J|oo&Ze?nyU3jh_y#s6r&XLm7nnhJM zJs1kc?$H#PkKYq1_N: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 HKDYiC4|K&F diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller.hwh b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller.hwh deleted file mode 100755 index 52a312d2..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller.hwh +++ /dev/null @@ -1,20004 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller_bd.tcl b/lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller_bd.tcl deleted file mode 100755 index 80427d98..00000000 --- a/lib/zpe_templates/ZPE_ZC_702_HwPlatform/zpe_without_controller_bd.tcl +++ /dev/null @@ -1,305 +0,0 @@ - -################################################################ -# This is a generated script based on design: zpe_without_controller -# -# Though there are limitations about the generated script, -# the main purpose of this utility is to make learning -# IP Integrator Tcl commands easier. -################################################################ - -################################################################ -# Check if script is running in correct Vivado version. -################################################################ -set scripts_vivado_version 2014.3 -set current_vivado_version [version -short] - -if { [string first $scripts_vivado_version $current_vivado_version] == -1 } { - puts "" - puts "ERROR: This script was generated using Vivado <$scripts_vivado_version> and is being run in <$current_vivado_version> of Vivado. Please run the script in Vivado <$scripts_vivado_version> then open the design in Vivado <$current_vivado_version>. Upgrade the design by running \"Tools => Report => Report IP Status...\", then run write_bd_tcl to create an updated script." - - return 1 -} - -################################################################ -# START -################################################################ - -# To test this script, run the following commands from Vivado Tcl console: -# source zpe_without_controller_script.tcl - -# If you do not already have a project created, -# you can create a project using the following command: -# create_project project_1 myproj -part xc7z020clg484-1 - - -# CHANGE DESIGN NAME HERE -set design_name zpe_without_controller - -# If you do not already have an existing IP Integrator design open, -# you can create a design using the following command: -# create_bd_design $design_name - -# CHECKING IF PROJECT EXISTS -if { [get_projects -quiet] eq "" } { - puts "ERROR: Please open or create a project!" - return 1 -} - - -# Creating design if needed -set errMsg "" -set nRet 0 - -set cur_design [current_bd_design -quiet] -set list_cells [get_bd_cells -quiet] - -if { ${design_name} ne "" && ${cur_design} eq ${design_name} } { - - # Checks if design is empty or not - if { $list_cells ne "" } { - set errMsg "ERROR: Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 1 - } else { - puts "INFO: Constructing design in IPI design <$design_name>..." - } -} elseif { ${cur_design} ne "" && ${cur_design} ne ${design_name} } { - - if { $list_cells eq "" } { - puts "INFO: You have an empty design <${cur_design}>. Will go ahead and create design..." - } else { - set errMsg "ERROR: Design <${cur_design}> is not empty! Please do not source this script on non-empty designs." - set nRet 1 - } -} else { - - if { [get_files -quiet ${design_name}.bd] eq "" } { - puts "INFO: Currently there is no design <$design_name> in project, so creating one..." - - create_bd_design $design_name - - puts "INFO: Making design <$design_name> as current_bd_design." - current_bd_design $design_name - - } else { - set errMsg "ERROR: Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 3 - } - -} - -puts "INFO: Currently the variable is equal to \"$design_name\"." - -if { $nRet != 0 } { - puts $errMsg - return $nRet -} - -################################################################## -# DESIGN PROCs -################################################################## - - - -# Procedure to create entire design; Provide argument to make -# procedure reusable. If parentCell is "", will use root. -proc create_root_design { parentCell } { - - if { $parentCell eq "" } { - set parentCell [get_bd_cells /] - } - - # Get object for parentCell - set parentObj [get_bd_cells $parentCell] - if { $parentObj == "" } { - puts "ERROR: Unable to find parent cell <$parentCell>!" - return - } - - # Make sure parentObj is hier blk - set parentType [get_property TYPE $parentObj] - if { $parentType ne "hier" } { - puts "ERROR: Parent <$parentObj> has TYPE = <$parentType>. Expected to be ." - return - } - - # Save current instance; Restore later - set oldCurInst [current_bd_instance .] - - # Set parent object as current - current_bd_instance $parentObj - - - # Create interface ports - set DDR [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:ddrx_rtl:1.0 DDR ] - set FIXED_IO [ create_bd_intf_port -mode Master -vlnv xilinx.com:display_processing_system7:fixedio_rtl:1.0 FIXED_IO ] - - # Create ports - - # Create instance: atg_acp, and set properties - set atg_acp [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_traffic_gen:2.0 atg_acp ] - set_property -dict [ list CONFIG.ATG_OPTIONS {Custom} CONFIG.C_ATG_MODE {AXI4} CONFIG.C_ATG_MODE_L2 {Advanced} CONFIG.C_M_AXI_DATA_WIDTH {64} CONFIG.C_S_AXI_DATA_WIDTH {32} CONFIG.DATA_SIZE_AVG {16} CONFIG.TRAFFIC_PROFILE {Video} ] $atg_acp - - # Create instance: atg_hp0, and set properties - set atg_hp0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_traffic_gen:2.0 atg_hp0 ] - set_property -dict [ list CONFIG.C_M_AXI_DATA_WIDTH {64} CONFIG.DATA_SIZE_AVG {16} ] $atg_hp0 - - # Create instance: atg_hp1, and set properties - set atg_hp1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_traffic_gen:2.0 atg_hp1 ] - set_property -dict [ list CONFIG.C_M_AXI_DATA_WIDTH {64} CONFIG.DATA_SIZE_AVG {16} ] $atg_hp1 - - # Create instance: atg_hp2, and set properties - set atg_hp2 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_traffic_gen:2.0 atg_hp2 ] - set_property -dict [ list CONFIG.C_M_AXI_DATA_WIDTH {64} CONFIG.DATA_SIZE_AVG {16} ] $atg_hp2 - - # Create instance: atg_hp3, and set properties - set atg_hp3 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_traffic_gen:2.0 atg_hp3 ] - set_property -dict [ list CONFIG.C_M_AXI_DATA_WIDTH {64} CONFIG.DATA_SIZE_AVG {16} ] $atg_hp3 - - # Create instance: axi_gpio_0, and set properties - set axi_gpio_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_gpio:2.0 axi_gpio_0 ] - set_property -dict [ list CONFIG.C_ALL_OUTPUTS {1} CONFIG.C_DOUT_DEFAULT {0x00000000} CONFIG.C_GPIO_WIDTH {1} ] $axi_gpio_0 - - # Create instance: axi_mem_intercon, and set properties - set axi_mem_intercon [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_mem_intercon ] - set_property -dict [ list CONFIG.Component_Name {design_2_axi_mem_intercon_0} CONFIG.ENABLE_ADVANCED_OPTIONS {1} CONFIG.M00_HAS_REGSLICE {1} CONFIG.M01_HAS_REGSLICE {1} CONFIG.M02_HAS_REGSLICE {1} CONFIG.M03_HAS_REGSLICE {1} CONFIG.M04_HAS_REGSLICE {1} CONFIG.M05_HAS_REGSLICE {1} CONFIG.M06_HAS_REGSLICE {1} CONFIG.M07_HAS_REGSLICE {1} CONFIG.M08_HAS_REGSLICE {1} CONFIG.M09_HAS_REGSLICE {1} CONFIG.NUM_MI {10} CONFIG.NUM_SI {1} CONFIG.S00_HAS_REGSLICE {1} CONFIG.S01_HAS_REGSLICE {1} CONFIG.S02_HAS_REGSLICE {1} CONFIG.STRATEGY {1} ] $axi_mem_intercon - - # Create instance: axi_mem_intercon_1, and set properties - set axi_mem_intercon_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_mem_intercon_1 ] - set_property -dict [ list CONFIG.Component_Name {design_1_axi_mem_intercon_1_1} CONFIG.NUM_MI {1} ] $axi_mem_intercon_1 - - # Create instance: axi_mem_intercon_2, and set properties - set axi_mem_intercon_2 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_mem_intercon_2 ] - set_property -dict [ list CONFIG.Component_Name {design_1_axi_mem_intercon_2_2} CONFIG.NUM_MI {1} ] $axi_mem_intercon_2 - - # Create instance: axi_mem_intercon_3, and set properties - set axi_mem_intercon_3 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_mem_intercon_3 ] - set_property -dict [ list CONFIG.Component_Name {design_1_axi_mem_intercon_3_3} CONFIG.NUM_MI {1} ] $axi_mem_intercon_3 - - # Create instance: axi_mem_intercon_4, and set properties - set axi_mem_intercon_4 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_mem_intercon_4 ] - set_property -dict [ list CONFIG.Component_Name {design_1_axi_mem_intercon_4_4} CONFIG.NUM_MI {1} ] $axi_mem_intercon_4 - - # Create instance: axi_mem_intercon_5, and set properties - set axi_mem_intercon_5 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_mem_intercon_5 ] - set_property -dict [ list CONFIG.Component_Name {design_1_axi_mem_intercon_5_5} CONFIG.NUM_MI {1} ] $axi_mem_intercon_5 - - # Create instance: proc_sys_reset, and set properties - set proc_sys_reset [ create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset:5.0 proc_sys_reset ] - set_property -dict [ list CONFIG.C_AUX_RESET_HIGH {0} ] $proc_sys_reset - - # Create instance: processing_system7_1, and set properties - set processing_system7_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.4 processing_system7_1 ] - set_property -dict [ list CONFIG.PCW_ACT_CAN_PERIPHERAL_FREQMHZ {23.809523} CONFIG.PCW_ACT_ENET0_PERIPHERAL_FREQMHZ {25.000000} CONFIG.PCW_ACT_ENET1_PERIPHERAL_FREQMHZ {10.000000} CONFIG.PCW_ACT_FPGA0_PERIPHERAL_FREQMHZ {100.000000} CONFIG.PCW_ACT_FPGA1_PERIPHERAL_FREQMHZ {50.000000} CONFIG.PCW_ACT_FPGA2_PERIPHERAL_FREQMHZ {50.000000} CONFIG.PCW_ACT_FPGA3_PERIPHERAL_FREQMHZ {50.000000} CONFIG.PCW_ACT_PCAP_PERIPHERAL_FREQMHZ {200.000000} CONFIG.PCW_ACT_QSPI_PERIPHERAL_FREQMHZ {190.476196} CONFIG.PCW_ACT_SDIO_PERIPHERAL_FREQMHZ {50.000000} CONFIG.PCW_ACT_SMC_PERIPHERAL_FREQMHZ {10.000000} CONFIG.PCW_ACT_SPI_PERIPHERAL_FREQMHZ {10.000000} CONFIG.PCW_ACT_TPIU_PERIPHERAL_FREQMHZ {10.000000} CONFIG.PCW_ACT_UART_PERIPHERAL_FREQMHZ {50.000000} CONFIG.PCW_APU_CLK_RATIO_ENABLE {6:2:1} CONFIG.PCW_APU_PERIPHERAL_FREQMHZ {666.666666} CONFIG.PCW_CAN0_CAN0_IO {MIO 46 .. 47} CONFIG.PCW_CAN0_GRP_CLK_ENABLE {0} CONFIG.PCW_CAN0_PERIPHERAL_CLKSRC {External} CONFIG.PCW_CAN0_PERIPHERAL_ENABLE {1} CONFIG.PCW_CAN1_PERIPHERAL_CLKSRC {External} CONFIG.PCW_CAN1_PERIPHERAL_ENABLE {0} CONFIG.PCW_CAN_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_CAN_PERIPHERAL_FREQMHZ {23.8095} CONFIG.PCW_CAN_PERIPHERAL_VALID {1} CONFIG.PCW_CLK0_FREQ {100000000} CONFIG.PCW_CPU_CPU_6X4X_MAX_RANGE {667} CONFIG.PCW_CPU_PERIPHERAL_CLKSRC {ARM PLL} CONFIG.PCW_CRYSTAL_PERIPHERAL_FREQMHZ {33.333333} CONFIG.PCW_DCI_PERIPHERAL_CLKSRC {DDR PLL} CONFIG.PCW_DCI_PERIPHERAL_FREQMHZ {10.159} CONFIG.PCW_DDR_PERIPHERAL_CLKSRC {DDR PLL} CONFIG.PCW_DDR_RAM_HIGHADDR {0x3FFFFFFF} CONFIG.PCW_ENET0_ENET0_IO {MIO 16 .. 27} CONFIG.PCW_ENET0_GRP_MDIO_ENABLE {1} CONFIG.PCW_ENET0_GRP_MDIO_IO {MIO 52 .. 53} CONFIG.PCW_ENET0_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_ENET0_PERIPHERAL_ENABLE {1} CONFIG.PCW_ENET0_PERIPHERAL_FREQMHZ {100 Mbps} CONFIG.PCW_ENET0_RESET_ENABLE {1} CONFIG.PCW_ENET0_RESET_IO {MIO 11} CONFIG.PCW_ENET1_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_ENET1_PERIPHERAL_ENABLE {0} CONFIG.PCW_ENET1_RESET_ENABLE {0} CONFIG.PCW_ENET1_RESET_IO {} CONFIG.PCW_I2C_PERIPHERAL_FREQMHZ {111.111115} CONFIG.PCW_I2C_RESET_POLARITY {Active Low} CONFIG.PCW_MIO_0_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_0_PULLUP {enabled} CONFIG.PCW_MIO_0_SLEW {fast} CONFIG.PCW_MIO_10_DIRECTION {inout} CONFIG.PCW_MIO_10_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_10_PULLUP {enabled} CONFIG.PCW_MIO_10_SLEW {slow} CONFIG.PCW_MIO_11_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_11_PULLUP {enabled} CONFIG.PCW_MIO_11_SLEW {slow} CONFIG.PCW_MIO_12_DIRECTION {inout} CONFIG.PCW_MIO_12_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_12_PULLUP {enabled} CONFIG.PCW_MIO_12_SLEW {slow} CONFIG.PCW_MIO_13_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_13_PULLUP {enabled} CONFIG.PCW_MIO_13_SLEW {slow} CONFIG.PCW_MIO_14_DIRECTION {inout} CONFIG.PCW_MIO_14_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_14_PULLUP {enabled} CONFIG.PCW_MIO_14_SLEW {slow} CONFIG.PCW_MIO_15_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_15_PULLUP {enabled} CONFIG.PCW_MIO_15_SLEW {fast} CONFIG.PCW_MIO_16_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_16_PULLUP {enabled} CONFIG.PCW_MIO_16_SLEW {fast} CONFIG.PCW_MIO_17_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_17_PULLUP {enabled} CONFIG.PCW_MIO_17_SLEW {fast} CONFIG.PCW_MIO_18_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_18_PULLUP {enabled} CONFIG.PCW_MIO_18_SLEW {fast} CONFIG.PCW_MIO_19_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_19_PULLUP {enabled} CONFIG.PCW_MIO_19_SLEW {fast} CONFIG.PCW_MIO_1_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_1_PULLUP {enabled} CONFIG.PCW_MIO_1_SLEW {fast} CONFIG.PCW_MIO_20_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_20_PULLUP {enabled} CONFIG.PCW_MIO_20_SLEW {fast} CONFIG.PCW_MIO_21_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_21_PULLUP {enabled} CONFIG.PCW_MIO_21_SLEW {fast} CONFIG.PCW_MIO_22_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_22_PULLUP {enabled} CONFIG.PCW_MIO_22_SLEW {fast} CONFIG.PCW_MIO_23_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_23_PULLUP {enabled} CONFIG.PCW_MIO_23_SLEW {fast} CONFIG.PCW_MIO_24_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_24_PULLUP {enabled} CONFIG.PCW_MIO_24_SLEW {fast} CONFIG.PCW_MIO_25_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_25_PULLUP {enabled} CONFIG.PCW_MIO_25_SLEW {fast} CONFIG.PCW_MIO_26_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_26_PULLUP {enabled} CONFIG.PCW_MIO_26_SLEW {fast} CONFIG.PCW_MIO_27_IOTYPE {HSTL 1.8V} CONFIG.PCW_MIO_27_PULLUP {enabled} CONFIG.PCW_MIO_27_SLEW {fast} CONFIG.PCW_MIO_28_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_28_PULLUP {enabled} CONFIG.PCW_MIO_28_SLEW {fast} CONFIG.PCW_MIO_29_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_29_PULLUP {enabled} CONFIG.PCW_MIO_29_SLEW {fast} CONFIG.PCW_MIO_2_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_2_SLEW {fast} CONFIG.PCW_MIO_30_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_30_PULLUP {enabled} CONFIG.PCW_MIO_30_SLEW {fast} CONFIG.PCW_MIO_31_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_31_PULLUP {enabled} CONFIG.PCW_MIO_31_SLEW {fast} CONFIG.PCW_MIO_32_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_32_PULLUP {enabled} CONFIG.PCW_MIO_32_SLEW {fast} CONFIG.PCW_MIO_33_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_33_PULLUP {enabled} CONFIG.PCW_MIO_33_SLEW {fast} CONFIG.PCW_MIO_34_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_34_PULLUP {enabled} CONFIG.PCW_MIO_34_SLEW {fast} CONFIG.PCW_MIO_35_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_35_PULLUP {enabled} CONFIG.PCW_MIO_35_SLEW {fast} CONFIG.PCW_MIO_36_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_36_PULLUP {enabled} CONFIG.PCW_MIO_36_SLEW {fast} CONFIG.PCW_MIO_37_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_37_PULLUP {enabled} CONFIG.PCW_MIO_37_SLEW {fast} CONFIG.PCW_MIO_38_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_38_PULLUP {enabled} CONFIG.PCW_MIO_38_SLEW {fast} CONFIG.PCW_MIO_39_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_39_PULLUP {enabled} CONFIG.PCW_MIO_39_SLEW {fast} CONFIG.PCW_MIO_3_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_3_SLEW {fast} CONFIG.PCW_MIO_40_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_40_PULLUP {enabled} CONFIG.PCW_MIO_40_SLEW {fast} CONFIG.PCW_MIO_41_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_41_PULLUP {enabled} CONFIG.PCW_MIO_41_SLEW {fast} CONFIG.PCW_MIO_42_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_42_PULLUP {enabled} CONFIG.PCW_MIO_42_SLEW {fast} CONFIG.PCW_MIO_43_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_43_PULLUP {enabled} CONFIG.PCW_MIO_43_SLEW {fast} CONFIG.PCW_MIO_44_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_44_PULLUP {enabled} CONFIG.PCW_MIO_44_SLEW {fast} CONFIG.PCW_MIO_45_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_45_PULLUP {enabled} CONFIG.PCW_MIO_45_SLEW {fast} CONFIG.PCW_MIO_46_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_46_PULLUP {enabled} CONFIG.PCW_MIO_46_SLEW {slow} CONFIG.PCW_MIO_47_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_47_PULLUP {enabled} CONFIG.PCW_MIO_47_SLEW {slow} CONFIG.PCW_MIO_48_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_48_PULLUP {enabled} CONFIG.PCW_MIO_48_SLEW {slow} CONFIG.PCW_MIO_49_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_49_PULLUP {enabled} CONFIG.PCW_MIO_49_SLEW {slow} CONFIG.PCW_MIO_4_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_4_SLEW {fast} CONFIG.PCW_MIO_50_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_50_PULLUP {enabled} CONFIG.PCW_MIO_50_SLEW {slow} CONFIG.PCW_MIO_51_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_51_PULLUP {enabled} CONFIG.PCW_MIO_51_SLEW {slow} CONFIG.PCW_MIO_52_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_52_PULLUP {enabled} CONFIG.PCW_MIO_52_SLEW {slow} CONFIG.PCW_MIO_53_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_53_PULLUP {enabled} CONFIG.PCW_MIO_53_SLEW {slow} CONFIG.PCW_MIO_5_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_5_SLEW {fast} CONFIG.PCW_MIO_6_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_6_SLEW {fast} CONFIG.PCW_MIO_7_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_7_SLEW {slow} CONFIG.PCW_MIO_8_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_8_SLEW {slow} CONFIG.PCW_MIO_9_DIRECTION {inout} CONFIG.PCW_MIO_9_IOTYPE {LVCMOS 1.8V} CONFIG.PCW_MIO_9_PULLUP {enabled} CONFIG.PCW_MIO_9_SLEW {slow} CONFIG.PCW_MIO_TREE_PERIPHERALS {SD 0#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#USB Reset#Quad SPI Flash#GPIO#GPIO#ENET Reset#GPIO#I2C Reset#GPIO#SD 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#CAN 0#CAN 0#UART 1#UART 1#I2C 0#I2C 0#Enet 0#Enet 0} CONFIG.PCW_MIO_TREE_SIGNALS {cd#qspi0_ss_b#qspi0_io[0]#qspi0_io[1]#qspi0_io[2]#qspi0_io[3]#qspi0_sclk#reset#qspi_fbclk#gpio[9]#gpio[10]#reset#gpio[12]#reset#gpio[14]#wp#tx_clk#txd[0]#txd[1]#txd[2]#txd[3]#tx_ctl#rx_clk#rxd[0]#rxd[1]#rxd[2]#rxd[3]#rx_ctl#data[4]#dir#stp#nxt#data[0]#data[1]#data[2]#data[3]#clk#data[5]#data[6]#data[7]#clk#cmd#data[0]#data[1]#data[2]#data[3]#rx#tx#tx#rx#scl#sda#mdc#mdio} CONFIG.PCW_M_AXI_GP0_FREQMHZ {100} CONFIG.PCW_NAND_CYCLES_T_AR {0} CONFIG.PCW_NAND_CYCLES_T_CLR {0} CONFIG.PCW_NAND_CYCLES_T_RC {2} CONFIG.PCW_NAND_CYCLES_T_REA {1} CONFIG.PCW_NAND_CYCLES_T_RR {0} CONFIG.PCW_NAND_CYCLES_T_WC {2} CONFIG.PCW_NAND_CYCLES_T_WP {1} CONFIG.PCW_NOR_CS0_T_CEOE {1} CONFIG.PCW_NOR_CS0_T_PC {1} CONFIG.PCW_NOR_CS0_T_RC {2} CONFIG.PCW_NOR_CS0_T_TR {1} CONFIG.PCW_NOR_CS0_T_WC {2} CONFIG.PCW_NOR_CS0_T_WP {1} CONFIG.PCW_NOR_CS0_WE_TIME {2} CONFIG.PCW_NOR_CS1_T_CEOE {1} CONFIG.PCW_NOR_CS1_T_PC {1} CONFIG.PCW_NOR_CS1_T_RC {2} CONFIG.PCW_NOR_CS1_T_TR {1} CONFIG.PCW_NOR_CS1_T_WC {2} CONFIG.PCW_NOR_CS1_T_WP {1} CONFIG.PCW_NOR_CS1_WE_TIME {2} CONFIG.PCW_NOR_SRAM_CS0_T_CEOE {1} CONFIG.PCW_NOR_SRAM_CS0_T_PC {1} CONFIG.PCW_NOR_SRAM_CS0_T_RC {2} CONFIG.PCW_NOR_SRAM_CS0_T_TR {1} CONFIG.PCW_NOR_SRAM_CS0_T_WC {2} CONFIG.PCW_NOR_SRAM_CS0_T_WP {1} CONFIG.PCW_NOR_SRAM_CS0_WE_TIME {2} CONFIG.PCW_NOR_SRAM_CS1_T_CEOE {1} CONFIG.PCW_NOR_SRAM_CS1_T_PC {1} CONFIG.PCW_NOR_SRAM_CS1_T_RC {2} CONFIG.PCW_NOR_SRAM_CS1_T_TR {1} CONFIG.PCW_NOR_SRAM_CS1_T_WC {2} CONFIG.PCW_NOR_SRAM_CS1_T_WP {1} CONFIG.PCW_NOR_SRAM_CS1_WE_TIME {2} CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY0 {0.010} CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY1 {0.010} CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY2 {0.010} CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY3 {0.013} CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_0 {-0.001} CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_1 {-0.002} CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_2 {-0.001} CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_3 {-0.008} CONFIG.PCW_PCAP_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_PCAP_PERIPHERAL_FREQMHZ {200} CONFIG.PCW_PERIPHERAL_BOARD_PRESET {zc702} CONFIG.PCW_PJTAG_PERIPHERAL_ENABLE {0} CONFIG.PCW_PRESET_BANK0_VOLTAGE {LVCMOS 1.8V} CONFIG.PCW_PRESET_BANK1_VOLTAGE {LVCMOS 1.8V} CONFIG.PCW_QSPI_GRP_FBCLK_ENABLE {1} CONFIG.PCW_QSPI_GRP_FBCLK_IO {MIO 8} CONFIG.PCW_QSPI_GRP_IO1_ENABLE {0} CONFIG.PCW_QSPI_GRP_SINGLE_SS_ENABLE {1} CONFIG.PCW_QSPI_GRP_SINGLE_SS_IO {MIO 1 .. 6} CONFIG.PCW_QSPI_GRP_SS1_ENABLE {0} CONFIG.PCW_QSPI_PERIPHERAL_CLKSRC {ARM PLL} CONFIG.PCW_QSPI_PERIPHERAL_ENABLE {1} CONFIG.PCW_QSPI_PERIPHERAL_FREQMHZ {200} CONFIG.PCW_QSPI_QSPI_IO {MIO 1 .. 6} CONFIG.PCW_SD0_GRP_CD_ENABLE {1} CONFIG.PCW_SD0_GRP_CD_IO {MIO 0} CONFIG.PCW_SD0_GRP_POW_ENABLE {0} CONFIG.PCW_SD0_GRP_WP_ENABLE {1} CONFIG.PCW_SD0_GRP_WP_IO {MIO 15} CONFIG.PCW_SD0_PERIPHERAL_ENABLE {1} CONFIG.PCW_SD0_SD0_IO {MIO 40 .. 45} CONFIG.PCW_SD1_PERIPHERAL_ENABLE {0} CONFIG.PCW_SDIO_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_SDIO_PERIPHERAL_FREQMHZ {50} CONFIG.PCW_SDIO_PERIPHERAL_VALID {1} CONFIG.PCW_SMC_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_SPI0_PERIPHERAL_ENABLE {0} CONFIG.PCW_SPI1_PERIPHERAL_ENABLE {0} CONFIG.PCW_SPI_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_S_AXI_ACP_FREQMHZ {100} CONFIG.PCW_S_AXI_HP0_DATA_WIDTH {64} CONFIG.PCW_S_AXI_HP0_FREQMHZ {100} CONFIG.PCW_S_AXI_HP1_DATA_WIDTH {64} CONFIG.PCW_S_AXI_HP1_FREQMHZ {100} CONFIG.PCW_S_AXI_HP2_DATA_WIDTH {64} CONFIG.PCW_S_AXI_HP2_FREQMHZ {100} CONFIG.PCW_S_AXI_HP3_DATA_WIDTH {64} CONFIG.PCW_S_AXI_HP3_FREQMHZ {100} CONFIG.PCW_TPIU_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_TRACE_PERIPHERAL_ENABLE {0} CONFIG.PCW_TTC0_CLK0_PERIPHERAL_CLKSRC {CPU_1X} CONFIG.PCW_TTC0_CLK0_PERIPHERAL_DIVISOR0 {1} CONFIG.PCW_TTC0_CLK1_PERIPHERAL_CLKSRC {CPU_1X} CONFIG.PCW_TTC0_CLK1_PERIPHERAL_DIVISOR0 {1} CONFIG.PCW_TTC0_CLK2_PERIPHERAL_CLKSRC {CPU_1X} CONFIG.PCW_TTC0_CLK2_PERIPHERAL_DIVISOR0 {1} CONFIG.PCW_TTC0_PERIPHERAL_ENABLE {0} CONFIG.PCW_TTC1_CLK0_PERIPHERAL_CLKSRC {CPU_1X} CONFIG.PCW_TTC1_CLK0_PERIPHERAL_DIVISOR0 {1} CONFIG.PCW_TTC1_CLK1_PERIPHERAL_CLKSRC {CPU_1X} CONFIG.PCW_TTC1_CLK1_PERIPHERAL_DIVISOR0 {1} CONFIG.PCW_TTC1_CLK2_PERIPHERAL_CLKSRC {CPU_1X} CONFIG.PCW_TTC1_CLK2_PERIPHERAL_DIVISOR0 {1} CONFIG.PCW_TTC1_PERIPHERAL_ENABLE {0} CONFIG.PCW_UART0_PERIPHERAL_ENABLE {0} CONFIG.PCW_UART1_BAUD_RATE {115200} CONFIG.PCW_UART1_GRP_FULL_ENABLE {0} CONFIG.PCW_UART1_PERIPHERAL_ENABLE {1} CONFIG.PCW_UART1_UART1_IO {MIO 48 .. 49} CONFIG.PCW_UART_PERIPHERAL_CLKSRC {IO PLL} CONFIG.PCW_UART_PERIPHERAL_FREQMHZ {50} CONFIG.PCW_UIPARAM_DDR_ADV_ENABLE {0} CONFIG.PCW_UIPARAM_DDR_AL {0} CONFIG.PCW_UIPARAM_DDR_BL {8} CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY0 {0.537} CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY1 {0.442} CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY2 {0.464} CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY3 {0.521} CONFIG.PCW_UIPARAM_DDR_BUS_WIDTH {32 Bit} CONFIG.PCW_UIPARAM_DDR_CLOCK_0_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_CLOCK_0_PACKAGE_LENGTH {61.0905} CONFIG.PCW_UIPARAM_DDR_CLOCK_0_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_CLOCK_1_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_CLOCK_1_PACKAGE_LENGTH {61.0905} CONFIG.PCW_UIPARAM_DDR_CLOCK_1_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_CLOCK_2_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_CLOCK_2_PACKAGE_LENGTH {61.0905} CONFIG.PCW_UIPARAM_DDR_CLOCK_2_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_CLOCK_3_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_CLOCK_3_PACKAGE_LENGTH {61.0905} CONFIG.PCW_UIPARAM_DDR_CLOCK_3_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_CLOCK_STOP_EN {0} CONFIG.PCW_UIPARAM_DDR_DQS_0_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_DQS_0_PACKAGE_LENGTH {68.4725} CONFIG.PCW_UIPARAM_DDR_DQS_0_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_DQS_1_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_DQS_1_PACKAGE_LENGTH {71.086} CONFIG.PCW_UIPARAM_DDR_DQS_1_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_DQS_2_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_DQS_2_PACKAGE_LENGTH {66.794} CONFIG.PCW_UIPARAM_DDR_DQS_2_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_DQS_3_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_DQS_3_PACKAGE_LENGTH {108.7385} CONFIG.PCW_UIPARAM_DDR_DQS_3_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0 {0.217} CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_1 {0.133} CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_2 {0.089} CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_3 {0.248} CONFIG.PCW_UIPARAM_DDR_DQ_0_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_DQ_0_PACKAGE_LENGTH {64.1705} CONFIG.PCW_UIPARAM_DDR_DQ_0_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_DQ_1_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_DQ_1_PACKAGE_LENGTH {63.686} CONFIG.PCW_UIPARAM_DDR_DQ_1_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_DQ_2_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_DQ_2_PACKAGE_LENGTH {68.46} CONFIG.PCW_UIPARAM_DDR_DQ_2_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_DQ_3_LENGTH_MM {0} CONFIG.PCW_UIPARAM_DDR_DQ_3_PACKAGE_LENGTH {105.4895} CONFIG.PCW_UIPARAM_DDR_DQ_3_PROPOGATION_DELAY {160} CONFIG.PCW_UIPARAM_DDR_ENABLE {1} CONFIG.PCW_UIPARAM_DDR_FREQ_MHZ {533.333333} CONFIG.PCW_UIPARAM_DDR_HIGH_TEMP {Normal (0-85)} CONFIG.PCW_UIPARAM_DDR_MEMORY_TYPE {DDR 3} CONFIG.PCW_UIPARAM_DDR_PARTNO {MT41J256M8 HX-15E} CONFIG.PCW_UIPARAM_DDR_TRAIN_DATA_EYE {1} CONFIG.PCW_UIPARAM_DDR_TRAIN_READ_GATE {1} CONFIG.PCW_UIPARAM_DDR_TRAIN_WRITE_LEVEL {1} CONFIG.PCW_UIPARAM_DDR_USE_INTERNAL_VREF {1} CONFIG.PCW_USB0_PERIPHERAL_ENABLE {1} CONFIG.PCW_USB0_RESET_ENABLE {1} CONFIG.PCW_USB0_RESET_IO {MIO 7} CONFIG.PCW_USB0_USB0_IO {MIO 28 .. 39} CONFIG.PCW_USB1_PERIPHERAL_ENABLE {0} CONFIG.PCW_USB1_RESET_ENABLE {0} CONFIG.PCW_USB1_RESET_IO {

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%0D>iK(MDh%T)e6%B^*5X}QzBz7SP77jSA#$r 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