/** @file
|
Register names for PCH PMC device
|
|
Conventions:
|
|
- Register definition format:
|
Prefix_[GenerationName]_[ComponentName]_SubsystemName_RegisterSpace_RegisterName
|
- Prefix:
|
Definitions beginning with "R_" are registers
|
Definitions beginning with "B_" are bits within registers
|
Definitions beginning with "V_" are meaningful values within the bits
|
Definitions beginning with "S_" are register size
|
Definitions beginning with "N_" are the bit position
|
- [GenerationName]:
|
Three letter acronym of the generation is used (e.g. SKL,KBL,CNL etc.).
|
Register name without GenerationName applies to all generations.
|
- [ComponentName]:
|
This field indicates the component name that the register belongs to (e.g. PCH, SA etc.)
|
Register name without ComponentName applies to all components.
|
Register that is specific to -LP denoted by "_PCH_LP_" in component name.
|
- SubsystemName:
|
This field indicates the subsystem name of the component that the register belongs to
|
(e.g. PCIE, USB, SATA, GPIO, PMC etc.).
|
- RegisterSpace:
|
MEM - MMIO space register of subsystem.
|
IO - IO space register of subsystem.
|
PCR - Private configuration register of subsystem.
|
CFG - PCI configuration space register of subsystem.
|
- RegisterName:
|
Full register name.
|
|
Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
#ifndef _PCH_REGS_PMC_H_
|
#define _PCH_REGS_PMC_H_
|
|
//
|
// ACPI and legacy I/O register offsets from ACPIBASE
|
//
|
#define R_ACPI_IO_PM1_STS 0x00
|
#define S_ACPI_IO_PM1_STS 2
|
#define B_ACPI_IO_PM1_STS_WAK BIT15
|
#define B_ACPI_IO_PM1_STS_PCIEXP_WAKE_STS BIT14
|
#define B_ACPI_IO_PM1_STS_PRBTNOR BIT11
|
#define B_ACPI_IO_PM1_STS_RTC BIT10
|
#define B_ACPI_IO_PM1_STS_PWRBTN BIT8
|
#define B_ACPI_IO_PM1_STS_GBL BIT5
|
#define B_ACPI_IO_PM1_STS_TMROF BIT0
|
#define N_ACPI_IO_PM1_STS_RTC 10
|
#define N_ACPI_IO_PM1_STS_PWRBTN 8
|
#define N_ACPI_IO_PM1_STS_TMROF 0
|
|
#define R_ACPI_IO_PM1_EN 0x02
|
#define S_ACPI_IO_PM1_EN 2
|
#define B_ACPI_IO_PM1_EN_PWRBTN BIT8
|
#define N_ACPI_IO_PM1_EN_RTC 10
|
#define N_ACPI_IO_PM1_EN_PWRBTN 8
|
#define N_ACPI_IO_PM1_EN_TMROF 0
|
|
#define R_ACPI_IO_PM1_CNT 0x04
|
#define B_ACPI_IO_PM1_CNT_SLP_EN BIT13
|
#define B_ACPI_IO_PM1_CNT_SLP_TYP (BIT12 | BIT11 | BIT10)
|
#define V_ACPI_IO_PM1_CNT_S0 0
|
#define V_ACPI_IO_PM1_CNT_S1 BIT10
|
#define V_ACPI_IO_PM1_CNT_S3 (BIT12 | BIT10)
|
#define V_ACPI_IO_PM1_CNT_S4 (BIT12 | BIT11)
|
#define V_ACPI_IO_PM1_CNT_S5 (BIT12 | BIT11 | BIT10)
|
#define B_ACPI_IO_PM1_CNT_SCI_EN BIT0
|
|
#define R_ACPI_IO_PM1_TMR 0x08
|
#define B_ACPI_IO_PM1_TMR_VAL 0xFFFFFF
|
#define V_ACPI_IO_PM1_TMR_MAX_VAL 0x1000000 ///< The timer is 24 bit overflow
|
|
#define R_ACPI_IO_SMI_EN 0x30
|
#define S_ACPI_IO_SMI_EN 4
|
#define B_ACPI_IO_SMI_EN_LEGACY_USB2 BIT17
|
#define B_ACPI_IO_SMI_EN_TCO BIT13
|
#define B_ACPI_IO_SMI_EN_BIOS_RLS BIT7
|
#define B_ACPI_IO_SMI_EN_SWSMI_TMR BIT6
|
#define B_ACPI_IO_SMI_EN_APMC BIT5
|
#define B_ACPI_IO_SMI_EN_LEGACY_USB BIT3
|
#define B_ACPI_IO_SMI_EN_BIOS BIT2
|
#define B_ACPI_IO_SMI_EN_EOS BIT1
|
#define B_ACPI_IO_SMI_EN_GBL_SMI BIT0
|
#define N_ACPI_IO_SMI_EN_LEGACY_USB3 31
|
#define N_ACPI_IO_SMI_EN_ESPI 28
|
#define N_ACPI_IO_SMI_EN_PERIODIC 14
|
#define N_ACPI_IO_SMI_EN_TCO 13
|
#define N_ACPI_IO_SMI_EN_MCSMI 11
|
#define N_ACPI_IO_SMI_EN_SWSMI_TMR 6
|
#define N_ACPI_IO_SMI_EN_APMC 5
|
#define N_ACPI_IO_SMI_EN_ON_SLP_EN 4
|
#define N_ACPI_IO_SMI_EN_LEGACY_USB 3
|
|
#define R_ACPI_IO_SMI_STS 0x34
|
#define S_ACPI_IO_SMI_STS 4
|
#define B_ACPI_IO_SMI_STS_GPIO_UNLOCK BIT27
|
#define B_ACPI_IO_SMI_STS_SMBUS BIT16
|
#define B_ACPI_IO_SMI_STS_PERIODIC BIT14
|
#define B_ACPI_IO_SMI_STS_TCO BIT13
|
#define B_ACPI_IO_SMI_STS_MCSMI BIT11
|
#define B_ACPI_IO_SMI_STS_SWSMI_TMR BIT6
|
#define B_ACPI_IO_SMI_STS_APM BIT5
|
#define B_ACPI_IO_SMI_STS_ON_SLP_EN BIT4
|
#define B_ACPI_IO_SMI_STS_BIOS BIT2
|
#define N_ACPI_IO_SMI_STS_LEGACY_USB3 31
|
#define N_ACPI_IO_SMI_STS_ESPI 28
|
#define N_ACPI_IO_SMI_STS_SPI 26
|
#define N_ACPI_IO_SMI_STS_MONITOR 21
|
#define N_ACPI_IO_SMI_STS_PCI_EXP 20
|
#define N_ACPI_IO_SMI_STS_SMBUS 16
|
#define N_ACPI_IO_SMI_STS_SERIRQ 15
|
#define N_ACPI_IO_SMI_STS_PERIODIC 14
|
#define N_ACPI_IO_SMI_STS_TCO 13
|
#define N_ACPI_IO_SMI_STS_MCSMI 11
|
#define N_ACPI_IO_SMI_STS_GPIO_SMI 10
|
#define N_ACPI_IO_SMI_STS_GPE0 9
|
#define N_ACPI_IO_SMI_STS_PM1_STS_REG 8
|
#define N_ACPI_IO_SMI_STS_SWSMI_TMR 6
|
#define N_ACPI_IO_SMI_STS_APM 5
|
#define N_ACPI_IO_SMI_STS_ON_SLP_EN 4
|
#define N_ACPI_IO_SMI_STS_LEGACY_USB 3
|
|
#define R_ACPI_IO_DEVACT_STS 0x44
|
#define B_ACPI_IO_DEVACT_STS_KBC BIT12
|
#define B_ACPI_IO_DEVACT_STS_PIRQDH BIT9
|
#define B_ACPI_IO_DEVACT_STS_PIRQCG BIT8
|
#define B_ACPI_IO_DEVACT_STS_PIRQBF BIT7
|
#define B_ACPI_IO_DEVACT_STS_PIRQAE BIT6
|
|
#define R_ACPI_IO_GPE0_STS_127_96 0x6C
|
#define S_ACPI_IO_GPE0_STS_127_96 4
|
#define B_ACPI_IO_GPE0_STS_127_96_WADT BIT18
|
#define B_ACPI_IO_GPE0_STS_127_96_USB_CON_DSX_STS BIT17
|
#define B_ACPI_IO_GPE0_STS_127_96_LAN_WAKE BIT16
|
#define B_ACPI_IO_GPE0_STS_127_96_PME_B0 BIT13
|
#define B_ACPI_IO_GPE0_STS_127_96_PME BIT11
|
#define B_ACPI_IO_GPE0_STS_127_96_BATLOW BIT10
|
#define B_ACPI_IO_GPE0_STS_127_96_RI BIT8
|
#define B_ACPI_IO_GPE0_STS_127_96_SMB_WAK BIT7
|
#define B_ACPI_IO_GPE0_STS_127_96_SWGPE BIT2
|
#define N_ACPI_IO_GPE0_STS_127_96_PME_B0 13
|
#define N_ACPI_IO_GPE0_STS_127_96_PME 11
|
|
#define R_ACPI_IO_GPE0_EN_127_96 0x7C
|
#define S_ACPI_IO_GPE0_EN_127_96 4
|
#define B_ACPI_IO_GPE0_EN_127_96_WADT BIT18
|
#define B_ACPI_IO_GPE0_EN_127_96_LAN_WAKE BIT16
|
#define B_ACPI_IO_GPE0_EN_127_96_PME_B0 BIT13
|
#define B_ACPI_IO_GPE0_EN_127_96_ME_SCI BIT12
|
#define B_ACPI_IO_GPE0_EN_127_96_PME BIT11
|
#define B_ACPI_IO_GPE0_EN_127_96_BATLOW BIT10
|
#define B_ACPI_IO_GPE0_EN_127_96_RI BIT8
|
#define B_ACPI_IO_GPE0_EN_127_96_SWGPE BIT2
|
#define N_ACPI_IO_GPE0_EN_127_96_PME_B0 13
|
#define N_ACPI_IO_GPE0_EN_127_96_PME 11
|
|
//
|
// TCO register I/O map
|
//
|
#define R_TCO_IO_TCO1_STS 0x04
|
#define S_TCO_IO_TCO1_STS 2
|
#define B_TCO_IO_TCO1_STS_DMISERR BIT12
|
#define B_TCO_IO_TCO1_STS_DMISMI BIT10
|
#define B_TCO_IO_TCO1_STS_DMISCI BIT9
|
#define B_TCO_IO_TCO1_STS_BIOSWR BIT8
|
#define B_TCO_IO_TCO1_STS_NEWCENTURY BIT7
|
#define B_TCO_IO_TCO1_STS_TIMEOUT BIT3
|
#define B_TCO_IO_TCO1_STS_TCO_INT BIT2
|
#define B_TCO_IO_TCO1_STS_SW_TCO_SMI BIT1
|
#define N_TCO_IO_TCO1_STS_DMISMI 10
|
#define N_TCO_IO_TCO1_STS_BIOSWR 8
|
#define N_TCO_IO_TCO1_STS_NEWCENTURY 7
|
#define N_TCO_IO_TCO1_STS_TIMEOUT 3
|
#define N_TCO_IO_TCO1_STS_SW_TCO_SMI 1
|
#define N_TCO_IO_TCO1_STS_NMI2SMI 0
|
|
#define R_TCO_IO_TCO2_STS 0x06
|
#define S_TCO_IO_TCO2_STS 2
|
#define B_TCO_IO_TCO2_STS_SECOND_TO BIT1
|
#define B_TCO_IO_TCO2_STS_INTRD_DET BIT0
|
#define N_TCO_IO_TCO2_STS_INTRD_DET 0
|
|
#define R_TCO_IO_TCO1_CNT 0x08
|
#define S_TCO_IO_TCO1_CNT 2
|
#define B_TCO_IO_TCO1_CNT_LOCK BIT12
|
#define N_TCO_IO_TCO1_CNT_NMI2SMI_EN 9
|
|
#define R_TCO_IO_TCO2_CNT 0x0A
|
#define S_TCO_IO_TCO2_CNT 2
|
#define N_TCO_IO_TCO2_CNT_INTRD_SEL 2
|
|
//
|
// PWRM Registers
|
//
|
#define R_PMC_PWRM_GEN_PMCON_A 0x1020 ///< in CNL located in PWRM
|
#define B_PMC_PWRM_GEN_PMCON_A_GBL_RST_STS BIT24
|
#define B_PMC_PWRM_GEN_PMCON_A_DISB BIT23
|
#define B_PMC_PWRM_GEN_PMCON_A_ALLOW_L1LOW_C0 BIT19
|
#define B_PMC_PWRM_GEN_PMCON_A_MS4V BIT18
|
#define B_PMC_PWRM_GEN_PMCON_A_SUS_PWR_FLR BIT16
|
#define B_PMC_PWRM_GEN_PMCON_A_PWR_FLR BIT14
|
#define B_PMC_PWRM_GEN_PMCON_A_HOST_RST_STS BIT9
|
#define B_PMC_PWRM_GEN_PMCON_A_ESPI_SMI_LOCK BIT8
|
#define B_PMC_PWRM_GEN_PMCON_A_AFTERG3_EN BIT0
|
#define B_PMC_PWRM_GEN_PMCON_A_SWSMI_RTSL 0xC0
|
#define V_PMC_PWRM_GEN_PMCON_A_SWSMI_RTSL_64MS 0xC0
|
#define V_PMC_PWRM_GEN_PMCON_A_SWSMI_RTSL_32MS 0x80
|
#define V_PMC_PWRM_GEN_PMCON_A_SWSMI_RTSL_16MS 0x40
|
#define V_PMC_PWRM_GEN_PMCON_A_SWSMI_RTSL_1_5MS 0x00
|
#define B_PMC_PWRM_GEN_PMCON_A_PER_SMI_SEL 0x6
|
#define V_PMC_PWRM_GEN_PMCON_A_PER_SMI_64S 0x0000
|
#define V_PMC_PWRM_GEN_PMCON_A_PER_SMI_32S 0x0002
|
#define V_PMC_PWRM_GEN_PMCON_A_PER_SMI_16S 0x0004
|
#define V_PMC_PWRM_GEN_PMCON_A_PER_SMI_8S 0x0006
|
|
#define R_PMC_PWRM_GEN_PMCON_B 0x1024
|
#define B_PMC_PWRM_GEN_PMCON_B_SLPSX_STR_POL_LOCK BIT18 ///< Lock down SLP_S3/SLP_S4 Minimum Assertion width
|
#define B_PMC_PWRM_GEN_PMCON_B_PWRBTN_LVL BIT9
|
#define B_PMC_PWRM_GEN_PMCON_B_SMI_LOCK BIT4
|
#define B_PMC_PWRM_GEN_PMCON_B_RTC_PWR_STS BIT2
|
|
#define R_PMC_PWRM_CRID 0x1030 ///< Configured Revision ID
|
#define V_PMC_PWRM_CRID_RID_SEL_CRID0 1
|
#define B_PMC_PWRM_CRID_CRID_LK BIT31 ///< CRID Lock
|
|
#define R_PMC_PWRM_ETR3 0x1048 ///< in CNL this is PWRM register
|
#define B_PMC_PWRM_ETR3_CF9LOCK BIT31 ///< CF9h Lockdown
|
#define B_PMC_PWRM_ETR3_CF9GR BIT20 ///< CF9h Global Reset
|
#define B_PMC_PWRM_ETR3_CWORWRE BIT18
|
|
#define R_PMC_PWRM_CFG 0x1818 ///< Power Management Configuration
|
#define B_PMC_PWRM_CFG_DBG_MODE_LOCK BIT27 ///< Debug Mode Lock
|
#define B_PMC_PWRM_CFG_PMCREAD_DISABLE BIT22 ///< Disable Reads to PMC
|
#define B_PMC_PWRM_CFG_TIMING_TPCH25 (BIT1 | BIT0) ///< tPCH25 timing
|
|
#define R_PMC_PWRM_DSX_CFG 0x1834 ///< Deep SX Configuration
|
#define B_PMC_PWRM_DSX_CFG_LAN_WAKE_EN BIT0 ///< LAN_WAKE Pin DeepSx Enable
|
|
#define R_PMC_PWRM_GPIO_CFG 0x1920
|
#define B_PMC_PWRM_GPIO_CFG_GPE0_DW2 (BIT11 | BIT10 | BIT9 | BIT8)
|
#define N_PMC_PWRM_GPIO_CFG_GPE0_DW2 8
|
#define B_PMC_PWRM_GPIO_CFG_GPE0_DW1 (BIT7 | BIT6 | BIT5 | BIT4)
|
#define N_PMC_PWRM_GPIO_CFG_GPE0_DW1 4
|
#define B_PMC_PWRM_GPIO_CFG_GPE0_DW0 (BIT3 | BIT2 | BIT1 | BIT0)
|
#define N_PMC_PWRM_GPIO_CFG_GPE0_DW0 0
|
|
#define R_PMC_PWRM_HPR_CAUSE0 0x192C ///< Host partition reset causes
|
#define B_PMC_PWRM_HPR_CAUSE0_GBL_TO_HOST BIT15 ///< Global reset converted to Host reset
|
|
#define R_PMC_PWRM_ST_PG_FDIS_PMC_1 0x1E20 ///< Static PG Related Function Disable Register 1
|
#define B_PMC_PWRM_ST_PG_FDIS_PMC_1_ST_FDIS_LK BIT31 ///< Static Function Disable Lock (ST_FDIS_LK)
|
|
#define R_PMC_PWRM_FUSE_DIS_RD_2 0x1E44 ///< Fuse Disable Read 2 Register
|
#define B_PMC_PWRM_FUSE_DIS_RD_2_GBE_FUSE_SS_DIS BIT0 ///< GBE Fuse or Soft Strap Disable
|
|
#endif
|