1 /** @file 2 Support for the PCI Express 3.0 standard. 3 4 This header file may not define all structures. Please extend as required. 5 6 Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR> 7 SPDX-License-Identifier: BSD-2-Clause-Patent 8 9 **/ 10 11 #ifndef _PCIEXPRESS30_H_ 12 #define _PCIEXPRESS30_H_ 13 14 #include <IndustryStandard/PciExpress21.h> 15 16 #pragma pack(1) 17 18 #define PCI_EXPRESS_EXTENDED_CAPABILITY_SECONDARY_PCIE_ID 0x0019 19 #define PCI_EXPRESS_EXTENDED_CAPABILITY_SECONDARY_PCIE_VER1 0x1 20 21 typedef union { 22 struct { 23 UINT32 PerformEqualization : 1; 24 UINT32 LinkEqualizationRequestInterruptEnable : 1; 25 UINT32 Reserved : 30; 26 } Bits; 27 UINT32 Uint32; 28 } PCI_EXPRESS_REG_LINK_CONTROL3; 29 30 typedef union { 31 struct { 32 UINT16 DownstreamPortTransmitterPreset : 4; 33 UINT16 DownstreamPortReceiverPresetHint : 3; 34 UINT16 Reserved : 1; 35 UINT16 UpstreamPortTransmitterPreset : 4; 36 UINT16 UpstreamPortReceiverPresetHint : 3; 37 UINT16 Reserved2 : 1; 38 } Bits; 39 UINT16 Uint16; 40 } PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL; 41 42 typedef struct { 43 PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; 44 PCI_EXPRESS_REG_LINK_CONTROL3 LinkControl3; 45 UINT32 LaneErrorStatus; 46 PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL EqualizationControl[2]; 47 } PCI_EXPRESS_EXTENDED_CAPABILITIES_SECONDARY_PCIE; 48 49 #pragma pack() 50 51 #endif 52