coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
ec.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <acpi/acpi.h>
4 #include <console/console.h>
5 #include <ec/ec.h>
7 #include <intelblocks/lpc_lib.h>
8 #include <variant/ec.h>
9 
10 static void ramstage_ec_init(void)
11 {
12  static const struct google_chromeec_event_info info = {
13  .log_events = MAINBOARD_EC_LOG_EVENTS,
14  .sci_events = MAINBOARD_EC_SCI_EVENTS,
15  .s3_wake_events = MAINBOARD_EC_S3_WAKE_EVENTS,
16  .s5_wake_events = MAINBOARD_EC_S5_WAKE_EVENTS,
17  .s0ix_wake_events = MAINBOARD_EC_S0IX_WAKE_EVENTS,
18  };
19 
20  printk(BIOS_ERR, "mainboard: EC init\n");
21 
23 }
24 
25 static void bootblock_ec_init(void)
26 {
27  uint16_t ec_ioport_base;
28  size_t ec_ioport_size;
29 
30  /*
31  * Set up LPC decoding for the ChromeEC I/O port ranges:
32  * - Ports 62/66, 60/64, and 200->208
33  * - ChromeEC specific communication I/O ports.
34  */
36  | LPC_IOE_LGE_200);
37  google_chromeec_ioport_range(&ec_ioport_base, &ec_ioport_size);
38  lpc_open_pmio_window(ec_ioport_base, ec_ioport_size);
39 }
40 
42 {
43  if (ENV_RAMSTAGE)
45  else if (ENV_BOOTBLOCK)
47 }
static int acpi_is_wakeup_s3(void)
Definition: acpi.h:9
#define printk(level,...)
Definition: stdlib.h:16
static struct smmstore_params_info info
Definition: ramstage.c:12
void google_chromeec_events_init(const struct google_chromeec_event_info *info, bool is_s3_wakeup)
Definition: ec.c:410
void google_chromeec_ioport_range(uint16_t *base, size_t *size)
Definition: ec_lpc.c:364
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
Definition: loglevel.h:72
#define LPC_IOE_EC_62_66
Definition: lpc_lib.h:18
#define LPC_IOE_LGE_200
Definition: lpc_lib.h:21
#define LPC_IOE_KBC_60_64
Definition: lpc_lib.h:19
uint16_t lpc_enable_fixed_io_ranges(uint16_t io_enables)
Definition: lpc_lib.c:21
void lpc_open_pmio_window(uint16_t base, uint16_t size)
Definition: lpc_lib.c:71
void mainboard_ec_init(void)
Definition: ec.c:8
#define MAINBOARD_EC_S5_WAKE_EVENTS
Definition: ec.h:32
#define MAINBOARD_EC_SCI_EVENTS
Definition: ec.h:12
#define MAINBOARD_EC_LOG_EVENTS
Definition: ec.h:42
#define MAINBOARD_EC_S3_WAKE_EVENTS
Definition: ec.h:37
#define MAINBOARD_EC_S0IX_WAKE_EVENTS
Definition: ec.h:25
static void ramstage_ec_init(void)
Definition: ec.c:10
static void bootblock_ec_init(void)
Definition: ec.c:25
#define ENV_BOOTBLOCK
Definition: rules.h:148
#define ENV_RAMSTAGE
Definition: rules.h:150
unsigned short uint16_t
Definition: stdint.h:11