[SeaBIOS] [PATCH] Don't overallocate mptable

Kevin O'Connor kevin at koconnor.net
Thu Dec 24 20:41:48 CET 2009


On Thu, Dec 24, 2009 at 08:16:19PM +0200, Gleb Natapov wrote:
> Ah so pci_bdf_to_bus(bdf) > 0 for the bus behind PCI-to-PCI bridge?

Yes - if it is configured properly (which pciinit.c doesn't).

> I don't wee why you read spec this way. Can you point me to the part of
> the spec that makes you think so?

The purpose of the table is to relay to the OS info the OS can't find
on its own - a pci-to-pci bridge on an add-on card is fully
auto-detectable.  The mpspec doesn't seem to require bridges of add-on
cards be listed - from the spec:

Each bus in a system must have a unique BUS ID if any one of the
following criteria are true:
1. The bus does not share its memory address space with another bus.
2. The bus does not share its I/O address space with another bus.
3. The bus does not share interrupt lines with another bus.
4. Any aspect of the bus as an independent entity is software visible
   (such as PCI configuration space).

The first three clearly don't apply.  The fourth seems ambiguous to
me.

That said, I don't see any reason why they couldn't be listed.
However, the code right now would produce incorrect results for bus >
0.

BTW, section D.2 of the mpspec indicates that buses must be listed in
ascending order - so the code should probably define the PCI bus
first.

In any case, I'll separate out the memory part of the patch - we can
debate the merits of pci buses separately.

-Kevin



More information about the SeaBIOS mailing list