Date: Tue, 11 Sep 2012 14:23:51 +0200 From: =?ISO-8859-1?Q?Bernhard_Fr=F6hlich?= <decke@FreeBSD.org> To: =?ISO-8859-1?Q?Gustau_P=E9rez_i_Querol?= <gperez@entel.upc.edu> Cc: emulation@freebsd.org Subject: Re: Fix ich9 bios to correctly configure pci bridge1 and pci bridge2 Message-ID: <CAE-m3X3ib5%2B2iXsuJ_kyJbbyTJvWs0QYp4jf5zWHPEqvYFfo=w@mail.gmail.com> In-Reply-To: <504916C5.7070302@entel.upc.edu> References: <50449030.1010206@entel.upc.edu> <504916C5.7070302@entel.upc.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Sep 6, 2012 at 11:33 PM, Gustau P=E9rez i Querol <gperez@entel.upc.edu> wrote: > On 03/09/2012 13:10, Gustau P=E9rez 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=3D0, physical bus=3D1 >> 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=3D0, physical bus=3D2 >> ********************* >> >> 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; th= e >> primary must be 0 and the secondary and subordinate must be 2: >> >> The vbox programmers set the subordinate bus of bridge1 to 2 and th= e >> subordinate of bridge2 to 3 (which is incorrect). At pci_pci.c we can ad= d >> quirks to circumvent this (we can't change real hardware) but in this ca= se >> we can change the hardware. >> >> I'm attaching the patch that changes the behavior of vbox. The outpu= t >> 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=3D0, physical bus=3D1 >> 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=3D0, physical bus=3D2 >> ********************* >> >> 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 he= re: > > 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=E9rez i Querol > O O O Departament d'Enginyeria Telem=E0tica > O O O Universitat Polit=E8cnica de Catalunya > Edifici C3 - Despatx S101-B > UPC Campus Nord UPC > C/ Jordi Girona, 1-3 > 08034 - Barcelona > > _______________________________________________ > freebsd-emulation@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-emulation > To unsubscribe, send any mail to "freebsd-emulation-unsubscribe@freebsd.o= rg" Thanks to avg@ who got my attention on that report. I just committed the patch to our devel repository and will see what upstream thinks about that. http://redports.org/changeset/6948 --=20 Bernhard Froehlich http://www.bluelife.at/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAE-m3X3ib5%2B2iXsuJ_kyJbbyTJvWs0QYp4jf5zWHPEqvYFfo=w>