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 <soc/gpe.h>
#include <soc/iomap.h>
#include <soc/smbus.h>
#include <soc/pmc.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 ESPI_SMI_EN   (1 << 28)
 
#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_SMI_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 SMI_STS_BITS   32
 
#define XHCI_SMI_STS_BIT   31
 
#define ME_SMI_STS_BIT   30
 
#define ESPI_SMI_STS_BIT   28
 
#define GPIO_UNLOCK_SMI_STS_BIT   27
 
#define SPI_SMI_STS_BIT   26
 
#define SCC_SMI_STS_BIT   25
 
#define MONITOR_STS_BIT   21
 
#define PCI_EXP_SMI_STS_BIT   20
 
#define SMBUS_SMI_STS_BIT   16
 
#define SERIRQ_SMI_STS_BIT   15
 
#define PERIODIC_STS_BIT   14
 
#define TCO_STS_BIT   13
 
#define DEVMON_STS_BIT   12
 
#define MCSMI_STS_BIT   11
 
#define GPIO_STS_BIT   10
 
#define GPE0_STS_BIT   9
 
#define PM1_STS_BIT   8
 
#define SWSMI_TMR_STS_BIT   6
 
#define APM_STS_BIT   5
 
#define SMI_ON_SLP_EN_STS_BIT   4
 
#define LEGACY_USB_STS_BIT   3
 
#define BIOS_STS_BIT   2
 
#define GPE_CNTL   0x42
 
#define SWGPE_CTRL   (1 << 1)
 
#define DEVACT_STS   0x44
 
#define PM2_CNT   0x50
 
#define GPE0_REG_MAX   4
 
#define GPE0_REG_SIZE   32
 
#define GPE0_STS(x)   (0x60 + ((x) * 4))
 
#define GPE_31_0   0 /* 0x60/0x70 = GPE[31:0] */
 
#define GPE_63_32   1 /* 0x64/0x74 = GPE[63:32] */
 
#define GPE_95_64   2 /* 0x68/0x78 = GPE[95:64] */
 
#define GPE_STD   3 /* 0x6c/0x7c = Standard GPE */
 
#define GPE_STS_RSVD   GPE_STD
 
#define WADT_STS   (1 << 18)
 
#define GPIO_T2_STS   (1 << 15)
 
#define ESPI_STS   (1 << 14)
 
#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)   (0x70 + ((x) * 4))
 
#define WADT_EN   (1 << 18)
 
#define GPIO_T2_EN   (1 << 15)
 
#define ESPI_EN   (1 << 14)
 
#define PME_B0_EN_BIT   13
 
#define PME_B0_EN   (1 << PME_B0_EN_BIT)
 
#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 EN_BLOCK   3
 
#define ENABLE_SMI_PARAMS    (APMC_EN | SLP_SMI_EN | GBL_SMI_EN | ESPI_SMI_EN | EOS)
 
#define PSS_RATIO_STEP   2
 
#define PSS_MAX_ENTRIES   8
 
#define PSS_LATENCY_TRANSITION   10
 
#define PSS_LATENCY_BUSMASTER   10
 

Functions

uint8_tpmc_mmio_regs (void)
 
uint16_t smbus_tco_regs (void)
 
void pmc_set_disb (void)
 
uint16_t get_pmbase (void)
 

Variables

struct chipset_power_state __packed
 

Macro Definition Documentation

◆ APM_STS_BIT

#define APM_STS_BIT   5

Definition at line 70 of file pm.h.

◆ APMC_EN

#define APMC_EN   (1 << 5)

Definition at line 44 of file pm.h.

◆ BATLOW_EN

#define BATLOW_EN   (1 << 10)

Definition at line 107 of file pm.h.

◆ BATLOW_STS

#define BATLOW_STS   (1 << 10)

Definition at line 93 of file pm.h.

◆ BIOS_EN

#define BIOS_EN   (1 << 2)

Definition at line 47 of file pm.h.

◆ BIOS_RLS

#define BIOS_RLS   (1 << 7)

Definition at line 42 of file pm.h.

◆ BIOS_STS_BIT

#define BIOS_STS_BIT   2

Definition at line 73 of file pm.h.

◆ BM_RLD

#define BM_RLD   (1 << 1)

