[coreboot] [PATCH] v3: fix PCI bus scan / device tree interaction
Stefan Reinauer
stepan at coresystems.de
Fri Aug 29 18:27:39 CEST 2008
* Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net> [080829 12:54]:
> On 29.08.2008 12:41, Stefan Reinauer wrote:
> > Carl-Daniel Hailfinger wrote:
> >
> >> + * dev->link[0] for a PCI domain is the domain link.
> >> + * The child of the domain link is the PCI bus device.
> >>
> >>
> > "PCI bus device" - is that the host bridge?
> >
>
> Let me illustrate this with an excerpt of our device tree.
>
> We call pci_domain_scan_bus(dev_domain_0, ...) and dev_domain_0->link[0]
> is the PCI domain link. However, pci_scan_bus() expects to be called
> with dev_bus_0->link[0] which equals
> dev_domain_0->link[0].children->link[0]. "pci bus device" refers to
> dev_bus_0.
Ok, so why do we have
a) a pci domain
b) a pci bus "device" whatever that is supposed to depict
c) a pci bridge (host bridge)
all describing the same physical entity.
We had weird stuff in v2, but now it's not fixed, it's just different
weird.
> Can multiple buses be directly below a domain or do these buses hang off
> a bridge on a bus? For the latter case, this should be handled by
> pci_scan_bridge.
A PCI domain is not a physical device. It doesnt even virtually exist on
x86, at least not on pre-PCIe systems.
Stefan
--
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.de • http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866
More information about the coreboot
mailing list