From: Patrick on
Hi all,

I've a system which containing several PLX bridges. I need access to a
particular GPIO register which exists in the extended PCI Config Space.
Previously we were using HalGetBusData/SetBusData to toggle the GPIO, but
these calls are now invalid in Vista.

The driver for the PLX bridges are the default pci.sys (from
Microsoft).

Is there a method to do this ? Some of the newer calls requires the
PDO or DO, and these calls only allow me to read/write the PCI Config space
of my own device. What I need is the ability to read/write the PCI Config
Space of another device. For Vista, how can a driver do (1) scan all
devices in the pci bridge (2) select a device, and go modify the PCI Config
Space ?

At this point, all I can get is the bus/device/function id of the PLX
bridge that I need to modify the GPIO, but I am not really sure how I can get
access to that device's config space to make the change. Any advice will be
much appreciated.


From: RossettoeCioccolato on
Patrick,

Have you looked at BUS_INTERFACE_STANDARD::SetBusData? The documentation is
a little thin, but I believe that it will work at elevated IRQL. The better
design would be to schedule a DPC in the ISR (if you can tolerate the
latency).

Regards,

Rossetoecioccolato.

"Patrick" <Patrick(a)discussions.microsoft.com> wrote in message
news:164AA05C-D997-4245-8BE4-E4B9DEF8090B(a)microsoft.com...
> Hi all,
>
> I've a system which containing several PLX bridges. I need access to a
> particular GPIO register which exists in the extended PCI Config Space.
> Previously we were using HalGetBusData/SetBusData to toggle the GPIO, but
> these calls are now invalid in Vista.
>
> The driver for the PLX bridges are the default pci.sys (from
> Microsoft).
>
> Is there a method to do this ? Some of the newer calls requires the
> PDO or DO, and these calls only allow me to read/write the PCI Config
> space
> of my own device. What I need is the ability to read/write the PCI Config
> Space of another device. For Vista, how can a driver do (1) scan all
> devices in the pci bridge (2) select a device, and go modify the PCI
> Config
> Space ?
>
> At this point, all I can get is the bus/device/function id of the PLX
> bridge that I need to modify the GPIO, but I am not really sure how I can
> get
> access to that device's config space to make the change. Any advice will
> be
> much appreciated.
>
>


From: alberto on

Have you tried to use CF8/CFC ? I know this is a big no-no in
Windowsland, but sometimes there isn't any better alternative.

Alberto.


On Jan 19, 6:03 pm, Patrick <Patr...(a)discussions.microsoft.com> wrote:
> Hi all,
>
>      I've a system which containing several PLX bridges. I need access to a
> particular GPIO register which exists in the extended PCI Config Space.
> Previously we were using HalGetBusData/SetBusData to toggle the GPIO, but
> these calls are now invalid in Vista.
>
>       The driver for the PLX bridges are the default pci.sys (from
> Microsoft).  
>
>       Is there a method to do this ? Some of the newer calls requires the
> PDO or DO, and these calls only allow me to read/write the PCI Config space
> of my own device. What I need is the ability to read/write the PCI Config
> Space of another device.  For Vista, how can a driver do  (1) scan all
> devices in the pci bridge (2) select a device, and go modify the PCI Config
> Space ?  
>
>       At this point, all I can get is the bus/device/function id of the PLX
> bridge that I need to modify the GPIO, but I am not really sure how I can get
> access to that device's config space to make the change. Any advice will be
> much appreciated.

From: Don Burn on
It is a wonderful way to crash a system, this is one of the worst
suggestions that could be made.

--
Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply



"alberto" <amoreira(a)ieee.org> wrote in message
news:a03b6446-0abd-4dad-a9b8-ac18effa20ae(a)p8g2000yqb.googlegroups.com...

Have you tried to use CF8/CFC ? I know this is a big no-no in
Windowsland, but sometimes there isn't any better alternative.

Alberto.


On Jan 19, 6:03 pm, Patrick <Patr...(a)discussions.microsoft.com> wrote:
> Hi all,
>
> I've a system which containing several PLX bridges. I need access to a
> particular GPIO register which exists in the extended PCI Config Space.
> Previously we were using HalGetBusData/SetBusData to toggle the GPIO, but
> these calls are now invalid in Vista.
>
> The driver for the PLX bridges are the default pci.sys (from
> Microsoft).
>
> Is there a method to do this ? Some of the newer calls requires the
> PDO or DO, and these calls only allow me to read/write the PCI Config
> space
> of my own device. What I need is the ability to read/write the PCI Config
> Space of another device. For Vista, how can a driver do (1) scan all
> devices in the pci bridge (2) select a device, and go modify the PCI
> Config
> Space ?
>
> At this point, all I can get is the bus/device/function id of the PLX
> bridge that I need to modify the GPIO, but I am not really sure how I can
> get
> access to that device's config space to make the change. Any advice will
> be
> much appreciated.


__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4791 (20100120) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com





__________ Information from ESET NOD32 Antivirus, version of virus signature database 4791 (20100120) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com




From: Patrick on
I only briefly looked at that. I was under the impression that that call
only works for the device (that the device driver controls). I am not sure
whether I can use that call to peek at another device's config space (in my
case the PLX bridge). Can someone confirm this ?

- Patrick

"RossettoeCioccolato" wrote:

> Patrick,
>
> Have you looked at BUS_INTERFACE_STANDARD::SetBusData? The documentation is
> a little thin, but I believe that it will work at elevated IRQL. The better
> design would be to schedule a DPC in the ISR (if you can tolerate the
> latency).
>
> Regards,
>
> Rossetoecioccolato.
>
> "Patrick" <Patrick(a)discussions.microsoft.com> wrote in message
> news:164AA05C-D997-4245-8BE4-E4B9DEF8090B(a)microsoft.com...
> > Hi all,
> >
> > I've a system which containing several PLX bridges. I need access to a
> > particular GPIO register which exists in the extended PCI Config Space.
> > Previously we were using HalGetBusData/SetBusData to toggle the GPIO, but
> > these calls are now invalid in Vista.
> >
> > The driver for the PLX bridges are the default pci.sys (from
> > Microsoft).
> >
> > Is there a method to do this ? Some of the newer calls requires the
> > PDO or DO, and these calls only allow me to read/write the PCI Config
> > space
> > of my own device. What I need is the ability to read/write the PCI Config
> > Space of another device. For Vista, how can a driver do (1) scan all
> > devices in the pci bridge (2) select a device, and go modify the PCI
> > Config
> > Space ?
> >
> > At this point, all I can get is the bus/device/function id of the PLX
> > bridge that I need to modify the GPIO, but I am not really sure how I can
> > get
> > access to that device's config space to make the change. Any advice will
> > be
> > much appreciated.
> >
> >
>
>
> .
>