ELF4e@4 (%"XpXX p HI<`tEŀ|8@@<8}8PU A})8Bq A})8Bŀ |8@@<8}8PU A})8Bq A})8B%8!<|C|CH9HHUHH!|? /@\?+/A$8 })N!+/@= 9)/A<`8cH8 8!|N = !9)|/<`<8c8AHq=`= 9)8k/A/A })N!8!|N !||? x<`<`8%H <``c8H5= 8i8H=H|`x= = /A= 8ilH8HPHm|`x= = /A= 8iH8H= 8iH8|xa |}a[xN !|$,|? x<```cH|`x 9 Ĉ |H8  T>/@8H@T >= 9)؈| YT >= 9)8| Y?8 T>+?@= 8iH8`= 88@H|`x  T>= 8i|xHш T>/@A8Hh8HDT >T>= 9)| T>= 8i}d[x|xHu?8 T>+?@8|xa |}a[xN !|lt|? x|ix\|+x?X`X 8HDT >9IT>| x\}) T >8} Ri?8 T >`T>@A8 <``8S|x8A8Hi|`x ? 8 T>|xa |}a[xN !|,4|? x|ix|+x? <```cH|`xT>Tz/@(8<``8S|x88H |`x  T>/@ T><``8S|xH|`x  T>|xa |}a[xN !|$,|? x<``H|`x/A8H 8|xa |}a[xN N !| |xc/AH/@ 8!|N C= |gx8`j| @p A # })Zj8i| @p @GN !||#x /A4/A,@~ ;H5A 8!|N !|=`/ 9+d\L|+xP d iI T aAA|ix8;x}i#| !/|HP}!I}i[xH9@/A8-9(x;H }x|4Tc~K@A;H5@@}xK\LPT|8!XN /}#8@;K| Hp AL@,/0A48aKY(aa>8ca|kx8caK| Hp @p }ISxA9* 8 +SAT= T:9)}i.}kJ}iN a +@ U`:!9ka |`Jc8 8Kqa8c/@t\`d|h} l8!pN a +A!8 iHa8c/@K8aK9a KA$K8`%HaK8,K|;Kt/hAt+hAx/aA}CSxHa8caKD;K|zx`xH )cx8H 8}W$>H cxW$>H xDxH ,! Aa|8!(N !| |#x|~x;xH ap` A8~xH  |8!N !|8 |}x8c@H m;8}#8H Ex8H 9x8H -8}H݀hc|c4 Tc~|hc8!N !|a$;c(||xcx!|;x0|3x4|+x<|#xA ,Hip` @;\ W<Cx; HxHe;Td~xHcx8 HqxH!ap AxH)TdxH]/;AX; =xxHp`@\piA+@Cx;HxHTdzxH7@/@; xHp`AcxHyp` @pi@cx8H<|}P!A |a$(,048!8N /AdCx;HY/@TxH!TdzxHUxH p`Acx8-H!K ;\ W<CxH Kcx8 HKpdcx;HxHap @K !}&|@; 8||xxL$(|;x!,|+xA0|3xa4;|D|#x;H 8|Hyx.;9Hpd xHx;H|`8/p`A4cxHuA|! T>@AA|;H8T>/@.A8|`P4!A} a| $(,8!0N W<;] `CxHKA8} Ha@HCx`HUxHT`/@txHT`/AK\;8xH x8Hx|`P4!A} a| $(,8!0N !|a;c ! |yxcxA|3x|+x|#x $W<,; HMTd~cxHcx;HexH p`AcxHTdcxHMxcH5/Axk0|T<;xH|}xcxHW/|`9@,@8yH8T>z/AD;ZKx! |`P,Aa| $8!(N 8! |`P,Aa| $8!(N |cTc>N |cTc>N |cN ||`,Tc>N ||`,N |N |N |N T`D.Tc>|cxdN T`>Tc>T D.T>TkD.|KxTc>T|c[x|xN |,|N |,|N !|8 |xH}= i(/A | N!xKp`|jx@,#<`H#=i9k}k8}hHyA/A/@|jPN !|= }&i4 !|yxHA|#xa/$(,AX|7AHW:-}|J.9);JA`AAP/;;;@܁4!A} a| } $(,8!0N <}9)AT8/AA49 })0}*9A }*9A(~}iN!K`}iN!KTK#x}iN!K8!|= 9) ; /A| N!/@ 8!|N !|KeK|8!N !|K歀|8!N IIC Dynamic mode DDR2 SPD EEPROM access example - Test failed (during initialization) Test failed Test passed Calling DDR2 SPD EEPROM ReadByte Routine BytesRead = %d ReadBuffer[%d] = %02X \lx` ((((( AAAAAABBBBBB 0123456789ABCDEFCxX/`|a8|<@ `B|S|ۦ||| || 8?<`|x|x|#x`c|e||hc8|e|||28, @|||8,@@< `!|:8 |;LdK$qxkHLDD  P(  xL  ,qmainXIicLowLevelEepromDump(EepromWriteByteEepromReadBytebXIicLowLevelEepromInitWriteBufferReadBufferTestStatus\%printDxil_printf doutbyteU lXUartNs550_RecvByteXUartNs550_SetBaud7XUartNs550_SendByte] XIic_DynInitu8%intc @~ / / ~ 6 / ~ 3s/@pq~.{qWr6r/rt/u v3H  8"h 4{/~6/p~~q/pLo~{op6 Ep/ np pr s/t3 =8j_TIu   E    C/ A~ A6 B BD~/Lx n~ { 6   G / p~ 8'P  1x/ ~ 6 ~~Z/x Y~ {Y Y6 Y % [/ d\~ l $ ]h0jIlbYu32}Wu16~>u8%intwC~xQDw QD V~QD ~ j,QD  ~,8Q D  ~ 0 338DQ2S2T 3XDPQWSWT h |P\Q{S{~T \pQ U C<T pQ U~ V<TN~ /\QSTQS~T%% : ; I$ > : ;I$ > .? : ; ' I@.? : ; I@4: ; I 4: ; I .? : ; ' I@ : ; I : ; I  II!I/ .? : ;' I@: ;I : ;I 4: ;I 4: ;I .? : ;I@4: ; I?  4: ; I?  %% .? : ; ' @: ; I I$ > % $ > $ >   I&I: ; II !I/  : ; : ; I8 : ; I8 .: ; ' I@ : ; I4: ; I4: ; I .: ; ' @: ; I4: ; I4: ; I .: ; ' : ; I.? : ; ' @ : ;  1X Y 114: ; I? < % $ > $ > .? : ; ' @: ; I% : ; I$ > : ; I$ > .? : ; ' I@: ; I.? : ; ' @ 4: ; I 4: ; I .? : ; ' @% : ; I$ > : ; I$ > .? : ;' I@: ;I4: ;I .: ;' I : ;I  I 4: ;I U1UX Y1 U41 5I.: ; ' I : ; I4: ; I.? : ; ' I@: ; I4: ; I1UX Y  .? : ;' I@1UX Y41% : ; I$ > : ; I$ > .? : ; ' I@ : ; I4: ; I 4: ; I .? : ;' I@ : ;I 4: ;I .? : ;' @ : ;I  I4: ;I.? : ;' @ h boot.S  % /cygdrive/c/ml510_bsb1_std_ip_ppc440/sw/standalone/iic_ddr2/src./ppc440_0/includeiic_ddr2_dimm1.cxstatus.hxbasic_types.h]VI=HI:?HI:<>: q UVKL;d`q=sdI? 9v q:q1;Õ:q VWL, q[H;<:3 cpu_init.SH4 print.cLV:< /cygdrive/c/XILINX_K.31.1.2/EDK/gnu/powerpc-eabi/nt/bin/../lib/gcc/powerpc-eabi/4.1.1/include/cygdrive/c/XILINX_K.31.1.2/EDK/gnu/powerpc-eabi/nt/bin/../lib/gcc/powerpc-eabi/4.1.1/../../../../powerpc-eabi/includexil_printf.cstdarg.hctype.hz+#V*;f;c/!KQ!Y"N,:,,:!!H,8-:gq)=+ Gu u9U c)!=1)7"I): ., v t+I9JUacJ +!c9z9'+c.G2+~,JH*G:cF6c GmCG4O<,v96 outbyte.c P :E ../../../includexuartns550_l.cxbasic_types.h xc"M,c t +tg+g"9wA::?:#L:? ../../../includexiic_l.cxbasic_types.h 1z1z1 >>?2y$y$y${G 9w +w /?z#+r@@:=UZ-12+!GU+A~G,1 +=:+J,Y./GUG-:}G Gt +tg 9M@,=9k 2yN0;H8>UL93y+2,>?lU9i$9p+@Gr%y+ +2 +9U+e++-j fqf+9Mc Gw +w  G< U;;) +%UM 9a(X+jU  @J+99%ac  9r+GQI<Q~Ax3xnn% G0"- +\)9@U: +&0%,*V*+t+E E ../../../includexio.cxbasic_types.hxio.h ++ ++ +1+2 +33H!00 |l DLlD D(LlD 8DpLlD D0LlD dD(LlD  |l LDDH lHl |l  HlDLlHD DXXl` dDpt@l |l L P(DPl |l t xLDLlH$t D(L lHHTlt h\DLlHH |l  |DL lPl,@0D8H lHPPTl4pDHL l @ HT@ lHHHHH0L,D0L @ lHPlHHHL@,xxD(H lHPHXlH |l      , 8 D P \ p0   StatusRegByteCountSentByteCountunsigned intWriteBufferBufferPtrprintprint.c/cygdrive/c/ml510_bsb1_std_ip_ppc440/ppc440_0/libsrc/standalone_v2_00_a/srcGNU C 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)xil_printf.cgetnumdot_flaglinepoutnumshort int__gnuc_va_listl_flag__ctype_ptrparams_sreg_save_arealong long intleft_flagdigitsbasexil_printfunsigned charctrl1long long unsigned intcharptrargpshort unsigned intpad_charactertry_nextlong_flagnum1do_padding__va_list_tagctrloutbufnegativeoverflow_arg_areaparams_toutsnum2reserved/cygdrive/c/ml510_bsb1_std_ip_ppc440/ppc440_0/libsrc/xilkernel_v4_00_a/srcdoubleoutbyte.cfloatoutbyteBaudMSBXuint32XUartNs550_SendByteInputClockHzBaudRate/cygdrive/c/ml510_bsb1_std_ip_ppc440/ppc440_0/libsrc/uartns550_v1_11_a/srcDivisorXUartNs550_SetBaudLcrRegisterxuartns550_l.cXUartNs550_RecvByteBaseAddressBaudLSBXuint8StatusRegisterBufferPtrControlRegXIic_DynSendxiic_l.cXIic_DynRecvXIic_SendXIic_RecvIntrStatusDynSendDataXuint16/cygdrive/c/ml510_bsb1_std_ip_ppc440/ppc440_0/libsrc/iic_v1_13_b/srcXIic_DynInitCntlRegDynRecvDataStatusRegIntrStatusMaskRemainingByteCountOptionLocalAddrXIo_InSwap32XIo_In8IoContentsOutAddressHiWordXIo_In32XIo_Out16ValueXIo_Out32XIo_In16XIo_EndianSwap32OLDXIo_Out8DestPtrInAddressLoWordSourceXIo_OutSwap16XIo_InSwap16XIo_AddressXIo_EndianSwap16OLDxio.cXIo_OutSwap32/cygdrive/c/ml510_bsb1_std_ip_ppc440/ppc440_0/libsrc/cpu_ppc440_v1_00_b/srcQqQq(h(hlQl|q|HHLQL\q0\0Q(q((x(QDqS8oSHWDSHLQLqHSSHTnTxoQq\SSdTTUmm`X`dodWW,Y,0[4TYYQq4STS8SLXSSSSSS$XSSS S,0S<TSX\ShlSx|SSSS<lll<pmm<ZHZLZZZ Z0hZZ,ZZZZ0[ [ [[<LYYLYY<o`oo\oQ(qSTQLq S <nLPQPq(LtStmLTLTUT`iTQLqS<nT8mQ|qShm|Qq8|Sll|To4Dooo\poo|Unn|V<i<mm\ipm|Whh\PpPHLSPpSSSptSQqS4lHlT@oo@oH\oo,ToUiHiVj$mH\j\mWhHh`hTtH@\@\dS@o\HoToSSSQq0Sm`mTooUllVPkPokoWiiP|P\xPQ ,q(SiiTUj jV\h\lh lP P\m m\o $oSS (S((S,4S<DSDDSltSSSGNU C crti.sGCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GCC: (GNU) 4.1.1 20060524 (Xilinx EDK 10.1.03 Build EDK_K_SP2.5 11 Jun 2008)GNU C crtn.s4p\4HpD\0<(Px0<@D\h8` 0x|\p@|@PL|8D0\ PPp.symtab.strtab.shstrtab.text.init.fini.rodata.sdata2.sbss2.data.got1.got2.ctors.dtors.fixup.got.eh_frame.jcr.gcc_except_table.sdata.sbss.bss.stack.heap.boot0.boot.debug_aranges.debug_pubnames.debug_info.debug_abbrev.debug_line.debug_frame.debug_str.debug_loc.comment.debug_ranges!$' -8B5|0=|0D|0Jt(Pt(VD]LdTkTpTz\``ppXp/`pp  (!H#P8* ?JPFJPPG t%]`.bd<k $P vM8|||tt     X/` !"#$@x''2= K YlydHlD &,5<EQZ2j w LD |D   z $@06@Aw X\lP v| Hxx?`t tXp0/`&3DLWdb s h\ ?`= LX ?`8  $5D|S P([L,hu   |pX j K |  * xL>I Vte/`mYyd?`@0@ , `T8 |' =|boot.Stlblooptlbzerocrti.secrti.Sxil-crt0.Scrtstuff.c__CTOR_LIST____DTOR_LIST____EH_FRAME_BEGIN____JCR_LIST__completed.3090p.3088__do_global_dtors_auxobject.3143frame_dummyiic_ddr2_dimm1.ccpu_init.Sprint.cxil_printf.cgetnumpaddingoutnumoutbyte.cxuartns550_l.cxiic_l.cxio.cctype_.cexit.cimpure.cimpure_datastrlen.c__call_atexit.c__CTOR_END____DTOR_END____FRAME_END____JCR_END____do_global_ctors_auxcrtn.secrtn.SprintXIo_OutSwap32__SBSS2_END__XIo_Out16__sbss_startXIo_OutSwap16_etextXUartNs550_SetBaudWriteBuffer_bootReadBufferXIicLowLevelEepromDumpXIo_EndianSwap16OLDXIo_Out32__dso_handleXIo_In32__cpu_initXIic_DynRecv_START_ADDR_heap_end__GOT2_START____GOT1_END___global_impure_ptr__bss_end__ctype_ptrXIo_EndianSwap32OLD__init_heap_start___bss_start__EXCEPT_START__XIo_In8__sbss_endxil_printf__sf_fake_stderrXUartNs550_SendByte__deregister_frame_infoend___sbss_start_boot0__EXCEPT_END____call_exitprocs__FIXUP_START___start__end__SBSS_END__XIo_Out8_SDA_BASE___SDATA_END____EH_FRAME_END____SBSS_START____SDATA2_END__outbyteXIic_DynSendXIo_InSwap16__sf_fake_stdin__bss_start_STACK_SIZE__GOT_END__XIic_DynInitmain_HEAP_SIZEXIic_Recv_stack_end__GOT_START__EepromReadByte__SDATA2_START____fini_impure_ptr__FIXUP_END__XUartNs550_RecvByteTestStatus__GOT2_END____GOT1_START____stack___sbss_end_edataXIicLowLevelEepromInit_endXIo_In16XIic_Sendexit__sf_fake_stdoutXIo_InSwap32_ctype__exitstrlenEepromWriteByte__SDATA_START___Jv_RegisterClasses_SDA2_BASE___register_frame_info__SBSS2_START__