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

Gideon Romm gideon at symbio-technologies.com
Mon Dec 24 07:16:48 PST 2007


A few notes on testing the two debs from Bart:

Hardware
--------------
1. Geode LX800, GSW BIOS:  X starts in 800x600 as in Bart's test, but
I find I cannot switch virtual terminals to a console login
(ctrl-alt-F1).  The video gets garbled and it doesn't let go of the
display.  I can, however, switch back to the X display and it restores
itself without problems.

2. Geode GX2, GSW BIOS:  X does not start and fails with the Backtrace
first noted in the launchpad bug.

3. Geode GX2, GeodeROM BIOS:  X does not start and fails with the same
backtrace first noted in the launchpad bug.

So, it appears Jordan's patch to fix the backtrace issue fixed it for
LX but not GX.  It further seems that although we got X up, we are not
out of the woods.  Now, if the xf86emu is being triggered by the BIOS
to start reinitializing chipsets and what-not, perhaps all of this
wonky behavior stems from the same place, and by fixing whatever the
BIOS is triggering in the emulator will help fix (or even obviate the
need for a patch in) the amd driver.

HTH,

-Gadi

On Dec 22, 2007 3:47 PM, Bart Trojanowski <bart at jukie.net> wrote:
> A bit more info on the PIC change...
>
> * Bart Trojanowski <bart at jukie.net> [071222 11:35]:
> > * 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.
>
> Here are the bits in port 0x20...
>
>  7-5    0 (only used in 8080/8085 mode)
>  4      ICW1 is being issued
>  3      (LTIM)
>         =0  edge triggered mode
>         =1  level triggered mode
>  2      interrupt vector size
>         =0 successive interrupt vectors use 8 bytes (8080/8085)
>         =1 successive interrupt vectors use 4 bytes (80x86)
>  1      (SNGL)
>         =0  cascade mode
>         =1  single mode, no ICW3 needed
>  0      ICW4 needed
>
> ... so 0x0018 means:
>
>  - ICW1 is used
>  - level triggerred
>  - successive interrupt vectors use 8 bytes
>  - cascade mode
>
> > 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?
>
> So I made the code skip over any writes to port 20.  Freeze is gone.  X
> starts up in 800x600... looks like DDC is not working.  Also exiting
> from X (ctrl-alt-bs) does not restore the display back to text mode.  I
> get (pseudo-)random blue and green noise on the screen.
>
> At startup, when vbeReadEDID() returns I get this in the log...
>
>         (II) AMD(0): VESA VBE DDC read failed
>         (II) AMD(0): Monitor0: Using default hsync range of 31.50-37.90 kHz
>         (II) AMD(0): Monitor0: Using default vrefresh range of 50.00-70.00 Hz
>         (WW) AMD(0): Unable to estimate virtual size
>         (II) AMD(0): Clock range:  25.18 to 229.50 MHz
>
>         ...
>
>         (--) AMD(0): Virtual size is 800x600 (pitch 1024)
>         (**) AMD(0): *Default mode "800x600": 40.0 MHz, 37.9 kHz, 60.3 Hz
>         (II) AMD(0): Modeline "800x600"   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync
>         (**) AMD(0): *Default mode "800x600": 36.0 MHz, 35.2 kHz, 56.2 Hz
>         (II) AMD(0): Modeline "800x600"   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync
>         (**) AMD(0): *Default mode "640x480": 25.2 MHz, 31.5 kHz, 59.9 Hz
>         (II) AMD(0): Modeline "640x480"   25.18  640 656 752 800  480 490 492 525 -hsync -vsync
>         (==) AMD(0): DPI set to (100, 100)
>
> I think that the x86emu needs to have a black list of ports that it
> should never ever touch even if the BIOS code it's executing requests
> it.  It would seem that port 20 is one of them... but there ought to be
> others.  Like port 0 for example; I don't know if this is a mistake or a real
> port.  What's at port 0?
>
> Anyway, I propose that we try this trivial patch against xorg-core on
> some other hardware...
>
> http://www.jukie.net/~bart/patches/xorg-server/20071222/0001-X86EMU-blacklist-I-O-port-20-for-INT-10-emulation.patch
>
> The xorg-server and video-amd packages rebuilt for Ubuntu/Gutsy are
> available here:
>
> http://www.jukie.net/~bart/debian/xorg/xserver-xorg-core_1.3.0.0.dfsg-12ubuntu8_i386.deb
> http://www.jukie.net/~bart/debian/xorg/xserver-xorg-video-amd_2.7.7.3-1_i386.deb
>
> It starts up X for me, but does it work for you? :)
>
> -Bart
>
> _______________________________________________
> Xorg-driver-geode mailing list
> Xorg-driver-geode at lists.x.org
> http://lists.x.org/mailman/listinfo/xorg-driver-geode
>


More information about the Xorg-driver-geode mailing list