soc/intel/broadwell: Align ACPI with Haswell/Lynxpoint

Drop unnecessary smbus.asl in favor of southbridge common code.

Tested with BUILD_TIMELESS=1, Purism Librem 13 v1 does not change.

Change-Id: I13b35d2155a2cede0a56846b8bf8a79d4ebfc7b3
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46757
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Angel Pons 2020-10-25 13:11:46 +01:00
parent f239b5a9f3
commit 0d8924d880
5 changed files with 46 additions and 56 deletions

View File

@ -9,8 +9,7 @@ Scope (\_SB.PCI0.MCHC)
Name (CTCU, 2) /* CTDP Up Select */ Name (CTCU, 2) /* CTDP Up Select */
Name (SPL1, 0) /* Saved PL1 value */ Name (SPL1, 0) /* Saved PL1 value */
OperationRegion (MCHB, SystemMemory, OperationRegion (MCHB, SystemMemory, MCH_BASE_ADDRESS + 0x5000, 0x1000)
Add (MCH_BASE_ADDRESS, 0x5000), 0x1000)
Field (MCHB, DWordAcc, Lock, Preserve) Field (MCHB, DWordAcc, Lock, Preserve)
{ {
Offset (0x930), /* PACKAGE_POWER_SKU */ Offset (0x930), /* PACKAGE_POWER_SKU */
@ -62,17 +61,16 @@ Scope (\_SB.PCI0.MCHC)
External (\_SB.CP00._PSS) External (\_SB.CP00._PSS)
Method (PSSS, 1, NotSerialized) Method (PSSS, 1, NotSerialized)
{ {
Store (One, Local0) /* Start at P1 */ Local0 = 1 /* Start at P1 */
Store (SizeOf (\_SB.CP00._PSS), Local1) Local1 = SizeOf (\_SB.CP00._PSS)
While (LLess (Local0, Local1)) { While (Local0 < Local1) {
/* Store _PSS entry Control value to Local2 */ /* Store _PSS entry Control value to Local2 */
ShiftRight (DeRefOf (Index (DeRefOf (Index Local2 = DeRefOf (Index (DeRefOf (Index (\_SB.CP00._PSS, Local0)), 4)) >> 8
(\_SB.CP00._PSS, Local0)), 4)), 8, Local2) If (Local2 == Arg0) {
If (LEqual (Local2, Arg0)) { Return (Local0 - 1)
Return (Subtract (Local0, 1))
} }
Increment (Local0) Local0++
} }
Return (0) Return (0)
@ -83,7 +81,7 @@ Scope (\_SB.PCI0.MCHC)
{ {
/* Haswell ULT PL2 = 25W */ /* Haswell ULT PL2 = 25W */
/* FIXME: update for broadwell */ /* FIXME: update for broadwell */
Return (Multiply (25, 8)) Return (25 * 8)
} }
/* Set Config TDP Down */ /* Set Config TDP Down */
@ -92,31 +90,31 @@ Scope (\_SB.PCI0.MCHC)
If (Acquire (CTCM, 100)) { If (Acquire (CTCM, 100)) {
Return (0) Return (0)
} }
If (LEqual (CTCD, CTCC)) { If (CTCD == CTCC) {
Release (CTCM) Release (CTCM)
Return (0) Return (0)
} }
Store ("Set TDP Down", Debug) Debug = "Set TDP Down"
/* Set CTC */ /* Set CTC */
Store (CTCD, CTCS) CTCS = CTCD
/* Set TAR */ /* Set TAR */
Store (TARD, TARS) TARS = TARD
/* Set PPC limit and notify OS */ /* Set PPC limit and notify OS */
Store (PSSS (TARD), PPCM) PPCM = PSSS (TARD)
PPCN () PPCN ()
/* Set PL2 */ /* Set PL2 */
Store (CPL2 (CTDD), PL2V) PL2V = CPL2 (CTDD)
/* Set PL1 */ /* Set PL1 */
Store (CTDD, PL1V) PL1V = CTDD
/* Store the new TDP Down setting */ /* Store the new TDP Down setting */
Store (CTCD, CTCC) CTCC = CTCD
Release (CTCM) Release (CTCM)
Return (1) Return (1)
@ -128,31 +126,31 @@ Scope (\_SB.PCI0.MCHC)
If (Acquire (CTCM, 100)) { If (Acquire (CTCM, 100)) {
Return (0) Return (0)
} }
If (LEqual (CTCN, CTCC)) { If (CTCN == CTCC) {
Release (CTCM) Release (CTCM)
Return (0) Return (0)
} }
Store ("Set TDP Nominal", Debug) Debug = "Set TDP Nominal"
/* Set PL1 */ /* Set PL1 */
Store (CTDN, PL1V) PL1V = CTDN
/* Set PL2 */ /* Set PL2 */
Store (CPL2 (CTDN), PL2V) PL2V = CPL2 (CTDN)
/* Set PPC limit and notify OS */ /* Set PPC limit and notify OS */
Store (PSSS (TARN), PPCM) PPCM = PSSS (TARN)
PPCN () PPCN ()
/* Set TAR */ /* Set TAR */
Store (TARN, TARS) TARS = TARN
/* Set CTC */ /* Set CTC */
Store (CTCN, CTCS) CTCS = CTCN
/* Store the new TDP Nominal setting */ /* Store the new TDP Nominal setting */
Store (CTCN, CTCC) CTCC = CTCN
Release (CTCM) Release (CTCM)
Return (1) Return (1)
@ -161,7 +159,7 @@ Scope (\_SB.PCI0.MCHC)
/* Calculate PL1 value based on requested TDP */ /* Calculate PL1 value based on requested TDP */
Method (TDPP, 1, NotSerialized) Method (TDPP, 1, NotSerialized)
{ {
Return (Multiply (ShiftLeft (Subtract (PUNI, 1), 2), Arg0)) Return (((PUNI - 1) << 2) * Arg0)
} }
/* Enable Controllable TDP to limit PL1 to requested value */ /* Enable Controllable TDP to limit PL1 to requested value */
@ -171,22 +169,22 @@ Scope (\_SB.PCI0.MCHC)
Return (0) Return (0)
} }
Store ("Enable PL1 Limit", Debug) Debug = "Enable PL1 Limit"
/* Set _PPC to LFM */ /* Set _PPC to LFM */
Store (PSSS (LFM_), Local0) Local0 = PSSS (LFM_)
Add (Local0, 1, PPCM) PPCM = Local0 + 1
\PPCN () \PPCN ()
/* Set TAR to LFM-1 */ /* Set TAR to LFM-1 */
Subtract (LFM_, 1, TARS) TARS = LFM_ - 1
/* Set PL1 to desired value */ /* Set PL1 to desired value */
Store (PL1V, SPL1) SPL1 = PL1V
Store (TDPP (Arg0), PL1V) PL1V = TDPP (Arg0)
/* Set PL1 CLAMP bit */ /* Set PL1 CLAMP bit */
Store (One, PL1C) PL1C = 1
Release (CTCM) Release (CTCM)
Return (1) Return (1)
@ -199,19 +197,19 @@ Scope (\_SB.PCI0.MCHC)
Return (0) Return (0)
} }
Store ("Disable PL1 Limit", Debug) Debug = "Disable PL1 Limit"
/* Clear PL1 CLAMP bit */ /* Clear PL1 CLAMP bit */
Store (Zero, PL1C) PL1C = 0
/* Set PL1 to normal value */ /* Set PL1 to normal value */
Store (SPL1, PL1V) PL1V = SPL1
/* Set TAR to 0 */ /* Set TAR to 0 */
Store (Zero, TARS) TARS = 0
/* Set _PPC to 0 */ /* Set _PPC to 0 */
Store (Zero, PPCM) PPCM = 0
\PPCN () \PPCN ()
Release (CTCM) Release (CTCM)

View File

@ -181,6 +181,6 @@ Device (LPCB)
#include "gpio.asl" #include "gpio.asl"
#include "irqlinks.asl" #include "irqlinks.asl"
#include <acpi/ec.asl> #include "acpi/ec.asl"
#include <acpi/superio.asl> #include "acpi/superio.asl"
} }

View File

@ -60,7 +60,7 @@ Scope (\)
#include "sata.asl" #include "sata.asl"
// SMBus 0:1f.3 // SMBus 0:1f.3
#include "smbus.asl" #include <southbridge/intel/common/acpi/smbus.asl>
// Serial IO // Serial IO
#include "serialio.asl" #include "serialio.asl"

View File

@ -1,8 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
// Intel SMBus Controller 0:1f.3
Device (SBUS)
{
Name (_ADR, 0x001f0003)
}