Definition at line 29 of file pm.h.

◆ BM_STS

#define BM_STS   (1 << 4)

Definition at line 19 of file pm.h.

◆ DEVACT_STS

#define DEVACT_STS   0x44

Definition at line 76 of file pm.h.

◆ DEVMON_STS_BIT

#define DEVMON_STS_BIT   12

Definition at line 64 of file pm.h.

◆ EN_BLOCK

#define EN_BLOCK   3

Definition at line 113 of file pm.h.

◆ ENABLE_SMI_PARAMS

#define ENABLE_SMI_PARAMS    (APMC_EN | SLP_SMI_EN | GBL_SMI_EN | ESPI_SMI_EN | EOS)

Definition at line 125 of file pm.h.

◆ EOS

#define EOS   (1 << 1)

Definition at line 48 of file pm.h.

◆ ESPI_EN

#define ESPI_EN   (1 << 14)

Definition at line 102 of file pm.h.

◆ ESPI_SMI_EN

#define ESPI_SMI_EN   (1 << 28)

Definition at line 35 of file pm.h.

◆ ESPI_SMI_STS_BIT

#define ESPI_SMI_STS_BIT   28

Definition at line 54 of file pm.h.

◆ ESPI_STS

#define ESPI_STS   (1 << 14)

Definition at line 89 of file pm.h.

◆ GBL_EN

#define GBL_EN   (1 << 5)

Definition at line 25 of file pm.h.

◆ GBL_RLS

#define GBL_RLS   (1 << 2)

Definition at line 28 of file pm.h.

◆ GBL_SMI_EN

#define GBL_SMI_EN   (1 << 0)

Definition at line 49 of file pm.h.

◆ GBL_STS

#define GBL_STS   (1 << 5)

Definition at line 18 of file pm.h.

◆ GPE0_EN

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

Definition at line 99 of file pm.h.

◆ GPE0_REG_MAX

#define GPE0_REG_MAX   4

Definition at line 79 of file pm.h.

◆ GPE0_REG_SIZE

#define GPE0_REG_SIZE   32

Definition at line 80 of file pm.h.

◆ GPE0_STS

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

Definition at line 81 of file pm.h.

◆ GPE0_STS_BIT

#define GPE0_STS_BIT   9

Definition at line 67 of file pm.h.

◆ GPE_31_0

#define GPE_31_0   0 /* 0x60/0x70 = GPE[31:0] */

Definition at line 82 of file pm.h.

◆ GPE_63_32

#define GPE_63_32   1 /* 0x64/0x74 = GPE[63:32] */

Definition at line 83 of file pm.h.

◆ GPE_95_64

#define GPE_95_64   2 /* 0x68/0x78 = GPE[95:64] */

Definition at line 84 of file pm.h.

◆ GPE_CNTL

#define GPE_CNTL   0x42

Definition at line 74 of file pm.h.

◆ GPE_STD

#define GPE_STD   3 /* 0x6c/0x7c = Standard GPE */

Definition at line 85 of file pm.h.

◆ GPE_STS_RSVD

#define GPE_STS_RSVD   GPE_STD

Definition at line 86 of file pm.h.

◆ GPIO_STS_BIT

#define GPIO_STS_BIT   10

Definition at line 66 of file pm.h.

◆ GPIO_T2_EN

#define GPIO_T2_EN   (1 << 15)

Definition at line 101 of file pm.h.

◆ GPIO_T2_STS

#define GPIO_T2_STS   (1 << 15)

Definition at line 88 of file pm.h.

◆ GPIO_UNLOCK_SMI_EN

#define GPIO_UNLOCK_SMI_EN   (1 << 27)

Definition at line 36 of file pm.h.

◆ GPIO_UNLOCK_SMI_STS_BIT

#define GPIO_UNLOCK_SMI_STS_BIT   27

Definition at line 55 of file pm.h.

◆ HOT_PLUG_EN

#define HOT_PLUG_EN   (1 << 1)

Definition at line 111 of file pm.h.

◆ HOT_PLUG_STS

#define HOT_PLUG_STS   (1 << 1)

Definition at line 98 of file pm.h.

◆ INTEL_USB2_EN

#define INTEL_USB2_EN   (1 << 18)

