[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Config area
- To: Mailing List Recipients <pci-sig-request@znyx.com>
- Subject: Config area
- From: Chris Malcheski <71232.360@CompuServe.COM>
- Date: 16 Aug 96 17:48:21 EDT
- Resent-Date: 16 Aug 96 17:48:21 EDT
- Resent-From: pci-sig-request@znyx.com
- Resent-Message-Id: <"B1iyY1.0.I_2.xsE5o"@dart>
- Resent-Sender: pci-sig-request@znyx.com
Help!
I've got a very simple, basic scan loop that scans through bus 0 to [max bus
number], devices 0 through 31 and functions 0 through 7. All I do in this loop
is read register 2 to check the class ID info. And on some machines I'm getting
lockups during this loop. I pored over the only PCI book I have, and it
inferred something without actually stating it. I need clarification.
A non-existent device must return FFFF as the vendor ID. I inferred from this
that maybe attempting to read beyond register location 0 on a non-existent
device is causing the lockups; location 0 is the only register on a non-existent
device that must return a value. I modified my test program to first check for
the FFFF vendor ID; if found, do no further reads and move on to the next
function. Does anybody know if this could have been causing the lockups? I'll
know within a few hours whether it solved the lockups on my testers' machines
but I don't like jury rigged solutions; is this a proper approach to take?
TIA!
-- Chris
D ü é