coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
pm.h File Reference
#include <acpi/acpi.h>
Include dependency graph for pm.h:

Go to the source code of this file.

Data Structures

struct  chipset_power_state
 

Macros

#define PM1_STS   0x00
 
#define WAK_STS   (1 << 15)
 
#define PCIEXPWAK_STS   (1 << 14)
 
#define PRBTNOR_STS   (1 << 11)
 
#define RTC_STS   (1 << 10)
 
#define PWRBTN_STS   (1 << 8)
 
#define GBL_STS   (1 << 5)
 
#define BM_STS   (1 << 4)
 
#define TMROF_STS   (1 << 0)
 
#define PM1_EN   0x02
 
#define PCIEXPWAK_DIS   (1 << 14)
 
#define RTC_EN   (1 << 10)
 
#define PWRBTN_EN   (1 << 8)
 
#define GBL_EN   (1 << 5)
 
#define TMROF_EN   (1 << 0)
 
#define PM1_CNT   0x04
 
#define GBL_RLS   (1 << 2)
 
#define BM_RLD   (1 << 1)
 
#define SCI_EN   (1 << 0)
 
#define PM1_TMR   0x08
 
#define SMI_EN   0x30
 
#define XHCI_SMI_EN   (1 << 31)
 
#define ME_SMI_EN   (1 << 30)
 
#define GPIO_UNLOCK_SMI_EN   (1 << 27)
 
#define INTEL_USB2_EN   (1 << 18)
 
#define LEGACY_USB2_EN   (1 << 17)
 
#define PERIODIC_EN   (1 << 14)
 
#define TCO_EN   (1 << 13)
 
#define MCSMI_EN   (1 << 11)
 
#define BIOS_RLS   (1 << 7)
 
#define SWSMI_TMR_EN   (1 << 6)
 
#define APMC_EN   (1 << 5)
 
#define SLP_SMI_EN   (1 << 4)
 
#define LEGACY_USB_EN   (1 << 3)
 
#define BIOS_EN   (1 << 2)
 
#define EOS   (1 << 1)
 
#define GBL_SMI_EN   (1 << 0)
 
#define SMI_STS   0x34
 
#define UPWRC   0x3c
 
#define UPWRC_WS   (1 << 8)
 
#define UPWRC_WE   (1 << 1)
 
#define UPWRC_SMI   (1 << 0)
 
#define GPE_CNTL   0x42
 
#define SWGPE_CTRL   (1 << 1)
 
#define DEVACT_STS   0x44
 
#define PM2_CNT   0x50
 
#define TCO1_CNT   0x60
 
#define TCO_TMR_HLT   (1 << 11)
 
#define TCO1_STS   0x64
 
#define DMISCI_STS   (1 << 9)
 
#define TCO2_STS   0x66
 
#define TCO2_STS_SECOND_TO   (1 << 1)
 
#define GPE0_REG_MAX   4
 
#define GPE0_REG_SIZE   32
 
#define GPE0_STS(x)   (0x80 + ((x) * 4))
 
#define GPE_31_0   0 /* 0x80/0x90 = GPE[31:0] */
 
#define GPE_63_32   1 /* 0x84/0x94 = GPE[63:32] */
 
#define GPE_94_64   2 /* 0x88/0x98 = GPE[94:64] */
 
#define GPE_STD   3 /* 0x8c/0x9c = Standard GPE */
 
#define WADT_STS   (1 << 18)
 
#define GP27_STS   (1 << 16)
 
#define PME_B0_STS   (1 << 13)
 
#define ME_SCI_STS   (1 << 12)
 
#define PME_STS   (1 << 11)
 
#define BATLOW_STS   (1 << 10)
 
#define PCI_EXP_STS   (1 << 9)
 
#define SMB_WAK_STS   (1 << 7)
 
#define TCOSCI_STS   (1 << 6)
 
#define SWGPE_STS   (1 << 2)
 
#define HOT_PLUG_STS   (1 << 1)
 
#define GPE0_EN(x)   (0x90 + ((x) * 4))
 
#define WADT_en   (1 << 18)
 
#define GP27_EN   (1 << 16)
 
#define PME_B0_EN   (1 << 13)
 
#define ME_SCI_EN   (1 << 12)
 
#define PME_EN   (1 << 11)
 
#define BATLOW_EN   (1 << 10)
 
#define PCI_EXP_EN   (1 << 9)
 
#define TCOSCI_EN   (1 << 6)
 
#define SWGPE_EN   (1 << 2)
 
#define HOT_PLUG_EN   (1 << 1)
 
#define MAINBOARD_POWER_OFF   0
 
#define MAINBOARD_POWER_ON   1
 
