Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 06 Sep 2012 23:33:57 +0200
From:      =?ISO-8859-1?Q?Gustau_P=E9rez_i_Querol?= <gperez@entel.upc.edu>
To:        emulation@freebsd.org
Subject:   Re: Fix ich9 bios to correctly configure pci bridge1 and pci bridge2
Message-ID:  <504916C5.7070302@entel.upc.edu>
In-Reply-To: <50449030.1010206@entel.upc.edu>
References:  <50449030.1010206@entel.upc.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 03/09/2012 13:10, Gustau Pérez i Querol wrote:
>
>   The upcoming 4.2.0 release of virtualbox allows to plug more than 8 
> network adapter to a guest.
>
>    When testing that kind of setup I noticed FreeBSD (stable or head, 
> it doesn't matter) is unable to map more than 8 cards. It appears that 
> the ninth (and so on) get connected to the pci bus 1.
>
>    The output of a guest FreeBSD machine shows this:
>
>  *************
> 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
> pcib0: allocated type 4 (0xe000-0xefff) for rid 1c of pcib2
> pcib0: allocated type 3 (0xf0a00000-0xf0afffff) for rid 20 of pcib2
> pcib2:   domain            0
> pcib2:   secondary bus     2
> pcib2:   subordinate bus   3
> pcib2:   I/O decode        0xe000-0xefff
> pcib2:   memory decode     0xf0a00000-0xf0afffff
> pcib2:   no prefetched decode
> pcib2:   Subtractively decoded bridge.
> pci2: <PCI bus> on pcib2
> pci2: domain=0, physical bus=2
> *********************
>
>    The topology the developers of vbox try to build is this:
>
>
> ----------------------------------------------------------- pci bus 0
>                              |                            |
>                        ___ |______          _____|____
>                        |               |         |               |
>                        |  Bridge1   |         | Bridge2   |
>                        |_________|         |_________|
>                            |                             |
>                      ----------- pci bus 1    ------------  pci bus 2
>
>
>
>    The problem is that the pci bridge1 connects the bus0 to the bus1 
> and thus the primary bus would 0; the secondary would the 1 because 
> the bus 1 doesn't
> connect any other bus through any other bridge then its subordinate 
> must be also 1. The pci bridge1 connects the pci bus 0 with the pci 
> bus 2; the primary must be 0 and the secondary and subordinate must be 2:
>
>      The vbox programmers set the subordinate bus of bridge1 to 2 and 
> the subordinate of bridge2 to 3 (which is incorrect). At pci_pci.c we 
> can add quirks to circumvent this (we can't change real hardware) but 
> in this case we can change the hardware.
>
>     I'm attaching the patch that changes the behavior of vbox. The 
> output of FreeBSD virtual machine with the modified 'hardware' is this:
>
>  *************
> pcib1: <PCI-PCI bridge> at device 24.0 on pci0
> pcib1:   domain            0
> pcib1:   secondary bus     1
> pcib1:   subordinate bus   1
> 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
> pcib0: allocated type 4 (0xe000-0xefff) for rid 1c of pcib2
> pcib0: allocated type 3 (0xf0a00000-0xf0afffff) for rid 20 of pcib2
> pcib2:   domain            0
> pcib2:   secondary bus     2
> pcib2:   subordinate bus   2
> pcib2:   I/O decode        0xe000-0xefff
> pcib2:   memory decode     0xf0a00000-0xf0afffff
> pcib2:   no prefetched decode
> pcib2:   Subtractively decoded bridge.
> pci2: <PCI bus> on pcib2
> pci2: domain=0, physical bus=2
> *********************
>
>    Which is what should be according to the simple topology of the 
> buses and bridges. It works as it should. I hope I did not say 
> anything wrong.

    Looks like the mailing list ate the attachment. I can be downloaded 
here:

http://www-entel.upc.edu/gus/patch-src-VBox-Devices-Bus-DevPciIch9.cpp

    Best,

    Gustau

-- 
---------------------------------------------------------------------------
Prou top-posting :	http://ca.wikipedia.org/wiki/Top-posting
Stop top-posting :	http://en.wikipedia.org/wiki/Posting_style	

O O O Gustau Pérez i Querol
O O O Departament d'Enginyeria Telemàtica
O O O Universitat Politècnica de Catalunya
       Edifici C3 - Despatx S101-B
  UPC  Campus Nord UPC
       C/ Jordi Girona, 1-3
       08034 - Barcelona




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?504916C5.7070302>