Subrata Banik | 8b9f289 | 2018-01-25 10:50:39 +0530 | [diff] [blame] | 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 - 2016, Intel Corporation. All rights reserved.<BR> |
Peter Lemenkov | 7bbe3bb | 2018-12-07 11:23:21 +0100 | [diff] [blame] | 7 | This program and the accompanying materials |
| 8 | are licensed and made available under the terms and conditions of the BSD License |
| 9 | which accompanies this distribution. The full text of the license may be found at |
| 10 | http://opensource.org/licenses/bsd-license.php |
Subrata Banik | 8b9f289 | 2018-01-25 10:50:39 +0530 | [diff] [blame] | 11 | |
Peter Lemenkov | 7bbe3bb | 2018-12-07 11:23:21 +0100 | [diff] [blame] | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, |
| 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. |
Subrata Banik | 8b9f289 | 2018-01-25 10:50:39 +0530 | [diff] [blame] | 14 | |
| 15 | **/ |
| 16 | |
| 17 | #ifndef _PCIEXPRESS30_H_ |
| 18 | #define _PCIEXPRESS30_H_ |
| 19 | |
| 20 | #include <IndustryStandard/PciExpress21.h> |
| 21 | |
| 22 | #pragma pack(1) |
| 23 | |
| 24 | #define PCI_EXPRESS_EXTENDED_CAPABILITY_SECONDARY_PCIE_ID 0x0019 |
| 25 | #define PCI_EXPRESS_EXTENDED_CAPABILITY_SECONDARY_PCIE_VER1 0x1 |
| 26 | |
| 27 | typedef union { |
| 28 | struct { |
| 29 | UINT32 PerformEqualization : 1; |
| 30 | UINT32 LinkEqualizationRequestInterruptEnable : 1; |
| 31 | UINT32 Reserved : 30; |
| 32 | } Bits; |
| 33 | UINT32 Uint32; |
| 34 | } PCI_EXPRESS_REG_LINK_CONTROL3; |
| 35 | |
| 36 | typedef union { |
| 37 | struct { |
| 38 | UINT16 DownstreamPortTransmitterPreset : 4; |
| 39 | UINT16 DownstreamPortReceiverPresetHint : 3; |
| 40 | UINT16 Reserved : 1; |
| 41 | UINT16 UpstreamPortTransmitterPreset : 4; |
| 42 | UINT16 UpstreamPortReceiverPresetHint : 3; |
| 43 | UINT16 Reserved2 : 1; |
| 44 | } Bits; |
| 45 | UINT16 Uint16; |
| 46 | } PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL; |
| 47 | |
| 48 | typedef struct { |
| 49 | PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; |
| 50 | PCI_EXPRESS_REG_LINK_CONTROL3 LinkControl3; |
| 51 | UINT32 LaneErrorStatus; |
| 52 | PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL EqualizationControl[2]; |
| 53 | } PCI_EXPRESS_EXTENDED_CAPABILITIES_SECONDARY_PCIE; |
| 54 | |
| 55 | #pragma pack() |
| 56 | |
| 57 | #endif |