/** @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.
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