Eric W. Biederman
ebiederman at lnxi.com
Wed Nov 3 16:28:00 CET 2004
Li-Ta Lo <ollie at lanl.gov> writes:
> >From my memory of the LXNI visit, the pci_domain represents different
> ways to access PCI CS (0xcf8, 0xcfc). So the very low level of PCI
> access method will be different depends on the domain. Now the question
> is why not the pci_set_method() a device method of the PCI_DOMAIN
> device ? It is in the hardwarmain() now.
Because no one has done the work :)
The immediate reason for introducing the concept was so that we would not need
to override the root device methods, as chipsets have different requirements
when scanning their busses.
pci_set_method is not something that we really want as a method. Because
if we know what the hardware is we don't need to auto-detect the method.
Although having scanbus call pci_set_method may not be the worst way
I suspect what we want is a pci_read/write_config... set of methods
that the code will keep looking to parent busses to provide if
the current bus not provide the operations.
An alternative is to provide pci_read/write_config.... methods that
also take a domain parameter. And just have the northbridge provide those.
The practical case where something like this comes soon is accessing the
extra configuration bytes from pci-express devices.
So my immediate suggestion would be to call pci_set_method from the pci_domain's
scan_bus method before it does anything. We can worry about the rest later.
More information about the coreboot