/** @file Register names for DMI and OP-DMI 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 . 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 -H denoted by "_PCH_H_" in component name. 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) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PCH_REGS_DMI_H_ #define _PCH_REGS_DMI_H_ // // DMI Chipset Configuration Registers (PID:DMI) // // // VC Configuration (Common) // #define B_PCH_DMI_PCR_V0CTL_EN BIT31 #define B_PCH_DMI_PCR_V0CTL_ID (7 << 24) ///< Bit[26:24] #define N_PCH_DMI_PCR_V0CTL_ID 24 #define V_PCH_DMI_PCR_V0CTL_ETVM_MASK 0xFC00 #define V_PCH_DMI_PCR_V0CTL_TVM_MASK 0x7E #define B_PCH_DMI_PCR_V0STS_NP BIT1 #define B_PCH_DMI_PCR_V1CTL_EN BIT31 #define B_PCH_DMI_PCR_V1CTL_ID (0x0F << 24) ///< Bit[27:24] #define N_PCH_DMI_PCR_V1CTL_ID 24 #define V_PCH_DMI_PCR_V1CTL_ETVM_MASK 0xFC00 #define V_PCH_DMI_PCR_V1CTL_TVM_MASK 0xFE #define B_PCH_DMI_PCR_V1STS_NP BIT1 // // DMI Source Decode PCRs (Common) // #define R_PCH_DMI_PCR_PCIEPAR1E 0x2700 ///< PCIE Port IOxAPIC Range 1 Enable #define R_PCH_DMI_PCR_PCIEPAR2E 0x2704 ///< PCIE Port IOxAPIC Range 2 Enable #define R_PCH_DMI_PCR_PCIEPAR3E 0x2708 ///< PCIE Port IOxAPIC Range 3 Enable #define R_PCH_DMI_PCR_PCIEPAR4E 0x270C ///< PCIE Port IOxAPIC Range 4 Enable #define R_PCH_DMI_PCR_PCIEPAR1DID 0x2710 ///< PCIE Port IOxAPIC Range 1 Destination ID #define R_PCH_DMI_PCR_PCIEPAR2DID 0x2714 ///< PCIE Port IOxAPIC Range 2 Destination ID #define R_PCH_DMI_PCR_PCIEPAR3DID 0x2718 ///< PCIE Port IOxAPIC Range 3 Destination ID #define R_PCH_DMI_PCR_PCIEPAR4DID 0x271C ///< PCIE Port IOxAPIC Range 4 Destination ID #define R_PCH_DMI_PCR_P2SBIOR 0x2720 ///< P2SB IO Range #define R_PCH_DMI_PCR_TTTBARB 0x2724 ///< Thermal Throttling BIOS Assigned Thermal Base Address #define R_PCH_DMI_PCR_TTTBARBH 0x2728 ///< Thermal Throttling BIOS Assigned Thermal Base High Address #define R_PCH_DMI_PCR_LPCLGIR1 0x2730 ///< LPC Generic I/O Range 1 #define R_PCH_DMI_PCR_LPCLGIR2 0x2734 ///< LPC Generic I/O Range 2 #define R_PCH_DMI_PCR_LPCLGIR3 0x2738 ///< LPC Generic I/O Range 3 #define R_PCH_DMI_PCR_LPCLGIR4 0x273C ///< LPC Generic I/O Range 4 #define R_PCH_DMI_PCR_LPCGMR 0x2740 ///< LPC Generic Memory Range #define R_PCH_DMI_PCR_SEGIR 0x27BC ///< Second ESPI Generic I/O Range #define R_PCH_DMI_PCR_SEGMR 0x27C0 ///< Second ESPI Generic Memory Range #define R_PCH_DMI_PCR_LPCBDE 0x2744 ///< LPC BIOS Decode Enable #define R_PCH_DMI_PCR_UCPR 0x2748 ///< uCode Patch Region #define B_PCH_DMI_PCR_UCPR_UPRE BIT0 ///< uCode Patch Region Enable #define R_PCH_DMI_PCR_GCS 0x274C ///< Generic Control and Status #define B_PCH_DMI_PCR_RPRDID 0xFFFF0000 ///< RPR Destination ID #define B_PCH_DMI_PCR_BBS BIT10 ///< Boot BIOS Strap #define B_PCH_DMI_PCR_RPR BIT11 ///< Reserved Page Route #define B_PCH_DMI_PCR_BILD BIT0 ///< BIOS Interface Lock-Down #define R_PCH_DMI_PCR_IOT1 0x2750 ///< I/O Trap Register 1 #define R_PCH_DMI_PCR_IOT2 0x2758 ///< I/O Trap Register 2 #define R_PCH_DMI_PCR_IOT3 0x2760 ///< I/O Trap Register 3 #define R_PCH_DMI_PCR_IOT4 0x2768 ///< I/O Trap Register 4 #define R_PCH_DMI_PCR_LPCIOD 0x2770 ///< LPC I/O Decode Ranges #define R_PCH_DMI_PCR_LPCIOE 0x2774 ///< LPC I/O Enables #define R_PCH_DMI_PCR_TCOBASE 0x2778 ///< TCO Base Address #define B_PCH_DMI_PCR_TCOBASE_TCOBA 0xFFE0 ///< TCO Base Address Mask #define R_PCH_DMI_PCR_GPMR1 0x277C ///< General Purpose Memory Range 1 #define R_PCH_DMI_PCR_GPMR1DID 0x2780 ///< General Purpose Memory Range 1 Destination ID #define R_PCH_DMI_PCR_GPMR2 0x2784 ///< General Purpose Memory Range 2 #define R_PCH_DMI_PCR_GPMR2DID 0x2788 ///< General Purpose Memory Range 2 Destination ID #define R_PCH_DMI_PCR_GPMR3 0x278C ///< General Purpose Memory Range 3 #define R_PCH_DMI_PCR_GPMR3DID 0x2790 ///< General Purpose Memory Range 3 Destination ID #define R_PCH_DMI_PCR_GPIOR1 0x2794 ///< General Purpose I/O Range 1 #define R_PCH_DMI_PCR_GPIOR1DID 0x2798 ///< General Purpose I/O Range 1 Destination ID #define R_PCH_DMI_PCR_GPIOR2 0x279C ///< General Purpose I/O Range 2 #define R_PCH_DMI_PCR_GPIOR2DID 0x27A0 ///< General Purpose I/O Range 2 Destination ID #define R_PCH_DMI_PCR_GPIOR3 0x27A4 ///< General Purpose I/O Range 3 #define R_PCH_DMI_PCR_GPIOR3DID 0x27A8 ///< General Purpose I/O Range 3 Destination ID // // Opi PHY registers // #define R_PCH_OPIPHY_PCR_0110 0x0110 #define R_PCH_OPIPHY_PCR_0118 0x0118 #define R_PCH_OPIPHY_PCR_011C 0x011C #define R_PCH_OPIPHY_PCR_0354 0x0354 #define R_PCH_OPIPHY_PCR_B104 0xB104 #define R_PCH_OPIPHY_PCR_B10C 0xB10C #endif