LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* Geode LX800 hanging at boot in vesa_store_edid() w/ CONFIG_FIRMWARE_EDID=y
@ 2008-03-04  7:11 Andrew Paprocki
  2008-03-04 15:39 ` Jordan Crouse
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Paprocki @ 2008-03-04  7:11 UTC (permalink / raw)
  To: linux-kernel; +Cc: Jordan Crouse

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.

Thanks,
-Andrew

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Geode LX800 hanging at boot in vesa_store_edid() w/ CONFIG_FIRMWARE_EDID=y
  2008-03-04  7:11 Geode LX800 hanging at boot in vesa_store_edid() w/ CONFIG_FIRMWARE_EDID=y Andrew Paprocki
@ 2008-03-04 15:39 ` Jordan Crouse
  0 siblings, 0 replies; 2+ messages in thread
From: Jordan Crouse @ 2008-03-04 15:39 UTC (permalink / raw)
  To: Andrew Paprocki; +Cc: linux-kernel

On 04/03/08 02:11 -0500, Andrew Paprocki wrote:
> 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.

This is most likely a BIOS bug.  Once we go in to the hated INT10,
we lose all control (and visiblity).  If I can make silly assumptions
based on your description, it looks like there may be some sort of very
long timeout on the bitbanging code in the BIOS that does the DDC.

Can you give me the details of the platform and BIOS vendor?  I'll work
the issue from my end.

Jordan
-- 
Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-03-04 15:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-04  7:11 Geode LX800 hanging at boot in vesa_store_edid() w/ CONFIG_FIRMWARE_EDID=y Andrew Paprocki
2008-03-04 15:39 ` Jordan Crouse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).