[SeaBIOS] [PATCH v2 0/6] Build PCI hotplug SSDT from a single template

Kevin O'Connor kevin at koconnor.net
Sat Aug 4 18:26:34 CEST 2012


On Fri, Aug 03, 2012 at 05:57:41PM +0200, Paolo Bonzini wrote:
> The simplest possibility here is to just move it to the DSDT, as in my
> v1.  Generating the nested AML ifs is a bit tedious to write, but the
> outcome should be easy to read.

That would require statically generating some 961 Notify operations.
That seems a waste.

Similar to your v2 patch, it should be possible to dynamically
generate a second-level notify that does the equivalent of:

Method(PCN2, 2) {
    If (LEqual(Arg0, 0x0101)) { Notify(S01_.S01_, Arg1) }
    If (LEqual(Arg0, 0x0102)) { Notify(S01_.S02_, Arg1) }
    If (LEqual(Arg0, 0x0103)) { Notify(S01_.S03_, Arg1) }
    ...
    If (LEqual(Arg0, 0x011F)) { Notify(S01_.S1F_, Arg1) }
    If (LEqual(Arg0, 0x0201)) { Notify(S02_.S01_, Arg1) }
    ...
}

Then the DSDT's PCNF method can have the intelligence to call both
PCNT() on the main slot and PCN2() in a loop for all the children of
that slot.

-Kevin



More information about the SeaBIOS mailing list