Definition at line 37 of file pm.h.

◆ LEGACY_USB2_EN

#define LEGACY_USB2_EN   (1 << 17)

Definition at line 38 of file pm.h.

◆ LEGACY_USB_EN

#define LEGACY_USB_EN   (1 << 3)

Definition at line 46 of file pm.h.

◆ LEGACY_USB_STS_BIT

#define LEGACY_USB_STS_BIT   3

Definition at line 72 of file pm.h.

◆ MCSMI_EN

#define MCSMI_EN   (1 << 11)

Definition at line 41 of file pm.h.

◆ MCSMI_STS_BIT

#define MCSMI_STS_BIT   11

Definition at line 65 of file pm.h.

◆ ME_SCI_EN

#define ME_SCI_EN   (1 << 12)

Definition at line 105 of file pm.h.

◆ ME_SCI_STS

#define ME_SCI_STS   (1 << 12)

Definition at line 91 of file pm.h.

◆ ME_SMI_EN

#define ME_SMI_EN   (1 << 30)

Definition at line 34 of file pm.h.

◆ ME_SMI_STS_BIT

#define ME_SMI_STS_BIT   30

Definition at line 53 of file pm.h.

◆ MONITOR_STS_BIT

#define MONITOR_STS_BIT   21

Definition at line 58 of file pm.h.

◆ PCI_EXP_EN

#define PCI_EXP_EN   (1 << 9)

Definition at line 108 of file pm.h.

◆ PCI_EXP_SMI_STS_BIT

#define PCI_EXP_SMI_STS_BIT   20

Definition at line 59 of file pm.h.

◆ PCI_EXP_STS

#define PCI_EXP_STS   (1 << 9)

Definition at line 94 of file pm.h.

◆ PCIEXPWAK_DIS

#define PCIEXPWAK_DIS   (1 << 14)

Definition at line 22 of file pm.h.

◆ PCIEXPWAK_STS

#define PCIEXPWAK_STS   (1 << 14)

Definition at line 14 of file pm.h.

◆ PERIODIC_EN

#define PERIODIC_EN   (1 << 14)

Definition at line 39 of file pm.h.

◆ PERIODIC_STS_BIT

#define PERIODIC_STS_BIT   14

Definition at line 62 of file pm.h.

◆ PM1_CNT

#define PM1_CNT   0x04

Definition at line 27 of file pm.h.

◆ PM1_EN

#define PM1_EN   0x02

Definition at line 21 of file pm.h.

◆ PM1_STS

#define PM1_STS   0x00

Definition at line 12 of file pm.h.

◆ PM1_STS_BIT

#define PM1_STS_BIT   8

Definition at line 68 of file pm.h.

◆ PM1_TMR

#define PM1_TMR   0x08

Definition at line 31 of file pm.h.

◆ PM2_CNT

#define PM2_CNT   0x50

Definition at line 77 of file pm.h.

◆ PME_B0_EN

#define PME_B0_EN   (1 << PME_B0_EN_BIT)

Definition at line 104 of file pm.h.

◆ PME_B0_EN_BIT

#define PME_B0_EN_BIT   13

Definition at line 103 of file pm.h.

◆ PME_B0_STS

#define PME_B0_STS   (1 << 13)

Definition at line 90 of file pm.h.

◆ PME_EN

#define PME_EN   (1 << 11)

Definition at line 106 of file pm.h.

◆ PME_STS

#define PME_STS   (1 << 11)

Definition at line 92 of file pm.h.

◆ PRBTNOR_STS

#define PRBTNOR_STS   (1 << 11)

Definition at line 15 of file pm.h.

◆ PSS_LATENCY_BUSMASTER

#define PSS_LATENCY_BUSMASTER   10

Definition at line 131 of file pm.h.

◆ PSS_LATENCY_TRANSITION

#define PSS_LATENCY_TRANSITION   10

Definition at line 130 of file pm.h.

◆ PSS_MAX_ENTRIES

#define PSS_MAX_ENTRIES   8

Definition at line 129 of file pm.h.

◆ PSS_RATIO_STEP

#define PSS_RATIO_STEP   2

Definition at line 128 of file pm.h.

◆ PWRBTN_EN

#define PWRBTN_EN   (1 << 8)

