EPIA-M 6000 or M-10000 Frame buffer + linuxbios +/- VGA

Dave Ashley linuxbios at xdr.com
Sat Mar 6 23:54:00 CET 2004


Ron asked:
>>What I see from CVS and version that works for me( as of Jul-2003 )
>Dave Ashley, what do you think?

I think Ron Minnich needs to get involved + get my patch working solidly
with the current version of linux bios :^). I'm using my version based on that
July snapshot of linuxbios, from my point of view it is rock solid. So
the question of stability when applying my patch to the latest version isn't
really something I can offer much help on, I haven't been updating my version
of linuxbios as changes have been made.

However my guess is it is related to the vgabios callbacks I implemented.
The docs I have (CLE266 bios porting guide as I recall) talk about what
callbacks have to be implemented. I'm not implementing all of them. I didn't
even understand the docs completely, and there are INT calls that being used
that aren't even mentioned. The way to address that might be to run the bios
emulator on the original vgabios and see how *it* sets up the registers for
the callbacks.

I had a problem where if the motherboard got hot, the vga bios would just
hang. I never figured out the cause, I hacked around it. Once an INT comes in
with an invalid number, I pop out of the vgabios mode. That is a real hack
where I restore the stack pointer to its original value before switching into
16 bit mode, or something...I don't recall exactly. It's in my patch. But
if anything changed related to invoking the vga bios, my hack will probably be
broken.

As I recall now that I think about it, I had to push more registers at
some point than the code originally pushed. I can't even remember the context
but I think it was vga related. I recall posting to this mailing list about
it, I think Eric B. had some comment about already fixing this in V2. It
was some really subtle problem as I recall...In thinking more about it I
think this was related to V2 of linuxbios and I was using an older compiler to
build it and my compiler was not making use of some register to store a local
variable, so it wasn't push/poping it, so when calling the vgabios and it
ended up trashing the register it was never preserved. This was V2 but perhaps
it applies to V1 as well...

At any rate I think the best thing I can do to contribute is to get an
epia-m into Ron's hands, and this is already accomplished. I don't think
I've really helped any though just now :^(...

All I can say though is linuxbios works perfectly well for my needs.

-Dave



More information about the coreboot mailing list