[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Config area



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ü	é