/** @file Register names for PCH LPC/eSPI 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_LPC_H_ #define _PCH_REGS_LPC_H_ #define B_LPC_CFG_DID 0xFFE0 // // PCI to LPC Bridge Registers // #define R_LPC_CFG_IOD 0x80 #define V_LPC_CFG_IOD_COMB_2F8 1 #define V_LPC_CFG_IOD_COMA_3F8 0 #define V_LPC_CFG_IOD_COMA_2F8 1 #define R_LPC_CFG_IOE 0x82 #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_KE BIT10 ///< Keyboard Enable, Enables decoding of the keyboard I/O locations 60h and 64h to LPC. #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_ULKMC 0x94 #define B_LPC_CFG_ULKMC_A20PASSEN BIT5 #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_ESPI_CFG_CS1IORE 0xA0 #define R_ESPI_CFG_CS1GMR1 0xA8 #define R_LPC_CFG_BDE 0xD8 ///< BIOS decode enable // // 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 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 B_ESPI_CFG_PCBC_BWRS BIT10 ///< BIOS Write Report Status #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 #define N_ESPI_CFG_PCBC_LE 1 // // eSPI slave registers // #define B_ESPI_SLAVE_BME BIT2 ///< Bus Master Enable // // Reset Generator I/O Port // #define R_PCH_IO_RST_CNT 0xCF9 #define V_PCH_IO_RST_CNT_FULLRESET 0x0E #define V_PCH_IO_RST_CNT_HARDRESET 0x06 // // 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 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 B_ESPI_PCR_PCERR_PCURD BIT24 ///< Peripheral Channel Unsupported Request Detected #define R_ESPI_PCR_VWERR_SLV0 0x4030 ///< Virtual Wire Channel Error for Slave 0 #define R_ESPI_PCR_FCERR_SLV0 0x4040 ///< Flash Access Channel Error for Slave 0 #define B_ESPI_PCR_FCERR_SAFBLK BIT17 ///< SAF Blocked (SAFBLK) #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 S_ESPI_PCR_XERR 4 ///< Channel register sizes #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_CFG_VAL 0xC00C ///< ESPI Enabled Strap #define B_ESPI_PCR_CFG_VAL_ESPI_EN BIT0 ///< ESPI Enabled Strap bit position #define R_ESPI_PCR_SOFTSTRAPS 0xC210 ///< eSPI Sofstraps Register 0 #define B_ESPI_PCR_SOFTSTRAPS_CS1_EN BIT12 ///< CS1# Enable #endif