AMD Kabini: Add ACPI sleep/wakeup calls for southbridge

The AML code of PTS and WAK for southbridge are in
UINT8  AlibSsdtKB[], Proc/GNB/Modules/GnbInitKB/AlibSsdtKB.h.
It was integrated into SSDT even it was called by nobody.
The source ASL was provided by AGESA for reference, but it
has been scrubbed when it was ported to Coreboot.

Without the calls, Olive Hill can not wake up if it boots Windows.
Both amd/olivehill and asrock/imb-a180 have been validated.

Change-Id: Ia7bba29904dbd6f33fdb08bf88bb499005ef561b
Signed-off-by: Zheng Bao <zheng.bao@amd.com>
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: http://review.coreboot.org/4260
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
This commit is contained in:
Zheng Bao 2013-11-21 16:11:40 +08:00 committed by Alexandru Gagniuc
parent abd119d28f
commit ddf58ef844
2 changed files with 12 additions and 0 deletions

View File

@ -36,6 +36,10 @@ Name(WKST,Package(){Zero, Zero})
* the ACPI driver. This method cannot modify the configuration or power * the ACPI driver. This method cannot modify the configuration or power
* state of any device in the system. * state of any device in the system.
*/ */
External(\_SB.APTS, MethodObj)
External(\_SB.AWAK, MethodObj)
Method(_PTS, 1) { Method(_PTS, 1) {
/* DBGO("\\_PTS\n") */ /* DBGO("\\_PTS\n") */
/* DBGO("From S0 to S") */ /* DBGO("From S0 to S") */
@ -46,6 +50,7 @@ Method(_PTS, 1) {
Store(0, Index(WKST,0)) Store(0, Index(WKST,0))
Store(0, Index(WKST,1)) Store(0, Index(WKST,1))
Store(7, UPWS) Store(7, UPWS)
\_SB.APTS(Arg0)
} /* End Method(\_PTS) */ } /* End Method(\_PTS) */
/* /*
@ -84,6 +89,7 @@ Method(\_WAK, 1) {
/* DBGO("From S") */ /* DBGO("From S") */
/* DBGO(Arg0) */ /* DBGO(Arg0) */
/* DBGO(" to S0\n") */ /* DBGO(" to S0\n") */
\_SB.AWAK(Arg0)
Return(WKST) Return(WKST)
} /* End Method(\_WAK) */ } /* End Method(\_WAK) */

View File

@ -36,6 +36,10 @@ Name(WKST,Package(){Zero, Zero})
* the ACPI driver. This method cannot modify the configuration or power * the ACPI driver. This method cannot modify the configuration or power
* state of any device in the system. * state of any device in the system.
*/ */
External(\_SB.APTS, MethodObj)
External(\_SB.AWAK, MethodObj)
Method(_PTS, 1) { Method(_PTS, 1) {
/* DBGO("\\_PTS\n") */ /* DBGO("\\_PTS\n") */
/* DBGO("From S0 to S") */ /* DBGO("From S0 to S") */
@ -46,6 +50,7 @@ Method(_PTS, 1) {
Store(0, Index(WKST,0)) Store(0, Index(WKST,0))
Store(0, Index(WKST,1)) Store(0, Index(WKST,1))
Store(7, UPWS) Store(7, UPWS)
\_SB.APTS(Arg0)
} /* End Method(\_PTS) */ } /* End Method(\_PTS) */
/* /*
@ -84,6 +89,7 @@ Method(\_WAK, 1) {
/* DBGO("From S") */ /* DBGO("From S") */
/* DBGO(Arg0) */ /* DBGO(Arg0) */
/* DBGO(" to S0\n") */ /* DBGO(" to S0\n") */
\_SB.AWAK(Arg0)
Return(WKST) Return(WKST)
} /* End Method(\_WAK) */ } /* End Method(\_WAK) */