[Xorg-driver-geode] GeodeLX freeze with General Software BIOS saga continues

Bart Trojanowski bart at jukie.net
Fri Jan 11 12:39:27 PST 2008


Continuing on...

I am looking at the source of the invalid port, and it comes from this
PCI-configuration-mechanism access:

 outl (0x0CF8, 0x80007814)
 inl (0x0CFC)                   // read 0xE1000000

This is of course emulated by the x86emu code.

Looking at "Ralf Brown Files" [1] I have decoded it the request to
mean...

80007814
8         31    - enable configurations space mapping
   0      16:23 - bus 0
    78    11:15 - dev F
     00    8:10 - fn  0
      14   7:2  - reg 0x14 (BAR 1)

So it looks like it's trying to get get BAR 1 of device 00:0f.0...

$ lspci -v -s 00:0f.0
00:0f.0 ISA bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA (rev 03)
        Subsystem: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA
        Flags: 66MHz, medium devsel
        I/O ports at f400 [size=8]
        I/O ports at f000 [size=256]
        I/O ports at ec00 [size=64]
        I/O ports at e800 [size=32]
        I/O ports at e400 [size=128]
        I/O ports at 9c40 [size=64]

The real value of BAR 1 is 0xf000, which is the value that we get in
ddcprobe (see previous email) when it calls the io ports directly.

The emulator returns 0xE1000000, which is not validated by the BIOS as a
being too high to be an IO port and it messes up the BIOS.

I don't have any more answers yet.

-Bart

[1] http://www.cs.cmu.edu/~ralf/files.html

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


More information about the Xorg-driver-geode mailing list