blob: 9e25920011b95cee8a071ae7d9459991843130da [file] [log] [blame]
Marc Jones81ef9c22021-01-21 10:53:47 -07001/* SPDX-License-Identifier: GPL-2.0-only */
2
Jonathan Zhangfb2ebbc2022-10-26 16:19:40 -07003#include <intelblocks/lpc_lib.h>
Marc Jones81ef9c22021-01-21 10:53:47 -07004#include <intelpch/lockdown.h>
Jonathan Zhang432779762023-01-23 10:55:09 -08005#include <soc/lockdown.h>
Marc Jones81ef9c22021-01-21 10:53:47 -07006#include <soc/pm.h>
7
Jonathan Zhangfb2ebbc2022-10-26 16:19:40 -07008static void lpc_lockdown_config(void)
9{
10 /* Set BIOS Interface Lock, BIOS Lock */
11 lpc_set_bios_interface_lock_down();
12
13 /* Only allow writes in SMM */
14 if (CONFIG(BOOTMEDIA_SMM_BWP)) {
15 lpc_set_eiss();
16 lpc_enable_wp();
17 }
18 lpc_set_lock_enable();
19}
20
Marc Jones81ef9c22021-01-21 10:53:47 -070021void soc_lockdown_config(int chipset_lockdown)
22{
Jonathan Zhangfb2ebbc2022-10-26 16:19:40 -070023 lpc_lockdown_config();
Jonathan Zhang432779762023-01-23 10:55:09 -080024 pmc_lockdown_config();
Marc Jones4681b272021-04-06 14:29:37 -060025 sata_lockdown_config(chipset_lockdown);
Jonathan Zhang432779762023-01-23 10:55:09 -080026 spi_lockdown_config(chipset_lockdown);
Marc Jones81ef9c22021-01-21 10:53:47 -070027}