[lkml]   [2008]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectGeode LX800 hanging at boot in vesa_store_edid() w/ CONFIG_FIRMWARE_EDID=y
I have a LX800 board which hangs at boot time *only* if no monitor is
plugged into the VGA port. It hangs for about 20 minutes and then
continues booting. If a monitor is plugged into the system while it
is hung, it recovers after a few minutes and continues booting. I
added puts() debugging in the kernel main() and it is hanging in
vesa_store_edid() in the first asm() call:

/* Note: The VBE DDC spec is different from the main VESA spec;
we genuinely have to assume all registers are destroyed here. */

asm("pushw %%es; movw %2,%%es; "INT10"; popw %%es"
: "+a" (ax), "+b" (bx)
: "c" (cx), "D" (di)
: "esi");

After waiting for a really long time, this int10 finishes and it
executes the second asm() call which returns right away. I never
tried booting the system without a head, so I never noticed this
problem before. Does this point to some kind of BIOS bug? The system
boots fine when CONFIG_FIRMWARE_EDID is disabled (I'm not even sure if
it should have been enabled in the first place), but I want to make
sure the manufacturer is alerted if there is a BIOS problem.


 \ /
  Last update: 2008-03-04 08:13    [W:0.072 / U:0.172 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site