Re: Hang after "BIOS data check successful" with DVI

Dave Jones
2004-08-17T17:00:36Z

On Tue, Aug 17, 2004 at 09:51:55AM -0400, Zwane Mwaikambo wrote:
> On Tue, 17 Aug 2004, Petr Vandrovec wrote:
>
> > On 16 Aug 04 at 16:55, Shaun Jackman wrote:
> > > When I have a DVI display plugged into my Matrox G550 video card the
> > > boot process hangs at "BIOS data check successful". I am running Linux
> > > kernel 2.6.6. This problem does not affect Linux kernel 2.4.26. If I
> > > boot without the DVI display plugged in, I can plug it in after the
> > > boot process and the display works.
> >
> > Try disabling CONFIG_VIDEO_SELECT and/or comment out call to store_edid
> > in arch/i386/boot/video.S. Also which bootloader you use? From
> > quick glance at bootloaders, grub1 seems to set %sp to 0x9000, while
> > LILO to 0x0800. And I think that 2048 byte stack (plus something already
> > allocated by loader) might be too small for DDC call, as MGA BIOS first
> > creates EDID copy on stack...
>
> Urgh, this bug is still around :(
>
> http://bugme.osdl.org/show_bug.cgi?id=1458

sidenote: A number of the int 10h calls in arch/i386/boot/video.S either
don't check the return code, and blindly assume everything went ok,
or do the wrong thing with them.

Example..

# get video mem size
leaw modelist+1024, %di
movw $0x4f00, %ax
int $0x10
xorl %eax, %eax
movw 18(%di), %ax
movl %eax, %fs:(PARAM_LFB_SIZE)

Checking http://www.ctyme.com/intr/rb-0273.htm shows that on return
from the int 10h, we should check al==4f before doing anything with
the results. Instead we not only ignore the return code, but trash it 8-)

Same story with function 4f0a a few lines below.

I did have a patch to change this a looong time ago (early 2.5)
but I don't know what became of it. Even google doesn't seem to turn it
up, so its possible I never got around to posting it.

Dave