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