coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
smi.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef AMD_BLOCK_SMI_H
4 #define AMD_BLOCK_SMI_H
5 
6 #include <types.h>
7 
8 enum smi_mode {
13 };
14 
20 };
21 
25 };
26 
30 };
31 
32 struct smi_sources_t {
33  int type;
35 };
36 
37 struct sci_source {
38  uint8_t scimap; /* SCI source number */
39  uint8_t gpe; /* 32 GPEs */
40  uint8_t direction; /* Active High or Low, smi_sci_lvl */
41  uint8_t level; /* Edge or Level, smi_sci_dir */
42 };
43 
44 void configure_smi(uint8_t smi_num, uint8_t mode);
45 void configure_gevent_smi(uint8_t gevent, uint8_t mode, uint8_t level);
46 void configure_scimap(const struct sci_source *sci);
47 void disable_gevent_smi(uint8_t gevent);
48 void gpe_configure_sci(const struct sci_source *scis, size_t num_gpes);
49 void clear_all_smi_status(void);
50 void clear_smi_sci_status(void);
51 
52 #endif /* AMD_BLOCK_SMI_H */
smi_sci_dir
Definition: smi.h:27
@ SMI_SCI_EDG
Definition: smi.h:28
@ SMI_SCI_LVL
Definition: smi.h:29
void clear_smi_sci_status(void)
Definition: smi_util.c:153
void configure_smi(uint8_t smi_num, uint8_t mode)
Definition: smi_util.c:12
void clear_all_smi_status(void)
Definition: smi_util.c:142
smi_sci_type
Definition: smi.h:15
@ INTERRUPT_NONE
Definition: smi.h:16
@ INTERRUPT_SMI
Definition: smi.h:18
@ INTERRUPT_BOTH
Definition: smi.h:19
@ INTERRUPT_SCI
Definition: smi.h:17
smi_sci_lvl
Definition: smi.h:22
@ SMI_SCI_LVL_LOW
Definition: smi.h:23
@ SMI_SCI_LVL_HIGH
Definition: smi.h:24
void configure_gevent_smi(uint8_t gevent, uint8_t mode, uint8_t level)
Configure generation of interrupts for given GEVENT pin.
Definition: smi_util.c:40
smi_mode
Definition: smi.h:8
@ SMI_MODE_NMI
Definition: smi.h:11
@ SMI_MODE_IRQ13
Definition: smi.h:12
@ SMI_MODE_SMI
Definition: smi.h:10
@ SMI_MODE_DISABLE
Definition: smi.h:9
void configure_scimap(const struct sci_source *sci)
Configure generation of SCIs.
Definition: smi_util.c:78
void disable_gevent_smi(uint8_t gevent)
Disable events from given GEVENT pin.
Definition: smi_util.c:125
void gpe_configure_sci(const struct sci_source *scis, size_t num_gpes)
Definition: smi_util.c:116
unsigned char uint8_t
Definition: stdint.h:8
Definition: smi.h:37
uint8_t gpe
Definition: smi.h:39
uint8_t scimap
Definition: smi.h:38
uint8_t level
Definition: smi.h:41
uint8_t direction
Definition: smi.h:40
void(* handler)(void)
Definition: smi.h:34
int type
Definition: smi.h:33
typedef void(X86APIP X86EMU_intrFuncs)(int num)