pci probing "fixed" (was Re: PCI bus numbering and orphaned devices)

From: John-Mark Gurney <gurney_j_at_efn.org>
Date: Thu, 12 Jun 2003 15:56:32 -0700
Well, I implemented PCI probing as per the UltraSparc IIi user's manual,
and now, I get quite a bit more than I bargined for:
bash-2.05b$ pciconf -l | wc
      38     228    3106

The complete pciconf -l -v is at:
http://people.freebsd.org/~jmg/pciconf-lv.sparc64

Now, I seem to be getting duplicates on some functions, and then of
course, I am now seeing the firewire part of the SME2300BGA that doesn't
have a phys attached to it.  (The driver does attach to the firewire
part, but fails trying to talk to the phys.)

This also required updating the pci_read_device to ignore a all zero
return value for PCIR_DEVVENDOR, and not probe higher functions in
that case.  If I tried to probe higher functions (such as 0.0.2), the
system would hang.

A dmesg output of the boot is at:
http://people.freebsd.org/~jmg/dmesg.sparc64

I don't include the dmesg that shows me attaching the firewire driver.

I have posted the patch to produce this at:
http://people.freebsd.org/~jmg/sparc.patch

Warning, this contains much debugging data, and probes for PCI devices
that previously didn't get probed for. 

P.S. Sorry for the duplicate post to -sparc64.  I forgot that some of
the -current crowd is interested in this work too.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."
Received on Thu Jun 12 2003 - 13:56:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:11 UTC