Subject: PCI-Express question: standard offsets for PCI-e registers in PCI config-space?
To: None <tech-kern@netbsd.org>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: tech-kern
Date: 11/14/2005 23:14:44
To anyone who's read official PCI-Express standards, this is probably
a trivial question...

I'm looking at src/sys/dev/pci/if_bgereg.h.  The PCI-Express variants
of the bge chips use a PCI config-space register, at offset 0xD8.
bgereg.h currently uses symbolic name BGE_PCI_UNKNOWN1, for this register.

In contrast, the OpenSolaris header file bge_hw.h gives the names
PCI_CONF_DEV_CTRL and PCI_CONF_DEV_STUS to config-space offsets 0xD8
and 0xDA, respectively, with a comment which leaves me guessing that
for PCI-Express devices, these config-space registers are `standard'
for device control and device status.

If I'm reading search-engine hits on PCI-Express SIG Errata correctly,
these registers are now required for all PCI-e devices, and so we
should either add them to sys/dev/pci/pcireg.h, or (if anyone thinks a
separate file is warranted) in, say, sys/dev/pci/pciexpressreg.h?

Can anyone confirm or deny my guess?