• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>
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
11 
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.
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
58