aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/skylake/lockdown.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/skylake/lockdown.c')
-rw-r--r--src/soc/intel/skylake/lockdown.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/soc/intel/skylake/lockdown.c b/src/soc/intel/skylake/lockdown.c
index ac138c20b3..f2a9e8b19f 100644
--- a/src/soc/intel/skylake/lockdown.c
+++ b/src/soc/intel/skylake/lockdown.c
@@ -18,6 +18,7 @@
#include <chip.h>
#include <soc/lpc.h>
#include <soc/pci_devs.h>
+#include <soc/pm.h>
#include <string.h>
static void lpc_lockdown_config(void)
@@ -42,10 +43,25 @@ static void lpc_lockdown_config(void)
pci_read_config8(dev, BIOS_CNTL);
}
+static void pmc_lockdown_config(void)
+{
+ uint8_t *pmcbase;
+ u32 pmsyncreg;
+
+ /* 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,