#define MAINBOARD_POWER_KEEP   2
 

Functions

void enable_pm1_control (uint32_t mask)
 
void disable_pm1_control (uint32_t mask)
 
uint16_t clear_pm1_status (void)
 
void enable_pm1 (uint16_t events)
 
uint32_t clear_smi_status (void)
 
void enable_smi (uint32_t mask)
 
void disable_smi (uint32_t mask)
 
uint32_t clear_alt_smi_status (void)
 
void enable_alt_smi (uint32_t mask)
 
uint32_t clear_tco_status (void)
 
void enable_tco_sci (void)
 
uint32_t clear_gpe_status (void)
 
void clear_gpe_enable (void)
 
void enable_all_gpe (uint32_t set1, uint32_t set2, uint32_t set3, uint32_t set4)
 
void disable_all_gpe (void)
 
void enable_gpe (uint32_t mask)
 
void disable_gpe (uint32_t mask)
 
uint16_t get_pmbase (void)
 

Macro Definition Documentation

◆ APMC_EN

#define APMC_EN   (1 << 5)

Definition at line 41 of file pm.h.

◆ BATLOW_EN

#define BATLOW_EN   (1 << 10)

Definition at line 87 of file pm.h.

◆ BATLOW_STS

#define BATLOW_STS   (1 << 10)

Definition at line 75 of file pm.h.

◆ BIOS_EN

#define BIOS_EN   (1 << 2)

Definition at line 44 of file pm.h.

◆ BIOS_RLS

#define BIOS_RLS   (1 << 7)

Definition at line 39 of file pm.h.

◆ BM_RLD

#define BM_RLD   (1 << 1)

Definition at line 27 of file pm.h.

◆ BM_STS

#define BM_STS   (1 << 4)

Definition at line 17 of file pm.h.

◆ DEVACT_STS

#define DEVACT_STS   0x44

Definition at line 54 of file pm.h.

◆ DMISCI_STS

#define DMISCI_STS   (1 << 9)

Definition at line 59 of file pm.h.

◆ EOS

#define EOS   (1 << 1)

Definition at line 45 of file pm.h.

◆ GBL_EN

#define GBL_EN   (1 << 5)

Definition at line 23 of file pm.h.

◆ GBL_RLS

#define GBL_RLS   (1 << 2)

Definition at line 26 of file pm.h.

◆ GBL_SMI_EN

#define GBL_SMI_EN   (1 << 0)

Definition at line 46 of file pm.h.

◆ GBL_STS

#define GBL_STS   (1 << 5)

Definition at line 16 of file pm.h.

◆ GP27_EN

#define GP27_EN   (1 << 16)

Definition at line 83 of file pm.h.

◆ GP27_STS

#define GP27_STS   (1 << 16)

Definition at line 71 of file pm.h.

◆ GPE0_EN

#define GPE0_EN (   x)    (0x90 + ((x) * 4))

Definition at line 81 of file pm.h.

◆ GPE0_REG_MAX

#define GPE0_REG_MAX   4

Definition at line 63 of file pm.h.

◆ GPE0_REG_SIZE

#define GPE0_REG_SIZE   32

Definition at line 64 of file pm.h.

◆ GPE0_STS

#define GPE0_STS (   x)    (0x80 + ((x) * 4))

Definition at line 65 of file pm.h.

◆ GPE_31_0

#define GPE_31_0   0 /* 0x80/0x90 = GPE[31:0] */

Definition at line 66 of file pm.h.

◆ GPE_63_32

#define GPE_63_32   1 /* 0x84/0x94 = GPE[63:32] */

Definition at line 67 of file pm.h.

◆ GPE_94_64

#define GPE_94_64   2 /* 0x88/0x98 = GPE[94:64] */

Definition at line 68 of file pm.h.

◆ GPE_CNTL

#define GPE_CNTL   0x42

Definition at line 52 of file pm.h.

◆ GPE_STD

#define GPE_STD   3 /* 0x8c/0x9c = Standard GPE */

Definition at line 69 of file pm.h.

◆ GPIO_UNLOCK_SMI_EN

#define GPIO_UNLOCK_SMI_EN   (1 << 27)

Definition at line 33 of file pm.h.

◆ HOT_PLUG_EN

#define HOT_PLUG_EN   (1 << 1)

Definition at line 91 of file pm.h.

◆ HOT_PLUG_STS

#define HOT_PLUG_STS   (1 << 1)

Definition at line 80 of file pm.h.

◆ INTEL_USB2_EN

#define INTEL_USB2_EN   (1 << 18)

Definition at line 34 of file pm.h.

◆ LEGACY_USB2_EN

#define LEGACY_USB2_EN   (1 << 17)

