coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
smihandler.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <device/pci_def.h>
4 #include <intelblocks/cse.h>
6 #include <soc/soc_chip.h>
7 #include <soc/pci_devs.h>
8 #include <soc/pm.h>
9 
10 /*
11  * Specific SOC SMI handler during ramstage finalize phase
12  *
13  * BIOS can't make CSME function disable as is due to POSTBOOT_SAI
14  * restriction in place from JSP chipset. Hence create SMI Handler to
15  * perform CSME function disabling logic during SMM mode.
16  */
18 {
19  if (CONFIG(DISABLE_HECI1_AT_PRE_BOOT))
20  heci1_disable();
21 }
22 
24 {
25  /* Skip disabling PMC bus master to keep IO decode enabled */
26  if (dev == PCH_DEV_PMC)
27  return 0;
28  return 1;
29 }
30 
39 #if CONFIG(SOC_INTEL_COMMON_BLOCK_SMM_TCO_ENABLE)
41 #endif
44 };
#define GPE0_STS_BIT
Definition: pm.h:67
#define MCSMI_STS_BIT
Definition: pm.h:65
#define SMI_ON_SLP_EN_STS_BIT
Definition: pm.h:71
#define SMI_STS_BITS
Definition: pm.h:51
#define MONITOR_STS_BIT
Definition: pm.h:58
#define TCO_STS_BIT
Definition: pm.h:63
#define PERIODIC_STS_BIT
Definition: pm.h:62
#define GPIO_STS_BIT
Definition: pm.h:66
#define ESPI_SMI_STS_BIT
Definition: pm.h:54
#define PM1_STS_BIT
Definition: pm.h:68
#define APM_STS_BIT
Definition: pm.h:70
void heci1_disable(void)
Definition: disable_heci.c:84
@ CONFIG
Definition: dsi_common.h:201
u32 pci_devfn_t
Definition: pci_type.h:8
void smihandler_southbridge_monitor(const struct smm_save_state_ops *save_state_ops)
void smihandler_southbridge_mc(const struct smm_save_state_ops *save_state_ops)
#define PCH_DEV_PMC
Definition: pci_devs.h:236
const smi_handler_t southbridge_smi[SMI_STS_BITS]
Definition: smihandler.c:17
int smihandler_soc_disable_busmaster(pci_devfn_t dev)
Definition: smihandler.c:9
void(* smi_handler_t)(void)
Definition: smihandler.c:361
void smihandler_soc_at_finalize(void)
Definition: smihandler.c:17
void smihandler_southbridge_gpe0(const struct smm_save_state_ops *save_state_ops)
Definition: smihandler.c:414
void smihandler_southbridge_sleep(const struct smm_save_state_ops *save_state_ops)
Definition: smihandler.c:150
void smihandler_southbridge_gpi(const struct smm_save_state_ops *save_state_ops)
Definition: smihandler.c:485
void smihandler_southbridge_periodic(const struct smm_save_state_ops *save_state_ops)
Definition: smihandler.c:472
void smihandler_southbridge_tco(const struct smm_save_state_ops *save_state_ops)
Definition: smihandler.c:420
void smihandler_southbridge_espi(const struct smm_save_state_ops *save_state_ops)
Definition: smihandler.c:497
void smihandler_southbridge_pm1(const struct smm_save_state_ops *save_state_ops)
Definition: smihandler.c:396
void smihandler_southbridge_apmc(const struct smm_save_state_ops *save_state_ops)
Definition: smihandler.c:367