coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
lockdown.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
device/mmio.h
>
4
#include <
intelblocks/cfg.h
>
5
#include <
intelblocks/pmclib.h
>
6
#include <
intelpch/lockdown.h
>
7
#include <soc/pm.h>
8
9
static
void
pmc_lockdown_config
(
void
)
10
{
11
uint8_t
*pmcbase;
12
u32
pmsyncreg;
13
14
/* PMSYNC */
15
pmcbase =
pmc_mmio_regs
();
16
pmsyncreg =
read32
(pmcbase +
PMSYNC_TPR_CFG
);
17
pmsyncreg |=
PMSYNC_LOCK
;
18
write32
(pmcbase +
PMSYNC_TPR_CFG
, pmsyncreg);
19
20
/* Make sure payload/OS can't trigger global reset */
21
pmc_global_reset_disable_and_lock
();
22
}
23
24
void
soc_lockdown_config
(
int
chipset_lockdown)
25
{
26
/* PMC lock down configuration */
27
pmc_lockdown_config
();
28
}
pmc_mmio_regs
uint8_t * pmc_mmio_regs(void)
Definition:
pmutil.c:142
write32
static void write32(void *addr, uint32_t val)
Definition:
mmio.h:40
read32
static uint32_t read32(const void *addr)
Definition:
mmio.h:22
mmio.h
PMSYNC_TPR_CFG
#define PMSYNC_TPR_CFG
Definition:
pmc.h:103
PMSYNC_LOCK
#define PMSYNC_LOCK
Definition:
pmc.h:81
lockdown.h
soc_lockdown_config
void soc_lockdown_config(int chipset_lockdown)
Definition:
lockdown.c:50
cfg.h
pmclib.h
pmc_global_reset_disable_and_lock
void pmc_global_reset_disable_and_lock(void)
pmc_lockdown_config
static void pmc_lockdown_config(void)
Definition:
lockdown.c:9
u32
uint32_t u32
Definition:
stdint.h:51
uint8_t
unsigned char uint8_t
Definition:
stdint.h:8
src
soc
intel
skylake
lockdown.c
Generated by
1.9.1