On Wednesday, August 29, 2012 6:12:02 am Peter Jeremy wrote:
> [Moving to -stable and adding jhb@ for his input]
> 
> On 2012-Aug-29 11:32:44 +0200, Gustau Pérez i Querol <gpe...@entel.upc.edu> 
> wrote:
> >Al 29/08/2012 11:02, En/na Peter Jeremy ha escrit:
> >> On 2012-Aug-28 11:44:44 +0200, Gustau Pérez i Querol 
> >> <gpe...@entel.upc.edu> wrote:
> >>>    I'm running FreeBSD 9.1 RC1/AMD64 with VirtualBox. The problem I'm
> >>> facing is that I can't use more than 8 network adapters plugged to the
> >>> virtual machine.
> >> ...
> >>>     I don't know if it's a net@ problem or maybe it is a problem with
> >>> the emulated PCI-bridge and then stable@ should be contacted. Also, I'm
> >>> not sure if a real machine would support more than 8 network adapters or
> >>> not. Any hints would be appreciated.
> >> I don't think I've ever used more than 6 physical NICs in a host but don't
> >> know of any reason for >8 to not work.
> >
> >> Can you please post a "pciconf -lv" from FreeBSD and the equivalent
> >> "lspci" from Linux.  A FreeBSD verbose boot log might also help.
> >
> >    Sure. I'm attaching them to this mail. I hope the mailing list 
> >doesn't eat them. If it does, I will post them online and send the URL 
> >to the mailing list.
> 
> Ah..  lspci shows the 9th LANCE at 02:00.0.  The verbose boot shows
> FreeBSD finds pcib2 (at pci0 device 25.0) but doesn't see anything
> on that bus.  ISTR jhb@ will recognize that problem.

Silly firmware, VM, whatever it is. :)  It's buggy.

> >pcib1: <PCI-PCI bridge> at device 24.0 on pci0
> >pcib1:   domain            0
> >pcib1:   secondary bus     1
> >pcib1:   subordinate bus   2
> >pcib1:   no prefetched decode
> >pcib1:   Subtractively decoded bridge.
> >pci1: <PCI bus> on pcib1
> >pci1: domain=0, physical bus=1
> >pcib2: <PCI-PCI bridge> at device 25.0 on pci0
> >pcib2:   domain            0
> >pcib2:   secondary bus     2
> >pcib2:   subordinate bus   3
> >pcib2:   no prefetched decode
> >pcib2:   Subtractively decoded bridge.
> >pci2: <PCI bus> on pcib2
> >pci2: domain=0, physical bus=2

This is indeed the problem.  PCI bus 2 is "claimed" by both pcib1 and pcib2
since the VM author programmed the bridges incorrectly.  In this case, the
subordinate bus should be "1" and "2", not "2" and "3".  You could add a hack
to pci_pci.c to fix the subordinate bus on these bridges which should probably
fix this.

> >00:18.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2) 
> >(prog-if 01 [Subtractive decode])
> >     Flags: bus master, 66MHz, fast devsel, latency 64
> >     Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >
> >00:19.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2) 
> >(prog-if 01 [Subtractive decode])
> >     Flags: bus master, 66MHz, fast devsel, latency 64
> >     Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >     I/O behind bridge: 00001000-00001fff
> >     Memory behind bridge: 40000000-400fffff

Note here in this output (presumably from lspci under Linux?), the
subordinate bus register == secondary bus register for each bridge.

-- 
John Baldwin
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to