1 /* SPDX-License-Identifier: GPL-2.0-only */
4 * This file is created based on Intel Tiger Lake Processor PCH Datasheet
5 * Document number: 575857
9 #include <device/mmio.h>
10 #include <intelblocks/cfg.h>
11 #include <intelpch/lockdown.h>
14 static void pmc_lock_pmsync(void)
19 pmcbase
= pmc_mmio_regs();
21 pmsyncreg
= read32(pmcbase
+ PMSYNC_TPR_CFG
);
22 pmsyncreg
|= PCH2CPU_TPR_CFG_LOCK
;
23 write32(pmcbase
+ PMSYNC_TPR_CFG
, pmsyncreg
);
26 static void pmc_lock_abase(void)
31 pmcbase
= pmc_mmio_regs();
33 reg32
= read32(pmcbase
+ GEN_PMCON_B
);
34 reg32
|= (SLP_STR_POL_LOCK
| ACPI_BASE_LOCK
);
35 write32(pmcbase
+ GEN_PMCON_B
, reg32
);
38 static void pmc_lock_smi(void)
43 pmcbase
= pmc_mmio_regs();
45 reg8
= read8(pmcbase
+ GEN_PMCON_B
);
47 write8(pmcbase
+ GEN_PMCON_B
, reg8
);
50 static void pmc_lockdown_cfg(int chipset_lockdown
)
54 /* Lock down ABASE and sleep stretching policy */
57 if (chipset_lockdown
== CHIPSET_LOCKDOWN_COREBOOT
)
61 void soc_lockdown_config(int chipset_lockdown
)
63 /* PMC lock down configuration */
64 pmc_lockdown_cfg(chipset_lockdown
);