]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Framework/DataHubRecords.h
Add missing Framework HII definitions to pass build.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / DataHubRecords.h
CommitLineData
4a71b21a 1/** @file\r
79964ac8 2 This file defines GUIDs and associated data structures for records posted to the Data Hub.\r
3 The producers of these records use these definitions to construct records.\r
4 The consumers of these records use these definitions to retrieve, filter and parse records.\r
5\r
6 Copyright (c) 2007, Intel Corporation\r
7 All rights reserved. This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14\r
15 Module Name: DataHubRecords.h\r
16\r
17 @par Revision Reference:\r
18 DataHubRecord.h include all data hub sub class defitions from Cache subclass\r
19 spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9, Processor\r
20 Subclass spec 0.9,Misc SubClass spec 0.9.\r
21\r
22**/\r
23\r
24#ifndef _DATAHUB_RECORDS_H_\r
25#define _DATAHUB_RECORDS_H_\r
26\r
b80fbe85 27#include <PiPei.h>\r
28#include <Protocol/DevicePath.h>\r
8bc7aa6a 29#include <Protocol/FrameworkHii.h>\r
b80fbe85 30\r
79964ac8 31#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000\r
32\r
79964ac8 33#pragma pack(1)\r
34\r
35typedef struct _USB_PORT_DEVICE_PATH {\r
36 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
37 PCI_DEVICE_PATH PciBusDevicePath;\r
38 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
39} USB_PORT_DEVICE_PATH;\r
40\r
41//\r
42// IDE\r
43//\r
44typedef struct _IDE_DEVICE_PATH {\r
45 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
46 PCI_DEVICE_PATH PciBusDevicePath;\r
47 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
48} IDE_DEVICE_PATH;\r
49\r
50//\r
51// RMC Connector\r
52//\r
53typedef struct _RMC_CONN_DEVICE_PATH {\r
54 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
55 PCI_DEVICE_PATH PciBridgeDevicePath;\r
56 PCI_DEVICE_PATH PciBusDevicePath;\r
57 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
58} RMC_CONN_DEVICE_PATH;\r
59\r
60//\r
61// RIDE\r
62//\r
63typedef struct _RIDE_DEVICE_PATH {\r
64 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
65 PCI_DEVICE_PATH PciBridgeDevicePath;\r
66 PCI_DEVICE_PATH PciBusDevicePath;\r
67 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
68} RIDE_DEVICE_PATH;\r
69\r
70//\r
71// Gigabit NIC\r
72//\r
73typedef struct _GB_NIC_DEVICE_PATH {\r
74 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
75 PCI_DEVICE_PATH PciBridgeDevicePath;\r
76 PCI_DEVICE_PATH PciXBridgeDevicePath;\r
77 PCI_DEVICE_PATH PciXBusDevicePath;\r
78 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
79} GB_NIC_DEVICE_PATH;\r
80\r
81//\r
82// P/S2 Connector\r
83//\r
84typedef struct _PS2_CONN_DEVICE_PATH {\r
85 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
86 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
87 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
88 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
89} PS2_CONN_DEVICE_PATH;\r
90\r
91//\r
92// Serial Port Connector\r
93//\r
94typedef struct _SERIAL_CONN_DEVICE_PATH {\r
95 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
96 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
97 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
98 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
99} SERIAL_CONN_DEVICE_PATH;\r
100\r
101//\r
102// Parallel Port Connector\r
103//\r
104typedef struct _PARALLEL_CONN_DEVICE_PATH {\r
105 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
106 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
107 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
108 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
109} PARALLEL_CONN_DEVICE_PATH;\r
110\r
111//\r
112// Floopy Connector\r
113//\r
114typedef struct _FLOOPY_CONN_DEVICE_PATH {\r
115 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
116 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
117 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
118 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
119} FLOOPY_CONN_DEVICE_PATH;\r
120\r
121typedef union _EFI_MISC_PORT_DEVICE_PATH {\r
122 USB_PORT_DEVICE_PATH UsbDevicePath;\r
123 IDE_DEVICE_PATH IdeDevicePath;\r
124 RMC_CONN_DEVICE_PATH RmcConnDevicePath;\r
125 RIDE_DEVICE_PATH RideDevicePath;\r
126 GB_NIC_DEVICE_PATH GbNicDevicePath;\r
127 PS2_CONN_DEVICE_PATH Ps2ConnDevicePath;\r
128 SERIAL_CONN_DEVICE_PATH SerialConnDevicePath;\r
129 PARALLEL_CONN_DEVICE_PATH ParallelConnDevicePath;\r
130 FLOOPY_CONN_DEVICE_PATH FloppyConnDevicePath;\r
131} EFI_MISC_PORT_DEVICE_PATH;\r
132\r
133#pragma pack()\r
134\r
135//\r
136// String Token Definition\r
137//\r
138#define EFI_STRING_TOKEN UINT16\r
139\r
140typedef struct {\r
141 UINT32 Version;\r
142 UINT32 HeaderSize;\r
143 UINT16 Instance;\r
144 UINT16 SubInstance;\r
145 UINT32 RecordType;\r
146} EFI_SUBCLASS_TYPE1_HEADER;\r
147\r
148typedef struct {\r
149 EFI_GUID ProducerName;\r
150 UINT16 Instance;\r
151 UINT16 SubInstance;\r
152} EFI_INTER_LINK_DATA;\r
153\r
154\r
155//\r
156// EXP data\r
157//\r
158\r
159typedef struct {\r
160 UINT16 Value;\r
161 UINT16 Exponent;\r
162} EFI_EXP_BASE2_DATA;\r
163\r
164\r
df2b7d51 165typedef struct {\r
166 UINT16 Value;\r
167 UINT16 Exponent;\r
168} EFI_EXP_BASE10_DATA;\r
169\r
79964ac8 170typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
171\r
172typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;\r
173\r
174typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;\r
175\r
176typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;\r
177\r
178typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;\r
179\r
180typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;\r
181\r
182typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;\r
183\r
184typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;\r
185\r
186typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;\r
187\r
188typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
189\r
190typedef struct {\r
191 UINT32 ProcessorSteppingId:4;\r
192 UINT32 ProcessorModel: 4;\r
193 UINT32 ProcessorFamily: 4;\r
194 UINT32 ProcessorType: 2;\r
195 UINT32 ProcessorReserved1: 2;\r
196 UINT32 ProcessorXModel: 4;\r
197 UINT32 ProcessorXFamily: 8;\r
198 UINT32 ProcessorReserved2: 4;\r
199} EFI_PROCESSOR_SIGNATURE;\r
200\r
201typedef struct {\r
202 UINT32 ProcessorBrandIndex :8;\r
203 UINT32 ProcessorClflush :8;\r
204 UINT32 ProcessorReserved :8;\r
205 UINT32 ProcessorDfltApicId :8;\r
206} EFI_PROCESSOR_MISC_INFO;\r
207\r
208typedef struct {\r
209 UINT32 ProcessorFpu: 1;\r
210 UINT32 ProcessorVme: 1;\r
211 UINT32 ProcessorDe: 1;\r
212 UINT32 ProcessorPse: 1;\r
213 UINT32 ProcessorTsc: 1;\r
214 UINT32 ProcessorMsr: 1;\r
215 UINT32 ProcessorPae: 1;\r
216 UINT32 ProcessorMce: 1;\r
217 UINT32 ProcessorCx8: 1;\r
218 UINT32 ProcessorApic: 1;\r
219 UINT32 ProcessorReserved1: 1;\r
220 UINT32 ProcessorSep: 1;\r
221 UINT32 ProcessorMtrr: 1;\r
222 UINT32 ProcessorPge: 1;\r
223 UINT32 ProcessorMca: 1;\r
224 UINT32 ProcessorCmov: 1;\r
225 UINT32 ProcessorPat: 1;\r
226 UINT32 ProcessorPse36: 1;\r
227 UINT32 ProcessorPsn: 1;\r
228 UINT32 ProcessorClfsh: 1;\r
229 UINT32 ProcessorReserved2: 1;\r
230 UINT32 ProcessorDs: 1;\r
231 UINT32 ProcessorAcpi: 1;\r
232 UINT32 ProcessorMmx: 1;\r
233 UINT32 ProcessorFxsr: 1;\r
234 UINT32 ProcessorSse: 1;\r
235 UINT32 ProcessorSse2: 1;\r
236 UINT32 ProcessorSs: 1;\r
237 UINT32 ProcessorReserved3: 1;\r
238 UINT32 ProcessorTm: 1;\r
239 UINT32 ProcessorReserved4: 2;\r
240} EFI_PROCESSOR_FEATURE_FLAGS;\r
241\r
242typedef struct {\r
243 EFI_PROCESSOR_SIGNATURE Signature;\r
244 EFI_PROCESSOR_MISC_INFO MiscInfo;\r
245 UINT32 Reserved;\r
246 EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;\r
247} EFI_PROCESSOR_ID_DATA;\r
248\r
249typedef enum {\r
250 EfiProcessorOther = 1,\r
251 EfiProcessorUnknown = 2,\r
252 EfiCentralProcessor = 3,\r
253 EfiMathProcessor = 4,\r
254 EfiDspProcessor = 5,\r
255 EfiVideoProcessor = 6\r
256} EFI_PROCESSOR_TYPE_DATA;\r
257\r
258typedef enum {\r
259 EfiProcessorFamilyOther = 1,\r
260 EfiProcessorFamilyUnknown = 2,\r
261 EfiProcessorFamily8086 = 3,\r
262 EfiProcessorFamily80286 = 4,\r
263 EfiProcessorFamilyIntel386 = 5,\r
264 EfiProcessorFamilyIntel486 = 6,\r
265 EfiProcessorFamily8087 = 7,\r
266 EfiProcessorFamily80287 = 8,\r
267 EfiProcessorFamily80387 = 9,\r
268 EfiProcessorFamily80487 = 0x0A,\r
269 EfiProcessorFamilyPentium = 0x0B,\r
270 EfiProcessorFamilyPentiumPro = 0x0C,\r
271 EfiProcessorFamilyPentiumII = 0x0D,\r
272 EfiProcessorFamilyPentiumMMX = 0x0E,\r
273 EfiProcessorFamilyCeleron = 0x0F,\r
274 EfiProcessorFamilyPentiumIIXeon = 0x10,\r
275 EfiProcessorFamilyPentiumIII = 0x11,\r
276 EfiProcessorFamilyM1 = 0x12,\r
277 EfiProcessorFamilyM1Reserved1 = 0x13,\r
278 EfiProcessorFamilyM1Reserved2 = 0x14,\r
279 EfiProcessorFamilyM1Reserved3 = 0x15,\r
280 EfiProcessorFamilyM1Reserved4 = 0x16,\r
281 EfiProcessorFamilyM1Reserved5 = 0x17,\r
282 EfiProcessorFamilyM1Reserved6 = 0x18,\r
283 EfiProcessorFamilyK5 = 0x19,\r
284 EfiProcessorFamilyK5Reserved1 = 0x1A,\r
285 EfiProcessorFamilyK5Reserved2 = 0x1B,\r
286 EfiProcessorFamilyK5Reserved3 = 0x1C,\r
287 EfiProcessorFamilyK5Reserved4 = 0x1D,\r
288 EfiProcessorFamilyK5Reserved5 = 0x1E,\r
289 EfiProcessorFamilyK5Reserved6 = 0x1F,\r
290 EfiProcessorFamilyPowerPC = 0x20,\r
291 EfiProcessorFamilyPowerPC601 = 0x21,\r
292 EfiProcessorFamilyPowerPC603 = 0x22,\r
293 EfiProcessorFamilyPowerPC603Plus = 0x23,\r
294 EfiProcessorFamilyPowerPC604 = 0x24,\r
295 EfiProcessorFamilyAlpha2 = 0x30,\r
296 EfiProcessorFamilyMips = 0x40,\r
297 EfiProcessorFamilySparc = 0x50,\r
298 EfiProcessorFamily68040 = 0x60,\r
299 EfiProcessorFamily68xxx = 0x61,\r
300 EfiProcessorFamily68000 = 0x62,\r
301 EfiProcessorFamily68010 = 0x63,\r
302 EfiProcessorFamily68020 = 0x64,\r
303 EfiProcessorFamily68030 = 0x65,\r
304 EfiProcessorFamilyHobbit = 0x70,\r
305 EfiProcessorFamilyWeitek = 0x80,\r
306 EfiProcessorFamilyPARISC = 0x90,\r
307 EfiProcessorFamilyV30 = 0xA0,\r
308 EfiProcessorFamilyPentiumIIIXeon = 0xB0,\r
309 EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,\r
310 EfiProcessorFamilyPentium4 = 0xB2,\r
311 EfiProcessorFamilyIntelXeon = 0xB3,\r
312 EfiProcessorFamilyAS400 = 0xB4,\r
313 EfiProcessorFamilyIntelXeonMP = 0xB5,\r
314 EfiProcessorFamilyAMDAthlonXP = 0xB6,\r
315 EfiProcessorFamilyAMDAthlonMP = 0xB7,\r
316 EfiProcessorFamilyIntelPentiumM = 0xB9,\r
317 EfiProcessorFamilyIntelCeleronD = 0xBA,\r
318 EfiProcessorFamilyIntelPentiumD = 0xBB,\r
319 EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
320 EfiProcessorFamilyIBM390 = 0xC8,\r
321 EfiProcessorFamilyG4 = 0xC9,\r
322 EfiProcessorFamilyG5 = 0xCA,\r
323 EfiProcessorFamilyi860 = 0xFA,\r
324 EfiProcessorFamilyi960 = 0xFB\r
325} EFI_PROCESSOR_FAMILY_DATA;\r
326\r
327typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;\r
328\r
329typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;\r
330\r
331typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;\r
332\r
333typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;\r
334\r
335typedef enum {\r
336 EfiProcessorIa32Microcode = 1,\r
337 EfiProcessorIpfPalAMicrocode = 2,\r
338 EfiProcessorIpfPalBMicrocode = 3\r
339} EFI_PROCESSOR_MICROCODE_TYPE;\r
340\r
341typedef struct {\r
342 EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;\r
343 UINT32 ProcessorMicrocodeRevisionNumber;\r
344} EFI_PROCESSOR_MICROCODE_REVISION_DATA;\r
345\r
346typedef struct {\r
347 UINT32 CpuStatus :3;\r
348 UINT32 Reserved1 :3;\r
349 UINT32 SocketPopulated :1;\r
350 UINT32 Reserved2 :1;\r
351 UINT32 ApicEnable :1;\r
352 UINT32 BootApplicationProcessor :1;\r
353 UINT32 Reserved3 :22;\r
354} EFI_PROCESSOR_STATUS_DATA;\r
355\r
356typedef enum {\r
357 EfiCpuStatusUnknown = 0,\r
358 EfiCpuStatusEnabled = 1,\r
359 EfiCpuStatusDisabledByUser = 2,\r
360 EfiCpuStatusDisabledbyBios = 3,\r
361 EfiCpuStatusIdle = 4,\r
362 EfiCpuStatusOther = 7\r
363} EFI_CPU_STATUS;\r
364\r
365typedef enum {\r
366 EfiProcessorSocketOther = 1,\r
367 EfiProcessorSocketUnknown = 2,\r
368 EfiProcessorSocketDaughterBoard = 3,\r
369 EfiProcessorSocketZIF = 4,\r
370 EfiProcessorSocketReplacePiggyBack = 5,\r
371 EfiProcessorSocketNone = 6,\r
372 EfiProcessorSocketLIF = 7,\r
373 EfiProcessorSocketSlot1 = 8,\r
374 EfiProcessorSocketSlot2 = 9,\r
375 EfiProcessorSocket370Pin = 0xA,\r
376 EfiProcessorSocketSlotA = 0xB,\r
377 EfiProcessorSocketSlotM = 0xC,\r
378 EfiProcessorSocket423 = 0xD,\r
379 EfiProcessorSocketA462 = 0xE,\r
380 EfiProcessorSocket478 = 0xF,\r
381 EfiProcessorSocket754 = 0x10,\r
382 EfiProcessorSocket940 = 0x11,\r
383 EfiProcessorSocket939 = 0x12,\r
384 EfiProcessorSocketmPGA604 = 0x13,\r
385 EfiProcessorSocketLGA771 = 0x14,\r
386 EfiProcessorSocketLGA775 = 0x15\r
387\r
388} EFI_PROCESSOR_SOCKET_TYPE_DATA;\r
389\r
390typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;\r
391\r
392typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;\r
393\r
394typedef enum {\r
395 EfiProcessorHealthy = 1,\r
396 EfiProcessorPerfRestricted = 2,\r
397 EfiProcessorFuncRestricted = 3\r
398} EFI_PROCESSOR_HEALTH_STATUS;\r
399\r
400typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
401\r
402\r
403typedef enum {\r
404 ProcessorCoreFrequencyRecordType = 1,\r
405 ProcessorFsbFrequencyRecordType = 2,\r
406 ProcessorVersionRecordType = 3,\r
407 ProcessorManufacturerRecordType = 4,\r
408 ProcessorSerialNumberRecordType = 5,\r
409 ProcessorIdRecordType = 6,\r
410 ProcessorTypeRecordType = 7,\r
411 ProcessorFamilyRecordType = 8,\r
412 ProcessorVoltageRecordType = 9,\r
413 ProcessorApicBaseAddressRecordType = 10,\r
414 ProcessorApicIdRecordType = 11,\r
415 ProcessorApicVersionNumberRecordType = 12,\r
416 CpuUcodeRevisionDataRecordType = 13,\r
417 ProcessorStatusRecordType = 14,\r
418 ProcessorSocketTypeRecordType = 15,\r
419 ProcessorSocketNameRecordType = 16,\r
420 CacheAssociationRecordType = 17,\r
421 ProcessorMaxCoreFrequencyRecordType = 18,\r
422 ProcessorAssetTagRecordType = 19,\r
423 ProcessorMaxFsbFrequencyRecordType = 20,\r
424 ProcessorPackageNumberRecordType = 21,\r
425 ProcessorCoreFrequencyListRecordType = 22,\r
426 ProcessorFsbFrequencyListRecordType = 23,\r
427 ProcessorHealthStatusRecordType = 24\r
428} EFI_CPU_VARIABLE_RECORD_TYPE;\r
429\r
430typedef union {\r
431 EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;\r
432 EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;\r
433 EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;\r
434 EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;\r
435 EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;\r
436 EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;\r
437 EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;\r
438 EFI_PROCESSOR_VERSION_DATA ProcessorVersion;\r
439 EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;\r
440 EFI_PROCESSOR_ID_DATA ProcessorId;\r
441 EFI_PROCESSOR_TYPE_DATA ProcessorType;\r
442 EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;\r
443 EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;\r
444 EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;\r
445 EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;\r
446 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;\r
447 EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;\r
448 EFI_PROCESSOR_STATUS_DATA ProcessorStatus;\r
449 EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
450 EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
451 EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
452 EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
453 EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
454} EFI_CPU_VARIABLE_RECORD;\r
455\r
456typedef struct {\r
457 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
458 EFI_CPU_VARIABLE_RECORD VariableRecord;\r
459} EFI_CPU_DATA_RECORD;\r
460\r
461#define EFI_CACHE_SUBCLASS_VERSION 0x00010000\r
462\r
79964ac8 463typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;\r
464\r
465typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;\r
466\r
467typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;\r
468\r
469typedef STRING_REF EFI_CACHE_SOCKET_DATA;\r
470\r
471typedef struct {\r
472 UINT32 Other :1;\r
473 UINT32 Unknown :1;\r
474 UINT32 NonBurst :1;\r
475 UINT32 Burst :1;\r
476 UINT32 PipelineBurst :1;\r
477 UINT32 Asynchronous :1;\r
478 UINT32 Synchronous :1;\r
479 UINT32 Reserved :25;\r
480} EFI_CACHE_SRAM_TYPE_DATA;\r
481\r
8403ef2e 482typedef EFI_CACHE_SRAM_TYPE_DATA EFI_CACHE_SRAM_INSTALL_DATA;\r
483\r
79964ac8 484typedef enum {\r
485 EfiCacheErrorOther = 1,\r
486 EfiCacheErrorUnknown = 2,\r
487 EfiCacheErrorNone = 3,\r
488 EfiCacheErrorParity = 4,\r
489 EfiCacheErrorSingleBit = 5,\r
490 EfiCacheErrorMultiBit = 6\r
491} EFI_CACHE_ERROR_TYPE_DATA;\r
492\r
493typedef enum {\r
494 EfiCacheTypeOther = 1,\r
495 EfiCacheTypeUnknown = 2,\r
496 EfiCacheTypeInstruction = 3,\r
497 EfiCacheTypeData = 4,\r
498 EfiCacheTypeUnified = 5\r
499} EFI_CACHE_TYPE_DATA;\r
500\r
501typedef enum {\r
502 EfiCacheAssociativityOther = 1,\r
503 EfiCacheAssociativityUnknown = 2,\r
504 EfiCacheAssociativityDirectMapped = 3,\r
505 EfiCacheAssociativity2Way = 4,\r
506 EfiCacheAssociativity4Way = 5,\r
507 EfiCacheAssociativityFully = 6,\r
508 EfiCacheAssociativity8Way = 7,\r
ab654bfd 509 EfiCacheAssociativity16Way = 8,\r
510 EfiCacheAssociativity24Way = 9\r
79964ac8 511} EFI_CACHE_ASSOCIATIVITY_DATA;\r
512\r
513typedef struct {\r
514 UINT32 Level :3;\r
515 UINT32 Socketed :1;\r
516 UINT32 Reserved2 :1;\r
517 UINT32 Location :2;\r
518 UINT32 Enable :1;\r
519 UINT32 OperationalMode :2;\r
520 UINT32 Reserved1 :22;\r
521} EFI_CACHE_CONFIGURATION_DATA;\r
522\r
523#define EFI_CACHE_L1 1\r
524#define EFI_CACHE_L2 2\r
525#define EFI_CACHE_L3 3\r
526#define EFI_CACHE_L4 4\r
527#define EFI_CACHE_LMAX EFI_CACHE_L4\r
528\r
529#define EFI_CACHE_SOCKETED 1\r
530#define EFI_CACHE_NOT_SOCKETED 0\r
531\r
532typedef enum {\r
533 EfiCacheInternal = 0,\r
534 EfiCacheExternal = 1,\r
535 EfiCacheReserved = 2,\r
536 EfiCacheUnknown = 3\r
537} EFI_CACHE_LOCATION;\r
538\r
539#define EFI_CACHE_ENABLED 1\r
540#define EFI_CACHE_DISABLED 0\r
541\r
542typedef enum {\r
543 EfiCacheWriteThrough = 0,\r
544 EfiCacheWriteBack = 1,\r
545 EfiCacheDynamicMode = 2,\r
546 EfiCacheUnknownMode = 3\r
547} EFI_CACHE_OPERATIONAL_MODE;\r
548\r
549\r
550\r
551typedef enum {\r
552 CacheSizeRecordType = 1,\r
553 MaximumSizeCacheRecordType = 2,\r
554 CacheSpeedRecordType = 3,\r
555 CacheSocketRecordType = 4,\r
556 CacheSramTypeRecordType = 5,\r
557 CacheInstalledSramTypeRecordType = 6,\r
558 CacheErrorTypeRecordType = 7,\r
559 CacheTypeRecordType = 8,\r
560 CacheAssociativityRecordType = 9,\r
561 CacheConfigRecordType = 10\r
562} EFI_CACHE_VARIABLE_RECORD_TYPE;\r
563\r
564\r
565typedef union {\r
566 EFI_CACHE_SIZE_DATA CacheSize;\r
567 EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;\r
568 EFI_CACHE_SPEED_DATA CacheSpeed;\r
569 EFI_CACHE_SOCKET_DATA CacheSocket;\r
570 EFI_CACHE_SRAM_TYPE_DATA CacheSramType;\r
571 EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;\r
572 EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;\r
573 EFI_CACHE_TYPE_DATA CacheType;\r
574 EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;\r
575 EFI_CACHE_CONFIGURATION_DATA CacheConfig;\r
576 EFI_CACHE_ASSOCIATION_DATA CacheAssociation;\r
577} EFI_CACHE_VARIABLE_RECORD;\r
578\r
579typedef struct {\r
580 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
581 EFI_CACHE_VARIABLE_RECORD VariableRecord;\r
582} EFI_CACHE_DATA_RECORD;\r
583\r
584#define EFI_MEMORY_SUBCLASS_VERSION 0x0100\r
585\r
586\r
587#define EFI_MEMORY_SIZE_RECORD_NUMBER 0x00000001\r
588\r
589typedef enum _EFI_MEMORY_REGION_TYPE {\r
590 EfiMemoryRegionMemory = 0x01,\r
591 EfiMemoryRegionReserved = 0x02,\r
592 EfiMemoryRegionAcpi = 0x03,\r
593 EfiMemoryRegionNvs = 0x04\r
594} EFI_MEMORY_REGION_TYPE;\r
595\r
596typedef struct {\r
597 UINT32 ProcessorNumber;\r
598 UINT16 StartBusNumber;\r
599 UINT16 EndBusNumber;\r
600 EFI_MEMORY_REGION_TYPE MemoryRegionType;\r
601 EFI_EXP_BASE2_DATA MemorySize;\r
602 EFI_PHYSICAL_ADDRESS MemoryStartAddress;\r
603} EFI_MEMORY_SIZE_DATA;\r
604\r
605\r
606#define EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER 0x00000002\r
607\r
608typedef enum _EFI_MEMORY_ARRAY_LOCATION {\r
609 EfiMemoryArrayLocationOther = 0x01,\r
610 EfiMemoryArrayLocationUnknown = 0x02,\r
611 EfiMemoryArrayLocationSystemBoard = 0x03,\r
612 EfiMemoryArrayLocationIsaAddonCard = 0x04,\r
613 EfiMemoryArrayLocationEisaAddonCard = 0x05,\r
614 EfiMemoryArrayLocationPciAddonCard = 0x06,\r
615 EfiMemoryArrayLocationMcaAddonCard = 0x07,\r
616 EfiMemoryArrayLocationPcmciaAddonCard = 0x08,\r
617 EfiMemoryArrayLocationProprietaryAddonCard = 0x09,\r
618 EfiMemoryArrayLocationNuBus = 0x0A,\r
619 EfiMemoryArrayLocationPc98C20AddonCard = 0xA0,\r
620 EfiMemoryArrayLocationPc98C24AddonCard = 0xA1,\r
621 EfiMemoryArrayLocationPc98EAddonCard = 0xA2,\r
622 EfiMemoryArrayLocationPc98LocalBusAddonCard = 0xA3\r
623} EFI_MEMORY_ARRAY_LOCATION;\r
624\r
625typedef enum _EFI_MEMORY_ARRAY_USE {\r
626 EfiMemoryArrayUseOther = 0x01,\r
627 EfiMemoryArrayUseUnknown = 0x02,\r
628 EfiMemoryArrayUseSystemMemory = 0x03,\r
629 EfiMemoryArrayUseVideoMemory = 0x04,\r
630 EfiMemoryArrayUseFlashMemory = 0x05,\r
631 EfiMemoryArrayUseNonVolatileRam = 0x06,\r
661e7afd 632 EfiMemoryArrayUseCacheMemory = 0x07\r
79964ac8 633} EFI_MEMORY_ARRAY_USE;\r
634\r
635typedef enum _EFI_MEMORY_ERROR_CORRECTION {\r
636 EfiMemoryErrorCorrectionOther = 0x01,\r
637 EfiMemoryErrorCorrectionUnknown = 0x02,\r
638 EfiMemoryErrorCorrectionNone = 0x03,\r
639 EfiMemoryErrorCorrectionParity = 0x04,\r
640 EfiMemoryErrorCorrectionSingleBitEcc = 0x05,\r
641 EfiMemoryErrorCorrectionMultiBitEcc = 0x06,\r
661e7afd 642 EfiMemoryErrorCorrectionCrc = 0x07\r
79964ac8 643} EFI_MEMORY_ERROR_CORRECTION;\r
644\r
645typedef struct {\r
646 EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;\r
647 EFI_MEMORY_ARRAY_USE MemoryArrayUse;\r
648 EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;\r
649 EFI_EXP_BASE2_DATA MaximumMemoryCapacity;\r
650 UINT16 NumberMemoryDevices;\r
651} EFI_MEMORY_ARRAY_LOCATION_DATA;\r
652\r
653\r
654#define EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER 0x00000003\r
655\r
656typedef enum _EFI_MEMORY_FORM_FACTOR {\r
657 EfiMemoryFormFactorOther = 0x01,\r
658 EfiMemoryFormFactorUnknown = 0x02,\r
659 EfiMemoryFormFactorSimm = 0x03,\r
660 EfiMemoryFormFactorSip = 0x04,\r
661 EfiMemoryFormFactorChip = 0x05,\r
662 EfiMemoryFormFactorDip = 0x06,\r
663 EfiMemoryFormFactorZip = 0x07,\r
664 EfiMemoryFormFactorProprietaryCard = 0x08,\r
665 EfiMemoryFormFactorDimm = 0x09,\r
666 EfiMemoryFormFactorTsop = 0x0A,\r
667 EfiMemoryFormFactorRowOfChips = 0x0B,\r
668 EfiMemoryFormFactorRimm = 0x0C,\r
669 EfiMemoryFormFactorSodimm = 0x0D,\r
670 EfiMemoryFormFactorSrimm = 0x0E,\r
671 EfiMemoryFormFactorFbDimm = 0x0F\r
672} EFI_MEMORY_FORM_FACTOR;\r
673\r
674typedef enum _EFI_MEMORY_ARRAY_TYPE {\r
675 EfiMemoryTypeOther = 0x01,\r
676 EfiMemoryTypeUnknown = 0x02,\r
677 EfiMemoryTypeDram = 0x03,\r
678 EfiMemoryTypeEdram = 0x04,\r
679 EfiMemoryTypeVram = 0x05,\r
680 EfiMemoryTypeSram = 0x06,\r
681 EfiMemoryTypeRam = 0x07,\r
682 EfiMemoryTypeRom = 0x08,\r
683 EfiMemoryTypeFlash = 0x09,\r
684 EfiMemoryTypeEeprom = 0x0A,\r
685 EfiMemoryTypeFeprom = 0x0B,\r
686 EfiMemoryTypeEprom = 0x0C,\r
687 EfiMemoryTypeCdram = 0x0D,\r
688 EfiMemoryType3Dram = 0x0E,\r
689 EfiMemoryTypeSdram = 0x0F,\r
690 EfiMemoryTypeSgram = 0x10,\r
691 EfiMemoryTypeRdram = 0x11,\r
692 EfiMemoryTypeDdr = 0x12,\r
693 EfiMemoryTypeDdr2 = 0x13,\r
694 EfiMemoryTypeDdr2FbDimm = 0x14\r
695} EFI_MEMORY_ARRAY_TYPE;\r
696\r
697typedef struct {\r
698 UINT32 Reserved :1;\r
699 UINT32 Other :1;\r
700 UINT32 Unknown :1;\r
701 UINT32 FastPaged :1;\r
702 UINT32 StaticColumn :1;\r
703 UINT32 PseudoStatic :1;\r
704 UINT32 Rambus :1;\r
705 UINT32 Synchronous :1;\r
706 UINT32 Cmos :1;\r
707 UINT32 Edo :1;\r
708 UINT32 WindowDram :1;\r
709 UINT32 CacheDram :1;\r
710 UINT32 Nonvolatile :1;\r
711 UINT32 Reserved1 :19;\r
712} EFI_MEMORY_TYPE_DETAIL;\r
713\r
714typedef enum {\r
715 EfiMemoryStateEnabled = 0,\r
716 EfiMemoryStateUnknown = 1,\r
717 EfiMemoryStateUnsupported = 2,\r
718 EfiMemoryStateError = 3,\r
719 EfiMemoryStateAbsent = 4,\r
720 EfiMemoryStateDisabled = 5,\r
721 EfiMemoryStatePartial = 6\r
722} EFI_MEMORY_STATE;\r
723\r
724typedef struct {\r
725 STRING_REF MemoryDeviceLocator;\r
726 STRING_REF MemoryBankLocator;\r
727 STRING_REF MemoryManufacturer;\r
728 STRING_REF MemorySerialNumber;\r
729 STRING_REF MemoryAssetTag;\r
730 STRING_REF MemoryPartNumber;\r
731 EFI_INTER_LINK_DATA MemoryArrayLink;\r
732 EFI_INTER_LINK_DATA MemorySubArrayLink;\r
733 UINT16 MemoryTotalWidth;\r
734 UINT16 MemoryDataWidth;\r
735 EFI_EXP_BASE2_DATA MemoryDeviceSize;\r
736 EFI_MEMORY_FORM_FACTOR MemoryFormFactor;\r
737 UINT8 MemoryDeviceSet;\r
738 EFI_MEMORY_ARRAY_TYPE MemoryType;\r
739 EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;\r
740 EFI_EXP_BASE10_DATA MemorySpeed;\r
741 EFI_MEMORY_STATE MemoryState;\r
742} EFI_MEMORY_ARRAY_LINK_DATA;\r
743\r
744\r
745#define EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER 0x00000004\r
746\r
747typedef struct {\r
748 EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress;\r
749 EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress;\r
750 EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
751 UINT16 MemoryArrayPartitionWidth;\r
752} EFI_MEMORY_ARRAY_START_ADDRESS_DATA;\r
753\r
754\r
755#define EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER 0x00000005\r
756\r
757typedef struct {\r
758 EFI_PHYSICAL_ADDRESS MemoryDeviceStartAddress;\r
759 EFI_PHYSICAL_ADDRESS MemoryDeviceEndAddress;\r
760 EFI_INTER_LINK_DATA PhysicalMemoryDeviceLink;\r
761 EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
762 UINT8 MemoryDevicePartitionRowPosition;\r
763 UINT8 MemoryDeviceInterleavePosition;\r
764 UINT8 MemoryDeviceInterleaveDataDepth;\r
765} EFI_MEMORY_DEVICE_START_ADDRESS_DATA;\r
766\r
767\r
768//\r
769// Memory. Channel Device Type - SMBIOS Type 37\r
770//\r
771\r
772#define EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER 0x00000006\r
773\r
774typedef enum _EFI_MEMORY_CHANNEL_TYPE {\r
775 EfiMemoryChannelTypeOther = 1,\r
776 EfiMemoryChannelTypeUnknown = 2,\r
777 EfiMemoryChannelTypeRambus = 3,\r
778 EfiMemoryChannelTypeSyncLink = 4\r
779} EFI_MEMORY_CHANNEL_TYPE;\r
780\r
781typedef struct {\r
782 EFI_MEMORY_CHANNEL_TYPE MemoryChannelType;\r
783 UINT8 MemoryChannelMaximumLoad;\r
784 UINT8 MemoryChannelDeviceCount;\r
785} EFI_MEMORY_CHANNEL_TYPE_DATA;\r
786\r
787#define EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER 0x00000007\r
788\r
789typedef struct {\r
790 UINT8 DeviceId;\r
791 EFI_INTER_LINK_DATA DeviceLink;\r
792 UINT8 MemoryChannelDeviceLoad;\r
793} EFI_MEMORY_CHANNEL_DEVICE_DATA;\r
794\r
91399a51 795//\r
796// Memory. Controller Information - SMBIOS Type 5\r
797//\r
798#define EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER 0x00000008\r
799\r
800typedef enum { \r
801 EfiErrorDetectingMethodOther = 1,\r
802 EfiErrorDetectingMethodUnknown = 2,\r
803 EfiErrorDetectingMethodNone = 3,\r
804 EfiErrorDetectingMethodParity = 4,\r
805 EfiErrorDetectingMethod32Ecc = 5,\r
806 EfiErrorDetectingMethod64Ecc = 6,\r
807 EfiErrorDetectingMethod128Ecc = 7,\r
808 EfiErrorDetectingMethodCrc = 8\r
809} EFI_MEMORY_ERROR_DETECT_METHOD_TYPE;\r
810\r
811typedef struct {\r
812 UINT8 Other :1;\r
813 UINT8 Unknown :1;\r
814 UINT8 None :1;\r
815 UINT8 SingleBitErrorCorrect :1;\r
816 UINT8 DoubleBitErrorCorrect :1;\r
817 UINT8 ErrorScrubbing :1;\r
818 UINT8 Reserved :2;\r
819} EFI_MEMORY_ERROR_CORRECT_CAPABILITY;\r
820\r
821typedef enum { \r
822 EfiMemoryInterleaveOther = 1,\r
823 EfiMemoryInterleaveUnknown = 2,\r
824 EfiMemoryInterleaveOneWay = 3,\r
825 EfiMemoryInterleaveTwoWay = 4,\r
826 EfiMemoryInterleaveFourWay = 5,\r
827 EfiMemoryInterleaveEightWay = 6,\r
828 EfiMemoryInterleaveSixteenWay = 7\r
829} EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE;\r
830\r
831typedef struct {\r
832 UINT16 Other :1;\r
833 UINT16 Unknown :1;\r
834 UINT16 SeventyNs :1;\r
835 UINT16 SixtyNs :1;\r
836 UINT16 FiftyNs :1;\r
837 UINT16 Reserved :11;\r
838} EFI_MEMORY_SPEED_TYPE;\r
839\r
840typedef struct {\r
841 UINT16 Other :1;\r
842 UINT16 Unknown :1;\r
843 UINT16 Standard :1;\r
844 UINT16 FastPageMode :1;\r
845 UINT16 EDO :1;\r
846 UINT16 Parity :1;\r
847 UINT16 ECC :1;\r
848 UINT16 SIMM :1;\r
849 UINT16 DIMM :1;\r
850 UINT16 BurstEdo :1;\r
851 UINT16 SDRAM :1;\r
852 UINT16 Reserved :5;\r
853} EFI_MEMORY_SUPPORTED_TYPE;\r
854\r
855typedef struct {\r
856 UINT8 Five :1;\r
857 UINT8 There :1;\r
858 UINT8 Two :1;\r
859 UINT8 Reserved :5;\r
860} EFI_MEMORY_MODULE_VOLTAGE_TYPE;\r
861\r
862typedef struct {\r
863 EFI_MEMORY_ERROR_DETECT_METHOD_TYPE ErrorDetectingMethod;\r
864 EFI_MEMORY_ERROR_CORRECT_CAPABILITY ErrorCorrectingCapability;\r
865 EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE MemorySupportedInterleave;\r
866 EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE MemoryCurrentInterleave;\r
867 UINT8 MaxMemoryModuleSize;\r
868 EFI_MEMORY_SPEED_TYPE MemorySpeedType;\r
869 EFI_MEMORY_SUPPORTED_TYPE MemorySupportedType;\r
870 EFI_MEMORY_MODULE_VOLTAGE_TYPE MemoryModuleVoltage;\r
871 UINT8 NumberofMemorySlot;\r
872 EFI_MEMORY_ERROR_CORRECT_CAPABILITY EnabledCorrectingCapability;\r
873 UINT16 *MemoryModuleConfigHandles;\r
874} EFI_MEMORY_CONTROLLER_INFORMATION;\r
875\r
876//\r
877// Memory. Error Information - SMBIOS Type 18\r
878//\r
879#define EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER 0x00000009\r
880\r
881typedef enum { \r
882 EfiMemoryErrorOther = 1,\r
883 EfiMemoryErrorUnknown = 2,\r
884 EfiMemoryErrorOk = 3,\r
885 EfiMemoryErrorBadRead = 4,\r
886 EfiMemoryErrorParity = 5,\r
887 EfiMemoryErrorSigleBit = 6,\r
888 EfiMemoryErrorDoubleBit = 7,\r
889 EfiMemoryErrorMultiBit = 8,\r
890 EfiMemoryErrorNibble = 9,\r
891 EfiMemoryErrorChecksum = 10,\r
892 EfiMemoryErrorCrc = 11,\r
893 EfiMemoryErrorCorrectSingleBit = 12,\r
894 EfiMemoryErrorCorrected = 13,\r
895 EfiMemoryErrorUnCorrectable = 14\r
896} EFI_MEMORY_ERROR_TYPE;\r
897\r
898typedef enum { \r
899 EfiMemoryGranularityOther = 1,\r
900 EfiMemoryGranularityOtherUnknown = 2,\r
901 EfiMemoryGranularityDeviceLevel = 3,\r
902 EfiMemoryGranularityMemPartitionLevel = 4\r
903} EFI_MEMORY_ERROR_GRANULARITY_TYPE;\r
904\r
905typedef enum { \r
906 EfiMemoryErrorOperationOther = 1,\r
907 EfiMemoryErrorOperationUnknown = 2,\r
908 EfiMemoryErrorOperationRead = 3,\r
909 EfiMemoryErrorOperationWrite = 4,\r
910 EfiMemoryErrorOperationPartialWrite = 5\r
911} EFI_MEMORY_ERROR_OPERATION_TYPE;\r
912\r
913typedef struct {\r
914 EFI_MEMORY_ERROR_TYPE MemoryErrorType;\r
915 EFI_MEMORY_ERROR_GRANULARITY_TYPE MemoryErrorGranularity;\r
916 EFI_MEMORY_ERROR_OPERATION_TYPE MemoryErrorOperation;\r
917 UINT32 VendorSyndrome;\r
918 UINT32 MemoryArrayErrorAddress;\r
919 UINT32 DeviceErrorAddress;\r
920 UINT32 DeviceErrorResolution;\r
921} EFI_MEMORY_32BIT_ERROR_INFORMATION;\r
922\r
923//\r
924// Memory. Error Information - SMBIOS Type 33\r
925//\r
926#define EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER 0x0000000A\r
927\r
928typedef struct {\r
929 EFI_MEMORY_ERROR_TYPE MemoryErrorType;\r
930 EFI_MEMORY_ERROR_GRANULARITY_TYPE MemoryErrorGranularity;\r
931 EFI_MEMORY_ERROR_OPERATION_TYPE MemoryErrorOperation;\r
932 UINT32 VendorSyndrome;\r
933 UINT64 MemoryArrayErrorAddress;\r
934 UINT64 DeviceErrorAddress;\r
935 UINT32 DeviceErrorResolution;\r
936} EFI_MEMORY_64BIT_ERROR_INFORMATION;\r
79964ac8 937\r
938typedef union _EFI_MEMORY_SUBCLASS_RECORDS {\r
939 EFI_MEMORY_SIZE_DATA SizeData;\r
940 EFI_MEMORY_ARRAY_LOCATION_DATA ArrayLocationData;\r
941 EFI_MEMORY_ARRAY_LINK_DATA ArrayLink;\r
942 EFI_MEMORY_ARRAY_START_ADDRESS_DATA ArrayStartAddress;\r
943 EFI_MEMORY_DEVICE_START_ADDRESS_DATA DeviceStartAddress;\r
944 EFI_MEMORY_CHANNEL_TYPE_DATA ChannelTypeData;\r
945 EFI_MEMORY_CHANNEL_DEVICE_DATA ChannelDeviceData;\r
91399a51 946 EFI_MEMORY_CONTROLLER_INFORMATION MemoryControllerInfo;\r
947 EFI_MEMORY_32BIT_ERROR_INFORMATION Memory32bitErrorInfo;\r
948 EFI_MEMORY_64BIT_ERROR_INFORMATION Memory64bitErrorInfo;\r
79964ac8 949} EFI_MEMORY_SUBCLASS_RECORDS;\r
950\r
951typedef struct {\r
952 EFI_SUBCLASS_TYPE1_HEADER Header;\r
953 EFI_MEMORY_SUBCLASS_RECORDS Record;\r
954} EFI_MEMORY_SUBCLASS_DRIVER_DATA;\r
955\r
956#define EFI_MISC_SUBCLASS_VERSION 0x0100\r
957\r
958#pragma pack(1)\r
959//\r
960//////////////////////////////////////////////////////////////////////////////\r
961//\r
962// Last PCI Bus Number\r
963//\r
964#define EFI_MISC_LAST_PCI_BUS_RECORD_NUMBER 0x00000001\r
965\r
966typedef struct {\r
967 UINT8 LastPciBus;\r
968} EFI_MISC_LAST_PCI_BUS_DATA;\r
969\r
970//\r
971//////////////////////////////////////////////////////////////////////////////\r
972//\r
973// Misc. BIOS Vendor - SMBIOS Type 0\r
974//\r
975#define EFI_MISC_BIOS_VENDOR_RECORD_NUMBER 0x00000002\r
976\r
977typedef struct {\r
978 UINT64 Reserved1 :2;\r
979 UINT64 Unknown :1;\r
980 UINT64 BiosCharacteristicsNotSupported :1;\r
981 UINT64 IsaIsSupported :1;\r
982 UINT64 McaIsSupported :1;\r
983 UINT64 EisaIsSupported :1;\r
984 UINT64 PciIsSupported :1;\r
985 UINT64 PcmciaIsSupported :1;\r
986 UINT64 PlugAndPlayIsSupported :1;\r
987 UINT64 ApmIsSupported :1;\r
988 UINT64 BiosIsUpgradable :1;\r
989 UINT64 BiosShadowingAllowed :1;\r
990 UINT64 VlVesaIsSupported :1;\r
991 UINT64 EscdSupportIsAvailable :1;\r
992 UINT64 BootFromCdIsSupported :1;\r
993 UINT64 SelectableBootIsSupported :1;\r
994 UINT64 RomBiosIsSocketed :1;\r
995 UINT64 BootFromPcmciaIsSupported :1;\r
996 UINT64 EDDSpecificationIsSupported :1;\r
997 UINT64 JapaneseNecFloppyIsSupported :1;\r
998 UINT64 JapaneseToshibaFloppyIsSupported :1;\r
999 UINT64 Floppy525_360IsSupported :1;\r
1000 UINT64 Floppy525_12IsSupported :1;\r
1001 UINT64 Floppy35_720IsSupported :1;\r
1002 UINT64 Floppy35_288IsSupported :1;\r
1003 UINT64 PrintScreenIsSupported :1;\r
1004 UINT64 Keyboard8042IsSupported :1;\r
1005 UINT64 SerialIsSupported :1;\r
1006 UINT64 PrinterIsSupported :1;\r
1007 UINT64 CgaMonoIsSupported :1;\r
1008 UINT64 NecPc98 :1;\r
1009 UINT64 AcpiIsSupported :1;\r
1010 UINT64 UsbLegacyIsSupported :1;\r
1011 UINT64 AgpIsSupported :1;\r
1012 UINT64 I20BootIsSupported :1;\r
1013 UINT64 Ls120BootIsSupported :1;\r
1014 UINT64 AtapiZipDriveBootIsSupported :1;\r
1015 UINT64 Boot1394IsSupported :1;\r
1016 UINT64 SmartBatteryIsSupported :1;\r
1017 UINT64 BiosBootSpecIsSupported :1;\r
1018 UINT64 FunctionKeyNetworkBootIsSupported :1;\r
1019 UINT64 Reserved :22;\r
1020} EFI_MISC_BIOS_CHARACTERISTICS;\r
1021\r
1022typedef struct {\r
1023 UINT64 BiosReserved :16;\r
1024 UINT64 SystemReserved :16;\r
1025 UINT64 Reserved :32;\r
1026} EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION;\r
1027\r
1028typedef struct {\r
1029 STRING_REF BiosVendor;\r
1030 STRING_REF BiosVersion;\r
1031 STRING_REF BiosReleaseDate;\r
1032 EFI_PHYSICAL_ADDRESS BiosStartingAddress;\r
1033 EFI_EXP_BASE2_DATA BiosPhysicalDeviceSize;\r
1034 EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;\r
1035 EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION BiosCharacteristics2;\r
1036 UINT8 BiosMajorRelease;\r
1037 UINT8 BiosMinorRelease;\r
1038 UINT8 BiosEmbeddedFirmwareMajorRelease;\r
1039 UINT8 BiosEmbeddedFirmwareMinorRelease;\r
1040} EFI_MISC_BIOS_VENDOR_DATA;\r
1041\r
1042//\r
1043//////////////////////////////////////////////////////////////////////////////\r
1044//\r
1045// Misc. System Manufacturer - SMBIOS Type 1\r
1046//\r
1047#define EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER 0x00000003\r
1048\r
1049typedef enum {\r
1050 EfiSystemWakeupTypeReserved = 0,\r
1051 EfiSystemWakeupTypeOther = 1,\r
1052 EfiSystemWakeupTypeUnknown = 2,\r
1053 EfiSystemWakeupTypeApmTimer = 3,\r
1054 EfiSystemWakeupTypeModemRing = 4,\r
1055 EfiSystemWakeupTypeLanRemote = 5,\r
1056 EfiSystemWakeupTypePowerSwitch = 6,\r
1057 EfiSystemWakeupTypePciPme = 7,\r
661e7afd 1058 EfiSystemWakeupTypeAcPowerRestored = 8\r
79964ac8 1059} EFI_MISC_SYSTEM_WAKEUP_TYPE;\r
1060\r
1061typedef struct {\r
1062 STRING_REF SystemManufacturer;\r
1063 STRING_REF SystemProductName;\r
1064 STRING_REF SystemVersion;\r
1065 STRING_REF SystemSerialNumber;\r
1066 EFI_GUID SystemUuid;\r
1067 EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;\r
1068 STRING_REF SystemSKUNumber;\r
1069 STRING_REF SystemFamily;\r
1070} EFI_MISC_SYSTEM_MANUFACTURER_DATA;\r
1071\r
1072//\r
1073//////////////////////////////////////////////////////////////////////////////\r
1074//\r
1075// Misc. Base Board Manufacturer - SMBIOS Type 2\r
1076//\r
1077#define EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER 0x00000004\r
1078\r
1079typedef struct {\r
1080 UINT32 Motherboard :1;\r
1081 UINT32 RequiresDaughterCard :1;\r
1082 UINT32 Removable :1;\r
1083 UINT32 Replaceable :1;\r
1084 UINT32 HotSwappable :1;\r
1085 UINT32 Reserved :27;\r
1086} EFI_BASE_BOARD_FEATURE_FLAGS;\r
1087\r
1088typedef enum {\r
1089 EfiBaseBoardTypeUnknown = 1,\r
1090 EfiBaseBoardTypeOther = 2,\r
1091 EfiBaseBoardTypeServerBlade = 3,\r
1092 EfiBaseBoardTypeConnectivitySwitch = 4,\r
1093 EfiBaseBoardTypeSystemManagementModule = 5,\r
1094 EfiBaseBoardTypeProcessorModule = 6,\r
1095 EfiBaseBoardTypeIOModule = 7,\r
1096 EfiBaseBoardTypeMemoryModule = 8,\r
1097 EfiBaseBoardTypeDaughterBoard = 9,\r
1098 EfiBaseBoardTypeMotherBoard = 0xA,\r
1099 EfiBaseBoardTypeProcessorMemoryModule = 0xB,\r
1100 EfiBaseBoardTypeProcessorIOModule = 0xC,\r
661e7afd 1101 EfiBaseBoardTypeInterconnectBoard = 0xD\r
79964ac8 1102} EFI_BASE_BOARD_TYPE;\r
1103\r
1104typedef struct {\r
1105 STRING_REF BaseBoardManufacturer;\r
1106 STRING_REF BaseBoardProductName;\r
1107 STRING_REF BaseBoardVersion;\r
1108 STRING_REF BaseBoardSerialNumber;\r
1109 STRING_REF BaseBoardAssetTag;\r
1110 STRING_REF BaseBoardChassisLocation;\r
1111 EFI_BASE_BOARD_FEATURE_FLAGS BaseBoardFeatureFlags;\r
1112 EFI_BASE_BOARD_TYPE BaseBoardType;\r
1113 EFI_INTER_LINK_DATA BaseBoardChassisLink;\r
1114 UINT32 BaseBoardNumberLinks;\r
1115 EFI_INTER_LINK_DATA LinkN;\r
1116} EFI_MISC_BASE_BOARD_MANUFACTURER_DATA;\r
1117\r
1118//\r
1119//////////////////////////////////////////////////////////////////////////////\r
1120//\r
1121// Misc. System/Chassis Enclosure - SMBIOS Type 3\r
1122//\r
1123#define EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER 0x00000005\r
1124\r
1125typedef enum {\r
1126 EfiMiscChassisTypeOther = 0x1,\r
1127 EfiMiscChassisTypeUnknown = 0x2,\r
1128 EfiMiscChassisTypeDeskTop = 0x3,\r
1129 EfiMiscChassisTypeLowProfileDesktop = 0x4,\r
1130 EfiMiscChassisTypePizzaBox = 0x5,\r
1131 EfiMiscChassisTypeMiniTower = 0x6,\r
1132 EfiMiscChassisTypeTower = 0x7,\r
1133 EfiMiscChassisTypePortable = 0x8,\r
1134 EfiMiscChassisTypeLapTop = 0x9,\r
1135 EfiMiscChassisTypeNotebook = 0xA,\r
1136 EfiMiscChassisTypeHandHeld = 0xB,\r
1137 EfiMiscChassisTypeDockingStation = 0xC,\r
1138 EfiMiscChassisTypeAllInOne = 0xD,\r
1139 EfiMiscChassisTypeSubNotebook = 0xE,\r
1140 EfiMiscChassisTypeSpaceSaving = 0xF,\r
1141 EfiMiscChassisTypeLunchBox = 0x10,\r
1142 EfiMiscChassisTypeMainServerChassis = 0x11,\r
1143 EfiMiscChassisTypeExpansionChassis = 0x12,\r
1144 EfiMiscChassisTypeSubChassis = 0x13,\r
1145 EfiMiscChassisTypeBusExpansionChassis = 0x14,\r
1146 EfiMiscChassisTypePeripheralChassis = 0x15,\r
1147 EfiMiscChassisTypeRaidChassis = 0x16,\r
1148 EfiMiscChassisTypeRackMountChassis = 0x17,\r
1149 EfiMiscChassisTypeSealedCasePc = 0x18,\r
661e7afd 1150 EfiMiscChassisMultiSystemChassis = 0x19\r
79964ac8 1151} EFI_MISC_CHASSIS_TYPE;\r
1152\r
1153typedef struct {\r
1154 UINT32 ChassisType :16;\r
1155 UINT32 ChassisLockPresent:1;\r
1156 UINT32 Reserved :15;\r
1157} EFI_MISC_CHASSIS_STATUS;\r
1158\r
1159typedef enum {\r
1160 EfiChassisStateOther = 0x01,\r
1161 EfiChassisStateUnknown = 0x02,\r
1162 EfiChassisStateSafe = 0x03,\r
1163 EfiChassisStateWarning = 0x04,\r
1164 EfiChassisStateCritical = 0x05,\r
661e7afd 1165 EfiChassisStateNonRecoverable = 0x06\r
79964ac8 1166} EFI_MISC_CHASSIS_STATE;\r
1167\r
1168typedef enum {\r
1169 EfiChassisSecurityStatusOther = 0x01,\r
1170 EfiChassisSecurityStatusUnknown = 0x02,\r
1171 EfiChassisSecurityStatusNone = 0x03,\r
1172 EfiChassisSecurityStatusExternalInterfaceLockedOut = 0x04,\r
661e7afd 1173 EfiChassisSecurityStatusExternalInterfaceLockedEnabled = 0x05\r
79964ac8 1174} EFI_MISC_CHASSIS_SECURITY_STATE;\r
1175\r
1176typedef struct {\r
1177 UINT32 RecordType :1;\r
1178 UINT32 Reserved :24;\r
1179} EFI_MISC_ELEMENT_TYPE;\r
1180\r
1181typedef struct {\r
1182 EFI_MISC_ELEMENT_TYPE ChassisElementType;\r
1183 EFI_INTER_LINK_DATA ChassisElementStructure;\r
1184 EFI_BASE_BOARD_TYPE ChassisBaseBoard;\r
1185 UINT32 ChassisElementMinimum;\r
1186 UINT32 ChassisElementMaximum;\r
1187} EFI_MISC_ELEMENTS;\r
1188\r
1189typedef struct {\r
1190 STRING_REF ChassisManufacturer;\r
1191 STRING_REF ChassisVersion;\r
1192 STRING_REF ChassisSerialNumber;\r
1193 STRING_REF ChassisAssetTag;\r
1194 EFI_MISC_CHASSIS_STATUS ChassisType;\r
1195 EFI_MISC_CHASSIS_STATE ChassisBootupState;\r
1196 EFI_MISC_CHASSIS_STATE ChassisPowerSupplyState;\r
1197 EFI_MISC_CHASSIS_STATE ChassisThermalState;\r
1198 EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;\r
1199 UINT32 ChassisOemDefined;\r
1200 UINT32 ChassisHeight;\r
1201 UINT32 ChassisNumberPowerCords;\r
1202 UINT32 ChassisElementCount;\r
1203 UINT32 ChassisElementRecordLength;//\r
1204 EFI_MISC_ELEMENTS ChassisElements;\r
1205} EFI_MISC_CHASSIS_MANUFACTURER_DATA;\r
1206\r
1207//\r
1208//////////////////////////////////////////////////////////////////////////////\r
1209//\r
1210// Misc. Port Connector Information - SMBIOS Type 8\r
1211//\r
1212#define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006\r
1213\r
1214typedef enum {\r
1215 EfiPortConnectorTypeNone = 0x00,\r
1216 EfiPortConnectorTypeCentronics = 0x01,\r
1217 EfiPortConnectorTypeMiniCentronics = 0x02,\r
1218 EfiPortConnectorTypeProprietary = 0x03,\r
1219 EfiPortConnectorTypeDB25Male = 0x04,\r
1220 EfiPortConnectorTypeDB25Female = 0x05,\r
1221 EfiPortConnectorTypeDB15Male = 0x06,\r
1222 EfiPortConnectorTypeDB15Female = 0x07,\r
1223 EfiPortConnectorTypeDB9Male = 0x08,\r
1224 EfiPortConnectorTypeDB9Female = 0x09,\r
1225 EfiPortConnectorTypeRJ11 = 0x0A,\r
1226 EfiPortConnectorTypeRJ45 = 0x0B,\r
1227 EfiPortConnectorType50PinMiniScsi = 0x0C,\r
1228 EfiPortConnectorTypeMiniDin = 0x0D,\r
1229 EfiPortConnectorTypeMicriDin = 0x0E,\r
1230 EfiPortConnectorTypePS2 = 0x0F,\r
1231 EfiPortConnectorTypeInfrared = 0x10,\r
1232 EfiPortConnectorTypeHpHil = 0x11,\r
1233 EfiPortConnectorTypeUsb = 0x12,\r
1234 EfiPortConnectorTypeSsaScsi = 0x13,\r
1235 EfiPortConnectorTypeCircularDin8Male = 0x14,\r
1236 EfiPortConnectorTypeCircularDin8Female = 0x15,\r
1237 EfiPortConnectorTypeOnboardIde = 0x16,\r
1238 EfiPortConnectorTypeOnboardFloppy = 0x17,\r
1239 EfiPortConnectorType9PinDualInline = 0x18,\r
1240 EfiPortConnectorType25PinDualInline = 0x19,\r
1241 EfiPortConnectorType50PinDualInline = 0x1A,\r
1242 EfiPortConnectorType68PinDualInline = 0x1B,\r
1243 EfiPortConnectorTypeOnboardSoundInput = 0x1C,\r
1244 EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,\r
1245 EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,\r
1246 EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,\r
1247 EfiPortConnectorTypeBNC = 0x20,\r
1248 EfiPortConnectorType1394 = 0x21,\r
1249 EfiPortConnectorTypePC98 = 0xA0,\r
1250 EfiPortConnectorTypePC98Hireso = 0xA1,\r
1251 EfiPortConnectorTypePCH98 = 0xA2,\r
1252 EfiPortConnectorTypePC98Note = 0xA3,\r
1253 EfiPortConnectorTypePC98Full = 0xA4,\r
661e7afd 1254 EfiPortConnectorTypeOther = 0xFF\r
79964ac8 1255} EFI_MISC_PORT_CONNECTOR_TYPE;\r
1256\r
1257typedef enum {\r
1258 EfiPortTypeNone = 0x00,\r
1259 EfiPortTypeParallelXtAtCompatible = 0x01,\r
1260 EfiPortTypeParallelPortPs2 = 0x02,\r
1261 EfiPortTypeParallelPortEcp = 0x03,\r
1262 EfiPortTypeParallelPortEpp = 0x04,\r
1263 EfiPortTypeParallelPortEcpEpp = 0x05,\r
1264 EfiPortTypeSerialXtAtCompatible = 0x06,\r
1265 EfiPortTypeSerial16450Compatible = 0x07,\r
1266 EfiPortTypeSerial16550Compatible = 0x08,\r
1267 EfiPortTypeSerial16550ACompatible = 0x09,\r
1268 EfiPortTypeScsi = 0x0A,\r
1269 EfiPortTypeMidi = 0x0B,\r
1270 EfiPortTypeJoyStick = 0x0C,\r
1271 EfiPortTypeKeyboard = 0x0D,\r
1272 EfiPortTypeMouse = 0x0E,\r
1273 EfiPortTypeSsaScsi = 0x0F,\r
1274 EfiPortTypeUsb = 0x10,\r
1275 EfiPortTypeFireWire = 0x11,\r
1276 EfiPortTypePcmciaTypeI = 0x12,\r
1277 EfiPortTypePcmciaTypeII = 0x13,\r
1278 EfiPortTypePcmciaTypeIII = 0x14,\r
1279 EfiPortTypeCardBus = 0x15,\r
1280 EfiPortTypeAccessBusPort = 0x16,\r
1281 EfiPortTypeScsiII = 0x17,\r
1282 EfiPortTypeScsiWide = 0x18,\r
1283 EfiPortTypePC98 = 0x19,\r
1284 EfiPortTypePC98Hireso = 0x1A,\r
1285 EfiPortTypePCH98 = 0x1B,\r
1286 EfiPortTypeVideoPort = 0x1C,\r
1287 EfiPortTypeAudioPort = 0x1D,\r
1288 EfiPortTypeModemPort = 0x1E,\r
1289 EfiPortTypeNetworkPort = 0x1F,\r
1290 EfiPortType8251Compatible = 0xA0,\r
1291 EfiPortType8251FifoCompatible = 0xA1,\r
661e7afd 1292 EfiPortTypeOther = 0xFF\r
79964ac8 1293} EFI_MISC_PORT_TYPE;\r
1294\r
1295typedef struct {\r
1296 STRING_REF PortInternalConnectorDesignator;\r
1297 STRING_REF PortExternalConnectorDesignator;\r
1298 EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;\r
1299 EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;\r
1300 EFI_MISC_PORT_TYPE PortType;\r
1301 EFI_MISC_PORT_DEVICE_PATH PortPath;\r
1302} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;\r
1303\r
1304//\r
1305//////////////////////////////////////////////////////////////////////////////\r
1306//\r
1307// Misc. System Slots - SMBIOS Type 9\r
1308//\r
1309#define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007\r
1310\r
1311typedef enum {\r
1312 EfiSlotTypeOther = 0x01,\r
1313 EfiSlotTypeUnknown = 0x02,\r
1314 EfiSlotTypeIsa = 0x03,\r
1315 EfiSlotTypeMca = 0x04,\r
1316 EfiSlotTypeEisa = 0x05,\r
1317 EfiSlotTypePci = 0x06,\r
1318 EfiSlotTypePcmcia = 0x07,\r
1319 EfiSlotTypeVlVesa = 0x08,\r
1320 EfiSlotTypeProprietary = 0x09,\r
1321 EfiSlotTypeProcessorCardSlot = 0x0A,\r
1322 EfiSlotTypeProprietaryMemoryCardSlot = 0x0B,\r
1323 EfiSlotTypeIORiserCardSlot = 0x0C,\r
1324 EfiSlotTypeNuBus = 0x0D,\r
1325 EfiSlotTypePci66MhzCapable = 0x0E,\r
1326 EfiSlotTypeAgp = 0x0F,\r
1327 EfiSlotTypeApg2X = 0x10,\r
1328 EfiSlotTypeAgp4X = 0x11,\r
1329 EfiSlotTypePciX = 0x12,\r
1330 EfiSlotTypeAgp4x = 0x13,\r
1331 EfiSlotTypePC98C20 = 0xA0,\r
1332 EfiSlotTypePC98C24 = 0xA1,\r
1333 EfiSlotTypePC98E = 0xA2,\r
1334 EfiSlotTypePC98LocalBus = 0xA3,\r
1335 EfiSlotTypePC98Card = 0xA4,\r
1336 EfiSlotTypePciExpress = 0xA5\r
1337} EFI_MISC_SLOT_TYPE;\r
1338\r
1339typedef enum {\r
1340 EfiSlotDataBusWidthOther = 0x01,\r
1341 EfiSlotDataBusWidthUnknown = 0x02,\r
1342 EfiSlotDataBusWidth8Bit = 0x03,\r
1343 EfiSlotDataBusWidth16Bit = 0x04,\r
1344 EfiSlotDataBusWidth32Bit = 0x05,\r
1345 EfiSlotDataBusWidth64Bit = 0x06,\r
661e7afd 1346 EfiSlotDataBusWidth128Bit = 0x07\r
79964ac8 1347} EFI_MISC_SLOT_DATA_BUS_WIDTH;\r
1348\r
1349typedef enum {\r
1350 EfiSlotUsageOther = 1,\r
1351 EfiSlotUsageUnknown = 2,\r
1352 EfiSlotUsageAvailable = 3,\r
661e7afd 1353 EfiSlotUsageInUse = 4\r
79964ac8 1354} EFI_MISC_SLOT_USAGE;\r
1355\r
1356typedef enum {\r
1357 EfiSlotLengthOther = 1,\r
1358 EfiSlotLengthUnknown = 2,\r
1359 EfiSlotLengthShort = 3,\r
1360 EfiSlotLengthLong = 4\r
1361} EFI_MISC_SLOT_LENGTH;\r
1362\r
1363typedef struct {\r
1364 UINT32 CharacteristicsUnknown :1;\r
1365 UINT32 Provides50Volts :1;\r
1366 UINT32 Provides33Volts :1;\r
1367 UINT32 SharedSlot :1;\r
1368 UINT32 PcCard16Supported :1;\r
1369 UINT32 CardBusSupported :1;\r
1370 UINT32 ZoomVideoSupported :1;\r
1371 UINT32 ModemRingResumeSupported:1;\r
1372 UINT32 PmeSignalSupported :1;\r
1373 UINT32 HotPlugDevicesSupported :1;\r
1374 UINT32 SmbusSignalSupported :1;\r
1375 UINT32 Reserved :21;\r
1376} EFI_MISC_SLOT_CHARACTERISTICS;\r
1377\r
1378typedef struct {\r
1379 STRING_REF SlotDesignation;\r
1380 EFI_MISC_SLOT_TYPE SlotType;\r
1381 EFI_MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth;\r
1382 EFI_MISC_SLOT_USAGE SlotUsage;\r
1383 EFI_MISC_SLOT_LENGTH SlotLength;\r
1384 UINT16 SlotId;\r
1385 EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;\r
1386 EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;\r
1387} EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA;\r
1388\r
1389//\r
1390//////////////////////////////////////////////////////////////////////////////\r
1391//\r
1392// Misc. Onboard Device - SMBIOS Type 10\r
1393//\r
1394#define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008\r
1395\r
1396typedef enum {\r
1397 EfiOnBoardDeviceTypeOther = 1,\r
1398 EfiOnBoardDeviceTypeUnknown = 2,\r
1399 EfiOnBoardDeviceTypeVideo = 3,\r
1400 EfiOnBoardDeviceTypeScsiController = 4,\r
1401 EfiOnBoardDeviceTypeEthernet = 5,\r
1402 EfiOnBoardDeviceTypeTokenRing = 6,\r
661e7afd 1403 EfiOnBoardDeviceTypeSound = 7\r
79964ac8 1404} EFI_MISC_ONBOARD_DEVICE_TYPE;\r
1405\r
1406typedef struct {\r
1407 UINT32 DeviceType :16;\r
1408 UINT32 DeviceEnabled :1;\r
1409 UINT32 Reserved :15;\r
1410} EFI_MISC_ONBOARD_DEVICE_STATUS;\r
1411\r
1412typedef struct {\r
1413 STRING_REF OnBoardDeviceDescription;\r
1414 EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;\r
1415 EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;\r
1416} EFI_MISC_ONBOARD_DEVICE_DATA;\r
1417\r
1418//\r
1419//////////////////////////////////////////////////////////////////////////////\r
1420//\r
1421// Misc. BIOS Language Information - SMBIOS Type 11\r
1422//\r
1423#define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009\r
1424\r
1425typedef struct {\r
1426 STRING_REF OemStringRef[1];\r
1427} EFI_MISC_OEM_STRING_DATA;\r
1428\r
1429//\r
1430//////////////////////////////////////////////////////////////////////////////\r
1431//\r
1432// Misc. System Options - SMBIOS Type 12\r
1433//\r
1434typedef struct {\r
1435 STRING_REF SystemOptionStringRef[1];\r
1436} EFI_MISC_SYSTEM_OPTION_STRING_DATA;\r
1437\r
1438#define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A\r
1439\r
1440//\r
1441//////////////////////////////////////////////////////////////////////////////\r
1442//\r
1443// Misc. Number of Installable Languages - SMBIOS Type 13\r
1444//\r
1445#define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B\r
1446\r
1447typedef struct {\r
1448 UINT32 AbbreviatedLanguageFormat :1;\r
1449 UINT32 Reserved :31;\r
1450} EFI_MISC_LANGUAGE_FLAGS;\r
1451\r
1452typedef struct {\r
1453 UINT16 NumberOfInstallableLanguages;\r
1454 EFI_MISC_LANGUAGE_FLAGS LanguageFlags;\r
1455 UINT16 CurrentLanguageNumber;\r
1456} EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA;\r
1457\r
1458//\r
1459//////////////////////////////////////////////////////////////////////////////\r
1460//\r
1461// Misc. System Language String\r
1462//\r
1463#define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C\r
1464\r
1465typedef struct {\r
1466 UINT16 LanguageId;\r
1467 STRING_REF SystemLanguageString;\r
1468} EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA;\r
1469\r
1470//\r
1471//////////////////////////////////////////////////////////////////////////////\r
1472//\r
1473// Group Associations - SMBIOS Type 14\r
1474//\r
1475#define EFI_MISC_GROUP_NAME_RECORD_NUMBER 0x0000000D\r
1476\r
1477typedef struct {\r
1478 STRING_REF GroupName;\r
1479 UINT16 NumberGroupItems;\r
1480 UINT16 GroupId;\r
1481} EFI_MISC_GROUP_NAME_DATA;\r
1482\r
1483//\r
1484//////////////////////////////////////////////////////////////////////////////\r
1485//\r
1486// Group Item Set Element\r
1487//\r
1488#define EFI_MISC_GROUP_ITEM_SET_RECORD_NUMBER 0x0000000E\r
1489\r
1490typedef struct {\r
1491 EFI_GUID SubClass;\r
1492 EFI_INTER_LINK_DATA GroupLink;\r
1493 UINT16 GroupId;\r
1494 UINT16 GroupElementId;\r
1495} EFI_MISC_GROUP_ITEM_SET_DATA;\r
1496\r
79964ac8 1497//\r
1498//////////////////////////////////////////////////////////////////////////////\r
1499//\r
1500// Misc. Pointing Device Type - SMBIOS Type 21\r
1501//\r
1502#define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F\r
1503\r
1504typedef enum {\r
1505 EfiPointingDeviceTypeOther = 0x01,\r
1506 EfiPointingDeviceTypeUnknown = 0x02,\r
1507 EfiPointingDeviceTypeMouse = 0x03,\r
1508 EfiPointingDeviceTypeTrackBall = 0x04,\r
1509 EfiPointingDeviceTypeTrackPoint = 0x05,\r
1510 EfiPointingDeviceTypeGlidePoint = 0x06,\r
1511 EfiPointingDeviceTouchPad = 0x07,\r
1512 EfiPointingDeviceTouchScreen = 0x08,\r
661e7afd 1513 EfiPointingDeviceOpticalSensor = 0x09\r
79964ac8 1514} EFI_MISC_POINTING_DEVICE_TYPE;\r
1515\r
1516typedef enum {\r
1517 EfiPointingDeviceInterfaceOther = 0x01,\r
1518 EfiPointingDeviceInterfaceUnknown = 0x02,\r
1519 EfiPointingDeviceInterfaceSerial = 0x03,\r
1520 EfiPointingDeviceInterfacePs2 = 0x04,\r
1521 EfiPointingDeviceInterfaceInfrared = 0x05,\r
1522 EfiPointingDeviceInterfaceHpHil = 0x06,\r
1523 EfiPointingDeviceInterfaceBusMouse = 0x07,\r
1524 EfiPointingDeviceInterfaceADB = 0x08,\r
1525 EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,\r
1526 EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,\r
661e7afd 1527 EfiPointingDeviceInterfaceUsb = 0xA2\r
79964ac8 1528} EFI_MISC_POINTING_DEVICE_INTERFACE;\r
1529\r
1530typedef struct {\r
1531 EFI_MISC_POINTING_DEVICE_TYPE PointingDeviceType;\r
1532 EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;\r
1533 UINT16 NumberPointingDeviceButtons;\r
1534 EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;\r
1535} EFI_MISC_PORTING_DEVICE_TYPE_DATA;\r
1536\r
1537//\r
1538//////////////////////////////////////////////////////////////////////////////\r
1539//\r
1540// Portable Battery - SMBIOS Type 22\r
1541//\r
765e516c 1542#define EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER 0x00000010\r
79964ac8 1543\r
765e516c 1544typedef enum { \r
1545 EfiPortableBatteryDeviceChemistryOther = 1,\r
1546 EfiPortableBatteryDeviceChemistryUnknown = 2,\r
1547 EfiPortableBatteryDeviceChemistryLeadAcid = 3,\r
1548 EfiPortableBatteryDeviceChemistryNickelCadmium = 4,\r
1549 EfiPortableBatteryDeviceChemistryNickelMetalHydride = 5,\r
1550 EfiPortableBatteryDeviceChemistryLithiumIon = 6,\r
1551 EfiPortableBatteryDeviceChemistryZincAir = 7,\r
661e7afd 1552 EfiPortableBatteryDeviceChemistryLithiumPolymer = 8\r
765e516c 1553} EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY;\r
1554\r
1555typedef struct {\r
1556 STRING_REF Location;\r
1557 STRING_REF Manufacturer;\r
1558 STRING_REF ManufactureDate;\r
1559 STRING_REF SerialNumber;\r
1560 STRING_REF DeviceName;\r
1561 EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY DeviceChemistry;\r
1562 UINT16 DesignCapacity;\r
1563 UINT16 DesignVoltage;\r
1564 STRING_REF SBDSVersionNumber;\r
1565 UINT8 MaximumError;\r
1566 UINT16 SBDSSerialNumber;\r
1567 UINT16 SBDSManufactureDate;\r
1568 STRING_REF SBDSDeviceChemistry;\r
1569 UINT8 DesignCapacityMultiplier;\r
1570 UINT32 OEMSpecific; \r
1571 UINT8 BatteryNumber; // Temporary \r
1572 BOOLEAN Valid; // Is entry valid - Temporary\r
1573} EFI_MISC_PORTABLE_BATTERY;\r
79964ac8 1574\r
1575//\r
1576//////////////////////////////////////////////////////////////////////////////\r
1577//\r
1578// Misc. Reset Capabilities - SMBIOS Type 23\r
1579//\r
1580#define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011\r
1581\r
1582typedef struct {\r
1583 UINT32 Status :1;\r
1584 UINT32 BootOption :2;\r
1585 UINT32 BootOptionOnLimit :2;\r
1586 UINT32 WatchdogTimerPresent:1;\r
1587 UINT32 Reserved :26;\r
1588} EFI_MISC_RESET_CAPABILITIES_TYPE;\r
1589\r
1590typedef struct {\r
1591 EFI_MISC_RESET_CAPABILITIES_TYPE ResetCapabilities;\r
1592 UINT16 ResetCount;\r
1593 UINT16 ResetLimit;\r
1594 UINT16 ResetTimerInterval;\r
1595 UINT16 ResetTimeout;\r
1596} EFI_MISC_RESET_CAPABILITIES;\r
1597\r
1598typedef struct {\r
1599 EFI_MISC_RESET_CAPABILITIES ResetCapabilities;\r
1600 UINT16 ResetCount;\r
1601 UINT16 ResetLimit;\r
1602 UINT16 ResetTimerInterval;\r
1603 UINT16 ResetTimeout;\r
1604} EFI_MISC_RESET_CAPABILITIES_DATA;\r
1605\r
1606//\r
1607//////////////////////////////////////////////////////////////////////////////\r
1608//\r
1609// Misc. Hardware Security - SMBIOS Type 24\r
1610//\r
91399a51 1611#define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER 0x00000012\r
79964ac8 1612\r
1613typedef enum {\r
1614 EfiHardwareSecurityStatusDisabled = 0,\r
1615 EfiHardwareSecurityStatusEnabled = 1,\r
1616 EfiHardwareSecurityStatusNotImplemented = 2,\r
1617 EfiHardwareSecurityStatusUnknown = 3\r
1618} EFI_MISC_HARDWARE_SECURITY_STATUS;\r
1619\r
1620typedef struct {\r
1621 EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;\r
1622 EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;\r
1623 EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;\r
1624 EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;\r
1625 EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;\r
1626} EFI_MISC_HARDWARE_SECURITY_SETTINGS;\r
1627\r
1628typedef struct {\r
1629 EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;\r
1630} EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;\r
1631\r
1632//\r
1633//////////////////////////////////////////////////////////////////////////////\r
1634//\r
1635// System Power Controls - SMBIOS Type 25\r
1636//\r
1637#define EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER 0x00000013\r
1638\r
1639typedef struct {\r
1640 UINT16 ScheduledPoweronMonth;\r
1641 UINT16 ScheduledPoweronDayOfMonth;\r
1642 UINT16 ScheduledPoweronHour;\r
1643 UINT16 ScheduledPoweronMinute;\r
1644 UINT16 ScheduledPoweronSecond;\r
1645} EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA;\r
1646\r
1647//\r
1648//////////////////////////////////////////////////////////////////////////////\r
1649//\r
1650// Voltage Probe - SMBIOS Type 26\r
1651//\r
1652#define EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000014\r
1653\r
1654typedef struct {\r
1655 UINT32 VoltageProbeSite :5;\r
1656 UINT32 VoltageProbeStatus :3;\r
1657 UINT32 Reserved :24;\r
1658} EFI_MISC_VOLTAGE_PROBE_LOCATION;\r
1659\r
1660typedef struct {\r
1661 STRING_REF VoltageProbeDescription;\r
1662 EFI_MISC_VOLTAGE_PROBE_LOCATION VoltageProbeLocation;\r
1663 EFI_EXP_BASE10_DATA VoltageProbeMaximumValue;\r
1664 EFI_EXP_BASE10_DATA VoltageProbeMinimumValue;\r
1665 EFI_EXP_BASE10_DATA VoltageProbeResolution;\r
1666 EFI_EXP_BASE10_DATA VoltageProbeTolerance;\r
1667 EFI_EXP_BASE10_DATA VoltageProbeAccuracy;\r
1668 EFI_EXP_BASE10_DATA VoltageProbeNominalValue;\r
1669 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1670 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1671 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1672 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1673 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1674 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1675 UINT32 VoltageProbeOemDefined;\r
1676} EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA;\r
1677\r
1678//\r
1679//////////////////////////////////////////////////////////////////////////////\r
1680//\r
1681// Cooling Device - SMBIOS Type 27\r
1682//\r
1683#define EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER 0x00000015\r
1684\r
1685typedef struct {\r
1686 UINT32 CoolingDevice :5;\r
1687 UINT32 CoolingDeviceStatus :3;\r
1688 UINT32 Reserved :24;\r
1689} EFI_MISC_COOLING_DEVICE_TYPE;\r
1690\r
1691typedef struct {\r
1692 EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;\r
1693 EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;\r
1694 UINT16 CoolingDeviceUnitGroup;\r
1695 EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;\r
1696 UINT32 CoolingDeviceOemDefined;\r
1697} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
1698\r
1699//\r
1700//////////////////////////////////////////////////////////////////////////////\r
1701//\r
1702// Temperature Probe - SMBIOS Type 28\r
1703//\r
1704#define EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000016\r
1705\r
1706typedef struct {\r
1707 UINT32 TemperatureProbeSite :5;\r
1708 UINT32 TemperatureProbeStatus :3;\r
1709 UINT32 Reserved :24;\r
1710} EFI_MISC_TEMPERATURE_PROBE_LOCATION;\r
1711\r
1712typedef struct {\r
1713 STRING_REF TemperatureProbeDescription;\r
1714 EFI_MISC_TEMPERATURE_PROBE_LOCATION\r
1715 TemperatureProbeLocation;\r
1716 EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;\r
1717 EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;\r
1718 EFI_EXP_BASE10_DATA TemperatureProbeResolution;\r
1719 EFI_EXP_BASE10_DATA TemperatureProbeTolerance;\r
1720 EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;\r
1721 EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;\r
1722 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1723 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1724 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1725 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1726 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1727 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1728 UINT32 TemperatureProbeOemDefined;\r
1729} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
1730\r
1731//\r
1732//////////////////////////////////////////////////////////////////////////////\r
1733//\r
1734// Electrical Current Probe - SMBIOS Type 29\r
1735//\r
1736\r
1737#define EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000017\r
1738\r
1739typedef struct {\r
1740 UINT32 ElectricalCurrentProbeSite :5;\r
1741 UINT32 ElectricalCurrentProbeStatus :3;\r
1742 UINT32 Reserved :24;\r
1743} EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION;\r
1744\r
1745typedef struct {\r
1746 STRING_REF ElectricalCurrentProbeDescription;\r
1747 EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION\r
1748 ElectricalCurrentProbeLocation;\r
1749 EFI_EXP_BASE10_DATA ElectricalCurrentProbeMaximumValue;\r
1750 EFI_EXP_BASE10_DATA ElectricalCurrentProbeMinimumValue;\r
1751 EFI_EXP_BASE10_DATA ElectricalCurrentProbeResolution;\r
1752 EFI_EXP_BASE10_DATA ElectricalCurrentProbeTolerance;\r
1753 EFI_EXP_BASE10_DATA ElectricalCurrentProbeAccuracy;\r
1754 EFI_EXP_BASE10_DATA ElectricalCurrentProbeNominalValue;\r
1755 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1756 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1757 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1758 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1759 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1760 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1761 UINT32 ElectricalCurrentProbeOemDefined;\r
1762} EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA;\r
1763\r
1764//\r
1765//////////////////////////////////////////////////////////////////////////////\r
1766//\r
1767// Out-of-Band Remote Access - SMBIOS Type 30\r
1768//\r
1769\r
1770#define EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER 0x00000018\r
1771\r
1772typedef struct {\r
1773 UINT32 InboundConnectionEnabled :1;\r
1774 UINT32 OutboundConnectionEnabled :1;\r
1775 UINT32 Reserved :30;\r
1776} EFI_MISC_REMOTE_ACCESS_CONNECTIONS;\r
1777\r
1778typedef struct {\r
1779 STRING_REF RemoteAccessManufacturerNameDescription;\r
1780 EFI_MISC_REMOTE_ACCESS_CONNECTIONS RemoteAccessConnections;\r
1781} EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA;\r
1782\r
1783//\r
1784//////////////////////////////////////////////////////////////////////////////\r
1785//\r
1786// Misc. BIS Entry Point - SMBIOS Type 31\r
1787//\r
1788#define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER 0x00000019\r
1789\r
1790typedef struct {\r
1791 EFI_PHYSICAL_ADDRESS BisEntryPoint;\r
1792} EFI_MISC_BIS_ENTRY_POINT_DATA;\r
1793\r
1794//\r
1795//////////////////////////////////////////////////////////////////////////////\r
1796//\r
1797// Misc. Boot Information - SMBIOS Type 32\r
1798//\r
1799#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A\r
1800\r
1801typedef enum {\r
1802 EfiBootInformationStatusNoError = 0x00,\r
1803 EfiBootInformationStatusNoBootableMedia = 0x01,\r
1804 EfiBootInformationStatusNormalOSFailedLoading = 0x02,\r
1805 EfiBootInformationStatusFirmwareDetectedFailure = 0x03,\r
1806 EfiBootInformationStatusOSDetectedFailure = 0x04,\r
1807 EfiBootInformationStatusUserRequestedBoot = 0x05,\r
1808 EfiBootInformationStatusSystemSecurityViolation = 0x06,\r
1809 EfiBootInformationStatusPreviousRequestedImage = 0x07,\r
1810 EfiBootInformationStatusWatchdogTimerExpired = 0x08,\r
1811 EfiBootInformationStatusStartReserved = 0x09,\r
1812 EfiBootInformationStatusStartOemSpecific = 0x80,\r
661e7afd 1813 EfiBootInformationStatusStartProductSpecific = 0xC0\r
79964ac8 1814} EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE;\r
1815\r
1816typedef struct {\r
1817 EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;\r
1818 UINT8 BootInformationData[9];\r
1819} EFI_MISC_BOOT_INFORMATION_STATUS_DATA;\r
1820\r
1821//\r
1822//////////////////////////////////////////////////////////////////////////////\r
1823//\r
1824// Management Device - SMBIOS Type 34\r
1825//\r
1826#define EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER 0x0000001B\r
1827\r
1828typedef enum {\r
1829 EfiManagementDeviceTypeOther = 0x01,\r
1830 EfiManagementDeviceTypeUnknown = 0x02,\r
1831 EfiManagementDeviceTypeLm75 = 0x03,\r
1832 EfiManagementDeviceTypeLm78 = 0x04,\r
1833 EfiManagementDeviceTypeLm79 = 0x05,\r
1834 EfiManagementDeviceTypeLm80 = 0x06,\r
1835 EfiManagementDeviceTypeLm81 = 0x07,\r
1836 EfiManagementDeviceTypeAdm9240 = 0x08,\r
1837 EfiManagementDeviceTypeDs1780 = 0x09,\r
1838 EfiManagementDeviceTypeMaxim1617 = 0x0A,\r
1839 EfiManagementDeviceTypeGl518Sm = 0x0B,\r
1840 EfiManagementDeviceTypeW83781D = 0x0C,\r
661e7afd 1841 EfiManagementDeviceTypeHt82H791 = 0x0D\r
79964ac8 1842} EFI_MISC_MANAGEMENT_DEVICE_TYPE;\r
1843\r
1844typedef enum {\r
1845 EfiManagementDeviceAddressTypeOther = 1,\r
1846 EfiManagementDeviceAddressTypeUnknown = 2,\r
1847 EfiManagementDeviceAddressTypeIOPort = 3,\r
1848 EfiManagementDeviceAddressTypeMemory = 4,\r
1849 EfiManagementDeviceAddressTypeSmbus = 5\r
1850} EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE;\r
1851\r
1852typedef struct {\r
1853 STRING_REF ManagementDeviceDescription;\r
1854 EFI_MISC_MANAGEMENT_DEVICE_TYPE ManagementDeviceType;\r
1855 UINTN ManagementDeviceAddress;\r
1856 EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE\r
1857 ManagementDeviceAddressType;\r
1858} EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA;\r
1859\r
1860//\r
1861//////////////////////////////////////////////////////////////////////////////\r
1862//\r
1863// Management Device Component - SMBIOS Type 35\r
1864//\r
1865\r
1866#define EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_RECORD_NUMBER 0x0000001C\r
1867\r
1868typedef struct {\r
1869 STRING_REF ManagementDeviceComponentDescription;\r
1870 EFI_INTER_LINK_DATA ManagementDeviceLink;\r
1871 EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
91399a51 1872 EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;\r
79964ac8 1873} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
1874\r
1875//\r
1876//////////////////////////////////////////////////////////////////////////////\r
1877//\r
1878// IPMI Data Record - SMBIOS Type 38\r
1879//\r
1880typedef enum {\r
1881 EfiIpmiOther = 0,\r
1882 EfiIpmiKcs = 1,\r
1883 EfiIpmiSmic = 2,\r
661e7afd 1884 EfiIpmiBt = 3\r
79964ac8 1885} EFI_MISC_IPMI_INTERFACE_TYPE;\r
1886\r
1887typedef struct {\r
1888 UINT16 IpmiSpecLeastSignificantDigit:4;\r
1889 UINT16 IpmiSpecMostSignificantDigit: 4;\r
1890 UINT16 Reserved: 8;\r
1891} EFI_MISC_IPMI_SPECIFICATION_REVISION;\r
1892\r
1893typedef struct {\r
1894 EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;\r
1895 EFI_MISC_IPMI_SPECIFICATION_REVISION IpmiSpecificationRevision;\r
1896 UINT16 IpmiI2CSlaveAddress;\r
1897 UINT16 IpmiNvDeviceAddress;\r
1898 UINT64 IpmiBaseAddress;\r
1899 EFI_DEVICE_PATH_PROTOCOL IpmiDevicePath;\r
1900} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;\r
1901\r
1902#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D\r
1903\r
1904//\r
1905//////////////////////////////////////////////////////////////////////////////\r
1906//\r
1907//System Power supply Record - SMBIOS Type 39\r
1908//\r
1909typedef struct {\r
1910 UINT16 PowerSupplyHotReplaceable :1;\r
1911 UINT16 PowerSupplyPresent :1;\r
1912 UINT16 PowerSupplyUnplugged :1;\r
1913 UINT16 InputVoltageRangeSwitch :4;\r
1914 UINT16 PowerSupplyStatus :3;\r
1915 UINT16 PowerSupplyType :4;\r
1916 UINT16 Reserved :2;\r
1917} POWER_SUPPLY_CHARACTERISTICS;\r
1918\r
1919typedef struct {\r
765e516c 1920 UINT16 PowerUnitGroup;\r
79964ac8 1921 STRING_REF PowerSupplyLocation;\r
1922 STRING_REF PowerSupplyDeviceName;\r
1923 STRING_REF PowerSupplyManufacturer;\r
1924 STRING_REF PowerSupplySerialNumber;\r
1925 STRING_REF PowerSupplyAssetTagNumber;\r
1926 STRING_REF PowerSupplyModelPartNumber;\r
1927 STRING_REF PowerSupplyRevisionLevel;\r
1928 UINT16 PowerSupplyMaxPowerCapacity;\r
1929 POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;\r
1930 EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;\r
1931 EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;\r
1932 EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;\r
1933} EFI_MISC_SYSTEM_POWER_SUPPLY_DATA;\r
1934\r
1935#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E\r
1936\r
1937//\r
1938//////////////////////////////////////////////////////////////////////////////\r
1939//\r
1940// OEM Data Record - SMBIOS Type 0x80-0xFF\r
1941//\r
1942typedef struct {\r
1943 UINT8 Type;\r
1944 UINT8 Length;\r
1945 UINT16 Handle;\r
1946} SMBIOS_STRUCTURE_HDR;\r
1947\r
1948typedef struct {\r
1949 SMBIOS_STRUCTURE_HDR Header;\r
1950 UINT8 RawData[1];\r
1951} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;\r
1952\r
1953#define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F\r
1954\r
91399a51 1955//\r
1956//////////////////////////////////////////////////////////////////////////////\r
1957//\r
1958// Misc. System Event Log - SMBIOS Type 15\r
1959//\r
1960#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020\r
1961typedef struct {\r
1962 //SMBIOS_STRUCTURE_HDR Header;\r
1963 UINT16 LogAreaLength;\r
1964 UINT16 LogHeaderStartOffset;\r
1965 UINT16 LogDataStartOffset;\r
1966 UINT8 AccessMethod;\r
1967 UINT8 LogStatus;\r
1968 UINT32 LogChangeToken;\r
1969 UINT32 AccessMethodAddress;\r
1970 UINT8 LogHeaderFormat;\r
1971 UINT8 NumberOfSupportedLogType;\r
1972 UINT8 LengthOfLogDescriptor;\r
1973} EFI_MISC_SYSTEM_EVENT_LOG_DATA;\r
1974\r
1975//\r
1976// Access Method.\r
1977// 0x00~0x04: as following definition\r
1978// 0x05~0x7f: Available for future assignment.\r
1979// 0x80~0xff: BIOS Vendor/OEM-specific.\r
1980// \r
1981#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00\r
1982#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01\r
1983#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02\r
1984#define ACCESS_MEMORY_MAPPED 0x03\r
1985#define ACCESS_GPNV 0x04\r
1986\r
1987//\r
1988//////////////////////////////////////////////////////////////////////////////\r
1989//\r
1990//Management Device Threshold Data Record - SMBIOS Type 36\r
1991//\r
1992#define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021\r
1993\r
1994typedef struct {\r
1995 UINT16 LowerThresNonCritical;\r
1996 UINT16 UpperThresNonCritical;\r
1997 UINT16 LowerThresCritical;\r
1998 UINT16 UpperThresCritical;\r
1999 UINT16 LowerThresNonRecover;\r
2000 UINT16 UpperThresNonRecover;\r
2001} EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD;\r
2002\r
79964ac8 2003//\r
2004// Declare the following strutures alias to use them more conviniently.\r
2005//\r
2006typedef EFI_MISC_LAST_PCI_BUS_DATA EFI_MISC_LAST_PCI_BUS;\r
2007typedef EFI_MISC_BIOS_VENDOR_DATA EFI_MISC_BIOS_VENDOR;\r
2008typedef EFI_MISC_SYSTEM_MANUFACTURER_DATA EFI_MISC_SYSTEM_MANUFACTURER;\r
2009typedef EFI_MISC_BASE_BOARD_MANUFACTURER_DATA EFI_MISC_BASE_BOARD_MANUFACTURER;\r
2010typedef EFI_MISC_CHASSIS_MANUFACTURER_DATA EFI_MISC_CHASSIS_MANUFACTURER;\r
2011typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;\r
2012typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA EFI_MISC_SYSTEM_SLOT_DESIGNATION;\r
2013typedef EFI_MISC_ONBOARD_DEVICE_DATA EFI_MISC_ONBOARD_DEVICE;\r
2014typedef EFI_MISC_PORTING_DEVICE_TYPE_DATA EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;\r
2015typedef EFI_MISC_OEM_STRING_DATA EFI_MISC_OEM_STRING;\r
2016typedef EFI_MISC_SYSTEM_OPTION_STRING_DATA EFI_MISC_SYSTEM_OPTION_STRING;\r
2017typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;\r
2018typedef EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA EFI_MISC_SYSTEM_LANGUAGE_STRING;\r
2019typedef EFI_MISC_SYSTEM_EVENT_LOG_DATA EFI_MISC_SYSTEM_EVENT_LOG;\r
2020typedef EFI_MISC_BIS_ENTRY_POINT_DATA EFI_MISC_BIS_ENTRY_POINT;\r
2021typedef EFI_MISC_BOOT_INFORMATION_STATUS_DATA EFI_MISC_BOOT_INFORMATION_STATUS;\r
2022typedef EFI_MISC_SYSTEM_POWER_SUPPLY_DATA EFI_MISC_SYSTEM_POWER_SUPPLY;\r
2023typedef EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;\r
765e516c 2024typedef EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA EFI_MISC_SCHEDULED_POWER_ON_MONTH;\r
2025typedef EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA EFI_MISC_VOLTAGE_PROBE_DESCRIPTION;\r
2026typedef EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA EFI_MISC_COOLING_DEVICE_TEMP_LINK;\r
2027typedef EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION;\r
2028typedef EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA \r
2029 EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION;\r
2030typedef EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;\r
2031typedef EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;\r
79964ac8 2032\r
2033typedef union {\r
2034 EFI_MISC_LAST_PCI_BUS_DATA LastPciBus;\r
2035 EFI_MISC_BIOS_VENDOR_DATA MiscBiosVendor;\r
2036 EFI_MISC_SYSTEM_MANUFACTURER_DATA MiscSystemManufacturer;\r
2037 EFI_MISC_BASE_BOARD_MANUFACTURER_DATA MiscBaseBoardManufacturer;\r
2038 EFI_MISC_CHASSIS_MANUFACTURER_DATA MiscChassisManufacturer;\r
2039 EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA MiscPortInternalConnectorDesignator;\r
2040 EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA MiscSystemSlotDesignation;\r
2041 EFI_MISC_ONBOARD_DEVICE_DATA MiscOnboardDevice;\r
2042 EFI_MISC_OEM_STRING_DATA MiscOemString;\r
2043 EFI_MISC_SYSTEM_OPTION_STRING_DATA MiscOptionString;\r
2044 EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA NumberOfInstallableLanguages;\r
2045 EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA MiscSystemLanguageString;\r
2046 EFI_MISC_SYSTEM_EVENT_LOG_DATA MiscSystemEventLog;\r
2047 EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;\r
2048 EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;\r
2049 EFI_MISC_PORTING_DEVICE_TYPE_DATA MiscPortingDeviceTypeData;\r
2050 EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;\r
2051 EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;\r
2052 EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA MiscScheduledPowerOnMonthData;\r
2053 EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA MiscVoltagePorbeDescriptionData;\r
2054 EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA MiscCoolingDeviceTempLinkData;\r
2055 EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA MiscTemperatureProbeDescriptionData;\r
2056 EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA MiscElectricalCurrentProbeDescriptionData;\r
2057 EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA\r
2058 MiscRemoteAccessManufacturerDescriptionData;\r
2059 EFI_MISC_BIS_ENTRY_POINT_DATA MiscBisEntryPoint;\r
2060 EFI_MISC_BOOT_INFORMATION_STATUS_DATA MiscBootInformationStatus;\r
2061 EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA MiscMangementDeviceDescriptionData;\r
2062 EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
2063 MiscmangementDeviceComponentDescriptionData;\r
2064 EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;\r
2065 EFI_MISC_SYSTEM_POWER_SUPPLY_DATA MiscPowerSupplyInfo;\r
2066 EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA MiscSmbiosStructEncapsulation;\r
91399a51 2067 EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD MiscManagementDeviceThreshold;\r
79964ac8 2068} EFI_MISC_SUBCLASS_RECORDS;\r
2069\r
2070//\r
2071//\r
2072//\r
2073typedef struct {\r
2074 EFI_SUBCLASS_TYPE1_HEADER Header;\r
2075 EFI_MISC_SUBCLASS_RECORDS Record;\r
2076} EFI_MISC_SUBCLASS_DRIVER_DATA;\r
2077\r
2078#pragma pack()\r
2079\r
2080//\r
2081// Sub Class Header type1\r
2082//\r
2083\r
2084#define EFI_SUBCLASS_INSTANCE_RESERVED 0\r
2085#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF //16 bit\r
2086\r
2087#endif\r