Diamond Monster 3D PCI problems

Michael Dale Long (mlong@long.dyn.ml.org)
Tue, 29 Sep 1998 13:32:42 -0500 (EST)


Here's a copy of an e-mail I sent to the kernel PCI maintainer. Is
anyone else having problems similar to this with any PCI cards?

Since I sent this message, I also have installed the 2.0.36 pre-6 patch.
Didn't change anything as far as my problem is concerned. Any help is
appreciated. Thanks!

===========================================================================
I have recently purchased a Diamond Monster 3D PCI video card. The Linux
kernel detects the card and identifies it properly, but incorrectly
detects the Prefetchable 32-bit memory at 0x0, accord to /proc/pci. I
have been in contact with the maintainer of LinuxGlide (the driver for the
card) and we have reached the conclusion that it is a problem with the
kernel's PCI detection routine. I have tried both 2.0.35 (which I use
normally) and 2.1.122. Both gave me the same results for the memory
address. I can get LinuxGlide to see the card if I boot Windows 95 first,
then go to Linux, but the kernel itself sees no PCI devices at all, which
is odd since my 2D graphics still works fine (and is usually detected). I
haven't found any patches for this kind of problem. Neither of the
kernels I tried had any patches on them.

I then modified the 2.0.35 kernel's drivers/pci/pci.c to enable the
#define DEBUG. All this did was reveal that the startup detection routine
was where the detection was wrong. Not particularly useful, but I guess
it rules out the possibility of the data being corrupted later on.

System details:
---------------
daniel:~$ cat /proc/version
Linux version 2.0.35 (root@daniel) (gcc version 2.7.2.1) #21 Wed Aug 5
18:23:14 EST 1998

daniel:~$ cat /proc/cpuinfo
processor : 0
cpu : 586
model : Pentium 75+
vendor_id : GenuineIntel
stepping : 5
fdiv_bug : no
hlt_bug : no
f00f_bug : yes
fpu : yes
fpu_exception : yes
cpuid : yes
wp : yes
flags : fpu vme de pse tsc msr mce cx8
bogomips : 35.84

Output of kernel messages to syslog regarding PCI messages during boot
time (with the #define DEBUG enabled in pci.c):

Sep 27 01:03:53 daniel kernel: pcibios_init : BIOS32 Service Directory
structure at 0x000fff70
Sep 27 01:03:53 daniel kernel: pcibios_init : BIOS32 Service Directory
entry at 0xfda9c
Sep 27 01:03:53 daniel kernel: pcibios_init : PCI BIOS revision 2.00 entry
at 0xfdb00
Sep 27 01:03:53 daniel kernel: Probing PCI hardware.
Sep 27 01:03:53 daniel kernel: ...scan_bus(busno=0,mem=0024b87c)
Sep 27 01:03:53 daniel kernel:
...pci_malloc(size=32,mem=0024b87c)...pci_malloc(
size=32,mem=0024b89c)...pci_malloc(size=32,mem=0024b8bc)...pci_malloc(size=32,me
m=0024b8dc)...pci_malloc(size=32,mem=0024b8fc)PCI devices found:
Sep 27 01:03:53 daniel kernel: Bus 0, device 7, function 0:
Sep 27 01:03:53 daniel kernel: IDE interface: CMD 640 (buggy) (rev 2).
Sep 27 01:03:53 daniel kernel: Medium devsel. IRQ 14.
Sep 27 01:03:53 daniel kernel: Bus 0, device 6, function 0:
Sep 27 01:03:53 daniel kernel: VGA compatible controller: Trident TG
9440 (rev 227).
Sep 27 01:03:53 daniel kernel: Medium devsel. Fast back-to-back
capable. IRQ 255.
Sep 27 01:03:53 daniel kernel: Non-prefetchable 32 bit memory at
0x80000000.
Sep 27 01:03:53 daniel kernel: Non-prefetchable 32 bit memory at
0x80200000.
Sep 27 01:03:53 daniel kernel: Bus 0, device 5, function 0:
Sep 27 01:03:53 daniel kernel: Multimedia video controller: 3Dfx
Voodoo (rev 2).
Sep 27 01:03:53 daniel kernel: Fast devsel. Fast back-to-back
capable.
Sep 27 01:03:53 daniel kernel: Prefetchable 32 bit memory at 0x0.
Sep 27 01:03:53 daniel kernel: Bus 0, device 2, function 0:
Sep 27 01:03:53 daniel kernel: Non-VGA device: Acer Labs M1449 (rev
178).
Sep 27 01:03:53 daniel kernel: Medium devsel. Master Capable. No
bursts.
Sep 27 01:03:53 daniel kernel: Bus 0, device 0, function 0:
Sep 27 01:03:53 daniel kernel: Host bridge: Acer Labs M1451 (rev 189).
Sep 27 01:03:53 daniel kernel: Slow devsel. Master Capable.
Latency=32.

The last part of that is identical to /proc/pci's output, except I've just
discovered that the output is different (and completely wrong from what I
can tell) after I start XFree86. I have no idea why it would change like
that, though. Here's the version after starting X:

daniel:/tourian/home/mlong/mail$ cat /proc/pci
PCI devices found:
Bus 0, device 7, function 0:
Unknown class: Unknown vendor Unknown device (rev 54).
Vendor id=422. Device id=7b7c.
Fast devsel. Fast back-to-back capable. IRQ 14.
Prefetchable unknown memory at 0xbc3ebc30.
Prefetchable unknown memory at 0xbc3ebc30.
I/O at 0xfffffffc.
I/O at 0xfffffffc.
I/O at 0xfffffffc.
I/O at 0xfffffffc.
Bus 0, device 6, function 0:
Unknown class: Unknown vendor Unknown device (rev 255).
Vendor id=ffff. Device id=ffff.
Fast back-to-back capable. BIST capable. IRQ 255.
Bus 0, device 5, function 0:
Unknown class: Unknown vendor Unknown device (rev 255).
Vendor id=ffff. Device id=ffff.
Fast back-to-back capable. BIST capable.
Bus 0, device 2, function 0:
Unknown class: Unknown vendor Unknown device (rev 255).
Vendor id=ffff. Device id=ffff.
Fast back-to-back capable. BIST capable. Master Capable.
Latency=255. Min Gnt=255.Max Lat=255.
Bus 0, device 0, function 0:
Unknown class: Unknown vendor Unknown device (rev 255).
Vendor id=ffff. Device id=ffff.
Fast back-to-back capable. BIST capable. Master Capable.
Latency=255. Min Gnt=255.Max Lat=255.

Hope this all means more to you than it does to me. :) I can't think of
anything else that would be particularly useful, but if you need some more
information, just ask.

Thank you for your time.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/