summaryrefslogtreecommitdiff
path: root/src/southbridge/intel
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2021-09-08 14:30:07 +0200
committerMatt DeVillier <matt.devillier@gmail.com>2024-04-16 01:45:36 +0000
commitfd46b497ead843eccfd80124ca8fbba7e57a3631 (patch)
tree597063b76d3b640d5d71e40d060a6cd954342dce /src/southbridge/intel
parentebba6da073e51569bd962e86bf8162e7b4da9321 (diff)
lynxpoint/broadwell: Correct L1 exit latency with ASPM
Lynx Point PCH reference code version 1.9.1 programs the larger L1 exit latency when ASPM is enabled. Document 535127 (BDW PCH-LP BS) also does the same. Correct the condition accordingly. On Lynx Point, also remove a now-redundant write to the LCAP register (offset 0x4c). Change-Id: I2166bd5b5504ed97adcd2db0a802da02da4c91f3 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/57501 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/southbridge/intel')
-rw-r--r--src/southbridge/intel/lynxpoint/pcie.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/southbridge/intel/lynxpoint/pcie.c b/src/southbridge/intel/lynxpoint/pcie.c
index 0c17c9c22e..fd41ce8936 100644
--- a/src/southbridge/intel/lynxpoint/pcie.c
+++ b/src/southbridge/intel/lynxpoint/pcie.c
@@ -570,9 +570,6 @@ static void pch_pcie_early(struct device *dev)
/* Set unique clock exit latency in MPC register. */
pci_update_config32(dev, 0xd8, ~(0x7 << 18), (0x7 << 18));
- /* Set L1 exit latency in LCAP register. */
- pci_update_config32(dev, 0x4c, ~(0x7 << 15), (0x4 << 15));
-
if (is_lp) {
switch (rp) {
case 1:
@@ -650,7 +647,7 @@ static void pch_pcie_early(struct device *dev)
pci_update_config32(dev, 0x318, ~(0xffff << 16), (0x1414 << 16));
/* Set L1 exit latency in LCAP register. */
- if (!do_aspm && (pci_read_config8(dev, 0xf5) & 0x1))
+ if ((pci_read_config8(dev, 0xf5) & 0x1) || do_aspm)
pci_update_config32(dev, 0x4c, ~(0x7 << 15), (0x4 << 15));
else
pci_update_config32(dev, 0x4c, ~(0x7 << 15), (0x2 << 15));