Messages in this thread | | | Date | Mon, 5 Oct 1998 00:04:20 +0200 | From | Martin Mares <> | Subject | Re: Diamond Monster 3D PCI problems |
| |
Hello,
> 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.
> 00:05.0 Multimedia video controller: 3Dfx Interactive, Inc. Voodoo (rev 02) > Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- > Status: 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- > 00: 1a 12 01 00 00 00 80 00 02 00 00 04 00 00 00 00 > 10: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
This means that your BIOS has not assigned any address to the card nor enabled its address decoders (I/O-, Mem-). The detection routine in the kernel is OK, it should use what BIOS assigned. If /proc/pci lists it as memory at address 0, it's definitely broken, but it's an obsolete interface anyway and lspci lists it right.
Unfortunately, it's too late to try to work-around these problem in the kernel before 2.2 comes out. I already know I'll have to make the new PCI code I plan for 2.3 support assigning of addresses to devices where BIOS scamped his job. If LinuxGlide doesn't use the new 2.1 PCI functions yet, there is a simple solution: use setpci to set the address to some sensible value manually. In other cases, the best solution would be to tell the LinuxGlide maintainers they should contact me.
Have a nice fortnight -- Martin `MJ' Mares <mj@ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/ Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth "Error: Compiler unable to abort!"
- 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/
| |