vgabios halt

Ian Smith ian at abelon.com
Wed Sep 1 07:04:00 CEST 2004


At 12:30 01/09/2004, Stefan Reinauer wrote:
>* zhu shi song <zhushisongzhu at yahoo.com> [040901 13:14]:
> > My MB is A6T based on vt8601 and vt82c686.  When call
> > vgabios(at 0xc000:0003), it halted.
> > ...
> > INSTALL REAL-MODE IDT
> > DO THE VGA BIOS
> > found VGA: vid=1023, did=8500
> > 0x55 0xAA ...(16 bytes)
> > bus/devfn = 0x100
> > biosint: # 0x1a, eax 0xb109 ebx 0x100 ecx 0x100 edx
> > 0xb29f
> > biosint: ebp 0x10fd8 esp 0xfc9 edi 0x2 esi 0x14040
> > biosint: ip 0x56e8 cs 0xc000 flags 0x16
> > 0xb109: bus 1 devfn 0x0 reg 0x2 val 0x8500
> > biosint: # 0x58, eax 0xc000 ebx 0x100 ecx 0x8500 edx 0x3c2
>            ^^^^^^
>
>This looks already weird. Go check the code what happens in
>bios int 1a eax 0xb109 and have a look at Ralph Browns Interrupt List
>whether there is an int 58 at all (I doubt it) Might be some special
>callback between graphics and main bios, too.. VIA did this IIRC.

This is a VIA VGA Bios special...

It makes all sorts of Int 21 callbacks and they need to be handled (even if 
only by a default handler). A lot of them are also undocumented (at least 
in their Northbridge docs).

However, Dave Ashley (who also posts to this list and did a good bit of the 
ground work to make VGA on EPIA work) also found another beaut - their VGA 
bios code had/has a bug in it where it will make interrupt calls with 
invalid interrupt numbers, which may be the problem here.

To quote from a mail from Dave:

>Under linuxbios the problem would manifest itself where during the vgabios
>init code you'd get into an endless loop of invalid INT callbacks. So it
>would stop the system from booting.
>
>My "fix" was to only allow certain INT's in the callback and so if an
>invalid one happens, we just abort out of the VGA init code.

Search the mail list archives for the title "Epia-MII VGA not working and 
PCMCIA rebooting" and you should be able to find the original posts - they 
were a great help to me when I was trying to get an VIA-based system up for 
a customer.

Cheers

Ian

> > biosint: ebp 0x10fd8 esp 0xfc7 edi 0x2 esi 0x14040
> > biosint: ip 0x2329 cs 0xc000 flags 0x246
> > biosint: Unsupport int #0x58
> > biosint: # 0xcd, eax 0xc000 ebx 0x100 ecx 0x8500 edx
> > 0x3c2
> > biosint: ebp 0x10fd8 esp 0xfc7 edi 0x2 esi 0x14040
> > biosint: ip 0x2329 cs 0xc000 flags 0x246
> > biosint: Unsupport int #0xcd
> > (halted)
> >
> >
> >
> >
> > __________________________________
> > Do you Yahoo!?
> > Take Yahoo! Mail with you! Get it on your mobile phone.
> > http://mobile.yahoo.com/maildemo
> > _______________________________________________
> > Linuxbios mailing list
> > Linuxbios at clustermatic.org
> > http://www.clustermatic.org/mailman/listinfo/linuxbios
> >
>_______________________________________________
>Linuxbios mailing list
>Linuxbios at clustermatic.org
>http://www.clustermatic.org/mailman/listinfo/linuxbios




More information about the coreboot mailing list