[Xorg-driver-geode] Geode LX video testing results

Bart Trojanowski bart at jukie.net
Sat Dec 22 08:35:13 PST 2007


I have continued my investigation into where X freezes.

So far we know that using the amd driver crashes when DDC data is
retrieved from the BIOS...

* Jordan Crouse <jordan.crouse at amd.com> [071214 14:45]:
> > It dies in vbeDoEDID() called by GeodeDoDDC().
> 
> There are a lot of INT10 calls in that code path.  WE're getting pretty close
> to needing somebody with a FS2 and knowledge of the BIOS to jump in and
> watch what happens on the other side.

I did some more probing.  And here are my findings...

* X executes the BIOS code in an emulator (news to me, probably not to
   the rest on this list).

* the emulator dies when executing outl(0x20, 00000018)

   This is *not* the first out() instruction.  It is the first port
   operation on port 0x20.

   0x20 is the initialization port for the PIC.  Why any INT 10 routine
   would need to (re)initialize the PIC is a mystery to me.

* the call trace before we freeze is...

  /usr/lib/xorg/modules//libint10.so(x_outl+0x1b6) [0xb7b3cd46]
  /usr/lib/xorg/modules//libint10.so [0xb7b54fd4]
  /usr/lib/xorg/modules//libint10.so(X86EMU_exec+0x23a) [0xb7b552ca]
  /usr/lib/xorg/modules//libint10.so(xf86ExecX86int10+0xf9) [0xb7b3f219]
  /usr/lib/xorg/modules//libvbe.so(vbeDoEDID+0x30e) [0xb79e24ce]
  /usr/lib/xorg/modules/drivers//amd_drv.so(GeodeDoDDC+0xce) [0xb7b8033e]
  /usr/lib/xorg/modules/drivers//amd_drv.so [0xb7b95537]
  X(InitOutput+0x9a4) [0x80a8f14]
  X(main+0x27b) [0x8076dab]
  /lib/libc.so.6(__libc_start_main+0xe0) [0xb7d4a050]
  X(FontFileCompleteXLFD+0x1e9) [0x8076301]

Some thoughts...

* Is it common for other VIDEO BIOS implementations to muck with the PIC?
* What would happen if I ignored a write to port 20?

Jordan, you said that it may be time to talk to people on the general
list.  Did you mean <xorg at lists.freedesktop.org> ?

-Bart

-- 
				WebSig: http://www.jukie.net/~bart/sig/


More information about the Xorg-driver-geode mailing list