coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
reset.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
cf9_reset.h
>
4
#include <
intelblocks/pmclib.h
>
5
#include <
soc/intel/common/reset.h
>
6
#include <soc/me.h>
7
#include <soc/pm.h>
8
9
static
void
do_force_global_reset
(
void
)
10
{
11
/*
12
* BIOS should ensure it does a global reset
13
* to reset both host and Intel ME by setting
14
* PCH PMC [B0:D31:F2 register offset 0xAC bit 20]
15
*/
16
pmc_global_reset_enable
(
true
);
17
18
/* Now BIOS can write 0x06 or 0x0E to 0xCF9 port
19
* to global reset platform */
20
do_full_reset
();
21
}
22
23
void
do_global_reset
(
void
)
24
{
25
if
(!
send_global_reset
()) {
26
/* If ME unable to reset platform then
27
* force global reset using PMC CF9GR register*/
28
do_force_global_reset
();
29
}
30
}
do_full_reset
void do_full_reset(void)
Definition:
cf9_reset.c:30
cf9_reset.h
do_global_reset
void do_global_reset(void)
Definition:
reset.c:8
pmclib.h
pmc_global_reset_enable
void pmc_global_reset_enable(bool enable)
reset.h
send_global_reset
int send_global_reset(void)
Definition:
me.c:341
do_force_global_reset
static void do_force_global_reset(void)
Definition:
reset.c:9
src
soc
intel
skylake
reset.c
Generated by
1.9.1