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