mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-22 11:13:07 +00:00
13539ba705
Add common DPTF (Intel Dynamic Performance and Thermal Framework) files, taken from coreboot. Signed-off-by: Simon Glass <sjg@chromium.org>
186 lines
2.7 KiB
Text
186 lines
2.7 KiB
Text
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2014 Google Inc.
|
|
* Copyright (C) 2016 Intel Corporation.
|
|
*/
|
|
|
|
External (\_PR.CP00._PSS, PkgObj)
|
|
External (\_PR.CP00._TSS, PkgObj)
|
|
External (\_PR.CP00._TPC, MethodObj)
|
|
External (\_PR.CP00._PTC, PkgObj)
|
|
External (\_PR.CP00._TSD, PkgObj)
|
|
External (\_SB.MPDL, IntObj)
|
|
|
|
Device (DPTF_CPU_DEVICE)
|
|
{
|
|
Name(_ADR, DPTF_CPU_ADDR)
|
|
|
|
Method (_STA)
|
|
{
|
|
If (LEqual (\DPTE, One)) {
|
|
Return (0xF)
|
|
} Else {
|
|
Return (0x0)
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Processor Throttling Controls
|
|
*/
|
|
|
|
Method (_TSS)
|
|
{
|
|
If (CondRefOf (\_PR.CP00._TSS)) {
|
|
Return (\_PR.CP00._TSS)
|
|
} Else {
|
|
Return (Package ()
|
|
{
|
|
Package () { 0, 0, 0, 0, 0 }
|
|
})
|
|
}
|
|
}
|
|
|
|
Method (_TPC)
|
|
{
|
|
If (CondRefOf (\_PR.CP00._TPC)) {
|
|
Return (\_PR.CP00._TPC)
|
|
} Else {
|
|
Return (0)
|
|
}
|
|
}
|
|
|
|
Method (_PTC)
|
|
{
|
|
If (CondRefOf (\_PR.CP00._PTC)) {
|
|
Return (\_PR.CP00._PTC)
|
|
} Else {
|
|
Return (Package ()
|
|
{
|
|
Buffer () { 0 },
|
|
Buffer () { 0 }
|
|
})
|
|
}
|
|
}
|
|
|
|
Method (_TSD)
|
|
{
|
|
If (CondRefOf (\_PR.CP00._TSD)) {
|
|
Return (\_PR.CP00._TSD)
|
|
} Else {
|
|
Return (Package ()
|
|
{
|
|
Package () { 5, 0, 0, 0, 0 }
|
|
})
|
|
}
|
|
}
|
|
|
|
Method (_TDL)
|
|
{
|
|
If (CondRefOf (\_PR.CP00._TSS)) {
|
|
Store (SizeOf (\_PR.CP00._TSS), Local0)
|
|
Decrement (Local0)
|
|
Return (Local0)
|
|
} Else {
|
|
Return (0)
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Processor Performance Control
|
|
*/
|
|
|
|
Method (_PPC)
|
|
{
|
|
Return (0)
|
|
}
|
|
|
|
Method (SPPC, 1)
|
|
{
|
|
Store (Arg0, \PPCM)
|
|
|
|
/* Notify OS to re-read _PPC limit on each CPU */
|
|
\PPCN ()
|
|
}
|
|
|
|
Method (_PSS)
|
|
{
|
|
If (CondRefOf (\_PR.CP00._PSS)) {
|
|
Return (\_PR.CP00._PSS)
|
|
} Else {
|
|
Return (Package ()
|
|
{
|
|
Package () { 0, 0, 0, 0, 0, 0 }
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
Method (_PDL)
|
|
{
|
|
/* Check for mainboard specific _PDL override */
|
|
If (CondRefOf (\_SB.MPDL)) {
|
|
Return (\_SB.MPDL)
|
|
} ElseIf (CondRefOf (\_PR.CP00._PSS)) {
|
|
Store (SizeOf (\_PR.CP00._PSS), Local0)
|
|
Decrement (Local0)
|
|
Return (Local0)
|
|
} Else {
|
|
Return (0)
|
|
}
|
|
}
|
|
|
|
/* Return PPCC table defined by mainboard */
|
|
Method (PPCC)
|
|
{
|
|
Return (\_SB.MPPC)
|
|
}
|
|
|
|
#ifdef DPTF_CPU_CRITICAL
|
|
Method (_CRT)
|
|
{
|
|
Return (\_SB.DPTF.CTOK (DPTF_CPU_CRITICAL))
|
|
}
|
|
#endif
|
|
|
|
#ifdef DPTF_CPU_PASSIVE
|
|
Method (_PSV)
|
|
{
|
|
Return (\_SB.DPTF.CTOK (DPTF_CPU_PASSIVE))
|
|
}
|
|
#endif
|
|
|
|
#ifdef DPTF_CPU_ACTIVE_AC0
|
|
Method (_AC0)
|
|
{
|
|
Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC0))
|
|
}
|
|
#endif
|
|
|
|
#ifdef DPTF_CPU_ACTIVE_AC1
|
|
Method (_AC1)
|
|
{
|
|
Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC1))
|
|
}
|
|
#endif
|
|
|
|
#ifdef DPTF_CPU_ACTIVE_AC2
|
|
Method (_AC2)
|
|
{
|
|
Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC2))
|
|
}
|
|
#endif
|
|
|
|
#ifdef DPTF_CPU_ACTIVE_AC3
|
|
Method (_AC3)
|
|
{
|
|
Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC3))
|
|
}
|
|
#endif
|
|
|
|
#ifdef DPTF_CPU_ACTIVE_AC4
|
|
Method (_AC4)
|
|
{
|
|
Return (\_SB.DPTF.CTOK (DPTF_CPU_ACTIVE_AC4))
|
|
}
|
|
#endif
|
|
}
|