Definition at line 24 of file pm.h.

◆ PWRBTN_STS

#define PWRBTN_STS   (1 << 8)

Definition at line 17 of file pm.h.

◆ RTC_EN

#define RTC_EN   (1 << 10)

Definition at line 23 of file pm.h.

◆ RTC_STS

#define RTC_STS   (1 << 10)

Definition at line 16 of file pm.h.

◆ SCC_SMI_STS_BIT

#define SCC_SMI_STS_BIT   25

Definition at line 57 of file pm.h.

◆ SCI_EN

#define SCI_EN   (1 << 0)

Definition at line 30 of file pm.h.

◆ SERIRQ_SMI_STS_BIT

#define SERIRQ_SMI_STS_BIT   15

Definition at line 61 of file pm.h.

◆ SLP_SMI_EN

#define SLP_SMI_EN   (1 << 4)

Definition at line 45 of file pm.h.

◆ SMB_WAK_STS

#define SMB_WAK_STS   (1 << 7)

Definition at line 95 of file pm.h.

◆ SMBUS_SMI_STS_BIT

#define SMBUS_SMI_STS_BIT   16

Definition at line 60 of file pm.h.

◆ SMI_EN

#define SMI_EN   0x30

Definition at line 32 of file pm.h.

◆ SMI_ON_SLP_EN_STS_BIT

#define SMI_ON_SLP_EN_STS_BIT   4

Definition at line 71 of file pm.h.

◆ SMI_STS

#define SMI_STS   0x34

Definition at line 50 of file pm.h.

◆ SMI_STS_BITS

#define SMI_STS_BITS   32

Definition at line 51 of file pm.h.

◆ SPI_SMI_STS_BIT

#define SPI_SMI_STS_BIT   26

Definition at line 56 of file pm.h.

◆ SWGPE_CTRL

#define SWGPE_CTRL   (1 << 1)

Definition at line 75 of file pm.h.

◆ SWGPE_EN

#define SWGPE_EN   (1 << 2)

Definition at line 110 of file pm.h.

◆ SWGPE_STS

#define SWGPE_STS   (1 << 2)

Definition at line 97 of file pm.h.

◆ SWSMI_TMR_EN

#define SWSMI_TMR_EN   (1 << 6)

Definition at line 43 of file pm.h.

◆ SWSMI_TMR_STS_BIT

#define SWSMI_TMR_STS_BIT   6

Definition at line 69 of file pm.h.

◆ TCO_SMI_EN

#define TCO_SMI_EN   (1 << 13)

Definition at line 40 of file pm.h.

◆ TCO_STS_BIT

#define TCO_STS_BIT   13

Definition at line 63 of file pm.h.

◆ TCOSCI_EN

#define TCOSCI_EN   (1 << 6)

Definition at line 109 of file pm.h.

◆ TCOSCI_STS

#define TCOSCI_STS   (1 << 6)

Definition at line 96 of file pm.h.

◆ TMROF_EN

#define TMROF_EN   (1 << 0)

Definition at line 26 of file pm.h.

◆ TMROF_STS

#define TMROF_STS   (1 << 0)

Definition at line 20 of file pm.h.

◆ WADT_EN

#define WADT_EN   (1 << 18)

Definition at line 100 of file pm.h.

◆ WADT_STS

#define WADT_STS   (1 << 18)

Definition at line 87 of file pm.h.

◆ WAK_STS

#define WAK_STS   (1 << 15)

Definition at line 13 of file pm.h.

◆ XHCI_SMI_EN

#define XHCI_SMI_EN   (1 << 31)

Definition at line 33 of file pm.h.

◆ XHCI_SMI_STS_BIT

#define XHCI_SMI_STS_BIT   31

Definition at line 52 of file pm.h.

Function Documentation

◆ get_pmbase()

◆ pmc_mmio_regs()

◆ pmc_set_disb()

void pmc_set_disb ( void  )

Definition at line 121 of file pmutil.c.

References addr, DISB, GEN_PMCON_A, MS4V, pmc_mmio_regs(), read8(), SUS_PWR_FLR, and write8().

Referenced by mainboard_romstage_entry().

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

◆ smbus_tco_regs()

uint16_t smbus_tco_regs ( void  )

Variable Documentation

◆ __packed