/** @file Policy definition for PCIe Config Block Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PCIE_PEI_CONFIG_H_ #define _PCIE_PEI_CONFIG_H_ #include #include #pragma pack(push, 1) #define SA_PCIE_PEI_CONFIG_REVISION 1 /** PCI Express and DMI controller configuration - PostMem\n @note Optional. These policies will be ignored if there is no PEG port present on board. Revision 1: - Initial version. **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Offset 0-27 Config Block Header /** Offset 28:0 (Test)DMI Extended Sync Control - Disabled (0x0) : Disable DMI Extended Sync (Default) - Enabled (0x1) : Enable DMI Extended Sync **/ UINT32 DmiExtSync : 1; /** Offset 28:1 (Test)DMI IOT Control - Disabled (0x0) : Disable DMI IOT (Default) - Enabled (0x1) : Enable DMI IOT **/ UINT32 DmiIot : 1; UINT32 RsvdBits1 : 30; ///< Offset 28:2-31 :Reserved for future use. UINT8 DmiAspm; ///< Offset 32 This field is used to describe the ASPM control for DMI: 3=PcieAspmL0sL1, 2=PcieAspmL1, 1=PcieAspmL0s, 0=PcieAspmDisabled. UINT8 Rsvd1[3]; ///< Offset 33 to 35 UINT8 PegDeEmphasis[SA_PEG_MAX_FUN]; ///< Offset 36 This field is used to describe the DeEmphasis control for PEG (-6 dB and -3.5 dB are the options)SA_PEG_MAX_FUN = 3 for CFL and SA_PEG_MAX_FUN = 4 for CNL, offsets are adjusted accordingly UINT8 PegMaxPayload[SA_PEG_MAX_FUN]; ///< (Test) Offset 39/40 This field is used to describe the PEG Max Pay Load Size (0xFF: Auto, 0:128B, 1:256B) /** PCIe Slot Power Capabilities. SlotPowerLimitValue in combination with SlotPowerLimitScale specifies the upper limit on power supplied by slot. **/ UINT8 PegSlotPowerLimitValue[SA_PEG_MAX_FUN]; ///< Offset 42/44 8 bit value UINT8 PegSlotPowerLimitScale[SA_PEG_MAX_FUN]; ///< Offset 45/48 2 bit value: 00 = 1.0x, 01 = 0.1x, 10 = 0.01x and 11 = 0.001x /** Offset 48/52 PCIe Physical Slot Number (13 bit value). Indicates the physical slot number attached to the port. **/ UINT16 PegPhysicalSlotNumber[SA_PEG_MAX_FUN]; UINT8 Rsvd2[2]; } PCIE_PEI_CONFIG; #pragma pack(pop) #endif // _PCIE_PEI_CONFIG_H_