/** @file Register names for PCH LPC/eSPI device Conventions: Prefixes: 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 sizes Definitions beginning with "N_" are the bit position In general, PCH registers are denoted by "_PCH_" in register names Registers / bits that are different between PCH generations are denoted by _PCH_[generation_name]_" in register/bit names. Registers / bits that are specific to PCH-H denoted by "_H_" in register/bit names. Registers / bits that are specific to PCH-LP denoted by "_LP_" in register/bit names. e.g., "_PCH_H_", "_PCH_LP_" Registers / bits names without _H_ or _LP_ apply for both H and LP. Registers / bits that are different between SKUs are denoted by "_[SKU_name]" at the end of the register/bit names Registers / bits of new devices introduced in a PCH generation will be just named as "_PCH_" without [generation_name] inserted. @copyright Copyright 1999 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PCH_REGS_LPC_H_ #define _PCH_REGS_LPC_H_ #include // // PCI to LPC Bridge Registers (D31:F0) // #define PCI_DEVICE_NUMBER_PCH_LPC 31 #define PCI_FUNCTION_NUMBER_PCH_LPC 0 typedef enum { PchHA0 = 0x00, PchHB0 = 0x01, PchHC0, PchHD0, PchHD1, #ifdef SIMICS_FLAG PchLpA0 = 0x20, #endif PchLpB0 = 0x23, PchLpB1, PchLpC0, PchLpC1, LbgA0 = LBG_A0, LbgB0, LbgB1, LbgB2, LbgB3, LbgS0, LbgS1, LbgS2, PchMiniA0, PchSteppingMax } PCH_STEPPING; #define PCH_H_MIN_SUPPORTED_STEPPING PchHA0 #define PCH_LP_MIN_SUPPORTED_STEPPING PchLpB0 #define PCH_LBG_MIN_SUPPORTED_STEPPING LbgA0 #define R_PCH_LPC_VENDOR_ID 0x00 #define R_PCH_LPC_DEVICE_ID 0x02 // // // SKL PCH Server/WS LPC Device IDs // #define V_PCH_H_LPC_DEVICE_ID_SVR_0 0xA149 ///< Server SKU Intel C236 Chipset #define V_PCH_H_LPC_DEVICE_ID_SVR_1 0xA14A ///< Server SKU Intel C232 Chipset #define V_PCH_H_LPC_DEVICE_ID_SVR_2 0xA150 ///< Server SKU Intel CM236 Chipset #define V_PCH_H_LPC_DEVICE_ID_A14B 0xA14B ///< Super SKU Unlocked // // SKL PCH-H Desktop LPC Device IDs // #define V_PCH_H_LPC_DEVICE_ID_DT_SUPER_SKU 0xA141 ///< PCH H Desktop Super SKU unlocked #define V_PCH_H_LPC_DEVICE_ID_DT_0 0xA142 ///< PCH H Desktop Super SKU locked #define V_PCH_H_LPC_DEVICE_ID_DT_1 0xA143 ///< PCH H Desktop H110 #define V_PCH_H_LPC_DEVICE_ID_DT_2 0xA144 ///< PCH H Desktop H170 #define V_PCH_H_LPC_DEVICE_ID_DT_3 0xA145 ///< PCH H Desktop Z170 #define V_PCH_H_LPC_DEVICE_ID_DT_4 0xA146 ///< PCH H Desktop Q170 #define V_PCH_H_LPC_DEVICE_ID_DT_5 0xA147 ///< PCH H Desktop Q150 #define V_PCH_H_LPC_DEVICE_ID_DT_6 0xA148 ///< PCH H Desktop B150 #define V_PCH_H_LPC_DEVICE_ID_UNFUSE 0xA140 ///< PCH-H Unfuse // // PCH-H Mobile LPC Device IDs // #define V_PCH_H_LPC_DEVICE_ID_MB_SUPER_SKU 0xA141 ///< PCH H Mobile Super SKU unlocked #define V_PCH_H_LPC_DEVICE_ID_MB_0 0xA14D ///< PCH H Mobile QM170 #define V_PCH_H_LPC_DEVICE_ID_MB_1 0xA14E ///< PCH H Mobile HM170 #define V_PCH_H_LPC_DEVICE_ID_MB_2 0xA14F ///< PCH H Mobile QMS170 (SFF) // // PCH-LP LPC Device IDs // #define V_PCH_LP_LPC_DEVICE_ID_MB_SUPER_SKU 0x9D41 ///< PCH LP Mobile Super SKU unlocked #define V_PCH_LP_LPC_DEVICE_ID_MB_0 0x9D42 ///< PCH LP Mobile Super SKU locked #define V_PCH_LP_LPC_DEVICE_ID_MB_1 0x9D43 ///< PCH LP Mobile (U) Base SKU #define V_PCH_LP_LPC_DEVICE_ID_MB_2 0x9D46 ///< PCH LP Mobile (Y) Premium SKU #define V_PCH_LP_LPC_DEVICE_ID_MB_3 0x9D48 ///< PCH LP Mobile (U) Premium SKU #define V_PCH_LP_LPC_DEVICE_ID_UNFUSE 0x9D40 ///< PCH LP Unfuse // // Lewisburg Production LPC Device ID's // #define V_PCH_LBG_PROD_LPC_DEVICE_ID_0 0xA1C0 ///< LBG PRQ Unfused LBG 0 SKU #define V_PCH_LBG_PROD_LPC_DEVICE_ID_1G 0xA1C1 ///< LBG PRQ Fused LBG 1G #define V_PCH_LBG_PROD_LPC_DEVICE_ID_2 0xA1C2 ///< LBG PRQ Fused LBG 2 #define V_PCH_LBG_PROD_LPC_DEVICE_ID_4 0xA1C3 ///< LBG PRQ Fused LBG 4 #define V_PCH_LBG_PROD_LPC_DEVICE_ID_E 0xA1C4 ///< LBG PRQ Fused LBG E #define V_PCH_LBG_PROD_LPC_DEVICE_ID_M 0xA1C5 ///< LBG PRQ Fused LBG M #define V_PCH_LBG_PROD_LPC_DEVICE_ID_T 0xA1C6 ///< LBG PRQ Fused LBG T (both uplinks SKU - NS) #define V_PCH_LBG_PROD_LPC_DEVICE_ID_LP 0xA1C7 ///< LBG PRQ Fused LBG LP #define V_PCH_LBG_PROD_LPC_DEVICE_ID_C 0xA1CA ///< LBG PRQ Fused LBG C #define V_PCH_LBG_PROD_LPC_DEVICE_ID_C621A 0xA1CB ///< LBG-R PRQ Fused LBG C621A #define V_PCH_LBG_PROD_LPC_DEVICE_ID_C627A 0xA1CC ///< LBG-R PRQ Fused LBG C627A #define V_PCH_LBG_PROD_LPC_DEVICE_ID_C629A 0xA1CD ///< LBG-R PRQ Fused LBG C629A #define V_PCH_LBG_PROD_LPC_DEVICE_ID_ADG 0xA1CE ///< LBG-R PRQ Fused LBG ADG #define V_PCH_LBG_PROD_LPC_DEVICE_ID_RESERVED_MAX 0xA1CF ///< 0xA1CF reserved for future QS/PRQ SKUs // // Lewisburg SSX (Super SKUs and pre production) LPC Device ID's // #define V_PCH_LBG_LPC_DEVICE_ID_UNFUSED 0xA240 ///< LBG SSX Unfused SKU #define V_PCH_LBG_LPC_DEVICE_ID_SS_0 0xA241 ///< LBG SSX Super SKU 0 #define V_PCH_LBG_LPC_DEVICE_ID_SS_4_SD 0xA242 ///< LBG SSX Super SKU 4/SD #define V_PCH_LBG_LPC_DEVICE_ID_SS_T80_NS 0xA243 ///< LBG SSX Super SKU T80/NS #define V_PCH_LBG_LPC_DEVICE_ID_SS_1G 0xA244 ///< LBG SSX Super SKU 1G #define V_PCH_LBG_LPC_DEVICE_ID_SS_T 0xA245 ///< LBG Super SKU - T #define V_PCH_LBG_LPC_DEVICE_ID_SS_L 0xA246 ///< LBG Super SKU - L #define V_PCH_LBG_LPC_DEVICE_ID_SS_C621A 0xA24A ///< LBG-R Super SKU - C621A #define V_PCH_LBG_LPC_DEVICE_ID_SS_C627A 0xA24B ///< LBG-R Super SKU - C627A #define V_PCH_LBG_LPC_DEVICE_ID_SS_C629A 0xA24C ///< LBG-R Super SKU - C629A #define V_PCH_LBG_LPC_DEVICE_ID_SS_ADG 0xA24E ///< LBG-R Super SKU - ADG #define V_PCH_LBG_LPC_DEVICE_ID_RESERVED_SS_MAX 0xA24F ///< 0xA24D, 0xA24F Super SKU reserved #define V_PCH_LBG_LPC_RID_0 0x00 ///< A0 stepping #define V_PCH_LBG_LPC_RID_1 0x01 ///< A1 stepping #define V_PCH_LBG_LPC_RID_2 0x02 ///< B0 stepping #define V_PCH_LBG_LPC_RID_3 0x03 ///< B1 stepping #define V_PCH_LBG_LPC_RID_4 0x04 ///< B2 stepping #define V_PCH_LBG_LPC_RID_5 0x05 ///< C0 stepping #define V_PCH_LBG_LPC_RID_8 0x08 ///< S0 stepping #define V_PCH_LBG_LPC_RID_9 0x09 ///< S1 stepping #define V_PCH_LBG_LPC_RID_A 0x0A ///< T0 stepping #define V_PCH_MINI_LPC_RID_0 0xC0 ///< FPGA PCH stepping #define V_LPC_CFG_RID_0 0x00 #define V_LPC_CFG_RID_1 0x01 #define V_LPC_CFG_RID_9 0x09 #define V_LPC_CFG_RID_10 0x10 #define V_LPC_CFG_RID_11 0x11 #define V_LPC_CFG_RID_20 0x20 #define V_LPC_CFG_RID_21 0x21 #define V_LPC_CFG_RID_30 0x30 #define V_LPC_CFG_RID_31 0x31 #define R_LPC_CFG_SERIRQ_CNT 0x64 #define B_LPC_CFG_SERIRQ_CNT_SIRQEN 0x80 #define B_LPC_CFG_SERIRQ_CNT_SIRQMD 0x40 #define B_LPC_CFG_SERIRQ_CNT_SIRQSZ 0x3C #define N_LPC_CFG_SERIRQ_CNT_SIRQSZ 2 #define B_LPC_CFG_SERIRQ_CNT_SFPW 0x03 #define N_LPC_CFG_SERIRQ_CNT_SFPW 0 #define V_LPC_CFG_SERIRQ_CNT_SFPW_4CLK 0x00 #define V_LPC_CFG_SERIRQ_CNT_SFPW_6CLK 0x01 #define V_LPC_CFG_SERIRQ_CNT_SFPW_8CLK 0x02 #define R_LPC_CFG_IOD 0x80 #define B_LPC_CFG_IOD_FDD 0x1000 #define N_LPC_CFG_IOD_FDD 12 #define V_LPC_CFG_IOD_FDD_3F0 0 #define V_LPC_CFG_IOD_FDD_370 1 #define B_LPC_CFG_IOD_LPT 0x0300 #define N_LPC_CFG_IOD_LPT 8 #define V_LPC_CFG_IOD_LPT_378 0 #define V_LPC_CFG_IOD_LPT_278 1 #define V_LPC_CFG_IOD_LPT_3BC 2 #define B_LPC_CFG_IOD_COMB 0x0070 #define N_LPC_CFG_IOD_COMB 4 #define V_LPC_CFG_IOD_COMB_3F8 0 #define V_LPC_CFG_IOD_COMB_2F8 1 #define V_LPC_CFG_IOD_COMB_220 2 #define V_LPC_CFG_IOD_COMB_228 3 #define V_LPC_CFG_IOD_COMB_238 4 #define V_LPC_CFG_IOD_COMB_2E8 5 #define V_LPC_CFG_IOD_COMB_338 6 #define V_LPC_CFG_IOD_COMB_3E8 7 #define B_LPC_CFG_IOD_COMA 0x0007 #define N_LPC_CFG_IOD_COMA 0 #define V_LPC_CFG_IOD_COMA_3F8 0 #define V_LPC_CFG_IOD_COMA_2F8 1 #define V_LPC_CFG_IOD_COMA_220 2 #define V_LPC_CFG_IOD_COMA_228 3 #define V_LPC_CFG_IOD_COMA_238 4 #define V_LPC_CFG_IOD_COMA_2E8 5 #define V_LPC_CFG_IOD_COMA_338 6 #define V_LPC_CFG_IOD_COMA_3E8 7 #define R_LPC_CFG_IOE 0x82 #define B_LPC_CFG_IOE_ME2 BIT13 ///< Microcontroller Enable #2, Enables decoding of I/O locations 4Eh and 4Fh to LPC #define B_LPC_CFG_IOE_SE BIT12 ///< Super I/O Enable, Enables decoding of I/O locations 2Eh and 2Fh to LPC. #define B_LPC_CFG_IOE_ME1 BIT11 ///< Microcontroller Enable #1, Enables decoding of I/O locations 62h and 66h to LPC. #define B_LPC_CFG_IOE_KE BIT10 ///< Keyboard Enable, Enables decoding of the keyboard I/O locations 60h and 64h to LPC. #define B_LPC_CFG_IOE_HGE BIT9 ///< High Gameport Enable, Enables decoding of the I/O locations 208h to 20Fh to LPC. #define B_LPC_CFG_IOE_LGE BIT8 ///< Low Gameport Enable, Enables decoding of the I/O locations 200h to 207h to LPC. #define B_LPC_CFG_IOE_FDE BIT3 ///< Floppy Drive Enable, Enables decoding of the FDD range to LPC. Range is selected by LIOD.FDE #define B_LPC_CFG_IOE_PPE BIT2 ///< Parallel Port Enable, Enables decoding of the LPT range to LPC. Range is selected by LIOD.LPT. #define B_LPC_CFG_IOE_CBE BIT1 ///< Com Port B Enable, Enables decoding of the COMB range to LPC. Range is selected LIOD.CB. #define B_LPC_CFG_IOE_CAE BIT0 ///< Com Port A Enable, Enables decoding of the COMA range to LPC. Range is selected LIOD.CA. #define R_LPC_CFG_GEN1_DEC 0x84 #define R_LPC_CFG_GEN2_DEC 0x88 #define R_LPC_CFG_GEN3_DEC 0x8C #define R_LPC_CFG_GEN4_DEC 0x90 #define B_LPC_CFG_GENX_DEC_IODRA 0x00FC0000 #define B_LPC_CFG_GENX_DEC_IOBAR 0x0000FFFC #define B_LPC_CFG_GENX_DEC_EN 0x00000001 #define R_LPC_CFG_ULKMC 0x94 #define B_LPC_CFG_ULKMC_SMIBYENDPS BIT15 #define B_LPC_CFG_ULKMC_TRAPBY64W BIT11 #define B_LPC_CFG_ULKMC_TRAPBY64R BIT10 #define B_LPC_CFG_ULKMC_TRAPBY60W BIT9 #define B_LPC_CFG_ULKMC_TRAPBY60R BIT8 #define B_LPC_CFG_ULKMC_SMIATENDPS BIT7 #define B_LPC_CFG_ULKMC_PSTATE BIT6 #define B_LPC_CFG_ULKMC_A20PASSEN BIT5 #define B_LPC_CFG_ULKMC_USBSMIEN BIT4 #define B_LPC_CFG_ULKMC_64WEN BIT3 #define B_LPC_CFG_ULKMC_64REN BIT2 #define B_LPC_CFG_ULKMC_60WEN BIT1 #define B_LPC_CFG_ULKMC_60REN BIT0 #define R_LPC_CFG_LGMR 0x98 #define B_LPC_CFG_LGMR_MA 0xFFFF0000 #define B_LPC_CFG_LGMR_LMRD_EN BIT0 #define R_LPC_CFG_PCCS1IORE 0xA0 #define R_LPC_CFG_PCCS1GIR1 0xA4 #define R_LPC_CFG_PCCS1GMR1 0xA8 #define R_ESPI_CFG_CS1IORE 0xA0 #define R_ESPI_CFG_CS1IORE_DPCS1RE BIT14 #define R_ESPI_CFG_CS1GIR1 0xA4 #define R_ESPI_CFG_CS1GMR1 0xA8 #define R_LPC_CFG_FWH_BIOS_SEL 0xD0 #define B_LPC_CFG_FWH_BIOS_SEL_F8 0xF0000000 #define B_LPC_CFG_FWH_BIOS_SEL_F0 0x0F000000 #define B_LPC_CFG_FWH_BIOS_SEL_E8 0x00F00000 #define B_LPC_CFG_FWH_BIOS_SEL_E0 0x000F0000 #define B_LPC_CFG_FWH_BIOS_SEL_D8 0x0000F000 #define B_LPC_CFG_FWH_BIOS_SEL_D0 0x00000F00 #define B_LPC_CFG_FWH_BIOS_SEL_C8 0x000000F0 #define B_LPC_CFG_FWH_BIOS_SEL_C0 0x0000000F #define R_LPC_CFG_FWH_BIOS_SEL2 0xD4 #define B_LPC_CFG_FWH_BIOS_SEL2_70 0xF000 #define B_LPC_CFG_FWH_BIOS_SEL2_60 0x0F00 #define B_LPC_CFG_FWH_BIOS_SEL2_50 0x00F0 #define B_LPC_CFG_FWH_BIOS_SEL2_40 0x000F #define R_LPC_CFG_BDE 0xD8 ///< BIOS decode enable #define B_LPC_CFG_BDE_F8 0x8000 #define B_LPC_CFG_BDE_F0 0x4000 #define B_LPC_CFG_BDE_E8 0x2000 #define B_LPC_CFG_BDE_E0 0x1000 #define B_LPC_CFG_BDE_D8 0x0800 #define B_LPC_CFG_BDE_D0 0x0400 #define B_LPC_CFG_BDE_C8 0x0200 #define B_LPC_CFG_BDE_C0 0x0100 #define B_LPC_CFG_BDE_LEG_F 0x0080 #define B_LPC_CFG_BDE_LEG_E 0x0040 #define B_LPC_CFG_BDE_70 0x0008 #define B_LPC_CFG_BDE_60 0x0004 #define B_LPC_CFG_BDE_50 0x0002 #define B_LPC_CFG_BDE_40 0x0001 #define R_LPC_CFG_PCC 0xE0 #define B_LPC_CFG_PCC_CLKRUN_EN 0x0001 #define B_LPC_CFG_FVEC0_USB_PORT_CAP 0x00000C00 #define V_LPC_CFG_FVEC0_USB_14_PORT 0x00000000 #define V_LPC_CFG_FVEC0_USB_12_PORT 0x00000400 #define V_LPC_CFG_FVEC0_USB_10_PORT 0x00000800 #define B_LPC_CFG_FVEC0_SATA_RAID_CAP 0x00000080 #define B_LPC_CFG_FVEC0_SATA_PORT23_CAP 0x00000040 #define B_LPC_CFG_FVEC0_SATA_PORT1_6GB_CAP 0x00000008 #define B_LPC_CFG_FVEC0_SATA_PORT0_6GB_CAP 0x00000004 #define B_LPC_CFG_FVEC0_PCI_CAP 0x00000002 #define R_LPC_CFG_FVEC1 0x01 #define B_LPC_CFG_FVEC1_USB_R_CAP 0x00400000 #define R_LPC_CFG_FVEC2 0x02 #define B_PCH_LPC_FVEC2_IATT_CAP 0x00400000 ///< Intel Anti-Theft Technology Capability #define V_LPC_CFG_FVEC2_PCIE_PORT78_CAP 0x00200000 #define V_LPC_CFG_FVEC2_PCH_IG_SUPPORT_CAP 0x00020000 ///< PCH Integrated Graphics Support Capability #define R_LPC_CFG_FVEC3 0x03 #define B_LPC_CFG_FVEC3_DCMI_CAP 0x00002000 ///< Data Center Manageability Interface (DCMI) Capability #define B_LPC_CFG_FVEC3_NM_CAP 0x00001000 ///< Node Manager Capability #define R_LPC_CFG_MDAP 0xC0 #define B_LPC_CFG_MDAP_POLICY_EN BIT31 #define B_LPC_CFG_MDAP_PDMA_EN BIT30 #define B_LPC_CFG_MDAP_VALUE 0x0001FFFF // // APM Registers // #define R_PCH_IO_APM_CNT 0xB2 #define R_PCH_IO_APM_STS 0xB3 #define R_LPC_CFG_BC 0xDC ///< Bios Control #define S_LPC_CFG_BC 1 #define B_LPC_CFG_BC_BILD BIT7 ///< BIOS Interface Lock-Down #define B_LPC_CFG_BC_BBS BIT6 ///< Boot BIOS strap #define N_LPC_CFG_BC_BBS 6 #define V_LPC_CFG_BC_BBS_SPI 0 ///< Boot BIOS strapped to SPI #define V_LPC_CFG_BC_BBS_LPC 1 ///< Boot BIOS strapped to LPC #define B_LPC_CFG_BC_EISS BIT5 ///< Enable InSMM.STS #define B_LPC_CFG_BC_TS BIT4 ///< Top Swap #define B_LPC_CFG_BC_LE BIT1 ///< Lock Enable #define N_LPC_CFG_BC_LE 1 #define B_LPC_CFG_BC_WPD BIT0 ///< Write Protect Disable #define R_ESPI_CFG_PCBC 0xDC ///< Peripheral Channel BIOS Control #define S_ESPI_CFG_PCBC 4 ///< Peripheral Channel BIOS Control register size #define B_ESPI_CFG_PCBC_BWRE BIT11 ///< BIOS Write Report Enable #define N_ESPI_CFG_PCBC_BWRE 11 ///< BIOS Write Report Enable bit position #define B_ESPI_CFG_PCBC_BWRS BIT10 ///< BIOS Write Report Status #define N_ESPI_CFG_PCBC_BWRS 10 ///< BIOS Write Report Status bit position #define B_ESPI_CFG_PCBC_BWPDS BIT8 ///< BIOS Write Protect Disable Status #define N_ESPI_CFG_PCBC_BWPDS 8 ///< BIOS Write Protect Disable Status bit position #define B_ESPI_CFG_PCBC_ESPI_EN BIT2 ///< eSPI Enable Pin Strap #define B_ESPI_CFG_PCBC_LE BIT1 ///< Lock Enable // // Processor interface registers // #define R_PCH_IO_NMI_SC 0x61 #define B_PCH_IO_NMI_SC_SERR_NMI_STS BIT7 #define B_PCH_IO_NMI_SC_IOCHK_NMI_STS BIT6 #define B_PCH_IO_NMI_SC_TMR2_OUT_STS BIT5 #define B_PCH_IO_NMI_SC_REF_TOGGLE BIT4 #define B_PCH_IO_NMI_SC_IOCHK_NMI_EN BIT3 #define B_PCH_IO_NMI_SC_PCI_SERR_EN BIT2 #define B_PCH_IO_NMI_SC_SPKR_DAT_EN BIT1 #define B_PCH_IO_NMI_SC_TIM_CNT2_EN BIT0 #define R_PCH_IO_NMI_EN 0x70 #define B_PCH_IO_NMI_EN_NMI_EN BIT7 // // Reset Generator I/O Port // #define R_PCH_IO_RST_CNT 0xCF9 #define B_PCH_IO_RST_CNT_FULL_RST BIT3 #define B_PCH_IO_RST_CNT_RST_CPU BIT2 #define B_PCH_IO_RST_CNT_SYS_RST BIT1 #define V_PCH_IO_RST_CNT_FULLRESET 0x0E #define V_PCH_IO_RST_CNT_HARDRESET 0x06 #define V_PCH_IO_RST_CNT_SOFTRESET 0x04 #define V_PCH_IO_RST_CNT_HARDSTARTSTATE 0x02 #define V_PCH_IO_RST_CNT_SOFTSTARTSTATE 0x00 // // RTC register // #define R_RTC_IO_INDEX 0x70 #define R_RTC_IO_TARGET 0x71 #define R_RTC_IO_EXT_INDEX 0x72 #define R_RTC_IO_EXT_TARGET 0x73 #define R_RTC_IO_INDEX_ALT 0x74 #define R_RTC_IO_TARGET_ALT 0x75 #define R_RTC_IO_EXT_INDEX_ALT 0x76 #define R_RTC_IO_EXT_TARGET_ALT 0x77 #define R_RTC_IO_REGA 0x0A #define B_RTC_IO_REGA_UIP 0x80 #define R_RTC_IO_REGB 0x0B #define B_RTC_IO_REGB_SET 0x80 #define B_RTC_IO_REGB_PIE 0x40 #define B_RTC_IO_REGB_AIE 0x20 #define B_RTC_IO_REGB_UIE 0x10 #define B_RTC_IO_REGB_DM 0x04 #define B_RTC_IO_REGB_HOURFORM 0x02 #define R_RTC_IO_REGC 0x0C #define R_RTC_IO_REGD 0x0D // // Private Configuration Register // RTC PCRs (PID:RTC) // #define R_RTC_PCR_CONF 0x3400 ///< RTC Configuration register #define S_PCH_PCR_RTC_CONF 4 #define B_RTC_PCR_CONF_UCMOS_LOCK BIT4 #define B_RTC_PCR_CONF_LCMOS_LOCK BIT3 #define B_PCH_PCR_RTC_CONF_RESERVED BIT31 #define B_RTC_PCR_CONF_UCMOS_EN BIT2 ///< Upper CMOS bank enable #define R_RTC_PCR_BUC 0x3414 ///< Backed Up Control #define B_RTC_PCR_BUC_TS BIT0 ///< Top Swap #define B_RTC_PCR_BUC_NMFLUSH BIT3 #define R_RTC_PCR_RTCDCG 0x3418 ///< RTC Dynamic Clock Gating Control #define R_RTC_PCR_RTCDCG_RTCPCICLKDCGEN BIT1 ///< ipciclk_clk (24 MHz) Dynamic Clock Gate Enable #define R_RTC_PCR_RTCDCG_RTCROSIDEDCGEN BIT0 ///< rosc_side_clk (120 MHz) Dynamic Clock Gate Enable #define R_RTC_PCR_3F00 0x3F00 #define R_RTC_PCR_UIPSMI 0x3F04 ///< RTC Update In Progress SMI Control // // LPC PCR Registers // #define R_LPC_PCR_HVMTCTL 0x3410 #define R_LPC_PCR_GCFD 0x3418 #define R_PCH_PCR_LPC_CCE 0x341C #define B_PCH_PCR_LPC_CCE_LCG BIT0 #define B_PCH_PCR_LPC_CCE_ISBICGEN BIT1 #define B_PCH_PCR_LPC_CCE_IPICGEN BIT2 #define B_PCH_PCR_LPC_CCE_PGCBCGEN BIT3 #define V_PCH_PCR_LPC_CCE_CGEN (B_PCH_PCR_LPC_CCE_LCG | \ B_PCH_PCR_LPC_CCE_ISBICGEN | \ B_PCH_PCR_LPC_CCE_IPICGEN | \ B_PCH_PCR_LPC_CCE_PGCBCGEN ) #define R_LPC_PCR_PCT 0x3420 #define R_LPC_PCR_SCT 0x3424 #define R_LPC_PCR_LPCCT 0x3428 #define R_LPC_PCR_ULTOR 0x3500 // // eSPI PCR Registers // #define R_ESPI_PCR_SLV_CFG_REG_CTL 0x4000 ///< Slave Configuration Register and Link Control #define B_ESPI_PCR_SLV_CFG_REG_CTL_SCRE BIT31 ///< Slave Configuration Register Access Enable #define B_ESPI_PCR_SLV_CFG_REG_CTL_SCRS (BIT30 | BIT29 | BIT28) ///< Slave Configuration Register Access Status #define N_ESPI_PCR_SLV_CFG_REG_CTL_SCRS 28 ///< Slave Configuration Register Access Status bit position #define B_ESPI_PCR_SLV_CFG_REG_CTL_SBLCL BIT27 ///< IOSF-SB eSPI Link Configuration Lock #define V_ESPI_PCR_SLV_CFG_REG_CTL_SCRS_NOERR 7 ///< No errors (transaction completed successfully) #define B_ESPI_PCR_SLV_CFG_REG_CTL_SID (BIT20 | BIT19) ///< Slave ID #define N_ESPI_PCR_SLV_CFG_REG_CTL_SID 19 ///< Slave ID bit position #define B_ESPI_PCR_SLV_CFG_REG_CTL_SCRT (BIT17 | BIT16) ///< Slave Configuration Register Access Type #define N_ESPI_PCR_SLV_CFG_REG_CTL_SCRT 16 ///< Slave Configuration Register Access Type bit position #define V_ESPI_PCR_SLV_CFG_REG_CTL_SCRT_RD 0 ///< Slave Configuration register read from address SCRA[11:0] #define V_ESPI_PCR_SLV_CFG_REG_CTL_SCRT_WR 1 ///< Slave Configuration register write to address SCRA[11:0] #define V_ESPI_PCR_SLV_CFG_REG_CTL_SCRT_STS 2 ///< Slave Status register read #define V_ESPI_PCR_SLV_CFG_REG_CTL_SCRT_RS 3 ///< In-Band reset #define B_ESPI_PCR_SLV_CFG_REG_CTL_SCRA 0x00000FFF ///< Slave Configuration Register Address #define R_ESPI_PCR_SLV_CFG_REG_DATA 0x4004 ///< Slave Configuration Register Data #define R_ESPI_PCR_PCERR_SLV0 0x4020 ///< Peripheral Channel Error for Slave 0 #define S_ESPI_PCR_PCERR_SLV0 4 ///< Peripheral Channel Error register size #define B_ESPI_PCR_PCERR_PCFES BIT4 ///< Peripheral Channel Error Fatal Error Status bit #define R_ESPI_PCR_PCERR_SLV1 0x4024 ///< Peripheral Channel Error for Slave 1 #define R_ESPI_PCR_VWERR_SLV0 0x4030 ///< Virtual Wire Channel Error for Slave 0 #define S_ESPI_PCR_VWERR_SLV0 4 ///< Virtual Wire Channel Error register size #define B_ESPI_PCR_VWERR_VWFES BIT4 ///< Virtual Wire Channel Error Fatal Error status bit #define R_ESPI_PCR_VWERR_SLV1 0x4034 ///< Virtual Wire Channel Error for Slave 1 #define R_ESPI_PCR_FCERR_SLV0 0x4040 ///< Flash Access Channel Error for Slave 0 #define B_ESPI_PCR_FCERR_FCNFES BIT12 ///< Flash Access Channel Non-Fatal Error Status #define B_ESPI_PCR_PCERR_FCNFEC (BIT11 | BIT10 | BIT9 | BIT8) ///< Non-Fatal Error Cause bits #define N_ESPI_PCR_PCERR_FCNFEC 8 ///< Flash Access Channel Error for Slave 0 bit position #define V_ESPI_PCR_PCERR_FCNFEC_SRC_NFE 1 ///< Slave Response Code: NONFATAL_ERROR #define V_ESPI_PCR_PCERR_FCNFEC_SCR_UC 2 ///< Slave Response Code: Unsuccessful Completion #define V_ESPI_PCR_PCERR_FCNFEC_UCT 4 ///< Unsupported Cycle Type #define V_ESPI_PCR_PCERR_FCNFEC_UA 6 ///< Unsupported Address #define B_ESPI_PCR_FCERR_FCFES BIT4 ///< Flash Access Channel Fatal Error status bit #define B_ESPI_PCR_XERR_XNFEE (BIT14 | BIT13) ///< Non-Fatal Error Reporting Enable bits #define N_ESPI_PCR_XERR_XNFEE 13 ///< Non-Fatal Error Reporting Enable bit position #define V_ESPI_PCR_XERR_XNFEE_SMI 3 ///< Enable Non-Fatal Error Reporting as SMI #define B_ESPI_PCR_XERR_XNFES BIT12 ///< Fatal Error Status #define B_ESPI_PCR_XERR_XFEE (BIT6 | BIT5) ///< Fatal Error Reporting Enable bits #define N_ESPI_PCR_XERR_XFEE 5 ///< Fatal Error Reporting Enable bit position #define V_ESPI_PCR_XERR_XFEE_SMI 3 ///< Enable Fatal Error Reporting as SMI #define B_ESPI_PCR_XERR_XFES BIT4 ///< Fatal Error Status #define B_ESPI_PCR_PCERR_SLV0_PCURD BIT24 ///< Peripheral Channel Unsupported Request Detected #define R_ESPI_PCR_LNKERR_SLV0 0x4050 ///< Link Error for Slave 0 #define S_ESPI_PCR_LNKERR_SLV0 4 ///< Link Error for Slave 0 register size #define B_ESPI_PCR_LNKERR_SLV0_SLCRR BIT31 ///< eSPI Link and Slave Channel Recovery Required #define B_ESPI_PCR_LNKERR_SLV0_LFET1E (BIT22 | BIT21) ///< Fatal Error Type 1 Reporting Enable #define N_ESPI_PCR_LNKERR_SLV0_LFET1E 21 ///< Fatal Error Type 1 Reporting Enable bit position #define V_ESPI_PCR_LNKERR_SLV0_LFET1E_SMI 3 ///< Enable Fatal Error Type 1 Reporting as SMI #define B_ESPI_PCR_LNKERR_SLV0_LFET1S BIT20 ///< Link Fatal Error Type 1 Status #define R_ESPI_PCR_LNKERR_SLV1 0x4054 ///< Link Error for Slave 1 #define R_ESPI_PCR_SOFTSTRAPS 0xC210 ///< eSPI Sofstraps Register 0 #define R_ESPI_PCR_SOFTSTRAPS_CS1_EN BIT12 ///< CS1# Enable // // eSPI Slave registers // #define R_ESPI_PCR_SLAVE_PCREG 0x10 ///< Slave Channel 1 Capabilities and Configurations register (Peripheral Channel) #define R_ESPI_PCR_SLAVE_VWREG 0x20 ///< Slave Channel 2 Capabilities and Configurations register (Virtual Wire Channel) #define R_ESPI_PCR_SLAVE_FCREG 0x40 ///< Slave Channel 4 Capabilities and Configurations register (Flash Access Channel) #define B_ESPI_PCR_SLAVE_CHEN BIT0 ///< Slave Channel enable bit #define B_ESPI_PCR_SLAVE_CHRDY BIT1 ///< Slave Channel ready bit #endif