coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
smihandler.c File Reference
#include <amdblocks/acpimmio.h>
#include <arch/io.h>
#include <cpu/x86/smm.h>
#include "hudson.h"
#include "smi.h"
Include dependency graph for smihandler.c:

Go to the source code of this file.

Macros

#define SMI_0x88_ACPI_COMMAND   (1 << 11)
 

Enumerations

enum  smi_source {
  SMI_SOURCE_SCI = (1 << 0) , SMI_SOURCE_GPE = (1 << 1) , SMI_SOURCE_0x84 = (1 << 2) , SMI_SOURCE_0x88 = (1 << 3) ,
  SMI_SOURCE_IRQ_TRAP = (1 << 4) , SMI_SOURCE_0x90 = (1 << 5) , SMI_SOURCE_SCI = (1 << 0) , SMI_SOURCE_GPE = (1 << 1) ,
  SMI_SOURCE_0x84 = (1 << 2) , SMI_SOURCE_0x88 = (1 << 3) , SMI_SOURCE_IRQ_TRAP = (1 << 4) , SMI_SOURCE_0x90 = (1 << 5)
}
 

Functions

static void hudson_apmc_smi_handler (void)
 
int southbridge_io_trap_handler (int smif)
 
static void process_smi_sci (void)
 
static void process_gpe_smi (void)
 
static void process_smi_0x84 (void)
 
static void process_smi_0x88 (void)
 
static void process_smi_0x8c (void)
 
static void process_smi_0x90 (void)
 
void southbridge_smi_handler (void)
 Interrupt handler for SMI#. More...
 
void southbridge_smi_set_eos (void)
 Set the EOS bit. More...
 

Macro Definition Documentation

◆ SMI_0x88_ACPI_COMMAND

#define SMI_0x88_ACPI_COMMAND   (1 << 11)

Definition at line 14 of file smihandler.c.

Enumeration Type Documentation

◆ smi_source

enum smi_source
Enumerator
SMI_SOURCE_SCI 
SMI_SOURCE_GPE 
SMI_SOURCE_0x84 
SMI_SOURCE_0x88 
SMI_SOURCE_IRQ_TRAP 
SMI_SOURCE_0x90 
SMI_SOURCE_SCI 
SMI_SOURCE_GPE 
SMI_SOURCE_0x84 
SMI_SOURCE_0x88 
SMI_SOURCE_IRQ_TRAP 
SMI_SOURCE_0x90 

Definition at line 16 of file smihandler.c.

Function Documentation

◆ hudson_apmc_smi_handler()

static void hudson_apmc_smi_handler ( void  )
static

Definition at line 25 of file smihandler.c.

References ACPI_PM1_CNT_BLK, ACPI_SMI_CMD_DISABLE, ACPI_SMI_CMD_ENABLE, ACPI_SMI_CTL_PORT, inb(), inl(), mainboard_smi_apmc(), and outl().

Referenced by process_smi_0x88().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_gpe_smi()

static void process_gpe_smi ( void  )
static

Definition at line 59 of file smihandler.c.

References mainboard_smi_gpi(), smi_read32(), and smi_write32().

Referenced by southbridge_smi_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_smi_0x84()

static void process_smi_0x84 ( void  )
static

Definition at line 74 of file smihandler.c.

References smi_read32(), and smi_write32().

Referenced by southbridge_smi_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_smi_0x88()

static void process_smi_0x88 ( void  )
static

Definition at line 82 of file smihandler.c.

References hudson_apmc_smi_handler(), SMI_0x88_ACPI_COMMAND, smi_read32(), and smi_write32().

Referenced by southbridge_smi_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_smi_0x8c()

static void process_smi_0x8c ( void  )
static

Definition at line 94 of file smihandler.c.

References smi_read32(), and smi_write32().

Referenced by southbridge_smi_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_smi_0x90()

static void process_smi_0x90 ( void  )
static

Definition at line 102 of file smihandler.c.

References smi_read32(), and smi_write32().

Referenced by southbridge_smi_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_smi_sci()

static void process_smi_sci ( void  )
static

Definition at line 51 of file smihandler.c.

References smi_read32(), and smi_write32().

Referenced by southbridge_smi_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ southbridge_io_trap_handler()

int southbridge_io_trap_handler ( int  smif)

Definition at line 46 of file smihandler.c.

◆ southbridge_smi_handler()

void southbridge_smi_handler ( void  )

◆ southbridge_smi_set_eos()

void southbridge_smi_set_eos ( void  )

Set the EOS bit.

Definition at line 128 of file smihandler.c.

References smi_read32(), SMI_REG_SMITRIG0, smi_write32(), and SMITRG0_EOS.

Here is the call graph for this function: