View previous topic :: View next topic |
Author |
Message |
Birdasaur
Joined: 07 Oct 2003 Posts: 29
|
Reading from PCI Configuration registers |
Posted: Fri Aug 13, 2004 2:13 pm |
|
|
Hey everyone, I snooped around on here for some clues but didn't see anything...
I'm trying to read the Configuration space on a PCI device. I've written a function which selects the PCI device via its IDSEL line, and then proceeds to perform a read transaction. The read is a single data byte read transaction. (No bursting) I am able to retrieve the first four bytes of information, (VendorID and DeviceID), which would come from performing a 32bit single phase read, when I specify 0x0000 as my starting address, but if I put anything else onto the AD[] bus other than 0's the PCI device ignores me.
According to the data sheet I'm following the waveforms for the transaction properly. I'm kinda stuck now as this is the first time I've tried communicating with a PCI device. I'm not sure where to look or what to look out for. Can Anyone out there give me a suggestion or clue? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
|
Birdasaur
Joined: 07 Oct 2003 Posts: 29
|
BTW |
Posted: Fri Aug 13, 2004 2:40 pm |
|
|
Sorry, I forgot to mention that I'm using a PIC18 series on a custom board with connections to match the PCI Interface spec. |
|
|
Birdasaur
Joined: 07 Oct 2003 Posts: 29
|
update |
Posted: Mon Aug 16, 2004 10:52 am |
|
|
I have figured out from reading the data sheet of the PCI device that in order to perform a Configuration read, AD[0:1] must be 00 and the address you read from should be in AD[2:7]. Doing so certainly changes the results, instead of getting nothing back, I now get results that don't seem to match the data sheet specs. I was wondering if anyone out there at all have any pointers for me for this. |
|
|
|