]>
Commit | Line | Data |
---|---|---|
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 | |
16 | Module Name:\r | |
17 | \r | |
18 | SensorInfoVariable.h\r | |
19 | \r | |
20 | Abstract:\r | |
21 | \r | |
22 | GUID used for Sensor Info variable.\r | |
23 | \r | |
24 | --*/\r | |
25 | \r | |
26 | \r | |
27 | //\r | |
28 | // Module: SensorInfoVariable.h\r | |
29 | //\r | |
30 | // Description: Provides structure and literal definitions for the\r | |
31 | // Sensor Information Variable. The BIOS will provide\r | |
32 | // this variable to runtime applications via the EFI\r | |
33 | // GetVariable function.\r | |
34 | //\r | |
35 | // Notes: 1. When defining and initializing the variable within the\r | |
36 | // BIOS, the module will define the structure using the\r | |
37 | // typedef macros in a block. For an ATX board using a\r | |
38 | // single Heceta 6P, which has 4 temperature sensors, 6\r | |
39 | // voltage sensors, 4 fan speed sensors and 3 fan speed\r | |
40 | // controllers, this block would be declared as follows:\r | |
41 | //\r | |
42 | // TYPEDEF_TEMP_SENSOR_SECTION(4);\r | |
43 | // TYPEDEF_VOLT_SENSOR_SECTION(6);\r | |
44 | // TYPEDEF_FAN_SENSOR_SECTION(4);\r | |
45 | // TYPEDEF_FAN_CONTROLLER_SENSOR(3);\r | |
46 | // TYPEDEF_SENSOR_INFO_VAR;\r | |
47 | //\r | |
48 | // 2. When crafting code to access the variable, the module\r | |
49 | // will also need to invoke the typedef macros in a\r | |
50 | // block but, since it cannot declare a structure for the\r | |
51 | // overall variable (because array lengths will vary), it\r | |
52 | // cannot use TYPEDEF_SENSOR_INFO_VAR. The block will\r | |
53 | // typically be used as follows:\r | |
54 | //\r | |
55 | // TYPEDEF_TEMP_SENSOR_SECTION(1);\r | |
56 | // TYPEDEF_VOLT_SENSOR_SECTION(1);\r | |
57 | // TYPEDEF_FAN_SENSOR_SECTION(1);\r | |
58 | // TYPEDEF_FAN_CONTROLLER_SENSOR(1);\r | |
59 | //\r | |
60 | // The structure buffer should instead be declared as a\r | |
61 | // BYTE array. Pointers to the various sections can then\r | |
62 | // be built using the XXXX_SECTION_LEN macros...\r | |
63 | //\r | |
64 | \r | |
65 | \r | |
66 | #ifndef _SENSOR_INFO_VAR_GUID_H_\r | |
67 | #define _SENSOR_INFO_VAR_GUID_H_\r | |
68 | \r | |
69 | #define SENSOR_INFO_VAR_GUID \\r | |
70 | { \\r | |
71 | 0xE59E7B4D, 0x06DC, 0x44AB, 0xB3, 0x6D, 0x5E, 0xD7, 0x78, 0x9C, 0x53, 0x0A \\r | |
72 | }\r | |
73 | \r | |
74 | extern EFI_GUID gEfiSensorInfoVarGuid;\r | |
75 | extern CHAR16 gEfiSensorInfoVarName[];\r | |
76 | extern CHAR16 gEfiSensorInfoVarNameWithPassword[];\r | |
77 | \r | |
78 | #define SENSOR_INFO_VAR_NAME L"SensorInfoVar"\r | |
79 | #define SENSOR_INFO_VAR_NAME_WITH_PASSWORD SENSOR_INFO_VAR_NAME L"S4k?A^7!"\r | |
80 | \r | |
81 | //\r | |
82 | // Sensor/Controller usage definitions\r | |
83 | //\r | |
84 | \r | |
85 | #define UNKNOWN_OTHER 0\r | |
86 | \r | |
87 | //\r | |
88 | // Temperature Sensors\r | |
89 | //\r | |
90 | #define CPU_CORE_TEMPERATURE 1\r | |
91 | #define CPU_DIE_TEMPERATURE 2\r | |
92 | #define ICH_TEMPERATURE 3\r | |
93 | #define MCH_TEMPERATURE 4\r | |
94 | #define VR_TEMPERATURE 5\r | |
95 | #define MEMORY_TEMPERATURE 6\r | |
96 | #define MOTHERBOARD_AMBIENT_TEMPERATURE 7\r | |
97 | #define SYSTEM_AMBIENT_AIR_TEMPERATURE 8\r | |
98 | #define CPU_INLET_AIR_TEMPERATURE 9\r | |
99 | #define SYSTEM_INLET_AIR_TEMPERATURE 10\r | |
100 | #define SYSTEM_OUTLET_AIR_TEMPERATURE 11\r | |
101 | #define PSU_HOTSPOT_TEMPERATURE 12\r | |
102 | #define PSU_INLET_AIR_TEMPERATURE 13\r | |
103 | #define PSU_OUTLET_AIR_TEMPERATURE 14\r | |
104 | #define DRIVE_TEMPERATURE 15\r | |
105 | #define GPU_TEMPERATURE 16\r | |
106 | #define IOH_TEMPERATURE 17\r | |
107 | \r | |
108 | #define LAST_TEMPERATURE 17\r | |
109 | \r | |
110 | //\r | |
111 | // Voltage Sensors\r | |
112 | //\r | |
113 | #define PLUS_12_VOLTS 1\r | |
114 | #define NEG_12_VOLTS 2\r | |
115 | #define PLUS_5_VOLTS 3\r | |
116 | #define PLUS_5_VOLT_BACKUP 4\r | |
117 | #define NEG_5_VOLTS 5\r | |
118 | #define PLUS_3P3_VOLTS 6\r | |
119 | #define PLUS_2P5_VOLTS 7\r | |
120 | #define PLUS_1P5_VOLTS 8\r | |
121 | #define CPU_1_VCCP_VOLTAGE 9\r | |
122 | #define CPU_2_VCCP_VOLTAGE 10\r | |
123 | #define CPU_3_VCCP_VOLTAGE 11\r | |
124 | #define CPU_4_VCCP_VOLTAGE 12\r | |
125 | #define PSU_INPUT_VOLTAGE 13\r | |
126 | #define MCH_VCC_VOLTAGE 14\r | |
127 | #define PLUS_3P3_VOLT_STANDBY 15\r | |
128 | #define CPU_VTT_VOLTAGE 16\r | |
129 | #define PLUS_1P8_VOLTS 17\r | |
130 | \r | |
131 | #define LAST_VOLTAGE 17\r | |
132 | \r | |
133 | //\r | |
134 | // Fan Speed Sensors and Controllers.\r | |
135 | //\r | |
136 | #define CPU_COOLING_FAN 1\r | |
137 | #define SYSTEM_COOLING_FAN 2\r | |
138 | #define MCH_COOLING_FAN 3\r | |
139 | #define VR_COOLING_FAN 4\r | |
140 | #define CHASSIS_COOLING_FAN 5\r | |
141 | #define CHASSIS_INLET_FAN 6\r | |
142 | #define CHASSIS_OUTLET_FAN 7\r | |
143 | #define PSU_COOLING_FAN 8\r | |
144 | #define PSU_INLET_FAN 9\r | |
145 | #define PSU_OUTLET_FAN 10\r | |
146 | #define DRIVE_COOLING_FAN 11\r | |
147 | #define GPU_COOLING_FAN 12\r | |
148 | #define AUX_COOLING_FAN 13\r | |
149 | #define IOH_COOLING_FAN 14\r | |
150 | \r | |
151 | #define LAST_FAN 14\r | |
152 | \r | |
153 | //\r | |
154 | // Fan Type Definitions\r | |
155 | //\r | |
156 | #define FAN_TYPE_UNKNOWN 0\r | |
157 | #define FAN_3WIRE_PULSE 1\r | |
158 | #define FAN_3WIRE_VOLTAGE 2\r | |
159 | #define FAN_4WIRE 3\r | |
160 | \r | |
161 | #pragma pack(1)\r | |
162 | \r | |
163 | //\r | |
164 | // TEMP_SENSOR_INFO - Structure providing info for a temperature sensor.\r | |
165 | //\r | |
166 | typedef struct _TEMP_SENSOR_INFO\r | |
167 | {\r | |
168 | UINT8 byDevice; // Device index\r | |
169 | UINT8 byIndex; // Physical sensor index\r | |
170 | UINT8 byUsage; // Usage indicator\r | |
171 | UINT8 bRelative; // Relative vs. Absolute readings\r | |
172 | \r | |
173 | } TEMP_SENSOR_INFO, *P_TEMP_SENSOR_INFO;\r | |
174 | \r | |
175 | //\r | |
176 | // TYPEDEF_TEMP_SENSOR_SECTION - Macro that can be used to typedef the\r | |
177 | // TEMP_SENSOR_SECTION structure, which provides information about all\r | |
178 | // temperature sensors.\r | |
179 | //\r | |
180 | #define TYPEDEF_TEMP_SENSOR_SECTION(count) \\r | |
181 | typedef struct _TEMP_SENSOR_SECTION \\r | |
182 | { \\r | |
183 | UINT8 byCount; \\r | |
184 | TEMP_SENSOR_INFO stSensor[count]; \\r | |
185 | \\r | |
186 | } TEMP_SENSOR_SECTION, *P_TEMP_SENSOR_SECTION\r | |
187 | \r | |
188 | //\r | |
189 | // VOLT_SENSOR_INFO - Structure providing info for a voltage sensor.\r | |
190 | //\r | |
191 | typedef struct _VOLT_SENSOR_INFO\r | |
192 | {\r | |
193 | UINT8 byDevice; // Device index\r | |
194 | UINT8 byIndex; // Physical sensor index\r | |
195 | UINT8 byUsage; // Usage indicator\r | |
196 | \r | |
197 | } VOLT_SENSOR_INFO, *P_VOLT_SENSOR_INFO;\r | |
198 | \r | |
199 | //\r | |
200 | // TYPEDEF_VOLT_SENSOR_SECTION - Macro that can be used to typedef the\r | |
201 | // VOLT_SENSOR_SECTION structure, which provides information about all\r | |
202 | // voltage sensors.\r | |
203 | //\r | |
204 | #define TYPEDEF_VOLT_SENSOR_SECTION(count) \\r | |
205 | typedef struct _VOLT_SENSOR_SECTION \\r | |
206 | { \\r | |
207 | UINT8 byCount; \\r | |
208 | VOLT_SENSOR_INFO stSensor[count]; \\r | |
209 | \\r | |
210 | } VOLT_SENSOR_SECTION, *P_VOLT_SENSOR_SECTION\r | |
211 | \r | |
212 | //\r | |
213 | // FAN_SENSOR_INFO - Structure providing info for a fan speed sensor.\r | |
214 | //\r | |
215 | typedef struct _FAN_SENSOR_INFO\r | |
216 | {\r | |
217 | UINT8 byDevice; // Device index\r | |
218 | UINT8 byIndex; // Physical sensor index\r | |
219 | UINT8 byUsage; // Usage indicator\r | |
220 | UINT8 byType; // Fan type\r | |
221 | UINT8 byController; // Associated Fan Controller\r | |
222 | \r | |
223 | } FAN_SENSOR_INFO, *P_FAN_SENSOR_INFO;\r | |
224 | \r | |
225 | //\r | |
226 | // TYPEDEF_FAN_SENSOR_SECTION - Macro that can be used to typedef the\r | |
227 | // FAN_SENSOR_SECTION structure, which provides information about all fan\r | |
228 | // speed sensors.\r | |
229 | //\r | |
230 | #define TYPEDEF_FAN_SENSOR_SECTION(count) \\r | |
231 | typedef struct _FAN_SENSOR_SECTION \\r | |
232 | { \\r | |
233 | UINT8 byCount; \\r | |
234 | FAN_SENSOR_INFO stSensor[count]; \\r | |
235 | \\r | |
236 | } FAN_SENSOR_SECTION, *P_FAN_SENSOR_SECTION\r | |
237 | \r | |
238 | //\r | |
239 | // FAN_CONTROLLER_INFO - Structure providing info for a fan speed controller.\r | |
240 | //\r | |
241 | #define MAX_ASSOC_FANS 4\r | |
242 | #define ASSOC_UNUSED 0xFF\r | |
243 | \r | |
244 | typedef struct _FAN_CONTROLLER_INFO\r | |
245 | {\r | |
246 | UINT8 byDevice; // Device index\r | |
247 | UINT8 byIndex; // Physical Controller Index\r | |
248 | UINT8 byUsage; // Usage Indicator\r | |
249 | UINT8 byFan[MAX_ASSOC_FANS]; // Associated Fan Sensors\r | |
250 | \r | |
251 | } FAN_CONTROLLER_INFO, *P_FAN_CONTROLLER_INFO;\r | |
252 | \r | |
253 | //\r | |
254 | // TYPEDEF_FAN_CONTROLLER_SECTION - Macro that can be used to typedef the\r | |
255 | // FAN_CONTROLLER_SECTION structure, which provides information about all\r | |
256 | // fan speed controllers.\r | |
257 | //\r | |
258 | #define TYPEDEF_FAN_CONTROLLER_SECTION(count) \\r | |
259 | typedef struct _FAN_CONTROLLER_SECTION \\r | |
260 | { \\r | |
261 | UINT8 byCount; \\r | |
262 | FAN_CONTROLLER_INFO stController[count]; \\r | |
263 | \\r | |
264 | } FAN_CONTROLLER_SECTION, *P_FAN_CONTROLLER_SECTION\r | |
265 | \r | |
266 | //\r | |
267 | // TYPEDEF_SENSOR_INFO_VAR - Macro that can be used to typedef the\r | |
268 | // SENSOR_INFO_VAR structure, which provides information about all sensors\r | |
269 | // and fan speed controllers. The other TYPEDEF macros must be invoked\r | |
270 | // before using this one...\r | |
271 | //\r | |
272 | #define TYPEDEF_SENSOR_INFO_VAR \\r | |
273 | typedef struct _SENSOR_INFO_VAR \\r | |
274 | { \\r | |
275 | TEMP_SENSOR_SECTION stTemps; \\r | |
276 | VOLT_SENSOR_SECTION stVolts; \\r | |
277 | FAN_SENSOR_SECTION stFans; \\r | |
278 | FAN_CONTROLLER_SECTION stCtrls; \\r | |
279 | \\r | |
280 | } SENSOR_INFO_VAR, *P_SENSOR_INFO_VAR\r | |
281 | \r | |
282 | #pragma pack()\r | |
283 | \r | |
284 | #endif\r |