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