PCI bus numbering and orphaned devices
M. Warner Losh
imp at bsdimp.com
Tue Jun 10 07:30:18 PDT 2003
In message: <20030610121249.GE10527 at cicely12.cicely.de>
Bernd Walter <ticso at cicely12.cicely.de> writes:
: On Tue, Jun 10, 2003 at 01:56:15PM +0200, Bernd Walter wrote:
: > On Mon, Jun 09, 2003 at 10:46:21PM -0600, M. Warner Losh wrote:
: > > I'm thinking that the loop should be more like:
: > >
: > > pcifunchigh = 0;
: > > f = 0;
: > > hdrtype = REG(PCIR_HEADERTYPE, 1);
: > > if (hdrtype & 0x7f > 2)
: > > continue;
: > > if (hdrtype & 0x80)
: > s/0x80/PCIM_MFDEV/
: > Maybe we should add a PCIM_REGLAYOUT as well.
: >
: > > pcifunchigh = PCI_FUNCMAX;
: > > for (f = 0; f <= pcifunchigh; f++) {
: > > dinfo = pci_read_device(pcib, busno, s, f, dinfo_size);
: > > if (dinfo != NULL)
: > > pci_add_child(dev, dinfo);
: > > }
: > >
: > > might be better code (REG likely needs to be correctly defined for
: > > this context).
: >
: > This needs to be tested on that given hardware.
: > I don't know if REG will work as expected because it asks function 0,
: > which is disabled.
:
: I've reread John-Mark's last mail about the readable registers.
: So - yes it should work.
That's what inspired me. Also, I'd expected that we'd need some kind
of tweaking to make it actually compile and be neat.
Warner
More information about the freebsd-sparc64
mailing list