Community
cancel
Showing results for 
Search instead for 
Did you mean: 

PCI Configuration Space

PCI Configuration Space



When a card is inserted into a PCI, PCI-X, or PCI Express bus configuration is done by reading and writing into the configuration space.

When a capability register set is enabled it is tied together by a linked list starting with an 8-bit pointer at address 34h in the configuration space header.

Header & Capability Register Sets 

  • Each capability structure set also has a unique Capability ID
  • To find the next capability pointer we look at the base address of the capability register set and add an offset of 01h
  • When you reach a capability structure with an ID of 10h then you have reached the PCI Express Capability Structure
  • When you reach a capability structure with Next Capability Pointer of 00h then you have reached the end of the linked list


Walkthrough Example

1. We look at address 34h and see the address of the next capability register set (50h).

Start.jpg  (Click here for image)

 

2. We jump to 50h and see a capability ID of 05h (MSI Capability Structure). We look at the next capability pointer in 51h to find which address to jump to next (78h).

Msi.jpg (Click here for image)


3. We jump to 78h and see a capability ID of 01h (Power Management Capability Structure). We look at the next capability pointer in 79h to find which address to jump to the next (80h).

Pm.jpg ‎(Click here for image)


4. We jump to 80h and see a capability ID of 10h (PCI Express Capability Structure). We see 00h as the next capability pointer in 81h signifying the end of the linked list.

Pcie.jpg (Click here for image)









Update History

1. Initial Release - December 27 2012


Key Words

PCI, PCI-X, PCIe, PCI Express, Configuration Space, Linked List


Disclaimer

© 2010 Altera Corporation. The material in this wiki page or document is provided AS-IS and is not

supported by Altera Corporation. Use the material in this document at your own risk; it might be, for example, objectionable,

misleading or inaccurate.Retrieved from http://www.alterawiki.com/wiki/Altera_Wiki

Attachments
Version history
Revision #:
1 of 1
Last update:
‎06-26-2019 05:53 PM
Updated by:
 
Contributors