linux device driver - Difference Between PCI and PCIe -


i have started reading pci , pcie. came across point "from software standpoint, pci , pci express devices same. pcie devices had same configuration space, bars, , (usually) support same pci intx interrupts".

pcie uses serial interface while pci uses parallel interface. how can linux driver written pci can used pcie device? confused. please help.

regards,

ajmal

the software pci not directly work pcie is. there minor changes required. differences -

  • configuration space access
    • pci - legacy access method using io port
    • pcie - enhanced access method using mmio (though supports io port addressing still sw needs support mmio current generation socs)
  • interrupt
    • pci - dedicated interrupt(inta#, intb#, etc) side band signal
    • pcie - either msi or legacy interrupt assert/deassert messages
  • clocking (this more of change in lower level phy code)
    • pci - side band signal. need initialized , enabled low level code during init
    • pcie - embedded in data signals , can recovered clock recovery circuit. no need worry enabling clock
  • qos (quality of service)
    • pci - no concept of qos
    • pcie - has qos support using virtual channel. sw need configure virtual channel related stuff during initialization (this not must because if not configure, default setting take effect. important feature)
  • configuration space details
    • sw needs implement extended configuration space parsing support. (for enumeration or bus scan, there no need of change header still same)

these few highlights. whole target of pci-sig group make backward compatible. older software minor changes can work socs.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -