Home | History | Annotate | Download | only in Protocol
      1 /*++
      2 
      3   Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
      4 
      5   This program and the accompanying materials are licensed and made available under
      7   the terms and conditions of the BSD License that accompanies this distribution.
      9   The full text of the license may be found at
     11   http://opensource.org/licenses/bsd-license.php.
     13 
     15   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     17   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     19 
     21 
     23 
     24 
     25 Module Name:
     26 
     27   EnhancedSpeedstep.h
     28 
     29 Abstract:
     30 
     31   Enhanced Speedstep protocol
     32 
     33   The Enhanced Speedstep Protocol support.
     34 
     35 **/
     36 
     37 #ifndef _ENHANCED_SPEEDSTEP_H_
     38 #define _ENHANCED_SPEEDSTEP_H_
     39 
     40 #define ENHANCED_SPEEDSTEP_PROTOCOL_GUID \
     41   { \
     42     0x91a1ddcf, 0x5374, 0x4939, 0x89, 0x51, 0xd7, 0x29, 0x3f, 0x1a, 0x78, 0x6f \
     43   }
     44 
     45 typedef struct _ENHANCED_SPEEDSTEP_PROTOCOL ENHANCED_SPEEDSTEP_PROTOCOL;
     46 
     47 typedef struct {
     48   UINT8   Version;      // EIST State format
     49   UINT8   Size;         // Size of element
     50   UINT32  RatioStep;    // Step
     51   UINT32  MinRatio;     // Calculated min ratio
     52   UINT32  MaxRatio;     // Calculated max ratio
     53   UINT32  MinCoreFreq;  // Calculated min freq
     54   UINT32  MaxCoreFreq;  // Calculated max freq
     55   UINT32  MinPower;     // Calculated min power
     56   UINT32  MaxPower;     // Calculated max power
     57   UINT32  NumStates;    // Number of states
     58 } EIST_INFORMATION;
     59 
     60 typedef struct {
     61   UINT32  CoreFrequency;
     62   UINT32  Power;
     63   UINT32  TransitionLatency;
     64   UINT32  BusMasterLatency;
     65   UINT32  Control;
     66   UINT32  Status;
     67 } EFI_ACPI_CPU_PSS_STATE;
     68 
     69 typedef
     70 EFI_STATUS
     71 (EFIAPI *GET_EIST_TABLE) (
     72   IN    ENHANCED_SPEEDSTEP_PROTOCOL    *This,
     73   OUT   EIST_INFORMATION               **EistInformation,
     74   OUT   VOID                           **PssStates
     75   );
     76 
     77 struct _ENHANCED_SPEEDSTEP_PROTOCOL {
     78   UINT32              ProcApicId;
     79   GET_EIST_TABLE      GetEistTable;
     80 };
     81 
     82 //
     83 // There will be an instance of this protocol for every processor
     84 // in the system.  ProcNumber is used to manage all the different
     85 // processors in the system and passed into the MP protocol
     86 // to run code streams on application processors
     87 //
     88 extern EFI_GUID gEnhancedSpeedstepProtocolGuid;
     89 
     90 #endif
     91