[SeaBIOS] [PATCH] provide correct pci routing information in mptable
gleb at redhat.com
Wed Dec 23 20:56:23 CET 2009
On Wed, Dec 23, 2009 at 02:48:24PM -0500, Kevin O'Connor wrote:
> On Wed, Dec 23, 2009 at 08:45:07PM +0200, Gleb Natapov wrote:
> > On Wed, Dec 23, 2009 at 01:11:43PM -0500, Kevin O'Connor wrote:
> > > Why only increase the allocated storage for intsrc by 16? The loop
> > > above seems like it could add a large number of entries.
> > >
> > Unfortunately we have to allocate all memory in advance. The table can
> > have max 4 entries per device (one entry for each pin), so 16 is enough
> > for 4 devices.
> Yeah - I suppose the table could be built in temp space and then
> copied into the f-segment when the actual size is known.
Yes, and this is not the only table that needs it. Lets assume 16
entries for now for simplicity.
> > > Also, the foreachpci() macro will iterate over every PCI function -
> > > there could be 8 functions to a pci device which could lead to
> > > duplicates in the table (two pci functions on the same device could
> > > use the same irq pin).
> > >
> > Yes, correct. Need to rework this loop.
> Sounds like it should find every function 0 pci entry and then loop
> over the four possible pins?
Each function connected only to one pin. It needs to loop over all
function on a device and record pins that it creates entry for. If the
same pin is used by more then one function of a device the record will
be checked and second entry will not be created.
More information about the SeaBIOS