PLEASE REVIEW: Adding a pci_if method to facilitate specialized PCI bus drivers

John Baldwin jhb at FreeBSD.org
Fri Jun 27 14:22:28 PDT 2003


On 27-Jun-2003 Thomas Moestl wrote:
>> Doing it in the bus might actually make life simpler.  Right now
>> when using different tables for routing PCI interrupts on x86, I
>> have to write two different bridge drivers all 
>> the time, one for host bridges and one for PCI-PCI bridges, thus we have
>> ACPI host-PCI and PCI-PCI bridge drivers, PCIBIOS $PIR host-PCI and PCI-PCI
>> bridge drivers and MPTable host-PCI and PCI-PCI bridge drivers.  Being
>> able to just have an ACPI PCI bus driver, a PCIBIOS PCI bus driver, and
>> an MPTable PCI bus driver would be nice.
> 
> I don't know much about these tables, so I don't know how well this
> would work. Is it guaranteed that all bridges will have
> ACP/PCIBIOS/MPTable tables, and generic drivers will never be used?

No.  The generic driver will always be used in the case of a PCI-PCI
bridge in a card in an add-on slot.  Or should at least.  The only

> At least the PCIBIOS method seems to just offer routing as far as I
> can see (no special enumeration, and no extra per-device information
> to be considered), so having a bus driver for it would probably be
> overkill, since it can be handled well in a bridge driver. Needing an
> extra one for host bridges is a bit annoying, but most of the code
> could be shared, and it is probably much worse to not be able to
> interact with the generic drivers any more.

If it were in the bus driver, I would only have to have one such driver
I think rather than two.  For now I will just leave it as is I guess.
ACPI already has a PCI bus driver that caches ACPI handles for each
PCI device, but the other routing methods (PCIBIOS/MPTable) have bridge
drivers that just route interrupts.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the freebsd-hackers mailing list