Jeff Garzik <jeff@xxxxxxxxxx> writes:
Note that INTX_DISABLE is a recent addition to PCI.
It's PCI 2.3.
Older PCI devices
support neither MSI nor INTX-disable, so make sure such devices don't
creep into your sample.
MSI has been introduced by PCI 2.2 (and thus PCI-X 1.0) so there may
be devices with MSI but without INTx-disable bit. I guess I have some
early PCI-X hardware with MSI but I don't know if they have INTx-disable
bit and I can't currently test that.
And it probably doesn't matter.
In general it is documented that INTX_DISABLE should apply only to
INTx# so devices that disable MSI based on that bit are out of spec.
The wording is:
10: This bit disables the device from asserting INTx#. A value of 0
enables the assertion of its INTx# signal. A value of 1 disables the
assertion of its INTx# signal. This bit's state after RST# is 0. Refer
to Section 6.8.1.3 for control of MSI.
So strictly speaking it mandates disabling/enabling INTx but says
nothing about other things (e.g. MSI). Some common sense dictates
it shouldn't disable MSI, I guess.
The "MSI Enable" description doesn't leave any doubt:
0: MSI Enable: If 1, the function is permitted to use MSI to request
service and is prohibited from using its INTx# pin [...]