[Xorg-driver-geode] Geode LX video testing results
Jordan Crouse
jordan.crouse at amd.com
Sun Dec 23 09:11:08 PST 2007
On 22/12/07 15:47 -0500, Bart Trojanowski 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.
Thats probably because the int10 code is failing when we sut down
graphics. With a VGA text console, we _need_ a int10 to get back
the VGA mode. Don't ask me why, I have no idea.
> 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? :)
if the int10 doesn't work on shutdown, then this is not useful to us,
unfortunately. Also, we need to make sure this works on Insyde BIOS
too - but I expect that this might have the side effect of disabling
DDC everywhere, and that would be bad. I can't test this until after
the New Year - can anybody try this on an Insyde BIOS that previously
had working DDC?
Jordan
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
More information about the Xorg-driver-geode
mailing list