Home | History | Annotate | Download | only in IndustryStandard
      1 /** @file
      2 Support for the PCI Express 3.1 standard.
      3 
      4 This header file may not define all structures.  Please extend as required.
      5 
      6 Copyright (c) 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 _PCIEXPRESS31_H_
     18 #define _PCIEXPRESS31_H_
     19 
     20 #include <IndustryStandard/PciExpress30.h>
     21 
     22 #pragma pack(1)
     23 
     24 #define PCI_EXPRESS_EXTENDED_CAPABILITY_L1_PM_SUBSTATES_ID    0x001E
     25 #define PCI_EXPRESS_EXTENDED_CAPABILITY_L1_PM_SUBSTATES_VER1  0x1
     26 
     27 typedef union {
     28   struct {
     29     UINT32 PciPmL12 : 1;
     30     UINT32 PciPmL11 : 1;
     31     UINT32 AspmL12 : 1;
     32     UINT32 AspmL11 : 1;
     33     UINT32 L1PmSubstates : 1;
     34     UINT32 Reserved : 3;
     35     UINT32 CommonModeRestoreTime : 8;
     36     UINT32 TPowerOnScale : 2;
     37     UINT32 Reserved2 : 1;
     38     UINT32 TPowerOnValue : 5;
     39     UINT32 Reserved3 : 8;
     40   } Bits;
     41   UINT32   Uint32;
     42 } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CAPABILITY;
     43 
     44 typedef union {
     45   struct {
     46     UINT32 PciPmL12 : 1;
     47     UINT32 PciPmL11 : 1;
     48     UINT32 AspmL12 : 1;
     49     UINT32 AspmL11 : 1;
     50     UINT32 Reserved : 4;
     51     UINT32 CommonModeRestoreTime : 8;
     52     UINT32 LtrL12ThresholdValue : 10;
     53     UINT32 Reserved2 : 3;
     54     UINT32 LtrL12ThresholdScale : 3;
     55   } Bits;
     56   UINT32   Uint32;
     57 } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL1;
     58 
     59 typedef union {
     60   struct {
     61     UINT32 TPowerOnScale : 2;
     62     UINT32 Reserved : 1;
     63     UINT32 TPowerOnValue : 5;
     64     UINT32 Reserved2 : 24;
     65   } Bits;
     66   UINT32   Uint32;
     67 } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL2;
     68 
     69 typedef struct {
     70   PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER   Header;
     71   PCI_EXPRESS_REG_L1_PM_SUBSTATES_CAPABILITY Capability;
     72   PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL1   Control1;
     73   PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL2   Control2;
     74 } PCI_EXPRESS_EXTENDED_CAPABILITIES_L1_PM_SUBSTATES;
     75 
     76 #pragma pack()
     77 
     78 #endif
     79