2 Industry Standard Definitions of SMBIOS Table Specification v2.6
4 Copyright (c) 2006 - 2009, Intel Corporation All rights
5 reserved. This program and the accompanying materials are
6 licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef __SMBIOS_STANDARD_H__
16 #define __SMBIOS_STANDARD_H__
19 /// Reference SMBIOS 2.6, chapter 3.1.2.
20 /// For v2.1 and later, handle values in the range 0FF00h to 0FFFFh are reserved for
21 /// use by this specification.
23 #define SMBIOS_HANDLE_RESERVED_BEGIN 0xFF00
26 /// Reference SMBIOS 2.6, chapter 3.1.3
27 /// Each text string is limited to 64 significant characters due to system MIF limitations
29 #define SMBIOS_STRING_MAX_LENGTH 64
32 /// Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter 3.3.43.
33 /// Upper-level software that interprets the SMBIOS structure-table should bypass an
34 /// Inactive structure just like a structure type that the software does not recognize.
36 #define SMBIOS_TYPE_INACTIVE 0x007E
39 /// End-of-table type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter 3.3.44.
40 /// The end-of-table indicator is used in the last physical structure in a table
42 #define SMBIOS_TYPE_END_OF_TABLE 0x007F
45 /// Smbios Table Entry Point Structure
49 UINT8 AnchorString
[4];
50 UINT8 EntryPointStructureChecksum
;
51 UINT8 EntryPointLength
;
54 UINT16 MaxStructureSize
;
55 UINT8 EntryPointRevision
;
56 UINT8 FormattedArea
[5];
57 UINT8 IntermediateAnchorString
[5];
58 UINT8 IntermediateChecksum
;
61 UINT16 NumberOfSmbiosStructures
;
62 UINT8 SmbiosBcdRevision
;
63 } SMBIOS_TABLE_ENTRY_POINT
;
66 /// The Smbios structure header
75 /// String Number for a Null terminated string, 00h stands for no string available.
77 typedef UINT8 SMBIOS_TABLE_STRING
;
80 /// BIOS Characteristics
81 /// Defines which functions the BIOS supports. PCI, PCMCIA, Flash, etc.
84 UINT32 Reserved
:2; ///< Bits 0-1
86 UINT32 BiosCharacteristicsNotSupported
:1;
87 UINT32 IsaIsSupported
:1;
88 UINT32 McaIsSupported
:1;
89 UINT32 EisaIsSupported
:1;
90 UINT32 PciIsSupported
:1;
91 UINT32 PcmciaIsSupported
:1;
92 UINT32 PlugAndPlayIsSupported
:1;
93 UINT32 ApmIsSupported
:1;
94 UINT32 BiosIsUpgradable
:1;
95 UINT32 BiosShadowingAllowed
:1;
96 UINT32 VlVesaIsSupported
:1;
97 UINT32 EscdSupportIsAvailable
:1;
98 UINT32 BootFromCdIsSupported
:1;
99 UINT32 SelectableBootIsSupported
:1;
100 UINT32 RomBiosIsSocketed
:1;
101 UINT32 BootFromPcmciaIsSupported
:1;
102 UINT32 EDDSpecificationIsSupported
:1;
103 UINT32 JapaneseNecFloppyIsSupported
:1;
104 UINT32 JapaneseToshibaFloppyIsSupported
:1;
105 UINT32 Floppy525_360IsSupported
:1;
106 UINT32 Floppy525_12IsSupported
:1;
107 UINT32 Floppy35_720IsSupported
:1;
108 UINT32 Floppy35_288IsSupported
:1;
109 UINT32 PrintScreenIsSupported
:1;
110 UINT32 Keyboard8042IsSupported
:1;
111 UINT32 SerialIsSupported
:1;
112 UINT32 PrinterIsSupported
:1;
113 UINT32 CgaMonoIsSupported
:1;
115 UINT32 ReservedForVendor
:32; ///< Bits 32-63. Bits 32-47 reserved for BIOS vendor
116 ///< and bits 48-63 reserved for System Vendor.
117 } MISC_BIOS_CHARACTERISTICS
;
120 /// BIOS Characteristics Extension Byte 1
121 /// This information, available for SMBIOS version 2.1 and later, appears at offset 12h
122 /// within the BIOS Information structure.
125 UINT8 AcpiIsSupported
:1;
126 UINT8 UsbLegacyIsSupported
:1;
127 UINT8 AgpIsSupported
:1;
128 UINT8 I20BootIsSupported
:1;
129 UINT8 Ls120BootIsSupported
:1;
130 UINT8 AtapiZipDriveBootIsSupported
:1;
131 UINT8 Boot1394IsSupported
:1;
132 UINT8 SmartBatteryIsSupported
:1;
133 } MBCE_BIOS_RESERVED
;
136 /// BIOS Characteristics Extension Byte 2
137 /// This information, available for SMBIOS version 2.3 and later, appears at offset 13h
138 /// within the BIOS Information structure.
141 UINT8 BiosBootSpecIsSupported
:1;
142 UINT8 FunctionKeyNetworkBootIsSupported
:1;
143 UINT8 TargetContentDistributionEnabled
:1;
144 UINT8 ExtensionByte2Reserved
:1;
145 } MBCE_SYSTEM_RESERVED
;
148 /// BIOS Characteristics Extension Bytes
151 MBCE_BIOS_RESERVED BiosReserved
;
152 MBCE_SYSTEM_RESERVED SystemReserved
;
154 } MISC_BIOS_CHARACTERISTICS_EXTENSION
;
157 /// BIOS Information (Type 0)
160 SMBIOS_STRUCTURE Hdr
;
161 SMBIOS_TABLE_STRING Vendor
;
162 SMBIOS_TABLE_STRING BiosVersion
;
164 SMBIOS_TABLE_STRING BiosReleaseDate
;
166 MISC_BIOS_CHARACTERISTICS BiosCharacteristics
;
167 UINT8 BIOSCharacteristicsExtensionBytes
[2];
168 UINT8 SystemBiosMajorRelease
;
169 UINT8 SystemBiosMinorRelease
;
170 UINT8 EmbeddedControllerFirmwareMajorRelease
;
171 UINT8 EmbeddedControllerFirmwareMinorRelease
;
172 } SMBIOS_TABLE_TYPE0
;
175 /// System Wake-up Type
178 SystemWakeupTypeReserved
= 0x00,
179 SystemWakeupTypeOther
= 0x01,
180 SystemWakeupTypeUnknown
= 0x02,
181 SystemWakeupTypeApmTimer
= 0x03,
182 SystemWakeupTypeModemRing
= 0x04,
183 SystemWakeupTypeLanRemote
= 0x05,
184 SystemWakeupTypePowerSwitch
= 0x06,
185 SystemWakeupTypePciPme
= 0x07,
186 SystemWakeupTypeAcPowerRestored
= 0x08
187 } MISC_SYSTEM_WAKEUP_TYPE
;
190 /// System Information (Type 1)
192 /// The information in this structure defines attributes of the overall system and is
193 /// intended to be associated with the Component ID group of the system's MIF.
194 /// An SMBIOS implementation is associated with a single system instance and contains
195 /// one and only one System Information (Type 1) structure.
198 SMBIOS_STRUCTURE Hdr
;
199 SMBIOS_TABLE_STRING Manufacturer
;
200 SMBIOS_TABLE_STRING ProductName
;
201 SMBIOS_TABLE_STRING Version
;
202 SMBIOS_TABLE_STRING SerialNumber
;
204 UINT8 WakeUpType
; ///< enumeration value from MISC_SYSTEM_WAKEUP_TYPE
205 SMBIOS_TABLE_STRING SKUNumber
;
206 SMBIOS_TABLE_STRING Family
;
207 } SMBIOS_TABLE_TYPE1
;
210 /// Base Board - Feature Flags
213 UINT8 Motherboard
:1;
214 UINT8 RequiresDaughterCard
:1;
216 UINT8 Replaceable
:1;
217 UINT8 HotSwappable
:1;
219 } BASE_BOARD_FEATURE_FLAGS
;
222 /// Base Board - Board Type
225 BaseBoardTypeUnknown
= 0x1,
226 BaseBoardTypeOther
= 0x2,
227 BaseBoardTypeServerBlade
= 0x3,
228 BaseBoardTypeConnectivitySwitch
= 0x4,
229 BaseBoardTypeSystemManagementModule
= 0x5,
230 BaseBoardTypeProcessorModule
= 0x6,
231 BaseBoardTypeIOModule
= 0x7,
232 BaseBoardTypeMemoryModule
= 0x8,
233 BaseBoardTypeDaughterBoard
= 0x9,
234 BaseBoardTypeMotherBoard
= 0xA,
235 BaseBoardTypeProcessorMemoryModule
= 0xB,
236 BaseBoardTypeProcessorIOModule
= 0xC,
237 BaseBoardTypeInterconnectBoard
= 0xD
241 /// Base Board (or Module) Information (Type 2)
243 /// The information in this structure defines attributes of a system baseboard -
244 /// for example a motherboard, planar, or server blade or other standard system module.
247 SMBIOS_STRUCTURE Hdr
;
248 SMBIOS_TABLE_STRING Manufacturer
;
249 SMBIOS_TABLE_STRING ProductName
;
250 SMBIOS_TABLE_STRING Version
;
251 SMBIOS_TABLE_STRING SerialNumber
;
252 SMBIOS_TABLE_STRING AssetTag
;
253 BASE_BOARD_FEATURE_FLAGS FeatureFlag
;
254 SMBIOS_TABLE_STRING LocationInChassis
;
255 UINT16 ChassisHandle
;
256 UINT8 BoardType
; ///< enumeration value from BASE_BOARD_TYPE
257 UINT8 NumberOfContainedObjectHandles
;
258 UINT16 ContainedObjectHandles
[1];
259 } SMBIOS_TABLE_TYPE2
;
262 /// System Enclosure or Chassis Types
265 MiscChassisTypeOther
= 0x01,
266 MiscChassisTypeUnknown
= 0x02,
267 MiscChassisTypeDeskTop
= 0x03,
268 MiscChassisTypeLowProfileDesktop
= 0x04,
269 MiscChassisTypePizzaBox
= 0x05,
270 MiscChassisTypeMiniTower
= 0x06,
271 MiscChassisTypeTower
= 0x07,
272 MiscChassisTypePortable
= 0x08,
273 MiscChassisTypeLapTop
= 0x09,
274 MiscChassisTypeNotebook
= 0x0A,
275 MiscChassisTypeHandHeld
= 0x0B,
276 MiscChassisTypeDockingStation
= 0x0C,
277 MiscChassisTypeAllInOne
= 0x0D,
278 MiscChassisTypeSubNotebook
= 0x0E,
279 MiscChassisTypeSpaceSaving
= 0x0F,
280 MiscChassisTypeLunchBox
= 0x10,
281 MiscChassisTypeMainServerChassis
= 0x11,
282 MiscChassisTypeExpansionChassis
= 0x12,
283 MiscChassisTypeSubChassis
= 0x13,
284 MiscChassisTypeBusExpansionChassis
= 0x14,
285 MiscChassisTypePeripheralChassis
= 0x15,
286 MiscChassisTypeRaidChassis
= 0x16,
287 MiscChassisTypeRackMountChassis
= 0x17,
288 MiscChassisTypeSealedCasePc
= 0x18,
289 MiscChassisMultiSystemChassis
= 0x19,
290 MiscChassisCompactPCI
= 0x1A,
291 MiscChassisAdvancedTCA
= 0x1B,
292 MiscChassisBlade
= 0x1C,
293 MiscChassisBladeEnclosure
= 0x1D
297 /// System Enclosure or Chassis States
300 ChassisStateOther
= 0x01,
301 ChassisStateUnknown
= 0x02,
302 ChassisStateSafe
= 0x03,
303 ChassisStateWarning
= 0x04,
304 ChassisStateCritical
= 0x05,
305 ChassisStateNonRecoverable
= 0x06
306 } MISC_CHASSIS_STATE
;
309 /// System Enclosure or Chassis Security Status
312 ChassisSecurityStatusOther
= 0x01,
313 ChassisSecurityStatusUnknown
= 0x02,
314 ChassisSecurityStatusNone
= 0x03,
315 ChassisSecurityStatusExternalInterfaceLockedOut
= 0x04,
316 ChassisSecurityStatusExternalInterfaceLockedEnabled
= 0x05
317 } MISC_CHASSIS_SECURITY_STATE
;
320 /// Contained Element record
323 UINT8 ContainedElementType
;
324 UINT8 ContainedElementMinimum
;
325 UINT8 ContainedElementMaximum
;
330 /// System Enclosure or Chassis (Type 3)
332 /// The information in this structure defines attributes of the system's mechanical enclosure(s).
333 /// For example, if a system included a separate enclosure for its peripheral devices,
334 /// two structures would be returned: one for the main, system enclosure and the second for
335 /// the peripheral device enclosure. The additions to this structure in v2.1 of this specification
336 /// support the population of the CIM_Chassis class.
339 SMBIOS_STRUCTURE Hdr
;
340 SMBIOS_TABLE_STRING Manufacturer
;
342 SMBIOS_TABLE_STRING Version
;
343 SMBIOS_TABLE_STRING SerialNumber
;
344 SMBIOS_TABLE_STRING AssetTag
;
345 UINT8 BootupState
; ///< enumeration value from MISC_CHASSIS_STATE
346 UINT8 PowerSupplyState
; ///< enumeration value from MISC_CHASSIS_STATE
347 UINT8 ThermalState
; ///< enumeration value from MISC_CHASSIS_STATE
348 UINT8 SecurityStatus
; ///< enumeration value from MISC_CHASSIS_SECURITY_STATE
351 UINT8 NumberofPowerCords
;
352 UINT8 ContainedElementCount
;
353 UINT8 ContainedElementRecordLength
;
354 CONTAINED_ELEMENT ContainedElements
[1];
355 } SMBIOS_TABLE_TYPE3
;
358 /// Processor Information - Processor Type
361 ProcessorOther
= 0x01,
362 ProcessorUnknown
= 0x02,
363 CentralProcessor
= 0x03,
364 MathProcessor
= 0x04,
366 VideoProcessor
= 0x06
367 } PROCESSOR_TYPE_DATA
;
370 /// Processor Information - Processor Family
373 ProcessorFamilyOther
= 0x01,
374 ProcessorFamilyUnknown
= 0x02,
375 ProcessorFamily8086
= 0x03,
376 ProcessorFamily80286
= 0x04,
377 ProcessorFamilyIntel386
= 0x05,
378 ProcessorFamilyIntel486
= 0x06,
379 ProcessorFamily8087
= 0x07,
380 ProcessorFamily80287
= 0x08,
381 ProcessorFamily80387
= 0x09,
382 ProcessorFamily80487
= 0x0A,
383 ProcessorFamilyPentium
= 0x0B,
384 ProcessorFamilyPentiumPro
= 0x0C,
385 ProcessorFamilyPentiumII
= 0x0D,
386 ProcessorFamilyPentiumMMX
= 0x0E,
387 ProcessorFamilyCeleron
= 0x0F,
388 ProcessorFamilyPentiumIIXeon
= 0x10,
389 ProcessorFamilyPentiumIII
= 0x11,
390 ProcessorFamilyM1
= 0x12,
391 ProcessorFamilyM2
= 0x13,
392 ProcessorFamilyM1Reserved2
= 0x14,
393 ProcessorFamilyM1Reserved3
= 0x15,
394 ProcessorFamilyM1Reserved4
= 0x16,
395 ProcessorFamilyM1Reserved5
= 0x17,
396 ProcessorFamilyAmdDuron
= 0x18,
397 ProcessorFamilyK5
= 0x19,
398 ProcessorFamilyK6
= 0x1A,
399 ProcessorFamilyK6_2
= 0x1B,
400 ProcessorFamilyK6_3
= 0x1C,
401 ProcessorFamilyAmdAthlon
= 0x1D,
402 ProcessorFamilyAmd29000
= 0x1E,
403 ProcessorFamilyK6_2Plus
= 0x1F,
404 ProcessorFamilyPowerPC
= 0x20,
405 ProcessorFamilyPowerPC601
= 0x21,
406 ProcessorFamilyPowerPC603
= 0x22,
407 ProcessorFamilyPowerPC603Plus
= 0x23,
408 ProcessorFamilyPowerPC604
= 0x24,
409 ProcessorFamilyPowerPC620
= 0x25,
410 ProcessorFamilyPowerPCx704
= 0x26,
411 ProcessorFamilyPowerPC750
= 0x27,
412 ProcessorFamilyAlpha3
= 0x30,
413 ProcessorFamilyAlpha21064
= 0x31,
414 ProcessorFamilyAlpha21066
= 0x32,
415 ProcessorFamilyAlpha21164
= 0x33,
416 ProcessorFamilyAlpha21164PC
= 0x34,
417 ProcessorFamilyAlpha21164a
= 0x35,
418 ProcessorFamilyAlpha21264
= 0x36,
419 ProcessorFamilyAlpha21364
= 0x37,
420 ProcessorFamilyMips
= 0x40,
421 ProcessorFamilyMIPSR4000
= 0x41,
422 ProcessorFamilyMIPSR4200
= 0x42,
423 ProcessorFamilyMIPSR4400
= 0x43,
424 ProcessorFamilyMIPSR4600
= 0x44,
425 ProcessorFamilyMIPSR10000
= 0x45,
426 ProcessorFamilySparc
= 0x50,
427 ProcessorFamilySuperSparc
= 0x51,
428 ProcessorFamilymicroSparcII
= 0x52,
429 ProcessorFamilymicroSparcIIep
= 0x53,
430 ProcessorFamilyUltraSparc
= 0x54,
431 ProcessorFamilyUltraSparcII
= 0x55,
432 ProcessorFamilyUltraSparcIIi
= 0x56,
433 ProcessorFamilyUltraSparcIII
= 0x57,
434 ProcessorFamilyUltraSparcIIIi
= 0x58,
435 ProcessorFamily68040
= 0x60,
436 ProcessorFamily68xxx
= 0x61,
437 ProcessorFamily68000
= 0x62,
438 ProcessorFamily68010
= 0x63,
439 ProcessorFamily68020
= 0x64,
440 ProcessorFamily68030
= 0x65,
441 ProcessorFamilyHobbit
= 0x70,
442 ProcessorFamilyCrusoeTM5000
= 0x78,
443 ProcessorFamilyCrusoeTM3000
= 0x79,
444 ProcessorFamilyEfficeonTM8000
= 0x7A,
445 ProcessorFamilyWeitek
= 0x80,
446 ProcessorFamilyItanium
= 0x82,
447 ProcessorFamilyAmdAthlon64
= 0x83,
448 ProcessorFamilyAmdOpteron
= 0x84,
449 ProcessorFamilyAmdSempron
= 0x85,
450 ProcessorFamilyAmdTurion64Mobile
= 0x86,
451 ProcessorFamilyDualCoreAmdOpteron
= 0x87,
452 ProcessorFamilyAmdAthlon64X2DualCore
= 0x88,
453 ProcessorFamilyAmdTurion64X2Mobile
= 0x89,
454 ProcessorFamilyPARISC
= 0x90,
455 ProcessorFamilyPaRisc8500
= 0x91,
456 ProcessorFamilyPaRisc8000
= 0x92,
457 ProcessorFamilyPaRisc7300LC
= 0x93,
458 ProcessorFamilyPaRisc7200
= 0x94,
459 ProcessorFamilyPaRisc7100LC
= 0x95,
460 ProcessorFamilyPaRisc7100
= 0x96,
461 ProcessorFamilyV30
= 0xA0,
462 ProcessorFamilyPentiumIIIXeon
= 0xB0,
463 ProcessorFamilyPentiumIIISpeedStep
= 0xB1,
464 ProcessorFamilyPentium4
= 0xB2,
465 ProcessorFamilyIntelXeon
= 0xB3,
466 ProcessorFamilyAS400
= 0xB4,
467 ProcessorFamilyIntelXeonMP
= 0xB5,
468 ProcessorFamilyAMDAthlonXP
= 0xB6,
469 ProcessorFamilyAMDAthlonMP
= 0xB7,
470 ProcessorFamilyIntelItanium2
= 0xB8,
471 ProcessorFamilyIntelPentiumM
= 0xB9,
472 ProcessorFamilyIntelCeleronD
= 0xBA,
473 ProcessorFamilyIntelPentiumD
= 0xBB,
474 ProcessorFamilyIntelPentiumEx
= 0xBC,
475 ProcessorFamilyIntelCoreSolo
= 0xBD, ///< SMBIOS spec 2.6 correct this value
476 ProcessorFamilyReserved
= 0xBE,
477 ProcessorFamilyIntelCore2
= 0xBF,
478 ProcessorFamilyIBM390
= 0xC8,
479 ProcessorFamilyG4
= 0xC9,
480 ProcessorFamilyG5
= 0xCA,
481 ProcessorFamilyG6
= 0xCB,
482 ProcessorFamilyzArchitectur
= 0xCC,
483 ProcessorFamilyViaC7M
= 0xD2,
484 ProcessorFamilyViaC7D
= 0xD3,
485 ProcessorFamilyViaC7
= 0xD4,
486 ProcessorFamilyViaEden
= 0xD5,
487 ProcessorFamilyi860
= 0xFA,
488 ProcessorFamilyi960
= 0xFB,
489 ProcessorFamilyIndicatorFamily2
= 0xFE,
490 ProcessorFamilyReserved1
= 0xFF
491 } PROCESSOR_FAMILY_DATA
;
494 /// Processor Information - Voltage
497 UINT8 ProcessorVoltageCapability5V
:1;
498 UINT8 ProcessorVoltageCapability3_3V
:1;
499 UINT8 ProcessorVoltageCapability2_9V
:1;
500 UINT8 ProcessorVoltageCapabilityReserved
:1; ///< Bit 3, must be zero.
501 UINT8 ProcessorVoltageReserved
:3; ///< Bits 4-6, must be zero.
502 UINT8 ProcessorVoltageIndicateLegacy
:1;
506 /// Processor Information - Processor Upgrade
509 ProcessorUpgradeOther
= 0x01,
510 ProcessorUpgradeUnknown
= 0x02,
511 ProcessorUpgradeDaughterBoard
= 0x03,
512 ProcessorUpgradeZIFSocket
= 0x04,
513 ProcessorUpgradePiggyBack
= 0x05, ///< Replaceable
514 ProcessorUpgradeNone
= 0x06,
515 ProcessorUpgradeLIFSocket
= 0x07,
516 ProcessorUpgradeSlot1
= 0x08,
517 ProcessorUpgradeSlot2
= 0x09,
518 ProcessorUpgrade370PinSocket
= 0x0A,
519 ProcessorUpgradeSlotA
= 0x0B,
520 ProcessorUpgradeSlotM
= 0x0C,
521 ProcessorUpgradeSocket423
= 0x0D,
522 ProcessorUpgradeSocketA
= 0x0E, ///< Socket 462
523 ProcessorUpgradeSocket478
= 0x0F,
524 ProcessorUpgradeSocket754
= 0x10,
525 ProcessorUpgradeSocket940
= 0x11,
526 ProcessorUpgradeSocket939
= 0x12,
527 ProcessorUpgradeSocketmPGA604
= 0x13,
528 ProcessorUpgradeSocketLGA771
= 0x14,
529 ProcessorUpgradeSocketLGA775
= 0x15,
530 ProcessorUpgradeSocketS1
= 0x16,
531 ProcessorUpgradeAM2
= 0x17,
532 ProcessorUpgradeF1207
= 0x18
536 /// Processor ID Field Description
539 UINT32 ProcessorSteppingId
:4;
540 UINT32 ProcessorModel
: 4;
541 UINT32 ProcessorFamily
: 4;
542 UINT32 ProcessorType
: 2;
543 UINT32 ProcessorReserved1
: 2;
544 UINT32 ProcessorXModel
: 4;
545 UINT32 ProcessorXFamily
: 8;
546 UINT32 ProcessorReserved2
: 4;
547 } PROCESSOR_SIGNATURE
;
550 UINT32 ProcessorFpu
:1;
551 UINT32 ProcessorVme
:1;
552 UINT32 ProcessorDe
:1;
553 UINT32 ProcessorPse
:1;
554 UINT32 ProcessorTsc
:1;
555 UINT32 ProcessorMsr
:1;
556 UINT32 ProcessorPae
:1;
557 UINT32 ProcessorMce
:1;
558 UINT32 ProcessorCx8
:1;
559 UINT32 ProcessorApic
:1;
560 UINT32 ProcessorReserved1
:1;
561 UINT32 ProcessorSep
:1;
562 UINT32 ProcessorMtrr
:1;
563 UINT32 ProcessorPge
:1;
564 UINT32 ProcessorMca
:1;
565 UINT32 ProcessorCmov
:1;
566 UINT32 ProcessorPat
:1;
567 UINT32 ProcessorPse36
:1;
568 UINT32 ProcessorPsn
:1;
569 UINT32 ProcessorClfsh
:1;
570 UINT32 ProcessorReserved2
:1;
571 UINT32 ProcessorDs
:1;
572 UINT32 ProcessorAcpi
:1;
573 UINT32 ProcessorMmx
:1;
574 UINT32 ProcessorFxsr
:1;
575 UINT32 ProcessorSse
:1;
576 UINT32 ProcessorSse2
:1;
577 UINT32 ProcessorSs
:1;
578 UINT32 ProcessorReserved3
:1;
579 UINT32 ProcessorTm
:1;
580 UINT32 ProcessorReserved4
:2;
581 } PROCESSOR_FEATURE_FLAGS
;
584 PROCESSOR_SIGNATURE Signature
;
585 PROCESSOR_FEATURE_FLAGS FeatureFlags
;
589 /// Processor Information (Type 4)
591 /// The information in this structure defines the attributes of a single processor;
592 /// a separate structure instance is provided for each system processor socket/slot.
593 /// For example, a system with an IntelDX2 processor would have a single
594 /// structure instance while a system with an IntelSX2 processor would have a structure
595 /// to describe the main CPU and a second structure to describe the 80487 co-processor.
598 SMBIOS_STRUCTURE Hdr
;
599 SMBIOS_TABLE_STRING Socket
;
600 UINT8 ProcessorType
; ///< enumeration value from PROCESSOR_TYPE_DATA
601 UINT8 ProcessorFamily
; ///< enumeration value from PROCESSOR_FAMILY_DATA
602 SMBIOS_TABLE_STRING ProcessorManufacture
;
603 PROCESSOR_ID_DATA ProcessorId
;
604 SMBIOS_TABLE_STRING ProcessorVersion
;
605 PROCESSOR_VOLTAGE Voltage
;
606 UINT16 ExternalClock
;
610 UINT8 ProcessorUpgrade
; ///< enumeration value from PROCESSOR_UPGRADE
611 UINT16 L1CacheHandle
;
612 UINT16 L2CacheHandle
;
613 UINT16 L3CacheHandle
;
614 SMBIOS_TABLE_STRING SerialNumber
;
615 SMBIOS_TABLE_STRING AssetTag
;
616 SMBIOS_TABLE_STRING PartNumber
;
618 // Add for smbios 2.5
621 UINT8 EnabledCoreCount
;
623 UINT16 ProcessorCharacteristics
;
625 // Add for smbios 2.6
627 UINT16 ProcessorFamily2
;
628 } SMBIOS_TABLE_TYPE4
;
631 /// Memory Controller Error Detecting Method
634 ErrorDetectingMethodOther
= 0x01,
635 ErrorDetectingMethodUnknown
= 0x02,
636 ErrorDetectingMethodNone
= 0x03,
637 ErrorDetectingMethodParity
= 0x04,
638 ErrorDetectingMethod32Ecc
= 0x05,
639 ErrorDetectingMethod64Ecc
= 0x06,
640 ErrorDetectingMethod128Ecc
= 0x07,
641 ErrorDetectingMethodCrc
= 0x08
642 } MEMORY_ERROR_DETECT_METHOD
;
645 /// Memory Controller Error Correcting Capability
651 UINT8 SingleBitErrorCorrect
:1;
652 UINT8 DoubleBitErrorCorrect
:1;
653 UINT8 ErrorScrubbing
:1;
655 } MEMORY_ERROR_CORRECT_CAPABILITY
;
658 /// Memory Controller Information - Interleave Support
661 MemoryInterleaveOther
= 0x01,
662 MemoryInterleaveUnknown
= 0x02,
663 MemoryInterleaveOneWay
= 0x03,
664 MemoryInterleaveTwoWay
= 0x04,
665 MemoryInterleaveFourWay
= 0x05,
666 MemoryInterleaveEightWay
= 0x06,
667 MemoryInterleaveSixteenWay
= 0x07
668 } MEMORY_SUPPORT_INTERLEAVE_TYPE
;
671 /// Memory Controller Information - Memory Speeds
683 /// Memory Controller Information (Type 5, Obsolete)
685 /// The information in this structure defines the attributes of the system's memory controller(s)
686 /// and the supported attributes of any memory-modules present in the sockets controlled by
688 /// Note: This structure, and its companion Memory Module Information (Type 6, Obsolete),
689 /// are obsolete starting with version 2.1 of this specification; the Physical Memory Array (Type 16)
690 /// and Memory Device (Type 17) structures should be used instead. BIOS providers might
691 /// choose to implement both memory description types to allow existing DMI browsers
692 /// to properly display the system's memory attributes.
695 SMBIOS_STRUCTURE Hdr
;
696 UINT8 ErrDetectMethod
; ///< enumeration value from MEMORY_ERROR_DETECT_METHOD
697 MEMORY_ERROR_CORRECT_CAPABILITY ErrCorrectCapability
;
698 UINT8 SupportInterleave
; ///< enumeration value from MEMORY_SUPPORT_INTERLEAVE_TYPE
699 UINT8 CurrentInterleave
; ///< enumeration value from MEMORY_SUPPORT_INTERLEAVE_TYPE
700 UINT8 MaxMemoryModuleSize
;
701 MEMORY_SPEED_TYPE SupportSpeed
;
702 UINT16 SupportMemoryType
;
703 UINT8 MemoryModuleVoltage
;
704 UINT8 AssociatedMemorySlotNum
;
705 UINT16 MemoryModuleConfigHandles
[1];
706 } SMBIOS_TABLE_TYPE5
;
709 /// Memory Module Information - Memory Types
715 UINT16 FastPageMode
:1;
724 } MEMORY_CURRENT_TYPE
;
727 /// Memory Module Information - Memory Size
730 UINT8 InstalledOrEnabledSize
:7; ///< Size (n), where 2**n is the size in MB.
731 UINT8 SingleOrDoubleBank
:1;
732 } MEMORY_INSTALLED_ENABLED_SIZE
;
735 /// Memory Module Information (Type 6, Obsolete)
737 /// One Memory Module Information structure is included for each memory-module socket
738 /// in the system. The structure describes the speed, type, size, and error status
739 /// of each system memory module. The supported attributes of each module are described
740 /// by the "owning" Memory Controller Information structure.
741 /// Note: This structure, and its companion Memory Controller Information (Type 5, Obsolete),
742 /// are obsolete starting with version 2.1 of this specification; the Physical Memory Array (Type 16)
743 /// and Memory Device (Type 17) structures should be used instead.
746 SMBIOS_STRUCTURE Hdr
;
747 SMBIOS_TABLE_STRING SocketDesignation
;
748 UINT8 BankConnections
;
750 MEMORY_CURRENT_TYPE CurrentMemoryType
;
751 MEMORY_INSTALLED_ENABLED_SIZE InstalledSize
;
752 MEMORY_INSTALLED_ENABLED_SIZE EnabledSize
;
754 } SMBIOS_TABLE_TYPE6
;
757 /// Cache Information - SRAM Type
764 UINT16 PipelineBurst
:1;
765 UINT16 Asynchronous
:1;
766 UINT16 Synchronous
:1;
768 } CACHE_SRAM_TYPE_DATA
;
771 /// Cache Information - Error Correction Type
774 CacheErrorOther
= 0x01,
775 CacheErrorUnknown
= 0x02,
776 CacheErrorNone
= 0x03,
777 CacheErrorParity
= 0x04,
778 CacheErrorSingleBit
= 0x05, ///< ECC
779 CacheErrorMultiBit
= 0x06 ///< ECC
780 } CACHE_ERROR_TYPE_DATA
;
783 /// Cache Information - System Cache Type
786 CacheTypeOther
= 0x01,
787 CacheTypeUnknown
= 0x02,
788 CacheTypeInstruction
= 0x03,
789 CacheTypeData
= 0x04,
790 CacheTypeUnified
= 0x05
794 /// Cache Information - Associativity
797 CacheAssociativityOther
= 0x01,
798 CacheAssociativityUnknown
= 0x02,
799 CacheAssociativityDirectMapped
= 0x03,
800 CacheAssociativity2Way
= 0x04,
801 CacheAssociativity4Way
= 0x05,
802 CacheAssociativityFully
= 0x06,
803 CacheAssociativity8Way
= 0x07,
804 CacheAssociativity16Way
= 0x08,
805 CacheAssociativity24Way
= 0x09
806 } CACHE_ASSOCIATIVITY_DATA
;
809 /// Cache Information (Type 7)
811 /// he information in this structure defines the attributes of CPU cache device in the system.
812 /// One structure is specified for each such device, whether the device is internal to
813 /// or external to the CPU module. Cache modules can be associated with a processor structure
814 /// in one or two ways depending on the SMBIOS version.
817 SMBIOS_STRUCTURE Hdr
;
818 SMBIOS_TABLE_STRING SocketDesignation
;
819 UINT16 CacheConfiguration
;
820 UINT16 MaximumCacheSize
;
821 UINT16 InstalledSize
;
822 CACHE_SRAM_TYPE_DATA SupportedSRAMType
;
823 CACHE_SRAM_TYPE_DATA CurrentSRAMType
;
825 UINT8 ErrorCorrectionType
; ///< enumeration value from CACHE_ERROR_TYPE_DATA
826 UINT8 SystemCacheType
; ///< enumeration value from CACHE_TYPE_DATA
827 UINT8 Associativity
; ///< enumeration value from CACHE_ASSOCIATIVITY_DATA
828 } SMBIOS_TABLE_TYPE7
;
831 /// Port Connector Information - Connector Types
834 PortConnectorTypeNone
= 0x00,
835 PortConnectorTypeCentronics
= 0x01,
836 PortConnectorTypeMiniCentronics
= 0x02,
837 PortConnectorTypeProprietary
= 0x03,
838 PortConnectorTypeDB25Male
= 0x04,
839 PortConnectorTypeDB25Female
= 0x05,
840 PortConnectorTypeDB15Male
= 0x06,
841 PortConnectorTypeDB15Female
= 0x07,
842 PortConnectorTypeDB9Male
= 0x08,
843 PortConnectorTypeDB9Female
= 0x09,
844 PortConnectorTypeRJ11
= 0x0A,
845 PortConnectorTypeRJ45
= 0x0B,
846 PortConnectorType50PinMiniScsi
= 0x0C,
847 PortConnectorTypeMiniDin
= 0x0D,
848 PortConnectorTypeMicriDin
= 0x0E,
849 PortConnectorTypePS2
= 0x0F,
850 PortConnectorTypeInfrared
= 0x10,
851 PortConnectorTypeHpHil
= 0x11,
852 PortConnectorTypeUsb
= 0x12,
853 PortConnectorTypeSsaScsi
= 0x13,
854 PortConnectorTypeCircularDin8Male
= 0x14,
855 PortConnectorTypeCircularDin8Female
= 0x15,
856 PortConnectorTypeOnboardIde
= 0x16,
857 PortConnectorTypeOnboardFloppy
= 0x17,
858 PortConnectorType9PinDualInline
= 0x18,
859 PortConnectorType25PinDualInline
= 0x19,
860 PortConnectorType50PinDualInline
= 0x1A,
861 PortConnectorType68PinDualInline
= 0x1B,
862 PortConnectorTypeOnboardSoundInput
= 0x1C,
863 PortConnectorTypeMiniCentronicsType14
= 0x1D,
864 PortConnectorTypeMiniCentronicsType26
= 0x1E,
865 PortConnectorTypeHeadPhoneMiniJack
= 0x1F,
866 PortConnectorTypeBNC
= 0x20,
867 PortConnectorType1394
= 0x21,
868 PortConnectorTypePC98
= 0xA0,
869 PortConnectorTypePC98Hireso
= 0xA1,
870 PortConnectorTypePCH98
= 0xA2,
871 PortConnectorTypePC98Note
= 0xA3,
872 PortConnectorTypePC98Full
= 0xA4,
873 PortConnectorTypeOther
= 0xFF
874 } MISC_PORT_CONNECTOR_TYPE
;
877 /// Port Connector Information - Port Types
881 PortTypeParallelXtAtCompatible
= 0x01,
882 PortTypeParallelPortPs2
= 0x02,
883 PortTypeParallelPortEcp
= 0x03,
884 PortTypeParallelPortEpp
= 0x04,
885 PortTypeParallelPortEcpEpp
= 0x05,
886 PortTypeSerialXtAtCompatible
= 0x06,
887 PortTypeSerial16450Compatible
= 0x07,
888 PortTypeSerial16550Compatible
= 0x08,
889 PortTypeSerial16550ACompatible
= 0x09,
892 PortTypeJoyStick
= 0x0C,
893 PortTypeKeyboard
= 0x0D,
894 PortTypeMouse
= 0x0E,
895 PortTypeSsaScsi
= 0x0F,
897 PortTypeFireWire
= 0x11,
898 PortTypePcmciaTypeI
= 0x12,
899 PortTypePcmciaTypeII
= 0x13,
900 PortTypePcmciaTypeIII
= 0x14,
901 PortTypeCardBus
= 0x15,
902 PortTypeAccessBusPort
= 0x16,
903 PortTypeScsiII
= 0x17,
904 PortTypeScsiWide
= 0x18,
906 PortTypePC98Hireso
= 0x1A,
907 PortTypePCH98
= 0x1B,
908 PortTypeVideoPort
= 0x1C,
909 PortTypeAudioPort
= 0x1D,
910 PortTypeModemPort
= 0x1E,
911 PortTypeNetworkPort
= 0x1F,
912 PortType8251Compatible
= 0xA0,
913 PortType8251FifoCompatible
= 0xA1,
918 /// Port Connector Information (Type 8)
920 /// The information in this structure defines the attributes of a system port connector,
921 /// e.g. parallel, serial, keyboard, or mouse ports. The port's type and connector information
922 /// are provided. One structure is present for each port provided by the system.
925 SMBIOS_STRUCTURE Hdr
;
926 SMBIOS_TABLE_STRING InternalReferenceDesignator
;
927 UINT8 InternalConnectorType
; ///< enumeration value from MISC_PORT_CONNECTOR_TYPE
928 SMBIOS_TABLE_STRING ExternalReferenceDesignator
;
929 UINT8 ExternalConnectorType
; ///< enumeration value from MISC_PORT_CONNECTOR_TYPE
930 UINT8 PortType
; ///< enumeration value from MISC_PORT_TYPE
931 } SMBIOS_TABLE_TYPE8
;
934 /// System Slots - Slot Type
937 SlotTypeOther
= 0x01,
938 SlotTypeUnknown
= 0x02,
943 SlotTypePcmcia
= 0x07,
944 SlotTypeVlVesa
= 0x08,
945 SlotTypeProprietary
= 0x09,
946 SlotTypeProcessorCardSlot
= 0x0A,
947 SlotTypeProprietaryMemoryCardSlot
= 0x0B,
948 SlotTypeIORiserCardSlot
= 0x0C,
949 SlotTypeNuBus
= 0x0D,
950 SlotTypePci66MhzCapable
= 0x0E,
952 SlotTypeApg2X
= 0x10,
953 SlotTypeAgp4X
= 0x11,
955 SlotTypeAgp4x
= 0x13,
956 SlotTypePC98C20
= 0xA0,
957 SlotTypePC98C24
= 0xA1,
958 SlotTypePC98E
= 0xA2,
959 SlotTypePC98LocalBus
= 0xA3,
960 SlotTypePC98Card
= 0xA4,
961 SlotTypePciExpress
= 0xA5,
962 SlotTypePciExpressX1
= 0xA6,
963 SlotTypePciExpressX2
= 0xA7,
964 SlotTypePciExpressX4
= 0xA8,
965 SlotTypePciExpressX8
= 0xA9,
966 SlotTypePciExpressX16
= 0xAA
970 /// System Slots - Slot Data Bus Width
973 SlotDataBusWidthOther
= 0x01,
974 SlotDataBusWidthUnknown
= 0x02,
975 SlotDataBusWidth8Bit
= 0x03,
976 SlotDataBusWidth16Bit
= 0x04,
977 SlotDataBusWidth32Bit
= 0x05,
978 SlotDataBusWidth64Bit
= 0x06,
979 SlotDataBusWidth128Bit
= 0x07,
980 SlotDataBusWidth1X
= 0x08, ///< Or X1
981 SlotDataBusWidth2X
= 0x09, ///< Or X2
982 SlotDataBusWidth4X
= 0x0A, ///< Or X4
983 SlotDataBusWidth8X
= 0x0B, ///< Or X8
984 SlotDataBusWidth12X
= 0x0C, ///< Or X12
985 SlotDataBusWidth16X
= 0x0D, ///< Or X16
986 SlotDataBusWidth32X
= 0x0E ///< Or X32
987 } MISC_SLOT_DATA_BUS_WIDTH
;
990 /// System Slots - Current Usage
993 SlotUsageOther
= 0x01,
994 SlotUsageUnknown
= 0x02,
995 SlotUsageAvailable
= 0x03,
996 SlotUsageInUse
= 0x04
1000 /// System Slots - Slot Length
1003 SlotLengthOther
= 0x01,
1004 SlotLengthUnknown
= 0x02,
1005 SlotLengthShort
= 0x03,
1006 SlotLengthLong
= 0x04
1010 /// System Slots - Slot Characteristics 1
1013 UINT8 CharacteristicsUnknown
:1;
1014 UINT8 Provides50Volts
:1;
1015 UINT8 Provides33Volts
:1;
1016 UINT8 SharedSlot
:1;
1017 UINT8 PcCard16Supported
:1;
1018 UINT8 CardBusSupported
:1;
1019 UINT8 ZoomVideoSupported
:1;
1020 UINT8 ModemRingResumeSupported
:1;
1021 } MISC_SLOT_CHARACTERISTICS1
;
1023 /// System Slots - Slot Characteristics 2
1026 UINT8 PmeSignalSupported
:1;
1027 UINT8 HotPlugDevicesSupported
:1;
1028 UINT8 SmbusSignalSupported
:1;
1029 UINT8 Reserved
:5; ///< Set to 0.
1030 } MISC_SLOT_CHARACTERISTICS2
;
1033 /// System Slots (Type 9)
1035 /// The information in this structure defines the attributes of a system slot.
1036 /// One structure is provided for each slot in the system.
1040 SMBIOS_STRUCTURE Hdr
;
1041 SMBIOS_TABLE_STRING SlotDesignation
;
1042 UINT8 SlotType
; ///< enumeration value from MISC_SLOT_TYPE
1043 UINT8 SlotDataBusWidth
; ///< enumeration value from MISC_SLOT_DATA_BUS_WIDTH
1044 UINT8 CurrentUsage
; ///< enumeration value from MISC_SLOT_USAGE
1045 UINT8 SlotLength
; ///< enumeration value from MISC_SLOT_LENGTH
1047 MISC_SLOT_CHARACTERISTICS1 SlotCharacteristics1
;
1048 MISC_SLOT_CHARACTERISTICS2 SlotCharacteristics2
;
1050 // Add for smbios 2.6
1052 UINT16 SegmentGroupNum
;
1055 } SMBIOS_TABLE_TYPE9
;
1058 /// On Board Devices Information - Device Types
1061 OnBoardDeviceTypeOther
= 0x01,
1062 OnBoardDeviceTypeUnknown
= 0x02,
1063 OnBoardDeviceTypeVideo
= 0x03,
1064 OnBoardDeviceTypeScsiController
= 0x04,
1065 OnBoardDeviceTypeEthernet
= 0x05,
1066 OnBoardDeviceTypeTokenRing
= 0x06,
1067 OnBoardDeviceTypeSound
= 0x07
1068 } MISC_ONBOARD_DEVICE_TYPE
;
1071 /// Device Item Entry
1074 UINT8 DeviceType
; ///< Bit [6:0] - enumeration type of device from MISC_ONBOARD_DEVICE_TYPE
1075 ///< Bit 7 - 1 : device enabled, 0 : device disabled
1076 SMBIOS_TABLE_STRING DescriptionString
;
1080 /// On Board Devices Information (Type 10, obsolete)
1082 /// Note: This structure is obsolete starting with version 2.6 specification; the Onboard Devices Extended
1083 /// Information (Type 41) structure should be used instead . BIOS providers can choose to implement both
1084 /// types to allow existing SMBIOS browsers to properly display the system's onboard devices information.
1085 /// The information in this structure defines the attributes of devices that are onboard (soldered onto)
1086 /// a system element, usually the baseboard. In general, an entry in this table implies that the BIOS
1087 /// has some level of control over the enabling of the associated device for use by the system.
1090 SMBIOS_STRUCTURE Hdr
;
1091 DEVICE_STRUCT Device
[1];
1092 } SMBIOS_TABLE_TYPE10
;
1095 /// OEM Strings (Type 11)
1096 /// This structure contains free form strings defined by the OEM. Examples of this are:
1097 /// Part Numbers for Reference Documents for the system, contact information for the manufacturer, etc.
1100 SMBIOS_STRUCTURE Hdr
;
1102 } SMBIOS_TABLE_TYPE11
;
1105 /// System Configuration Options (Type 12)
1107 /// This structure contains information required to configure the base board's Jumpers and Switches.
1110 SMBIOS_STRUCTURE Hdr
;
1112 } SMBIOS_TABLE_TYPE12
;
1116 /// BIOS Language Information (Type 13)
1118 /// The information in this structure defines the installable language attributes of the BIOS.
1121 SMBIOS_STRUCTURE Hdr
;
1122 UINT8 InstallableLanguages
;
1125 SMBIOS_TABLE_STRING CurrentLanguages
;
1126 } SMBIOS_TABLE_TYPE13
;
1129 /// System Event Log - Event Log Types
1132 EventLogTypeReserved
= 0x00,
1133 EventLogTypeSingleBitECC
= 0x01,
1134 EventLogTypeMultiBitECC
= 0x02,
1135 EventLogTypeParityMemErr
= 0x03,
1136 EventLogTypeBusTimeOut
= 0x04,
1137 EventLogTypeIOChannelCheck
= 0x05,
1138 EventLogTypeSoftwareNMI
= 0x06,
1139 EventLogTypePOSTMemResize
= 0x07,
1140 EventLogTypePOSTErr
= 0x08,
1141 EventLogTypePCIParityErr
= 0x09,
1142 EventLogTypePCISystemErr
= 0x0A,
1143 EventLogTypeCPUFailure
= 0x0B,
1144 EventLogTypeEISATimeOut
= 0x0C,
1145 EventLogTypeMemLogDisabled
= 0x0D,
1146 EventLogTypeLoggingDisabled
= 0x0E,
1147 EventLogTypeSysLimitExce
= 0x10,
1148 EventLogTypeAsyncHWTimer
= 0x11,
1149 EventLogTypeSysConfigInfo
= 0x12,
1150 EventLogTypeHDInfo
= 0x13,
1151 EventLogTypeSysReconfig
= 0x14,
1152 EventLogTypeUncorrectCPUErr
= 0x15,
1153 EventLogTypeAreaResetAndClr
= 0x16,
1154 EventLogTypeSystemBoot
= 0x17,
1155 EventLogTypeUnused
= 0x18, ///< 0x18 - 0x7F
1156 EventLogTypeAvailForSys
= 0x80, ///< 0x80 - 0xFE
1157 EventLogTypeEndOfLog
= 0xFF
1158 } EVENT_LOG_TYPE_DATA
;
1161 /// System Event Log - Variable Data Format Types
1164 EventLogVariableNone
= 0x00,
1165 EventLogVariableHandle
= 0x01,
1166 EventLogVariableMutilEvent
= 0x02,
1167 EventLogVariableMutilEventHandle
= 0x03,
1168 EventLogVariablePOSTResultBitmap
= 0x04,
1169 EventLogVariableSysManagementType
= 0x05,
1170 EventLogVariableMutliEventSysManagmentType
= 0x06,
1171 EventLogVariableUnused
= 0x07,
1172 EventLogVariableOEMAssigned
= 0x80
1173 } EVENT_LOG_VARIABLE_DATA
;
1176 /// Group Item Entry
1184 /// Event Log Type Descriptors
1187 UINT8 LogType
; ///< enumeration value from EVENT_LOG_TYPE_DATA
1188 UINT8 DataFormatType
;
1192 /// Group Associations (Type 14)
1194 /// The Group Associations structure is provided for OEMs who want to specify
1195 /// the arrangement or hierarchy of certain components (including other Group Associations)
1196 /// within the system.
1199 SMBIOS_STRUCTURE Hdr
;
1200 SMBIOS_TABLE_STRING GroupName
;
1201 GROUP_STRUCT Group
[1];
1202 } SMBIOS_TABLE_TYPE14
;
1205 /// System Event Log (Type 15)
1207 /// The presence of this structure within the SMBIOS data returned for a system indicates
1208 /// that the system supports an event log. An event log is a fixed-length area within a
1209 /// non-volatile storage element, starting with a fixed-length (and vendor-specific) header
1210 /// record, followed by one or more variable-length log records.
1213 SMBIOS_STRUCTURE Hdr
;
1214 UINT16 LogAreaLength
;
1215 UINT16 LogHeaderStartOffset
;
1216 UINT16 LogDataStartOffset
;
1219 UINT32 LogChangeToken
;
1220 UINT32 AccessMethodAddress
;
1221 UINT8 LogHeaderFormat
;
1222 UINT8 NumberOfSupportedLogTypeDescriptors
;
1223 UINT8 LengthOfLogTypeDescriptor
;
1224 EVENT_LOG_TYPE EventLogTypeDescriptors
[1];
1225 } SMBIOS_TABLE_TYPE15
;
1228 /// Physical Memory Array - Location
1231 MemoryArrayLocationOther
= 0x01,
1232 MemoryArrayLocationUnknown
= 0x02,
1233 MemoryArrayLocationSystemBoard
= 0x03,
1234 MemoryArrayLocationIsaAddonCard
= 0x04,
1235 MemoryArrayLocationEisaAddonCard
= 0x05,
1236 MemoryArrayLocationPciAddonCard
= 0x06,
1237 MemoryArrayLocationMcaAddonCard
= 0x07,
1238 MemoryArrayLocationPcmciaAddonCard
= 0x08,
1239 MemoryArrayLocationProprietaryAddonCard
= 0x09,
1240 MemoryArrayLocationNuBus
= 0x0A,
1241 MemoryArrayLocationPc98C20AddonCard
= 0xA0,
1242 MemoryArrayLocationPc98C24AddonCard
= 0xA1,
1243 MemoryArrayLocationPc98EAddonCard
= 0xA2,
1244 MemoryArrayLocationPc98LocalBusAddonCard
= 0xA3
1245 } MEMORY_ARRAY_LOCATION
;
1248 /// Physical Memory Array - Use
1251 MemoryArrayUseOther
= 0x01,
1252 MemoryArrayUseUnknown
= 0x02,
1253 MemoryArrayUseSystemMemory
= 0x03,
1254 MemoryArrayUseVideoMemory
= 0x04,
1255 MemoryArrayUseFlashMemory
= 0x05,
1256 MemoryArrayUseNonVolatileRam
= 0x06,
1257 MemoryArrayUseCacheMemory
= 0x07
1261 /// Physical Memory Array - Error Correction Types
1264 MemoryErrorCorrectionOther
= 0x01,
1265 MemoryErrorCorrectionUnknown
= 0x02,
1266 MemoryErrorCorrectionNone
= 0x03,
1267 MemoryErrorCorrectionParity
= 0x04,
1268 MemoryErrorCorrectionSingleBitEcc
= 0x05,
1269 MemoryErrorCorrectionMultiBitEcc
= 0x06,
1270 MemoryErrorCorrectionCrc
= 0x07
1271 } MEMORY_ERROR_CORRECTION
;
1274 /// Physical Memory Array (Type 16)
1276 /// This structure describes a collection of memory devices that operate
1277 /// together to form a memory address space.
1280 SMBIOS_STRUCTURE Hdr
;
1281 UINT8 Location
; ///< enumeration value from MEMORY_ARRAY_LOCATION
1282 UINT8 Use
; ///< enumeration value from MEMORY_ARRAY_USE
1283 UINT8 MemoryErrorCorrection
; ///< enumeration value from MEMORY_ERROR_CORRECTION
1284 UINT32 MaximumCapacity
;
1285 UINT16 MemoryErrorInformationHandle
;
1286 UINT16 NumberOfMemoryDevices
;
1287 } SMBIOS_TABLE_TYPE16
;
1290 /// Memory Device - Form Factor
1293 MemoryFormFactorOther
= 0x01,
1294 MemoryFormFactorUnknown
= 0x02,
1295 MemoryFormFactorSimm
= 0x03,
1296 MemoryFormFactorSip
= 0x04,
1297 MemoryFormFactorChip
= 0x05,
1298 MemoryFormFactorDip
= 0x06,
1299 MemoryFormFactorZip
= 0x07,
1300 MemoryFormFactorProprietaryCard
= 0x08,
1301 MemoryFormFactorDimm
= 0x09,
1302 MemoryFormFactorTsop
= 0x0A,
1303 MemoryFormFactorRowOfChips
= 0x0B,
1304 MemoryFormFactorRimm
= 0x0C,
1305 MemoryFormFactorSodimm
= 0x0D,
1306 MemoryFormFactorSrimm
= 0x0E,
1307 MemoryFormFactorFbDimm
= 0x0F
1308 } MEMORY_FORM_FACTOR
;
1311 /// Memory Device - Type
1314 MemoryTypeOther
= 0x01,
1315 MemoryTypeUnknown
= 0x02,
1316 MemoryTypeDram
= 0x03,
1317 MemoryTypeEdram
= 0x04,
1318 MemoryTypeVram
= 0x05,
1319 MemoryTypeSram
= 0x06,
1320 MemoryTypeRam
= 0x07,
1321 MemoryTypeRom
= 0x08,
1322 MemoryTypeFlash
= 0x09,
1323 MemoryTypeEeprom
= 0x0A,
1324 MemoryTypeFeprom
= 0x0B,
1325 MemoryTypeEprom
= 0x0C,
1326 MemoryTypeCdram
= 0x0D,
1327 MemoryType3Dram
= 0x0E,
1328 MemoryTypeSdram
= 0x0F,
1329 MemoryTypeSgram
= 0x10,
1330 MemoryTypeRdram
= 0x11,
1331 MemoryTypeDdr
= 0x12,
1332 MemoryTypeDdr2
= 0x13,
1333 MemoryTypeDdr2FbDimm
= 0x14
1334 } MEMORY_DEVICE_TYPE
;
1340 UINT16 FastPaged
:1;
1341 UINT16 StaticColumn
:1;
1342 UINT16 PseudoStatic
:1;
1344 UINT16 Synchronous
:1;
1347 UINT16 WindowDram
:1;
1348 UINT16 CacheDram
:1;
1349 UINT16 Nonvolatile
:1;
1350 UINT16 Reserved1
:3;
1351 } MEMORY_DEVICE_TYPE_DETAIL
;
1354 /// Memory Device (Type 17)
1356 /// This structure describes a single memory device that is part of
1357 /// a larger Physical Memory Array (Type 16).
1358 /// Note: If a system includes memory-device sockets, the SMBIOS implementation
1359 /// includes a Memory Device structure instance for each slot whether or not the
1360 /// socket is currently populated.
1363 SMBIOS_STRUCTURE Hdr
;
1364 UINT16 MemoryArrayHandle
;
1365 UINT16 MemoryErrorInformationHandle
;
1369 UINT8 FormFactor
; ///< enumeration value from MEMORY_FORM_FACTOR
1371 SMBIOS_TABLE_STRING DeviceLocator
;
1372 SMBIOS_TABLE_STRING BankLocator
;
1373 UINT8 MemoryType
; ///< enumeration value from MEMORY_DEVICE_TYPE
1374 MEMORY_DEVICE_TYPE_DETAIL TypeDetail
;
1376 SMBIOS_TABLE_STRING Manufacturer
;
1377 SMBIOS_TABLE_STRING SerialNumber
;
1378 SMBIOS_TABLE_STRING AssetTag
;
1379 SMBIOS_TABLE_STRING PartNumber
;
1381 // Add for smbios 2.6
1384 } SMBIOS_TABLE_TYPE17
;
1387 /// 32-bit Memory Error Information - Error Type
1390 MemoryErrorOther
= 0x01,
1391 MemoryErrorUnknown
= 0x02,
1392 MemoryErrorOk
= 0x03,
1393 MemoryErrorBadRead
= 0x04,
1394 MemoryErrorParity
= 0x05,
1395 MemoryErrorSigleBit
= 0x06,
1396 MemoryErrorDoubleBit
= 0x07,
1397 MemoryErrorMultiBit
= 0x08,
1398 MemoryErrorNibble
= 0x09,
1399 MemoryErrorChecksum
= 0x0A,
1400 MemoryErrorCrc
= 0x0B,
1401 MemoryErrorCorrectSingleBit
= 0x0C,
1402 MemoryErrorCorrected
= 0x0D,
1403 MemoryErrorUnCorrectable
= 0x0E
1404 } MEMORY_ERROR_TYPE
;
1407 /// 32-bit Memory Error Information - Error Granularity
1410 MemoryGranularityOther
= 0x01,
1411 MemoryGranularityOtherUnknown
= 0x02,
1412 MemoryGranularityDeviceLevel
= 0x03,
1413 MemoryGranularityMemPartitionLevel
= 0x04
1414 } MEMORY_ERROR_GRANULARITY
;
1417 /// 32-bit Memory Error Information - Error Operation
1420 MemoryErrorOperationOther
= 0x01,
1421 MemoryErrorOperationUnknown
= 0x02,
1422 MemoryErrorOperationRead
= 0x03,
1423 MemoryErrorOperationWrite
= 0x04,
1424 MemoryErrorOperationPartialWrite
= 0x05
1425 } MEMORY_ERROR_OPERATION
;
1428 /// 32-bit Memory Error Information (Type 18)
1430 /// This structure identifies the specifics of an error that might be detected
1431 /// within a Physical Memory Array.
1434 SMBIOS_STRUCTURE Hdr
;
1435 UINT8 ErrorType
; ///< enumeration value from MEMORY_ERROR_TYPE
1436 UINT8 ErrorGranularity
; ///< enumeration value from MEMORY_ERROR_GRANULARITY
1437 UINT8 ErrorOperation
; ///< enumeration value from MEMORY_ERROR_OPERATION
1438 UINT32 VendorSyndrome
;
1439 UINT32 MemoryArrayErrorAddress
;
1440 UINT32 DeviceErrorAddress
;
1441 UINT32 ErrorResolution
;
1442 } SMBIOS_TABLE_TYPE18
;
1445 /// Memory Array Mapped Address (Type 19)
1447 /// This structure provides the address mapping for a Physical Memory Array.
1448 /// One structure is present for each contiguous address range described.
1451 SMBIOS_STRUCTURE Hdr
;
1452 UINT32 StartingAddress
;
1453 UINT32 EndingAddress
;
1454 UINT16 MemoryArrayHandle
;
1455 UINT8 PartitionWidth
;
1456 } SMBIOS_TABLE_TYPE19
;
1459 /// Memory Device Mapped Address (Type 20)
1461 /// This structure maps memory address space usually to a device-level granularity.
1462 /// One structure is present for each contiguous address range described.
1465 SMBIOS_STRUCTURE Hdr
;
1466 UINT32 StartingAddress
;
1467 UINT32 EndingAddress
;
1468 UINT16 MemoryDeviceHandle
;
1469 UINT16 MemoryArrayMappedAddressHandle
;
1470 UINT8 PartitionRowPosition
;
1471 UINT8 InterleavePosition
;
1472 UINT8 InterleavedDataDepth
;
1473 } SMBIOS_TABLE_TYPE20
;
1476 /// Built-in Pointing Device - Type
1479 PointingDeviceTypeOther
= 0x01,
1480 PointingDeviceTypeUnknown
= 0x02,
1481 PointingDeviceTypeMouse
= 0x03,
1482 PointingDeviceTypeTrackBall
= 0x04,
1483 PointingDeviceTypeTrackPoint
= 0x05,
1484 PointingDeviceTypeGlidePoint
= 0x06,
1485 PointingDeviceTouchPad
= 0x07,
1486 PointingDeviceTouchScreen
= 0x08,
1487 PointingDeviceOpticalSensor
= 0x09
1488 } BUILTIN_POINTING_DEVICE_TYPE
;
1491 /// Built-in Pointing Device - Interface
1494 PointingDeviceInterfaceOther
= 0x01,
1495 PointingDeviceInterfaceUnknown
= 0x02,
1496 PointingDeviceInterfaceSerial
= 0x03,
1497 PointingDeviceInterfacePs2
= 0x04,
1498 PointingDeviceInterfaceInfrared
= 0x05,
1499 PointingDeviceInterfaceHpHil
= 0x06,
1500 PointingDeviceInterfaceBusMouse
= 0x07,
1501 PointingDeviceInterfaceADB
= 0x08,
1502 PointingDeviceInterfaceBusMouseDB9
= 0xA0,
1503 PointingDeviceInterfaceBusMouseMicroDin
= 0xA1,
1504 PointingDeviceInterfaceUsb
= 0xA2
1505 } BUILTIN_POINTING_DEVICE_INTERFACE
;
1508 /// Built-in Pointing Device (Type 21)
1510 /// This structure describes the attributes of the built-in pointing device for the
1511 /// system - the presence of this structure does not imply that the built-in
1512 /// pointing device is active for the system's use!
1515 SMBIOS_STRUCTURE Hdr
;
1516 UINT8 Type
; ///< enumeration value from BUILTIN_POINTING_DEVICE_TYPE
1517 UINT8 Interface
; ///< enumeration value from BUILTIN_POINTING_DEVICE_INTERFACE
1518 UINT8 NumberOfButtons
;
1519 } SMBIOS_TABLE_TYPE21
;
1522 /// Portable Battery - Device Chemistry
1525 PortableBatteryDeviceChemistryOther
= 0x01,
1526 PortableBatteryDeviceChemistryUnknown
= 0x02,
1527 PortableBatteryDeviceChemistryLeadAcid
= 0x03,
1528 PortableBatteryDeviceChemistryNickelCadmium
= 0x04,
1529 PortableBatteryDeviceChemistryNickelMetalHydride
= 0x05,
1530 PortableBatteryDeviceChemistryLithiumIon
= 0x06,
1531 PortableBatteryDeviceChemistryZincAir
= 0x07,
1532 PortableBatteryDeviceChemistryLithiumPolymer
= 0x08
1533 } PORTABLE_BATTERY_DEVICE_CHEMISTRY
;
1536 /// Portable Battery (Type 22)
1538 /// This structure describes the attributes of the portable battery(s) for the system.
1539 /// The structure contains the static attributes for the group. Each structure describes
1540 /// a single battery pack's attributes.
1543 SMBIOS_STRUCTURE Hdr
;
1544 SMBIOS_TABLE_STRING Location
;
1545 SMBIOS_TABLE_STRING Manufacturer
;
1546 SMBIOS_TABLE_STRING ManufactureDate
;
1547 SMBIOS_TABLE_STRING SerialNumber
;
1548 SMBIOS_TABLE_STRING DeviceName
;
1549 UINT8 DeviceChemistry
; ///< enumeration value from PORTABLE_BATTERY_DEVICE_CHEMISTRY
1550 UINT16 DeviceCapacity
;
1551 UINT16 DesignVoltage
;
1552 SMBIOS_TABLE_STRING SBDSVersionNumber
;
1553 UINT8 MaximumErrorInBatteryData
;
1554 UINT16 SBDSSerialNumber
;
1555 UINT16 SBDSManufactureDate
;
1556 SMBIOS_TABLE_STRING SBDSDeviceChemistry
;
1557 UINT8 DesignCapacityMultiplier
;
1559 } SMBIOS_TABLE_TYPE22
;
1562 /// System Reset (Type 23)
1564 /// This structure describes whether Automatic System Reset functions enabled (Status).
1565 /// If the system has a watchdog Timer and the timer is not reset (Timer Reset)
1566 /// before the Interval elapses, an automatic system reset will occur. The system will re-boot
1567 /// according to the Boot Option. This function may repeat until the Limit is reached, at which time
1568 /// the system will re-boot according to the Boot Option at Limit.
1571 SMBIOS_STRUCTURE Hdr
;
1575 UINT16 TimerInterval
;
1577 } SMBIOS_TABLE_TYPE23
;
1580 /// Hardware Security (Type 24)
1582 /// This structure describes the system-wide hardware security settings.
1585 SMBIOS_STRUCTURE Hdr
;
1586 UINT8 HardwareSecuritySettings
;
1587 } SMBIOS_TABLE_TYPE24
;
1590 /// System Power Controls (Type 25)
1592 /// This structure describes the attributes for controlling the main power supply to the system.
1593 /// Software that interprets this structure uses the month, day, hour, minute, and second values
1594 /// to determine the number of seconds until the next power-on of the system. The presence of
1595 /// this structure implies that a timed power-on facility is available for the system.
1598 SMBIOS_STRUCTURE Hdr
;
1599 UINT8 NextScheduledPowerOnMonth
;
1600 UINT8 NextScheduledPowerOnDayOfMonth
;
1601 UINT8 NextScheduledPowerOnHour
;
1602 UINT8 NextScheduledPowerOnMinute
;
1603 UINT8 NextScheduledPowerOnSecond
;
1604 } SMBIOS_TABLE_TYPE25
;
1607 /// Voltage Probe - Location and Status
1610 UINT8 VoltageProbeSite
:5;
1611 UINT8 VoltageProbeStatus
:3;
1612 } MISC_VOLTAGE_PROBE_LOCATION
;
1615 /// Voltage Probe (Type 26)
1617 /// This describes the attributes for a voltage probe in the system.
1618 /// Each structure describes a single voltage probe.
1621 SMBIOS_STRUCTURE Hdr
;
1622 SMBIOS_TABLE_STRING Description
;
1623 MISC_VOLTAGE_PROBE_LOCATION LocationAndStatus
;
1624 UINT16 MaximumValue
;
1625 UINT16 MinimumValue
;
1630 UINT16 NominalValue
;
1631 } SMBIOS_TABLE_TYPE26
;
1634 /// Cooling Device - Device Type and Status
1637 UINT8 CoolingDevice
:5;
1638 UINT8 CoolingDeviceStatus
:3;
1639 } MISC_COOLING_DEVICE_TYPE
;
1642 /// Cooling Device (Type 27)
1644 /// This structure describes the attributes for a cooling device in the system.
1645 /// Each structure describes a single cooling device.
1648 SMBIOS_STRUCTURE Hdr
;
1649 UINT16 TemperatureProbeHandle
;
1650 MISC_COOLING_DEVICE_TYPE DeviceTypeAndStatus
;
1651 UINT8 CoolingUnitGroup
;
1653 UINT16 NominalSpeed
;
1654 } SMBIOS_TABLE_TYPE27
;
1657 /// Temperature Probe - Location and Status
1660 UINT8 TemperatureProbeSite
:5;
1661 UINT8 TemperatureProbeStatus
:3;
1662 } MISC_TEMPERATURE_PROBE_LOCATION
;
1665 /// Temperature Probe (Type 28)
1667 /// This structure describes the attributes for a temperature probe in the system.
1668 /// Each structure describes a single temperature probe.
1671 SMBIOS_STRUCTURE Hdr
;
1672 SMBIOS_TABLE_STRING Description
;
1673 MISC_TEMPERATURE_PROBE_LOCATION LocationAndStatus
;
1674 UINT16 MaximumValue
;
1675 UINT16 MinimumValue
;
1680 UINT16 NominalValue
;
1681 } SMBIOS_TABLE_TYPE28
;
1684 /// Electrical Current Probe - Location and Status
1687 UINT8 ElectricalCurrentProbeSite
:5;
1688 UINT8 ElectricalCurrentProbeStatus
:3;
1689 } MISC_ELECTRICAL_CURRENT_PROBE_LOCATION
;
1692 /// Electrical Current Probe (Type 29)
1694 /// This structure describes the attributes for an electrical current probe in the system.
1695 /// Each structure describes a single electrical current probe.
1698 SMBIOS_STRUCTURE Hdr
;
1699 SMBIOS_TABLE_STRING Description
;
1700 MISC_ELECTRICAL_CURRENT_PROBE_LOCATION LocationAndStatus
;
1701 UINT16 MaximumValue
;
1702 UINT16 MinimumValue
;
1707 UINT16 NominalValue
;
1708 } SMBIOS_TABLE_TYPE29
;
1711 /// Out-of-Band Remote Access (Type 30)
1713 /// This structure describes the attributes and policy settings of a hardware facility
1714 /// that may be used to gain remote access to a hardware system when the operating system
1715 /// is not available due to power-down status, hardware failures, or boot failures.
1718 SMBIOS_STRUCTURE Hdr
;
1719 SMBIOS_TABLE_STRING ManufacturerName
;
1721 } SMBIOS_TABLE_TYPE30
;
1724 /// Boot Integrity Services (BIS) Entry Point (Type 31)
1726 /// Structure type 31 (decimal) is reserved for use by the Boot Integrity Services (BIS).
1729 SMBIOS_STRUCTURE Hdr
;
1737 } SMBIOS_TABLE_TYPE31
;
1740 /// System Boot Information - System Boot Status
1743 BootInformationStatusNoError
= 0x00,
1744 BootInformationStatusNoBootableMedia
= 0x01,
1745 BootInformationStatusNormalOSFailedLoading
= 0x02,
1746 BootInformationStatusFirmwareDetectedFailure
= 0x03,
1747 BootInformationStatusOSDetectedFailure
= 0x04,
1748 BootInformationStatusUserRequestedBoot
= 0x05,
1749 BootInformationStatusSystemSecurityViolation
= 0x06,
1750 BootInformationStatusPreviousRequestedImage
= 0x07,
1751 BootInformationStatusWatchdogTimerExpired
= 0x08,
1752 BootInformationStatusStartReserved
= 0x09,
1753 BootInformationStatusStartOemSpecific
= 0x80,
1754 BootInformationStatusStartProductSpecific
= 0xC0
1755 } MISC_BOOT_INFORMATION_STATUS_DATA_TYPE
;
1758 /// System Boot Information (Type 32)
1760 /// The client system firmware, e.g. BIOS, communicates the System Boot Status to the
1761 /// client's Pre-boot Execution Environment (PXE) boot image or OS-present management
1762 /// application via this structure. When used in the PXE environment, for example,
1763 /// this code identifies the reason the PXE was initiated and can be used by boot-image
1764 /// software to further automate an enterprise's PXE sessions. For example, an enterprise
1765 /// could choose to automatically download a hardware-diagnostic image to a client whose
1766 /// reason code indicated either a firmware- or operating system-detected hardware failure.
1769 SMBIOS_STRUCTURE Hdr
;
1771 UINT8 BootStatus
; ///< enumeration value from MISC_BOOT_INFORMATION_STATUS_DATA_TYPE
1772 } SMBIOS_TABLE_TYPE32
;
1775 /// 64-bit Memory Error Information (Type 33)
1777 /// This structure describes an error within a Physical Memory Array,
1778 /// when the error address is above 4G (0xFFFFFFFF).
1781 SMBIOS_STRUCTURE Hdr
;
1782 UINT8 ErrorType
; ///< enumeration value from MEMORY_ERROR_TYPE
1783 UINT8 ErrorGranularity
; ///< enumeration value from MEMORY_ERROR_GRANULARITY
1784 UINT8 ErrorOperation
; ///< enumeration value from MEMORY_ERROR_OPERATION
1785 UINT32 VendorSyndrome
;
1786 UINT64 MemoryArrayErrorAddress
;
1787 UINT64 DeviceErrorAddress
;
1788 UINT32 ErrorResolution
;
1789 } SMBIOS_TABLE_TYPE33
;
1792 /// Management Device - Type
1795 ManagementDeviceTypeOther
= 0x01,
1796 ManagementDeviceTypeUnknown
= 0x02,
1797 ManagementDeviceTypeLm75
= 0x03,
1798 ManagementDeviceTypeLm78
= 0x04,
1799 ManagementDeviceTypeLm79
= 0x05,
1800 ManagementDeviceTypeLm80
= 0x06,
1801 ManagementDeviceTypeLm81
= 0x07,
1802 ManagementDeviceTypeAdm9240
= 0x08,
1803 ManagementDeviceTypeDs1780
= 0x09,
1804 ManagementDeviceTypeMaxim1617
= 0x0A,
1805 ManagementDeviceTypeGl518Sm
= 0x0B,
1806 ManagementDeviceTypeW83781D
= 0x0C,
1807 ManagementDeviceTypeHt82H791
= 0x0D
1808 } MISC_MANAGEMENT_DEVICE_TYPE
;
1811 /// Management Device - Address Type
1814 ManagementDeviceAddressTypeOther
= 0x01,
1815 ManagementDeviceAddressTypeUnknown
= 0x02,
1816 ManagementDeviceAddressTypeIOPort
= 0x03,
1817 ManagementDeviceAddressTypeMemory
= 0x04,
1818 ManagementDeviceAddressTypeSmbus
= 0x05
1819 } MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE
;
1822 /// Management Device (Type 34)
1824 /// The information in this structure defines the attributes of a Management Device.
1825 /// A Management Device might control one or more fans or voltage, current, or temperature
1826 /// probes as defined by one or more Management Device Component structures.
1829 SMBIOS_STRUCTURE Hdr
;
1830 SMBIOS_TABLE_STRING Description
;
1831 UINT8 Type
; ///< enumeration value from MISC_MANAGEMENT_DEVICE_TYPE
1833 UINT8 AddressType
; ///< enumeration value from MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE
1834 } SMBIOS_TABLE_TYPE34
;
1837 /// Management Device Component (Type 35)
1839 /// This structure associates a cooling device or environmental probe with structures
1840 /// that define the controlling hardware device and (optionally) the component's thresholds.
1843 SMBIOS_STRUCTURE Hdr
;
1844 SMBIOS_TABLE_STRING Description
;
1845 UINT16 ManagementDeviceHandle
;
1846 UINT16 ComponentHandle
;
1847 UINT16 ThresholdHandle
;
1848 } SMBIOS_TABLE_TYPE35
;
1851 /// Management Device Threshold Data (Type 36)
1853 /// The information in this structure defines threshold information for
1854 /// a component (probe or cooling-unit) contained within a Management Device.
1857 SMBIOS_STRUCTURE Hdr
;
1858 UINT16 LowerThresholdNonCritical
;
1859 UINT16 UpperThresholdNonCritical
;
1860 UINT16 LowerThresholdCritical
;
1861 UINT16 UpperThresholdCritical
;
1862 UINT16 LowerThresholdNonRecoverable
;
1863 UINT16 UpperThresholdNonRecoverable
;
1864 } SMBIOS_TABLE_TYPE36
;
1867 /// Memory Channel Entry
1871 UINT16 DeviceHandle
;
1875 /// Memory Channel - Channel Type
1878 MemoryChannelTypeOther
= 0x01,
1879 MemoryChannelTypeUnknown
= 0x02,
1880 MemoryChannelTypeRambus
= 0x03,
1881 MemoryChannelTypeSyncLink
= 0x04
1882 } MEMORY_CHANNEL_TYPE
;
1885 /// Memory Channel (Type 37)
1887 /// The information in this structure provides the correlation between a Memory Channel
1888 /// and its associated Memory Devices. Each device presents one or more loads to the channel;
1889 /// the sum of all device loads cannot exceed the channel's defined maximum.
1892 SMBIOS_STRUCTURE Hdr
;
1894 UINT8 MaximumChannelLoad
;
1895 UINT8 MemoryDeviceCount
;
1896 MEMORY_DEVICE MemoryDevice
[1];
1897 } SMBIOS_TABLE_TYPE37
;
1900 /// IPMI Device Information - BMC Interface Type
1903 IPMIDeviceInfoInterfaceTypeUnknown
= 0x00,
1904 IPMIDeviceInfoInterfaceTypeKCS
= 0x01, ///< Keyboard Controller Style
1905 IPMIDeviceInfoInterfaceTypeSMIC
= 0x02, ///< Server Management Interface Chip
1906 IPMIDeviceInfoInterfaceTypeBT
= 0x03, ///< Block Transfer
1907 IPMIDeviceInfoInterfaceTypeReserved
= 0x04
1908 } BMC_INTERFACE_TYPE
;
1911 /// IPMI Device Information (Type 38)
1913 /// The information in this structure defines the attributes of an
1914 /// Intelligent Platform Management Interface (IPMI) Baseboard Management Controller (BMC).
1917 SMBIOS_STRUCTURE Hdr
;
1918 UINT8 InterfaceType
; ///< enumeration value from BMC_INTERFACE_TYPE
1919 UINT8 IPMISpecificationRevision
;
1920 UINT8 I2CSlaveAddress
;
1921 UINT8 NVStorageDeviceAddress
;
1923 UINT8 BaseAddressModifier_InterruptInfo
;
1924 UINT8 InterruptNumber
;
1925 } SMBIOS_TABLE_TYPE38
;
1928 /// System Power Supply - Power Supply Characteristics
1931 UINT16 PowerSupplyHotReplaceable
:1;
1932 UINT16 PowerSupplyPresent
:1;
1933 UINT16 PowerSupplyUnplugged
:1;
1934 UINT16 InputVoltageRangeSwitch
:4;
1935 UINT16 PowerSupplyStatus
:3;
1936 UINT16 PowerSupplyType
:4;
1938 } SYS_POWER_SUPPLY_CHARACTERISTICS
;
1941 /// System Power Supply (Type 39)
1943 /// This structure identifies attributes of a system power supply. One instance
1944 /// of this record is present for each possible power supply in a system.
1947 SMBIOS_STRUCTURE Hdr
;
1948 UINT8 PowerUnitGroup
;
1949 SMBIOS_TABLE_STRING Location
;
1950 SMBIOS_TABLE_STRING DeviceName
;
1951 SMBIOS_TABLE_STRING Manufacturer
;
1952 SMBIOS_TABLE_STRING SerialNumber
;
1953 SMBIOS_TABLE_STRING AssetTagNumber
;
1954 SMBIOS_TABLE_STRING ModelPartNumber
;
1955 SMBIOS_TABLE_STRING RevisionLevel
;
1956 UINT16 MaxPowerCapacity
;
1957 SYS_POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics
;
1958 UINT16 InputVoltageProbeHandle
;
1959 UINT16 CoolingDeviceHandle
;
1960 UINT16 InputCurrentProbeHandle
;
1961 } SMBIOS_TABLE_TYPE39
;
1964 /// Additional Information Entry Format
1968 UINT16 ReferencedHandle
;
1969 UINT8 ReferencedOffset
;
1970 SMBIOS_TABLE_STRING EntryString
;
1972 }ADDITIONAL_INFORMATION_ENTRY
;
1975 /// Additional Information (Type 40)
1977 /// This structure is intended to provide additional information for handling unspecified
1978 /// enumerated values and interim field updates in another structure.
1981 SMBIOS_STRUCTURE Hdr
;
1982 UINT8 NumberOfAdditionalInformationEntries
;
1983 ADDITIONAL_INFORMATION_ENTRY AdditionalInfoEntries
[1];
1984 } SMBIOS_TABLE_TYPE40
;
1987 /// Onboard Devices Extended Information - Onboard Device Types
1990 OnBoardDeviceExtendedTypeOther
= 0x01,
1991 OnBoardDeviceExtendedTypeUnknown
= 0x02,
1992 OnBoardDeviceExtendedTypeVideo
= 0x03,
1993 OnBoardDeviceExtendedTypeScsiController
= 0x04,
1994 OnBoardDeviceExtendedTypeEthernet
= 0x05,
1995 OnBoardDeviceExtendedTypeTokenRing
= 0x06,
1996 OnBoardDeviceExtendedTypeSound
= 0x07,
1997 OnBoardDeviceExtendedTypePATAController
= 0x08,
1998 OnBoardDeviceExtendedTypeSATAController
= 0x09,
1999 OnBoardDeviceExtendedTypeSASController
= 0x0A
2000 } ONBOARD_DEVICE_EXTENDED_INFO_TYPE
;
2003 /// Onboard Devices Extended Information (Type 41)
2005 /// The information in this structure defines the attributes of devices that
2006 /// are onboard (soldered onto) a system element, usually the baseboard.
2007 /// In general, an entry in this table implies that the BIOS has some level of
2008 /// control over the enabling of the associated device for use by the system.
2011 SMBIOS_STRUCTURE Hdr
;
2012 SMBIOS_TABLE_STRING ReferenceDesignation
;
2013 UINT8 DeviceType
; ///< enumeration value from ONBOARD_DEVICE_EXTENDED_INFO_TYPE
2014 UINT8 DeviceTypeInstance
;
2015 UINT16 SegmentGroupNum
;
2018 } SMBIOS_TABLE_TYPE41
;
2021 /// Inactive (Type 126)
2024 SMBIOS_STRUCTURE Hdr
;
2025 } SMBIOS_TABLE_TYPE126
;
2028 /// End-of-Table (Type 127)
2031 SMBIOS_STRUCTURE Hdr
;
2032 } SMBIOS_TABLE_TYPE127
;
2035 /// Union of all the possible SMBIOS record types
2038 SMBIOS_STRUCTURE
*Hdr
;
2039 SMBIOS_TABLE_TYPE0
*Type0
;
2040 SMBIOS_TABLE_TYPE1
*Type1
;
2041 SMBIOS_TABLE_TYPE2
*Type2
;
2042 SMBIOS_TABLE_TYPE3
*Type3
;
2043 SMBIOS_TABLE_TYPE4
*Type4
;
2044 SMBIOS_TABLE_TYPE5
*Type5
;
2045 SMBIOS_TABLE_TYPE6
*Type6
;
2046 SMBIOS_TABLE_TYPE7
*Type7
;
2047 SMBIOS_TABLE_TYPE8
*Type8
;
2048 SMBIOS_TABLE_TYPE9
*Type9
;
2049 SMBIOS_TABLE_TYPE10
*Type10
;
2050 SMBIOS_TABLE_TYPE11
*Type11
;
2051 SMBIOS_TABLE_TYPE12
*Type12
;
2052 SMBIOS_TABLE_TYPE13
*Type13
;
2053 SMBIOS_TABLE_TYPE14
*Type14
;
2054 SMBIOS_TABLE_TYPE15
*Type15
;
2055 SMBIOS_TABLE_TYPE16
*Type16
;
2056 SMBIOS_TABLE_TYPE17
*Type17
;
2057 SMBIOS_TABLE_TYPE18
*Type18
;
2058 SMBIOS_TABLE_TYPE19
*Type19
;
2059 SMBIOS_TABLE_TYPE20
*Type20
;
2060 SMBIOS_TABLE_TYPE21
*Type21
;
2061 SMBIOS_TABLE_TYPE22
*Type22
;
2062 SMBIOS_TABLE_TYPE23
*Type23
;
2063 SMBIOS_TABLE_TYPE24
*Type24
;
2064 SMBIOS_TABLE_TYPE25
*Type25
;
2065 SMBIOS_TABLE_TYPE26
*Type26
;
2066 SMBIOS_TABLE_TYPE27
*Type27
;
2067 SMBIOS_TABLE_TYPE28
*Type28
;
2068 SMBIOS_TABLE_TYPE29
*Type29
;
2069 SMBIOS_TABLE_TYPE30
*Type30
;
2070 SMBIOS_TABLE_TYPE31
*Type31
;
2071 SMBIOS_TABLE_TYPE32
*Type32
;
2072 SMBIOS_TABLE_TYPE33
*Type33
;
2073 SMBIOS_TABLE_TYPE34
*Type34
;
2074 SMBIOS_TABLE_TYPE35
*Type35
;
2075 SMBIOS_TABLE_TYPE36
*Type36
;
2076 SMBIOS_TABLE_TYPE37
*Type37
;
2077 SMBIOS_TABLE_TYPE38
*Type38
;
2078 SMBIOS_TABLE_TYPE39
*Type39
;
2079 SMBIOS_TABLE_TYPE40
*Type40
;
2080 SMBIOS_TABLE_TYPE41
*Type41
;
2081 SMBIOS_TABLE_TYPE126
*Type126
;
2082 SMBIOS_TABLE_TYPE127
*Type127
;
2084 } SMBIOS_STRUCTURE_POINTER
;