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>
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  */
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*/
29  }
30 }
void do_full_reset(void)
Definition: cf9_reset.c:30
void do_global_reset(void)
Definition: reset.c:8
void pmc_global_reset_enable(bool enable)
int send_global_reset(void)
Definition: me.c:341
static void do_force_global_reset(void)
Definition: reset.c:9