Al 29/08/2012 16:16, En/na Andriy Gapon ha escrit:
on 29/08/2012 16:54 Gustau Pérez i Querol said the following:
Al 29/08/2012 15:30, En/na Andriy Gapon ha escrit:
I wonder where the discrepancy could come from.
Why would VirtualBox emulate the bridge differently for different OSes?
And I do not see any quirks related to bus numbers for this PCI ID in either
Linux, FreeBSD or lspci code...

I think that output of lspci on FreeBSD could be interesting too (it's available
via sysutils/pciutils port).

    The output of lspci gives the same info as pciconf. I'm attaching it 
however.
[snip]
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 0
        Bus: primary=01, secondary=01, subordinate=02, sec-latency=0
        !!! Unknown I/O range types e0/df
        !!! Unknown memory range types f100/f0ff

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 0
        Bus: primary=02, secondary=02, subordinate=03, sec-latency=0
        !!! Unknown I/O range types e0/df
        !!! Unknown memory range types f100/f0ff
I think that I was wrong with regard to Linux.  I see that it does extensive
bridge reconfiguring if it notices any insanity.  And I'd say that VirtualBix 
does
create an insane config here.
I believe that primary should be 0, secondary should be 1 and 2 respectively (as
they are) and subordinate should be equal to secondary.  So primary bus numbers
and subordinate bus numbers are insane here.
I am not sure how much the incorrect bus numbers actually affect FreeBSD PCI-PCI
driver as it does not seem to use primary and subordinate numbers for anything
important.

Memory and I/O misconfiguration are most likely much more important here.

In any case, here is a link to the broken VirtualBox code:
http://www.virtualbox.org/svn/vbox/trunk/src/VBox/Devices/Bus/DevPciIch9.cpp
See function ich9pciInitBridgeTopology, which sets primary bus and secondary bus
to X and subordinate bus to X+1.

And here a link to Linux code that re-configures those bus numbers:
http://lxr.linux.no/#linux+v3.5.3/drivers/pci/probe.c#L663

I bet that was "bus configuration invalid, reconfiguring" message during Linux 
boot.

   I did not see that message.

Anyhow I found how to fix VBox to work as it should. I think I'm closing this thread and move it to @emulation.

   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

_______________________________________________
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