cvs commit: src/sys/dev/pci pci.c

Scott Long scottl at
Fri Feb 1 18:18:49 PST 2008

John Baldwin wrote:
> jhb         2008-02-01 20:31:09 UTC
>   FreeBSD src repository
>   Modified files:
>     sys/dev/pci          pci.c 
>   Log:
>   Relax the check for a PCI-express chipset by assuming the system is a
>   PCI-express chipset (and thus has functional MSI) if there are any
>   PCI-express devices in the system, not requiring a root port device.
>   With PCI-X the chipset detection has to be very conservative because there
>   are known systems with PCI-X devices that do not appear to have PCI-X
>   chipsets.  However, with PCI-express I'm not sure it is possible to have
>   a PCI-express device in a system with a non-PCI-express chipset.  If we
>   assume that is the case then this change is valid.  It is also required
>   for at least some PCI-express systems that don't have any devices with
>   a root port capability (some ICH9 systems).
>   MFC after:      1 week
>   Reported by:    jfv
>   Revision  Changes    Path
>   1.357     +2 -5      src/sys/dev/pci/pci.c

It's certainly possible for a PCI-X device to be plugged into a PCI-only
system; PCI-X is backwards compatible at an electrical an protocol level
with 3.3V PCI.  So yes, you will see PCI-X extcaps on PCI-X cards even
if there is no PCI-X bridge.

I'm sure there are fun, interesting, and highly obtuse ways to get a
PCI-E device onto a system with no PCI-E root complex.  I do agree with
your implicit statement to not worry about such an edge case, at least
not until such an edge case becomes a demonstrated reality.  What does
worry me is that Intel would release PCI-E chipsets without an
advertised root complex.  That would seem to blatantly violate the spec.
Does Jack have confirmation that this is really the case?  If so, what
else is being played fast-and-loose with that we should know about?


More information about the cvs-src mailing list