In a server platform many silicon specific register lock operations are by default in FSP space. CHIPSET_LOCKDOWN_FSP provides an option to make sure the codes could be used out-of-box to build products. Change-Id: I8efcc1f27446be8e35f51e2568c4af6f8165486b Signed-off-by: Shuo Liu <shuo.liu@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/82081 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
32 lines
676 B
C
32 lines
676 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#include <intelblocks/cfg.h>
|
|
#include <intelblocks/lpc_lib.h>
|
|
#include <intelpch/lockdown.h>
|
|
#include <soc/lockdown.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();
|
|
}
|
|
|
|
void soc_lockdown_config(int chipset_lockdown)
|
|
{
|
|
if (chipset_lockdown == CHIPSET_LOCKDOWN_FSP)
|
|
return;
|
|
|
|
lpc_lockdown_config();
|
|
pmc_lockdown_config();
|
|
sata_lockdown_config(chipset_lockdown);
|
|
spi_lockdown_config(chipset_lockdown);
|
|
}
|