Definition at line 35 of file pm.h.

◆ LEGACY_USB_EN

#define LEGACY_USB_EN   (1 << 3)

Definition at line 43 of file pm.h.

◆ MAINBOARD_POWER_KEEP

#define MAINBOARD_POWER_KEEP   2

Definition at line 95 of file pm.h.

◆ MAINBOARD_POWER_OFF

#define MAINBOARD_POWER_OFF   0

Definition at line 93 of file pm.h.

◆ MAINBOARD_POWER_ON

#define MAINBOARD_POWER_ON   1

Definition at line 94 of file pm.h.

◆ MCSMI_EN

#define MCSMI_EN   (1 << 11)

Definition at line 38 of file pm.h.

◆ ME_SCI_EN

#define ME_SCI_EN   (1 << 12)

Definition at line 85 of file pm.h.

◆ ME_SCI_STS

#define ME_SCI_STS   (1 << 12)

Definition at line 73 of file pm.h.

◆ ME_SMI_EN

#define ME_SMI_EN   (1 << 30)

Definition at line 32 of file pm.h.

◆ PCI_EXP_EN

#define PCI_EXP_EN   (1 << 9)

Definition at line 88 of file pm.h.

◆ PCI_EXP_STS

#define PCI_EXP_STS   (1 << 9)

Definition at line 76 of file pm.h.

◆ PCIEXPWAK_DIS

#define PCIEXPWAK_DIS   (1 << 14)

Definition at line 20 of file pm.h.

◆ PCIEXPWAK_STS

#define PCIEXPWAK_STS   (1 << 14)

Definition at line 12 of file pm.h.

◆ PERIODIC_EN

#define PERIODIC_EN   (1 << 14)

Definition at line 36 of file pm.h.

◆ PM1_CNT

#define PM1_CNT   0x04

Definition at line 25 of file pm.h.

◆ PM1_EN

#define PM1_EN   0x02

Definition at line 19 of file pm.h.

◆ PM1_STS

#define PM1_STS   0x00

Definition at line 10 of file pm.h.

◆ PM1_TMR

#define PM1_TMR   0x08

Definition at line 29 of file pm.h.

◆ PM2_CNT

#define PM2_CNT   0x50

Definition at line 55 of file pm.h.

◆ PME_B0_EN

#define PME_B0_EN   (1 << 13)

Definition at line 84 of file pm.h.

◆ PME_B0_STS

#define PME_B0_STS   (1 << 13)

Definition at line 72 of file pm.h.

◆ PME_EN

#define PME_EN   (1 << 11)

Definition at line 86 of file pm.h.

◆ PME_STS

#define PME_STS   (1 << 11)

Definition at line 74 of file pm.h.

◆ PRBTNOR_STS

#define PRBTNOR_STS   (1 << 11)

Definition at line 13 of file pm.h.

◆ PWRBTN_EN

#define PWRBTN_EN   (1 << 8)

Definition at line 22 of file pm.h.

◆ PWRBTN_STS

#define PWRBTN_STS   (1 << 8)

Definition at line 15 of file pm.h.

◆ RTC_EN

#define RTC_EN   (1 << 10)

Definition at line 21 of file pm.h.

◆ RTC_STS

#define RTC_STS   (1 << 10)

Definition at line 14 of file pm.h.

◆ SCI_EN

#define SCI_EN   (1 << 0)

Definition at line 28 of file pm.h.

◆ SLP_SMI_EN

#define SLP_SMI_EN   (1 << 4)

Definition at line 42 of file pm.h.

◆ SMB_WAK_STS

#define SMB_WAK_STS   (1 << 7)

Definition at line 77 of file pm.h.

◆ SMI_EN

#define SMI_EN   0x30

Definition at line 30 of file pm.h.

◆ SMI_STS

#define SMI_STS   0x34

Definition at line 47 of file pm.h.

◆ SWGPE_CTRL

#define SWGPE_CTRL   (1 << 1)

Definition at line 53 of file pm.h.

◆ SWGPE_EN

#define SWGPE_EN   (1 << 2)

Definition at line 90 of file pm.h.

◆ SWGPE_STS

#define SWGPE_STS   (1 << 2)

Definition at line 79 of file pm.h.

◆ SWSMI_TMR_EN

#define SWSMI_TMR_EN   (1 << 6)

Definition at line 40 of file pm.h.

◆ TCO1_CNT

#define TCO1_CNT   0x60

Definition at line 56 of file pm.h.

◆ TCO1_STS

#define TCO1_STS   0x64

Definition at line 58 of file pm.h.

◆ TCO2_STS

#define TCO2_STS   0x66

Definition at line 60 of file pm.h.

