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 <console/console.h>
4 #include <cpu/x86/smm.h>
5 #include <soc/nvs.h>
10 #include <ec/smsc/mec1308/ec.h>
11 #include "ec.h"
12 
13 static u8 mainboard_smi_ec(void)
14 {
15  u8 cmd;
16 
18 
19  switch (cmd) {
20  case EC_LID_CLOSE:
21  printk(BIOS_DEBUG, "LID CLOSED, SHUTDOWN\n");
22 
23  /* Go to S5 */
25  break;
26  }
27 
28  return cmd;
29 }
30 
31 void mainboard_smi_gpi(u32 gpi_sts)
32 {
33  if (gpi_sts & (1 << EC_SMI_GPI)) {
34  /* Process all pending EC requests */
36  while (mainboard_smi_ec() != 0xff);
37 
38  /* The EC may keep asserting SMI# for some
39  * period unless we kick it here.
40  */
43  }
44 }
45 
47 {
49 
50  switch (apmc) {
51  case 0xe1: /* ACPI ENABLE */
54  break;
55 
56  case 0x1e: /* ACPI DISABLE */
59  break;
60  }
61  return 0;
62 }
#define PM1_CNT
Definition: pm.h:27
#define printk(level,...)
Definition: stdlib.h:16
int __weak mainboard_smi_apmc(u8 data)
Definition: smihandler.c:209
void __weak mainboard_smi_gpi(u32 gpi_sts)
Definition: smihandler.c:208
int send_ec_command(u8 command)
Definition: ec.c:13
void ec_set_ports(u16 cmd_reg, u16 data_reg)
Definition: ec.c:143
u8 read_ec_command_byte(u8 command)
Definition: ec.c:65
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
#define EC_SMI_GPI
Definition: ec.h:10
#define EC_LID_CLOSE
Definition: ec.h:21
#define EC_SMI_DISABLE
Definition: ec.h:8
#define EC_ACPI_DISABLE
Definition: ec.h:10
#define EC_ACPI_ENABLE
Definition: ec.h:9
#define EC_SMI_ENABLE
Definition: ec.h:7
#define EC_GET_SMI_CAUSE
Definition: ec.h:27
#define EC_MAILBOX_PORT
Definition: ec.h:6
static u8 mainboard_smi_ec(void)
Definition: smihandler.c:13
u32 read_pmbase32(const u8 addr)
Definition: pmbase.c:57
void write_pmbase32(const u8 addr, const u32 val)
Definition: pmbase.c:36
uint32_t u32
Definition: stdint.h:51
uint8_t u8
Definition: stdint.h:45