[PATCH] SPD autoconfigure logic for EPIA-M

Dave Ashley linuxbios at xdr.com
Mon Nov 15 17:32:01 CET 2004


Here is NXTV's ramini.c to be placed in version 1 of linuxbios
src/northbridge/via/vt8623/raminit.inc

It was written by Felipe Rodriguez for NXTV and is now being contributed
back to the linuxbios project. His email address is included in the
comments in the file.

It assumes the SPD contents on the module are valid, and it sets up
the CLE266 DDR controller appropriately.

Features:
o Detects number of ram banks
o Properly tunes tunables
o Detects column and row address sizes
o Works for every 128M DDR module we've tried as well as one 256M
  module, correctly setting the available memory in linux.
o Lots of comments for reference

Now if someone else wants to convert this X86 code to C code for romcc
in version 2, that would be great.

Enjoy!

-Dave


begin 644 raminit.inc.gz
M'XL(",-`F4$``W)A;6EN:70N:6YC`.T[^W/;QM$_$W_%-HG'9#Z*Q).BE#I3
M6I(=345)):7&GL2#P>,HP@$!%@#U\%_?W3N\"4)B7'\SG:G:>,B[O=V]O7W<
M[AZ'/TKP(T36R at N\9.`%SC'`21 at LO+M-Q.`^&8\T#2)VY\4)BV*$%?_OW"R]
M&-91>(=+`3\N(L8@#A?)@Q6QG^`IW(!C!;C2Q9619V\2!EX"5N`.PPA6H>LM
MG@@/CFT"ET60+!D at B54,X8)_>7]Y"^]9P"++A^N-[7L.7'@."V(&%I*FD7C)
M7+`Y'EKQCGB8ISS`NQ`16XD7!C\!\W`^@GO<`GX'-:.1(NQ#&!&2KI40YQ&$
M:UK70W:?P+>28NE at Q_:+7;K@!1SW,ESCCI:($O?XX/D^V`PV,5ML_#ZA0&#X
M]?SFEZO;&YA<?H1?)[/9Y/+FXT\(G"Q#G&7W3*#R5FO?0\RXK\@*DB=DGS!,
MSV8GO^"2R=OSB_.;C[@)>'=^<WDVG\.[JQE,X'HRNSD_N;V8S.#Z=G9]-3\;
M`,P9L<4(08N(%_R44(PN2RS/C[.-?\2#C9$[WX6E=<_P@!WFW2-O%CCA^NGY
MPR,DEA\&=WR;"%P(\B?P%A"$21\>(@_U)0EAZUAI>7&R?3@/G$$?1H<&3*TX
MALD]'N:)M;(CS[W#C],)R*JB'?7A=CX9%.I[BK+UP_6*!0FQ/+\^!6N3A`<.
M5WV(UV$0X^Y)N^#RP\T_.9UT[62#QQ,==]XQW\,CG at Q@%KH1&@S[`G]=1-GG
MOP6/R?W`"5<_<X*H1<?0N0SO095EO:Q&3NB22L>;%4/E#QB<GL[@]'PZ)3/9
M^$P(ZM[R/9<SBENW$)[6QYOU.HP2P2?)ZI^>!6?7YY.#*=BA%;G$\U"2OG?9
MPD/,?ABND3S\(#\:LBQ7QA4QKN*$)'4^K]:=U"M(G4','!(W?#>(PM6`&/A.
MDB+/=*Q8.<9IU'T\T.].)G-02&,0G+F#WZ/?@^]2,+4&INX`,^IP`Z,94JL!
M:@U at FX`@2X"W@=BP"[0$1;IA`Q"KQ0%DB]U_Q:;+?.NIM/CT'W-`LURC9?(I
M$&`LBD@;2C0LV^?*2PQ%*Y)O?2F:X6U,T,B.M?&3$E4_?##M,'!KA'$8:#@E
MNO3NEDU at -)[!X;FM(W;OA9L8#TN<Y;'4\8*$^::S]-;F.HP3<V4Y4=B5'S6C
MATM.YN:OL_.;LRZJPJ'1)XV0QS0Q_!%BEFS6X*PWI%,52$/FD`Y"5L<5/NZR
M^K at JX!?U<8V/C[?PI)SHG,6KR_G5Q9EY?OGNRKSY8*(/G'5_>'WPNK=S3FZ9
M<UOFVG#^'K5-!C at I#='(\>]T-IF2)YI::[AY0I<!Z'[0&X(,<+58H%C!&$L"
M-%>9%4/W^P26ZT8LYKIB6S$J;BA"@G`-K^,,#E5_&81^>/=$,9;CXL'BCI&/
M2]W^#==,_>"(?-XYZ0$B&*NZKKW_P-T*!E1DAGQ_[O8YJK=6\`<H0YEVL<)=
M)'P7R/5OAP?&IRH(>KP5LH!W"G3A!**7`+2ANHU#.U!J(%LXY$^2X&3&+.$%
M[2><4@[[<+E9V1B@<4<V+B</"G,N<9<+>2"1LJ[">[^#&J0HJ*JOF/V()S>Y
MN)A?=^.5O8G-"-&:A)(4[#&,[,XKQ^_C?U+'6:UM6BJK_5<6?O_\I8,G9DXG
M:#EKDW;1Z0R'H(RF=G[B52ZU,I,1&G)ZJ"RN,B=K+V`N9\=-V?$[>*DP1[JI
MJ&-NUIR=D3[$[U,;ND at PAK^^`47M[>!/00:O(V]EH1YQR3UX;K*L\>;NPYN>
MBZJ=MT=NT$B#+QO+)'$.HAIE<>8+"$63'NAE"3NAOUD%-2'7^#B62EO3]]G:
M4;ZU`,W4M+W$1((F42M!63E4PH)=0/9+@,8Y$$/?GE3!I/I"].^HO.0K1ZDP
MN6[*0T4!A"/9@""``1YJ>BQ)6ULJ\.DE?$<OP;7-;H%,+2$;5Y%)4 at W3<2T4
MC/N`:WO2<+CE?'\Y^S#N\LFJ[R7'`+'WA:5^4!]H`P76=Z`90IL,Z^!GPP7:
M!`5NAJXG51_N#)GE+#D27"_D^.8-&?S;=#&\$21D\=W.O\/_@:V(0:<Z2/^H
M8L9MF*%_M*KG6J1:2C*K^1<%IN*FR-&X>,WVDJ<V;>86AWK5?V6C;J&GS3T<
M?4]8G%0&R at 9*WS\'P@<2.=DDP7*;??]V-VJECEJIHM9;42LMJ#.F<M390(9:
M;45M*.IT-W*]CERO(5?:16*,6I"K=>1J#3D9?XM0T"7N1J[4D2MUY'H;\I'>
M at COCJSC-<0VWVH9;:Y-XQE:!6Z_A5EJ%@@*'(>B%PN1+:/J,+NM]2L.SJ[?P
M-P62X]V.Q?;KUU(+?1$?%7NQ_3R`Q9@<EV*,43+>W&X- at .\I8*V73['G8*;,
M+S"[[3:EXG")<2KHH1),4TO26BR0I=(UA5`J?&-2QV5.9\><]/_K:/8Y8W3$
MSY[QUVGH-H56#=W+LK9QMUK67BZA03*M+F$O9[:-O-V9[>6&MY&WN^&]PD>#
M6-HT99^@UR"4/1R-5%V.%QL<L.DVP]U(X8F4_3V1+3Q1IS;L9`ZJ,NJFHSRK
MK^4"8UX/N<#$*W">H'(#45]P3][3X$FH5/;9WY"SE<;^=IHNU1IJ"?.;V?GE
M^^X/>?&H)TIA`IR7NUH7$42OI`^RR"$)!1VN&UDK,_$PP;^3>%&LX014+2L/
M(!@X?NC\`<Z30R4E;\7`2N#DX@,<@#PPJL=S^,(T!M+2#@I,9`>:-OWE"UUI
MQ;@BR]-E^MV2*</$'#P3=?O>U5[5F;3MW7A6DJK1J[J/%G3:L]BT$C*M!9DP
MP]+(<369N.&##36<D9ZFIICAKR-VX"RMZ(Y1]OK;H:AOS-"RKC=^S$2&33,C
M,5.V.9'Q_F;T]4\"(?^;G\Z`*L/IB(QTE1O\<)`-*``J#:@WZ8B"(!H?&1CY
M&$(=T`?M1LI8&A)Q4='DA-52,8:*1)'/J-*/,TH_K\,4A:JHNEVNI-UD=MT3
M@*1=J$VH2YJ#9.4@%L-"R8!JA\AA-CP:\5'2Q#$"&3C<D.ZKAWUN'`VD:^4>
M>X_47G,*F^`GO8C8OS;\2-ZDV^#&T,GKNF9DQ682DG:):C%/<(M21BD-S<5%
M.H`I9B%SE-7)Z;<4UE&[L';OIEPD4?:I__Q)2:[)-$QN&KD@*5#L%N2Z9$PH
MQ\E\2X[J".4X#D17<79=$Z>F8OZ]+4[=!CC<(4YT'6EED4O5<A+OGE?[GY=M
M:7\5T;(]1*N.]A8MW2A,+S?D7+3Z3AWEM_O2BJ^HO.YDHR*!EU1E&XJ+-92F
M_D`FV%"PK0.J'##S_M$CN>XFF.-"#Y5JQ.!KFNB7EJBI?#/XXUI_9:2_J)25
MME[$<?.J.6H;]0BI-&7Y:=JXU9,9B9Z,;*4H^/))9'M)Q'NG%,CP]+:6B5:+
M5JH6GUS?4A,V5;,B\&6]BS3NU<"R/P/#7W_T"<`.PR1&XNN8+C'RHR-#5VAL
MKU2JVT1Q`CX+[M"DW\"8KS<^25L=)YVSR>0>S[:1C?GV>I33N!J\3_AU:FL+
MHR,IAQG2/N(U8Z[@?W24\M\5<=!*LAL]!6&\)2&\V,!)&"11Z/LH510"_`PJ
M7YTV2&JS?WD#.LVFW1'.W?@/6%OH/^CV+RAKI5E]:S:-U%/DQ5OC+8U/KZB=
M3+/RMM1&1WW1X\UT at D>@G]^02T0?:2WHJ0,G5ARDY7[>Q$D_+9PJ^#^-2J>*
MN'V>GEU,/G;3_G&*]4QT0$_^?K:M739G0,E`3[V8PW*:$4-G%B^W%UE"D[-%
M<SPQ-R*W2Q:@"'=%!@'=M,,UT`=JG[C4Y=XV.K?<3"Q/'`K5)XOY3Y=N,"E)
MRS.OF/.88G_%K$?\[GJBZ40#L=>G?\1&%W@)9?9FL<!36>$AT`L2-%S?PH\5
MREDB4,J"<B\HB^22W.#:MQQFEK":86`2-NZ<TP+1RV`E$L=YX.`>*<7EI^$(
M#8>'I7BW$C%Z&L-?D21+*\"3JC`MK5*]-;-ACCJN%?Q'CN@)Z]S23\N4CF$Z
MZ5-SO0_3TR'J6^-!&X98>7(,9U;D/Z4Y5<Q\YB2T?-J'D_GWA$.2VK==]^!,
MRS+IW,N@&E*C'7U$[$2>+=X#T;.,M^=7>/L/HX2RA_<;SZ5NQ/4=J&/HHKI2
M2Z)'!BNY;F12]D%H\#[&>U6H#)=7U^A#1%\TM;`=UB53"HHK2/_``C?<$/!#
M&+FH4>&*OVK*VAOI>QW76ZWR;!*H""C+<I<TL8<[1#4M6[J:6^(DC3YP';'T
M[O-"%M-,4=!2:K0X[NE\]AP2K;1/RA!E>5G>A+JUAP)X7(,=-[$PR8/KU^U/
M;4)^\G8&)SRO?P:57B[4C/GE,JZ>E;;[K+A7+B#U%T,:+X8<O1CR\,60]>/8
M#7GT8DCK&<@]M*[21]^R+R2&>9JWJ&3U*CW/HU<V<G5X8&11>G8V.177PMZN
MDI8FUYQ[5B?_TN'!1K!B$BNF**LU#E/I)14+\E,52G;!#<)HA1Z9UT'H2M&,
MJ4"DU!"):V\=2^;+^'!Z99O2A66'L`UZ>R2)*XA)#Y_$*ZHB/R4KY;/\C567
MOXW#2V9(D;+TX*HW2.\OY&=5NAFH1]LT1YRFKH@;^?;[(R4SQ86''L`/'S`N
M\\=66YC&^8VE^IJDE`_E#[VDIOM_^9%1RW30.OW]Z[0DZXL./K\+T%6&XB%%
M`+QATR at 40(JJZ<;H<"Q.D0-RF5(Q,)O+</+K"W0)8X]#+CS?K\P)QX[3E5&U
M<51K'-7ST99]#E[S"'_/(GI5+):+59E6H\'XL+T_J at 7C93FRO+@XD&<HI?CS
MK7T[$NJW)Z%]>Q)ZC<2^-':6=<NO)1M>XA49]%>\X.-^&-(6C;,43UV*AYW%
M.TR)GEB6&2?GY`4.-_V\19&U;DE;\0Z+"LO?F]Q%F(71,V"I$R^I>)"Z]<)U
M4'>HM1NT[7]$WR>+%+POS`L8 at 54N#N5RYHY_PR,?%0$+"!1SOKGBV>E_Q^Z*
MXWEF>SMFMBHVPJ\K2H/>E-62OPGN9=J"`R*"T5-,TPE1_9&(5`X&9<%^JVCP
M0R4:C!NCP?A_T8"?UX)^8E"V[F\0$OXTG3WCPI^FLV=P^--TZA%B)YU",1?X
M)Z<:G"HFBZR8-2GCM]/!SN<\7I4#08, at JF9]>O;V]GWJX32U2WC;#!=>-SU[
M+_N;G,XWBX/<D_'&*/>7Z:?CK(R8=0[4H48EA6[^.X0N$H:#_.<+76?9Z^75
M*@JI:74JWMC95QY1J!R6"ESH1#K@\@'W,4?@I^^=^%=1=8=7+ at ZX'LV[E7E*
MJ'@<_QH"5C,!\9;C/T%@\3("XKLMOF=.G*I-F;"EDI2S=VG-<3GG1)S%DE[I
MEJ(TI"_;FN*P:%&T*:=(P'8JYG*W[D&+7G:;YI[7]=[7_:)#VA',MRX*HZ(2
MU_1#ED->8L;S\D4G[D>JB7.'1CFT:&DXE%FNZ5=MW@*R6FE6:.:E6JH<D^_M
MU$N&M??/66%=_)QBJ_EAB>;'+2[F!4%E)):5WI[$`X"NR*#U].GT4=IKG3V.
MCJ";]R)[-&*,H4O/[/G/4OA(1B3KS!9_^>/^_`\O)Z,=P*HQ&M)3,;L$K&N5
MKFX[YI&Q`[@)LZ;6:S-4C\@?T8SE[*TE1JM4QB;B,6G7C2V,\2B[%&;@>`!4
MI*FNK5?`Q6*="D^E=<>2\+YKQ]LJ0!R*YM]8K>G?H=:LEX="7PUYZS=@2O[+
M+DX,G<9ZZ3DQ6&MT(_0;8?I9TA9]1=!QY5[QA*5B!Z.\#]0X?5AJ$^W\P1H*
+4_HWRK@*]<`\````
`
end



More information about the coreboot mailing list