◆ TCO2_STS_SECOND_TO

#define TCO2_STS_SECOND_TO   (1 << 1)

Definition at line 61 of file pm.h.

◆ TCO_EN

#define TCO_EN   (1 << 13)

Definition at line 37 of file pm.h.

◆ TCO_TMR_HLT

#define TCO_TMR_HLT   (1 << 11)

Definition at line 57 of file pm.h.

◆ TCOSCI_EN

#define TCOSCI_EN   (1 << 6)

Definition at line 89 of file pm.h.

◆ TCOSCI_STS

#define TCOSCI_STS   (1 << 6)

Definition at line 78 of file pm.h.

◆ TMROF_EN

#define TMROF_EN   (1 << 0)

Definition at line 24 of file pm.h.

◆ TMROF_STS

#define TMROF_STS   (1 << 0)

Definition at line 18 of file pm.h.

◆ UPWRC

#define UPWRC   0x3c

Definition at line 48 of file pm.h.

◆ UPWRC_SMI

#define UPWRC_SMI   (1 << 0)

Definition at line 51 of file pm.h.

◆ UPWRC_WE

#define UPWRC_WE   (1 << 1)

Definition at line 50 of file pm.h.

◆ UPWRC_WS

#define UPWRC_WS   (1 << 8)

Definition at line 49 of file pm.h.

◆ WADT_en

#define WADT_en   (1 << 18)

Definition at line 82 of file pm.h.

◆ WADT_STS

#define WADT_STS   (1 << 18)

Definition at line 70 of file pm.h.

◆ WAK_STS

#define WAK_STS   (1 << 15)

Definition at line 11 of file pm.h.

◆ XHCI_SMI_EN

#define XHCI_SMI_EN   (1 << 31)

Definition at line 31 of file pm.h.

Function Documentation

◆ clear_alt_smi_status()

uint32_t clear_alt_smi_status ( void  )

Definition at line 236 of file pmutil.c.

References print_alt_smi_status(), and reset_alt_smi_status().

Referenced by southbridge_smi_gpi().

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

◆ clear_gpe_enable()

void clear_gpe_enable ( void  )

◆ clear_gpe_status()

uint32_t clear_gpe_status ( void  )

Definition at line 265 of file pmutil.c.

◆ clear_pm1_status()

uint16_t clear_pm1_status ( void  )

Definition at line 152 of file pmutil.c.

◆ clear_smi_status()

uint32_t clear_smi_status ( void  )

Definition at line 84 of file pmutil.c.

◆ clear_tco_status()

uint32_t clear_tco_status ( void  )

Definition at line 189 of file pmutil.c.

◆ disable_all_gpe()

void disable_all_gpe ( void  )

Definition at line 210 of file pmutil.c.

◆ disable_gpe()

void disable_gpe ( uint32_t  mask)

Definition at line 202 of file pmutil.c.

◆ disable_pm1_control()

void disable_pm1_control ( uint32_t  mask)

Definition at line 113 of file pmutil.c.

◆ disable_smi()

void disable_smi ( uint32_t  mask)

Definition at line 97 of file pmutil.c.

◆ enable_all_gpe()

void enable_all_gpe ( uint32_t  set1,
uint32_t  set2,
uint32_t  set3,
uint32_t  set4 
)

Definition at line 385 of file pmutil.c.

References get_pmbase(), GPE0_EN, GPE_31_0, GPE_63_32, GPE_94_64, GPE_STD, outl(), and pmbase.

Referenced by pch_power_options().

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

◆ enable_alt_smi()

void enable_alt_smi ( uint32_t  mask)

Definition at line 242 of file pmutil.c.

References get_gpiobase(), GPIO_ALT_GPI_SMI_EN, inl(), mask, and outl().

Referenced by pch_power_options().

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

◆ enable_gpe()

void enable_gpe ( uint32_t  mask)

Definition at line 194 of file pmutil.c.

◆ enable_pm1()

void enable_pm1 ( uint16_t  events)

Definition at line 157 of file pmutil.c.

◆ enable_pm1_control()

void enable_pm1_control ( uint32_t  mask)

Definition at line 105 of file pmutil.c.

◆ enable_smi()

void enable_smi ( uint32_t  mask)

Definition at line 89 of file pmutil.c.

◆ enable_tco_sci()

void enable_tco_sci ( void  )

Definition at line 309 of file pmutil.c.

References enable_gpe(), get_pmbase(), GPE0_STS, outl(), TCOSCI_EN, and TCOSCI_STS.

Referenced by gma_enable_swsci().

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

◆ get_pmbase()

uint16_t get_pmbase ( void  )

Definition at line 254 of file pmutil.c.