Re: [patch] PCI: disable MSI on more ATI NorthBridges

Krzysztof Halasa
2007-10-22T23:40:32Z

Jeff Garzik <jeff@garzik.org> 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 [...]

> But unfortunately that is rather irrelevant, since we see these
> out-of-spec devices in the field today.

Right.
--
Krzysztof Halasa