1 /*++ 2 3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> 4 5 6 This program and the accompanying materials are licensed and made available under 7 8 the terms and conditions of the BSD License that accompanies this distribution. 9 10 The full text of the license may be found at 11 12 http://opensource.org/licenses/bsd-license.php. 13 14 15 16 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 18 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 20 21 22 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