blob: 6280fb28bddce637d050e3791a99737ba17512a2 [file] [log] [blame]
Angel Pons16f6aa82020-04-05 15:47:21 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Subrata Banik91e89c52019-11-01 18:30:01 +05302
Subrata Banik91e89c52019-11-01 18:30:01 +05303#include <device/pci_def.h>
Subrata Banik00b75332020-02-20 12:09:45 +05304#include <intelblocks/cse.h>
Subrata Banik91e89c52019-11-01 18:30:01 +05305#include <intelblocks/smihandler.h>
Subrata Banik00b75332020-02-20 12:09:45 +05306#include <soc/soc_chip.h>
Subrata Banik91e89c52019-11-01 18:30:01 +05307#include <soc/pci_devs.h>
Subrata Banik91e89c52019-11-01 18:30:01 +05308#include <soc/pm.h>
Subrata Banik91e89c52019-11-01 18:30:01 +05309
Subrata Banik91e89c52019-11-01 18:30:01 +053010/*
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 TGP chipset. Hence create SMI Handler to
15 * perform CSME function disabling logic during SMM mode.
16 */
17void smihandler_soc_at_finalize(void)
18{
19 const struct soc_intel_tigerlake_config *config;
20
21 config = config_of_soc();
22
23 if (!config->HeciEnabled && CONFIG(HECI_DISABLE_USING_SMM))
Subrata Banik7e899842018-05-17 18:28:26 +053024 heci_disable();
Subrata Banik91e89c52019-11-01 18:30:01 +053025}
26
Kane Chen7b7b33e2021-05-04 09:49:18 +080027int smihandler_soc_disable_busmaster(pci_devfn_t dev)
28{
29 /* Skip disabling PMC bus master to keep IO decode enabled */
30 if (dev == PCH_DEV_PMC)
31 return 0;
32 return 1;
33}
34
Subrata Banik91e89c52019-11-01 18:30:01 +053035const smi_handler_t southbridge_smi[SMI_STS_BITS] = {
36 [SMI_ON_SLP_EN_STS_BIT] = smihandler_southbridge_sleep,
37 [APM_STS_BIT] = smihandler_southbridge_apmc,
38 [PM1_STS_BIT] = smihandler_southbridge_pm1,
39 [GPE0_STS_BIT] = smihandler_southbridge_gpe0,
40 [GPIO_STS_BIT] = smihandler_southbridge_gpi,
41 [ESPI_SMI_STS_BIT] = smihandler_southbridge_espi,
42 [MCSMI_STS_BIT] = smihandler_southbridge_mc,
Patrick Georgia7ec4262020-03-11 16:31:59 +010043#if CONFIG(SOC_INTEL_COMMON_BLOCK_SMM_TCO_ENABLE)
Subrata Banik91e89c52019-11-01 18:30:01 +053044 [TCO_STS_BIT] = smihandler_southbridge_tco,
Patrick Georgia7ec4262020-03-11 16:31:59 +010045#endif
Subrata Banik91e89c52019-11-01 18:30:01 +053046 [PERIODIC_STS_BIT] = smihandler_southbridge_periodic,
47 [MONITOR_STS_BIT] = smihandler_southbridge_monitor,
48};