On Tue, 18 Jun 2013 20:33:17 +0200 Christian Helmuth (CH) wrote:

CH> On Tue, Jun 18, 2013 at 05:14:31PM +0000, Jilong Kuang - SISA wrote:
CH> > I guess the reason why current code doesn't cover all devices is
CH> > that it assumes all devices can be scanned through recursive
CH> > function call starting from bus 0 (a single tree structure).
CH> > However, when there are multiple root complexes, there are more than
CH> > one tree. So one has to explicitly jump to the next root node and
CH> > search its tree.
CH> 
CH> Is there any documentation or best practice how to discover "root
CH> nodes"? Do we need ACPI or other platform information for that?
CH> Scanning through all possible PCI nodes sounds not desirable as it
CH> takes its time.

Jilong sent the DSDT of his machine, which lists the different PCI root
complexes as follows:

Device (PCI0)
        {
            Method (^BN00, 0, NotSerialized)
            {
                Return (Zero)
            }

            Method (_BBN, 0, NotSerialized)  // _BBN: BIOS Bus Number
            {
                Return (BN00 ())
            }
        }

Device (PCI1)
        {
            Method (^BN40, 0, NotSerialized)
            {
                Return (0x40)
            }

            Method (_BBN, 0, NotSerialized)  // _BBN: BIOS Bus Number
            {
                Return (BN40 ())
            }
        }

Device (PCI2)
        {
            Method (^BN80, 0, NotSerialized)
            {
                Return (0x80)
            }

            Method (_BBN, 0, NotSerialized)  // _BBN: BIOS Bus Number
            {
                Return (BN80 ())
            }
        }

Device (PCI3)
        {
            Method (^BNC0, 0, NotSerialized)
            {
                Return (0xC0)
            }

            Method (_BBN, 0, NotSerialized)  // _BBN: BIOS Bus Number
            {
                Return (BNC0 ())
            }
        }

There are 4 root complexes, starting at bus numbers 0, 0x40, 0x80, 0xc0
respectively and Genode would have to scan each of them. You can use the
_BBN methods in the DSDT to enumerate them.

Cheers,
Udo

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to