I included my epia-m contents when I pulled from the linuxbios cvs snapshot, then made some changes.
My setup is we have a custom pci card in the slot of the epia-m that has an rtl8139 as well as some other parts. This causes some special problems. We want to boot of the pci card, not the internal via-rhine chip. The problem was that the other circuitry on the pci card was generating an interrupt, so when the board was soft reset there would be a lockup as soon as the rtl8139 interrupt became active--there was no driver present to ack the interrupt and make it go away.
SO to fix that problem I made the epia-m reboot (see earlysetup.inc) once on startup. It uses CMOS ram byte 0x0e as a marker to tell whether we've already rebooted. In order to access CMOS this early in linuxbios the firewire device has to be moved out of the way, it defaults to answering PCI IO address 0000-, so the CMOS access ports 0x70-0x71 can't be seen. I don't know if my method here is strictly kosher but it seems to work so far.
Incidentally there is a bug in the rtl8139.c driver of etherboot (and linux for that matter). The use of the IntrStatus register (word 0x3e) is incorrect. It is read only, any read clears all interrupts. The drivers behave as if they have to write 1 bits back to this register to explicitly clear interrupt request bits. This not the case. Careful reading of the rtl8139 data sheet explains how the register works.
VGA system: There is a bit that has to be set in the device 0 function 0 pci registers to enable the VGA, as well as set its memory size. My setup is to hardcode it to 32 megs of ram. ADLO + Bochs are not used at all since we only want to boot into linux, no other legacy OS's. In another post on this newsgroup were instructions on how to get the pcbios features working to add a dummy bios as well as vga bios. In order to get the vga bios to write to 0xc0000 the shadow ram has to be enabled there.
I extracted the VGA bios as described in the ADLO docs, doing the dd on /proc/kcore.
I'm going Linuxbios -> etherboot 5.0.10 -> tftp linux The linux bootfile is produced with mkelfImage version 2.5, I'm using this command: /ram/mkelfImage-2.5/objdir/sbin/mkelfImage \ --command-line="root=/dev/ram console=ttyS0,115200 console=tty0" \ --kernel=/build/linux-via/arch/i386/boot/bzImage \ --ramdisk=/code/bootfiles/bootfiles/rd.gz \ --type=bzImage-i386 \ --output=bootfile_via_insecure
Now what do I have?
I have some simple bios boot message appearing on startup, VIA CLE266 appears as well as some other text in the upper left. The system boots and launched XFree86 without problems. No frame buffer device, I'm using VIA's own XFree86 drivers. Everything I've tested works, however a couple of applications using SDL wig out the X server and cause it to seg fault, this should be easy to track down. Also for some reasom the lm_sensors readings cat /proc/sys/dev/sensors/vt1211-isa-ec00/temp* are no longer valid, they seem frozen at some arbitrary values.
Linuxbios logs lots of biosint messages, some of which are unsupported: biosint: # 0x15, eax 0x5f19 ebx 0x810 ecx 0x20 edx 0x3d4 biosint: ebp 0x11c30 esp 0xfca edi 0x44 esi 0xfffeb167 biosint: ip 0x4ef9 cs 0x44 flags 0x86
biosint: Unsupport int #0x15 biosint: # 0x15, eax 0x5f0f ebx 0x10 ecx 0x20 edx 0x3d5 biosint: ebp 0x11c30 esp 0xff0 edi 0x44 esi 0xfffe0000 biosint: ip 0x5c98 cs 0x0 flags 0x2
biosint: Unsupport int #0x15 biosint: # 0x15, eax 0x5f02 ebx 0x10 ecx 0x20 edx 0x3d4 biosint: ebp 0x11c30 esp 0xfde edi 0x44 esi 0xfffe0000 biosint: ip 0x4008 cs 0x0 flags 0x46
biosint: Unsupport int #0x15 biosint: # 0x15, eax 0x5f18 ebx 0x10 ecx 0x20 edx 0x3d4 biosint: ebp 0x10000 esp 0xff0 edi 0x44 esi 0xfffe0000 biosint: ip 0x5d7f cs 0x0 flags 0x86
In another email someone said these could be implemented, the VIA BIOS PORTING GUIDE describes what they need to do. That might relate to the crashing of XFree86.
Performance seems to be perhaps 10-15% slower than under the stock bios, but that's not certain.
I've attached a uuencoded copy of my epia-m directory contents from the freebios tree. I think that's all I've touched.
Hope this saves other people some time. -Dave
begin 644 epia-m.tgz M'XL(`*HF$S``^T;:W/:QC9?T:_8QLD4'!LD(6'LE#LC&]EABL$%[+YR1R.D MQ58#DJJ'L9N;_W[/6:T08`1)G+J/L&T,G-WSV+-[7JM5&%B5B>FX0\,[,JM M8U:H[YC[D\JS+]=$41$/5!4^65O^3+X?'(A*35+5ZL$S45)D57Q&U"\H0VZ+ MP@,"'D6>%ZT;MRF_G]H"_/6_\1S1[U%^$A2J)84Y2]9?5@VS]V3A)5:"; MB%^$^X;VE:^_&5@WQ*G6:)L%SBN$Q'+CRL(KE`W"NZE6MEQK;5#JC(;,K9# M*W#%02@)Z\7<+$WAWQ`0QIQ"1X22'N1P!*%,/9IX'AL5]]&DBQ)%1@;^T8( M8'.\8DJ^51<KN;VHJX3IV!E6+,-O3%EXW;($F<OCFZ&@6-?4\Z]+E=5SMVQ M/P.)1C<T<&FT0JR5YFO'$]^FMRL9K4;PC'F<3Q!MXH36QXI%S6!\S]!68+A> ML,RE)E<K@3G![L^>RC(.T&/J,>;X?3)QAIM+'OY%-/PTD1=Q/#]R/)?TM'-C MH/<'#4D0YL0EF7J(,+<X)%L<LL*<K&K%#^@D"H(<<_9KR0K-A@A<#KVC';=U MX[3UD]XTM$[3N-)Z+08Z'_1Z?1"/#SQM=;2V<:ZU.L==K==$C,N+K/N-=J4; M%ZW>#\8`L;.._N6%WFMUC:9^==IIB'?U^A+KJP'.RFAKG0QIL>NR?_R@J]74 MC8XV:`'7\VY3;X@PH^%OU(J($_QN1.9P3,.RE)F"@&0([>L^_,*0B@'>*K MR4=MII9LGA=:;V!T+L^/]5Y#OVAI^^</QUSIG6:WU[AJ:8+P5_O]M.7&_YZN M-<_U+)C0_P7(3F$^%[.*C)^!_&?ZFJ;N/_4[2!1ZB+9D!&8S.(=/`B>B> M(+P@X*5]RR'[(1&/)*DL$J*(Y6%#501A7W/M@$[_-IMXVSZ[Y=K_8A!]%(]- M]B]+RE+]=R#6JEO[?XI6F'BWX(+\4[<(R^I=2<43K1VNW]1Y(M?$@0^Y*3; M.6V=&5JSV2N*>QBA]\32)R,=KD'ZJW7Q-;9-]C_+<Q_!8V/\EZM+?]`4;;V M_R1MW@C96F_-*MJZ^Q_KB)]%(]-]B])!\OV+XFUK?T_1<,X33#\X:QV;P3 MYL"'(V@('J9@J<8C^"R$\YVR]1W_N)9O_U\H^7_V$>?_57G)_FL*E`1;^W^" M5JCLDB8L-8EN*!DY01B1FD+&GGL=DI$7$-@"(Y>`6QC&(1&)4""[Q"G3,AO/ M$@;"3U!97T4H"#LV'3DN)2=]X=>:Z`;QS/]*)IVP%0N8]HB;Q-R@/R(@&B MQRF\SJ`X"*$VAUZ<M#@E7DX@0>$AGQ^[O2;G,_4">R,?')1XLAP^2'`%GW:W M<;YV!_%R-[(J<E89;ICQZ!%4+YC@2I&L6OA66*)%(L<6"+??4>J)?**%&>] M)6''&;E`@<R579GX<Z48+.8>6]F]Z0T-**,+,$94JI7(_PCC,W(9I,X`R4C@ M05W;&8'O_VWB%[B7,,)WCB\4RB%EDI#GY<";E&TS,I+@FT;0]-U:7`$`Z+` M<:_)<\0CR4R.R',<$M#HJ)`->!N=1G<]EPZA]B$G^59YY#"'@4*K,W&'#,H M'F!%^/O6',<T/"(S+',4@3!D"4M#Z&HDV-IE/P!IO3B$_4#HG0\3#?D$N(TX M+@^*7"='2;1\24.?14_0#RQ!OXNGTIW3KC'XR>@/>BW82B]F&BH]'/-&_ZDJ M%Y'RBLXY`J`_6)O"G1>,V;P0@X=IZ6@EV7KQI35>0?3DC=8KOOCVZ-O/@)] M@GS$J_R4%>8-N+/QZ'C!5'.XFVNX(X>"4(#HD]`7"IA@#/&D`I,1:PS[S_VC M(`^%7!)O@S4S>.MBIS7QD>2,("U(P[5:QMU82A=VR!8VA(7MZ8/^A3!O#$?_ MD%0H-_XO/JE[%`\6_Q_&_?134FI2>OY7@V*`Y?_2MOY_DE:II.?_5V<:=VBK M#^(5@/XETJEN2J!F:2-T<T>DXS:[;5)I@YD!U693.AUF!O%!<`90"X1PDYS M;$Q!Z!3^I;ZU&+NV9\43ZD84`FT843\D$&%:72*^PB_L^7^^Q/9N'3\E]8', MDL5DSA4,Y(I#")OGW3Y+6Y`:)69()F;P#B.%1Z84)!C?@PQ#V!WPG>N.T1<Q MAS''#("_#]#-V""`%X,?@Q[^$ZRKP+,\0O'XJ[ISC8YX#=P3J/9P2K(/ZO7 MP#N*B2^><D:,'N<+<C#/+:S-4P9/1BX22QE)!1L:G$_C5Y4!+>L'.6[YMX: MSWR\IN^;;TNY2UUG"ZV,'BRT>+A^H3&.82Z#L01#91@GTU^AC.H_Q:U_=,OW M_W?FQ!_3LO7X>V`;ZC])46NSYS]*K<J>_QQL_?^3M!U(9]N.&]=M#/)8L- M3AB?!WN0(U^U-((;@N`5G'TGNA-V,`&&?<+`V142DFT='*`G4:#/KE*1D^2J M%"\HA_'U-:38LYL?>J^EM0UN=D-CL'@Y[YH'&N7S88DJ;(HIAU-_52[;`]2 M#"C'SMKZE=YN'&8CCB_/EBZ=G/:T<P"?GNH]O$RS0R[!N<MJ[?MCTH],U\8Y MG+)'X.#B.UXP`;F93H3L*@Z_B<,!EWW=.-,[(/Z)T>N>S]UE&32-T[;6?P.@ M'0[[Y7N]U]';D$MJO4$#DMC1R,+-/Z/>/3?ZK5_TAER3)45!`7WS?NR9-@F= M/RAI$.E0_OXX'7ZA_=SN0I;-4*3#6DVL(PH&++U]2MJ`!R$J@BCH./E,0Q1 M\Z+#...XVQUDVI@-0Q5X<3"30-A)OU78[:9H7)>JAV4Z=(0=L)YK&B4=Z?IS M+MS+0F*!BLSTP^%0)K3Q4H[1:J(0M@,Q%;S1T/%"RQR/ET:#\UZDPLG.:Y0R MC4(-;B9E*!2ASL2\AF3")LZH42Y7("U!^N4A5&O>J#$;,`P;-56MUJ#^H^: M,AK";2.=ZWDF^M%`539_S;G_VR-_Y^['_78``-_E\1U>7[/[`6V_N_3](J MNY!].V'B\J=@]]?4I8$)R38DO?`C\IV@#)FR[1$P`C+Q;&=T_PT1""'%81R! M69%[+X;N/0+9@@E>!`R%6#?4>@>8F*`[$?JA6X@$H_L2XD$TB&#'A>P(L=7[ M@?0@R<(SEP&+&5A%`W=P!]2*(+D>@9$BCP#JB(D7W),]*"RLF\0Y0^X?DM@7 MD&Z3UPDFLWTS(D?D)HK\HTIE.IV6)XX5>*$WBB"CF51NIE!?5(9QB-Z@`KX% MY"B_&9P+NQ7PAGCJ$-N4?,=N_/IH"D$B8_GF/X*`-W\C*$6"F-\CY)V)O1`' M2I6Q\1#>(.\A!\6[C_W664<;7/;T/0+ZCZ%$"IUKUXQBJ'OP")4-NM)[_5:W MLP<SPT%2#748XM0(&U257TFU776/GV/A(/3?E%BF2X84E!Y!"%-Y(<6*)E0X MGN,BNCA#3'!_9+@X`N4/@MB/",H/863L`'IR/OA9F'BY(&$HDN>0P=DF"D[ M1_-PQ]$[T'OHW%)8=M@SL"P0T=`]+[$%O"L*=6&PHJ.9U(T/.TX"TR=%S&-\ M+X@2@=[CR?:Z_\F'9(GJ)!C%OTK2?Q%M!S:]B+-1ZPL<<!C;^6$\@5T:H5W= MH$G`7&"CL@]O0I.S1>B&+3KUXK%-KF'*P(N=2S)%(@%O1"`*LM(S.8IG]))= MAQNEF.Q2-)R4*9^44"B\Q\LV)LS@_7OQ3L;""/*N.DP&?E87?RJ+/Z79SP^L M<(8_'_92BH?UA**TB/.Q#!A%>8&BRF7,E6(]`T:QND"Q5G_\K)4%BH^?=$8. M)YQ,F<'(ZL\41RA$';H.*2XVTSK[[K;0)KT_00&XYN%+^UZS<MK%V*V_=`( MP^$<]?H7V-SR''6\ZYI13TU'6DNNFC>5Q6T)U$U0G3<OO;URV^<27"6].$<? MTG%ECGQJ`X\A7\TV('O@^'UOS#]_>I;;OZ?O0OQ9S__5U1%YN<_<E546/Y? M5;;Y_Y.T+-?U`TC?WF&".P>SG`<`P['#12![<TBM.![+CC-X=.]3-E0(,2EG MM30DSK&+V2ZD>]8-:!Z>BOX/?Q5^2\FR$0"+R2!9Y/`.:D$?,X:5*A4HF5< M-47?@!N.O47<E"=\2!MPTV<4<_B?@IZ\GS7/7-U+\3<C7YNKIHRH(J(*E5VA MT(5BJ=7LZVTR,7W?P;L<9L">78R\=B;)D]CF`X(1'FM696RC)Y?,""26B)% M43R2E+)8$@K]N;?,&(Y<7T:0.8*$"%A(\7G<>@Z^1>7,ZJ&1<Q?[1027!,@? M>"6%(X`4V84_KUE%QQJ"&JQSY+BVD3`KXEE^\CZ5T6H:5RV-A2SIX``^2Z^% M`J3H*!?YID$ZE^UVB21Y"OS!"RRN$SGF&,_54`^L;(&J)23[F`^%J"G4.1:3 M6)SX$``31%Y#79P<$SX73)PN6IV!MM]D0Y)Q#`)20W4C21GHF(/$#'3"07(& M:B8@E4$PI./<V7LY1G(^:V"6AK/#.:LJ_AVR26\86<._EOD1(P_87Z3)$@!0 M)LRB4LF>S@UC9QRAXKSY=T.%0N)$#,<=><7GZ5V*%.NM^QQY(^M$P5@DA^F# MNKT%NV*L@>/L;!:S/ZC<?<_%5<GA!(/6,4$KX_XFI9^.TA>X31<&Q+HP)Z" MK>303TQW+0LPR,S`4RYZFAU_DM[2G'HM/[#\U`_.YG2FY<E_;>80D]+GN]S! MI+12/Y%#$+-F[%XK(F2AJ;M%LK,+1"E)]DB@^%RQQ2,8_E*4[X#<'FAI6(04 MUA9+R8Y=&BRM'"SA8%Z@LX=WB0Q(Y?421,*1B2Q_GBC"!T$0T--ECTJX^\MW M?8NJ/I]8F%XB::%PMS;P"E!P)S;5!E4R![+AS>F[4WQ608K\M@CB'T+;_CB M(]Q/<+1R=>9HD_.=]YN<2HUML=$(D3XPO3"U`"]S;*R0&]6SH(CY"+2HBMO` MG!B>BW.M5`KIB[L4G@80"ZR'[EVBPP/\5QV0O"\P(4<J?`V/S5&=ZV;=NV 6;=NV;=NV;=NV;5O6_@^)V4(`%`````` ` end