From: Taed Nelson [TaedN@vertical.com]
Sent: Tuesday, September 28, 1999 7:35 PM
To: 'Mike Pittelkow'; 'NTdev'
Subject: RE: [ntdev] Diffulty writing to bridge...

> I have a need for an internal tool to write to the device 
> specific data area
> in the configuration space for a particular PCI-PCI bridge.  
> As far as I can
> tell, NT seems to be blocking the write to that area 
> (HalSetBusData).  It
> allows me to write to the device specific area of a different 
> function of
> the same adapter (that is not a bridge).  Has someone seen 
> something like
> this?  Any solutions?

Annoying, isn't it?  However, Microsoft documents that behavior in a few
places, so they gave you fair warning.

We ended up just writing to the bridge directly -- bypassing NT -- by using
the PCI configuration registers at I/O locations 0x0CF8 and 0x0CFC.  You'll
have to get a PCI book for the rest of the details, but it works fine.

However, note that what you're doing is bypassing NT, and unfortunately, NT
caches all of that information about the PCI bridges which it reads at boot
time (prior to the first driver loading).  Thus, for example, if you change
the I/O addresses of devices behind the bridge (and the bridge's I/O range
registers), this will cause problems if HalGetSlotResources (I think that is
the function) is called, because that function may decide to reprogram the
bridge.

As you might have guessed, I speak from experience.
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ To unsubscribe, send email to ntdev-request@atria.com with body
UNSUBSCRIBE (the subject is ignored). ]
