aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/xeon_sp')
-rw-r--r--src/soc/intel/xeon_sp/lockdown.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/soc/intel/xeon_sp/lockdown.c b/src/soc/intel/xeon_sp/lockdown.c
index 49f3f5a0ee..7dc1f9834f 100644
--- a/src/soc/intel/xeon_sp/lockdown.c
+++ b/src/soc/intel/xeon_sp/lockdown.c
@@ -3,11 +3,25 @@
#include <device/mmio.h>
#include <device/pci.h>
#include <intelblocks/cfg.h>
+#include <intelblocks/lpc_lib.h>
#include <intelblocks/pmclib.h>
#include <intelpch/lockdown.h>
#include <soc/pci_devs.h>
#include <soc/pm.h>
+static void lpc_lockdown_config(void)
+{
+ /* Set BIOS Interface Lock, BIOS Lock */
+ lpc_set_bios_interface_lock_down();
+
+ /* Only allow writes in SMM */
+ if (CONFIG(BOOTMEDIA_SMM_BWP)) {
+ lpc_set_eiss();
+ lpc_enable_wp();
+ }
+ lpc_set_lock_enable();
+}
+
static void pmc_lockdown_config(int chipset_lockdown)
{
uint8_t *pmcbase;
@@ -36,6 +50,7 @@ static void sata_lockdown_config(int chipset_lockdown)
void soc_lockdown_config(int chipset_lockdown)
{
+ lpc_lockdown_config();
pmc_lockdown_config(chipset_lockdown);
sata_lockdown_config(chipset_lockdown);
}