|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] HVM PIC/APIC confusion in ACPI firmware?
Hi Folks -
I'm pretty new to ACPI (don't know my ASL from a hole in the ground :-),
but I think the _PRT method has the PIC/APIC cases reversed. I'm looking
at tools/firmware/acpi/acpi_dsdt.asl. The ACPI spec says a _PIC method (if
defined) will be called with an argument of 1 if the host is using APIC
interrupts.
If the host is using PIC interrupts instead, it will either not call the
_PIC method,
or will call it with an argument of 0.
The current _PIC method simply stores its argument into the PICD variable:
Name(PICD, 0)
Method(_PIC, 1) {
Store(Arg0, PICD)
}
So PICD will contain 0 for PIC mode, and 1 for APIC mode. The _PRT
method then returns a PCI routing table appropriate for the current
interrupt mode:
Method(_PRT, 0) {
If (PICD) { Return(PRTA) }
Return (PRTP)
}
But PRTA is a simple routing table, dealing only with PCI INTA,
while PRTP is a more complex one dealing with PCI INTs A-D.
It looks to me like the _PRT method is backwards, and should be
returning PRTA when PICD is zero, and PRTP otherwise. Right?
Dave
P.S. I made this change locally, but haven't seen much of a difference so
far. It seems to work as well as the original version does.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] HVM PIC/APIC confusion in ACPI firmware?,
David Lively <=
|
|
|
|
|