[coreboot-gerrit] Change in coreboot[master]: soc/intel/skylake: Move PMC lock down config after PCI enumeration

Subrata Banik (Code Review) gerrit at coreboot.org
Wed Aug 16 15:38:38 CEST 2017


Subrata Banik has uploaded this change for review. ( https://review.coreboot.org/21029


Change subject: soc/intel/skylake: Move PMC lock down config after PCI enumeration
......................................................................

soc/intel/skylake: Move PMC lock down config after PCI enumeration

This patch to ensure that coreboot is meeting Intel Silicon
recommendation to performing register lockdown.

TEST=Ensure PMC MMIO register 0xC4 bit 31 is set.

Change-Id: Ibd86a38fa78752ce007da63a9ccdd991ca21ab92
Signed-off-by: Subrata Banik <subrata.banik at intel.com>
---
M src/soc/intel/skylake/finalize.c
M src/soc/intel/skylake/lockdown.c
2 files changed, 21 insertions(+), 14 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/29/21029/1

diff --git a/src/soc/intel/skylake/finalize.c b/src/soc/intel/skylake/finalize.c
index 01aa4dd..3bb1324 100644
--- a/src/soc/intel/skylake/finalize.c
+++ b/src/soc/intel/skylake/finalize.c
@@ -92,7 +92,6 @@
 	u16 tcocnt;
 	uint8_t *pmcbase;
 	config_t *config;
-	u32 pmsyncreg;
 	u8 reg8;
 
 	/* Set FAST_SPI opcode menu */
@@ -107,22 +106,11 @@
 	tcocnt |= TCO_LOCK;
 	outw(tcocnt, tcobase + TCO1_CNT);
 
-	/* Lock down ABASE and sleep stretching policy */
-	dev = PCH_DEV_PMC;
-	reg32 = pci_read_config32(dev, GEN_PMCON_B);
-	reg32 |= (SLP_STR_POL_LOCK | ACPI_BASE_LOCK);
-	pci_write_config32(dev, GEN_PMCON_B, reg32);
-
-	/* PMSYNC */
-	pmcbase = pmc_mmio_regs();
-	pmsyncreg = read32(pmcbase + PMSYNC_TPR_CFG);
-	pmsyncreg |= PMSYNC_LOCK;
-	write32(pmcbase + PMSYNC_TPR_CFG, pmsyncreg);
-
 	/* Display me status before we hide it */
 	intel_me_status();
 
-	/* we should disable Heci1 based on the devicetree policy */
+	dev = PCH_DEV_PMC;
+	pmcbase = pmc_mmio_regs();
 	config = dev->chip_info;
 
 	/*
diff --git a/src/soc/intel/skylake/lockdown.c b/src/soc/intel/skylake/lockdown.c
index a61e423..7564131 100644
--- a/src/soc/intel/skylake/lockdown.c
+++ b/src/soc/intel/skylake/lockdown.c
@@ -19,6 +19,7 @@
 #include <console/console.h>
 #include <soc/lpc.h>
 #include <soc/pci_devs.h>
+#include <soc/pm.h>
 #include <string.h>
 
 static void lpc_lockdown_config(void)
@@ -52,10 +53,28 @@
 	pci_read_config8(dev, BIOS_CNTL);
 }
 
+static void pmc_lockdown_config(void)
+{
+	struct device *dev;
+	uint8_t *pmcbase;
+	u32 pmsyncreg;
+
+	dev = PCH_DEV_PMC;
+
+	/* PMSYNC */
+	pmcbase = pmc_mmio_regs();
+	pmsyncreg = read32(pmcbase + PMSYNC_TPR_CFG);
+	pmsyncreg |= PMSYNC_LOCK;
+	write32(pmcbase + PMSYNC_TPR_CFG, pmsyncreg);
+}
+
 static void platform_lockdown_config(void *unused)
 {
 	/* LPC lock down configuration */
 	lpc_lockdown_config();
+
+	/* PMC lock down configuration */
+	pmc_lockdown_config();
 }
 
 BOOT_STATE_INIT_ENTRY(BS_DEV_RESOURCES, BS_ON_EXIT, platform_lockdown_config,

-- 
To view, visit https://review.coreboot.org/21029
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibd86a38fa78752ce007da63a9ccdd991ca21ab92
Gerrit-Change-Number: 21029
Gerrit-PatchSet: 1
Gerrit-Owner: Subrata Banik <subrata.banik at intel.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20170816/cb002bd5/attachment.html>


More information about the coreboot-gerrit mailing list