[SeaBIOS] system_powerdown not working for qemu-kvm 0.12.4?
Ruben Kerkhof
ruben at rubenkerkhof.com
Fri Oct 15 16:26:04 CEST 2010
On Fri, Oct 15, 2010 at 09:01, Gleb Natapov <gleb at redhat.com> wrote:
> On Fri, Oct 15, 2010 at 03:45:06AM +0200, Ruben Kerkhof wrote:
>> Is there anything I can do to help resolve this?
>> Would rolling back this commit have any impact on other operating systems?
>>
> Patch below should fix the problem.
>
> diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
> index bb0a176..dafcf45 100644
> --- a/src/acpi-dsdt.dsl
> +++ b/src/acpi-dsdt.dsl
> @@ -73,7 +73,7 @@ DefinitionBlock (
> #define prt_slot3(nr) prt_slot(nr, LNKC, LNKD, LNKA, LNKB)
> prt_slot0(0x0000),
> /* Device 1 is power mgmt device, and can only use irq 9 */
> - Package() { 0x0001ffff, 0, 0, 9 },
> + Package() { 0x0001ffff, 0, LNKS, 0 },
> Package() { 0x0001ffff, 1, LNKB, 0 },
> Package() { 0x0001ffff, 2, LNKC, 0 },
> Package() { 0x0001ffff, 3, LNKD, 0 },
> @@ -634,6 +634,46 @@ DefinitionBlock (
> Store (TMP, PRQ3)
> }
> }
> + Device(LNKS){
> + Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
> + Name(_UID, 5)
> + Name(_PRS, ResourceTemplate(){
> + Interrupt (, Level, ActiveHigh, Shared)
> + { 9 }
> + })
> + Method (_STA, 0, NotSerialized)
> + {
> + Store (0x0B, Local0)
> + If (And (0x80, PRQ0, Local1))
> + {
> + Store (0x09, Local0)
> + }
> + Return (Local0)
> + }
> + Method (_DIS, 0, NotSerialized)
> + {
> + Or (PRQ0, 0x80, PRQ0)
> + }
> + Method (_CRS, 0, NotSerialized)
> + {
> + Name (PRR0, ResourceTemplate ()
> + {
> + Interrupt (, Level, ActiveHigh, Shared)
> + {9}
> + })
> + CreateDWordField (PRR0, 0x05, TMP)
> + Store (PRQ0, Local0)
> + If (LLess (Local0, 0x80))
> + {
> + Store (Local0, TMP)
> + }
> + Else
> + {
> + Store (Zero, TMP)
> + }
> + Return (PRR0)
> + }
> + }
> }
>
> /*
> --
> Gleb.
>
It does indeed.
Thanks a lot!
Ruben
More information about the SeaBIOS
mailing list