2 Industry Standard Definitions of SMBIOS Table Specification v2.6
4 Copyright (c) 2006 - 2008, 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__
18 /// Smbios Table Entry Point Structure
22 UINT8 AnchorString
[4];
23 UINT8 EntryPointStructureChecksum
;
24 UINT8 EntryPointLength
;
27 UINT16 MaxStructureSize
;
28 UINT8 EntryPointRevision
;
29 UINT8 FormattedArea
[5];
30 UINT8 IntermediateAnchorString
[5];
31 UINT8 IntermediateChecksum
;
34 UINT16 NumberOfSmbiosStructures
;
35 UINT8 SmbiosBcdRevision
;
36 } SMBIOS_TABLE_ENTRY_POINT
;
39 /// The Smbios structure header
47 typedef UINT8 SMBIOS_TABLE_STRING
;
50 /// BIOS Information (Type 0)
54 SMBIOS_TABLE_STRING Vendor
;
55 SMBIOS_TABLE_STRING BiosVersion
;
57 SMBIOS_TABLE_STRING BiosReleaseDate
;
59 UINT64 BiosCharacteristics
;
60 UINT8 BIOSCharacteristicsExtensionBytes
[2];
61 UINT8 SystemBiosMajorRelease
;
62 UINT8 SystemBiosMinorRelease
;
63 UINT8 EmbeddedControllerFirmwareMajorRelease
;
64 UINT8 EmbeddedControllerFirmwareMinorRelease
;
68 /// System Information (Type 1)
72 SMBIOS_TABLE_STRING Manufacturer
;
73 SMBIOS_TABLE_STRING ProductName
;
74 SMBIOS_TABLE_STRING Version
;
75 SMBIOS_TABLE_STRING SerialNumber
;
78 SMBIOS_TABLE_STRING SKUNumber
;
79 SMBIOS_TABLE_STRING Family
;
83 /// Base Board (or Module) Information (Type 2)
87 SMBIOS_TABLE_STRING Manufacturer
;
88 SMBIOS_TABLE_STRING ProductName
;
89 SMBIOS_TABLE_STRING Version
;
90 SMBIOS_TABLE_STRING SerialNumber
;
91 SMBIOS_TABLE_STRING AssetTag
;
93 SMBIOS_TABLE_STRING LocationInChassis
;
96 UINT8 NumberOfContainedObjectHandles
;
97 UINT16 ContainedObjectHandles
[1];
101 UINT8 ContainedElementType
;
102 UINT8 ContainedElementMinimum
;
103 UINT8 ContainedElementMaximum
;
107 /// System Enclosure or Chassis (Type 3)
110 SMBIOS_STRUCTURE Hdr
;
111 SMBIOS_TABLE_STRING Manufacturer
;
113 SMBIOS_TABLE_STRING Version
;
114 SMBIOS_TABLE_STRING SerialNumber
;
115 SMBIOS_TABLE_STRING AssetTag
;
117 UINT8 PowerSupplyState
;
119 UINT8 SecurityStatus
;
122 UINT8 NumberofPowerCords
;
123 UINT8 ContainedElementCount
;
124 UINT8 ContainedElementRecordLength
;
125 CONTAINED_ELEMENT ContainedElements
[1];
126 } SMBIOS_TABLE_TYPE3
;
129 /// Processor Information (Type 4)
132 SMBIOS_STRUCTURE Hdr
;
135 UINT8 ProcessorFamily
;
136 SMBIOS_TABLE_STRING ProcessorManufacture
;
137 UINT8 ProcessorId
[8];
138 SMBIOS_TABLE_STRING ProcessorVersion
;
140 UINT16 ExternalClock
;
144 UINT8 ProcessorUpgrade
;
145 UINT16 L1CacheHandle
;
146 UINT16 L2CacheHandle
;
147 UINT16 L3CacheHandle
;
148 SMBIOS_TABLE_STRING SerialNumber
;
149 SMBIOS_TABLE_STRING AssetTag
;
150 SMBIOS_TABLE_STRING PartNumber
;
152 // Add for smbios 2.5
155 UINT8 EnabledCoreCount
;
157 UINT16 ProcessorCharacteristics
;
159 // Add for smbios 2.6
161 UINT16 ProcessorFamily2
;
162 } SMBIOS_TABLE_TYPE4
;
165 /// Memory Controller Information (Type 5, Obsolete)
168 SMBIOS_STRUCTURE Hdr
;
169 UINT8 ErrDetectMethod
;
170 UINT8 ErrCorrectCapability
;
171 UINT8 SupportInterleave
;
172 UINT8 CurrentInterleave
;
173 UINT8 MaxMemoryModuleSize
;
175 UINT16 SupportMemoryType
;
176 UINT8 MemoryModuleVoltage
;
177 UINT8 AssociatedMemorySlotNum
;
178 UINT16 MemoryModuleConfigHandles
[1];
179 } SMBIOS_TABLE_TYPE5
;
182 /// Memory Module Information (Type 6, Obsolete)
185 SMBIOS_STRUCTURE Hdr
;
186 SMBIOS_TABLE_STRING SocketDesignation
;
187 UINT8 BankConnections
;
189 UINT16 CurrentMemoryType
;
193 } SMBIOS_TABLE_TYPE6
;
196 /// Cache Information (Type 7)
199 SMBIOS_STRUCTURE Hdr
;
200 SMBIOS_TABLE_STRING SocketDesignation
;
201 UINT16 CacheConfiguration
;
202 UINT16 MaximumCacheSize
;
203 UINT16 InstalledSize
;
204 UINT16 SupportedSRAMType
;
205 UINT16 CurrentSRAMType
;
207 UINT8 ErrorCorrectionType
;
208 UINT8 SystemCacheType
;
210 } SMBIOS_TABLE_TYPE7
;
213 /// Port Connector Information (Type 8)
216 SMBIOS_STRUCTURE Hdr
;
217 SMBIOS_TABLE_STRING InternalReferenceDesignator
;
218 UINT8 InternalConnectorType
;
219 SMBIOS_TABLE_STRING ExternalReferenceDesignator
;
220 UINT8 ExternalConnectorType
;
222 } SMBIOS_TABLE_TYPE8
;
225 /// System Slots (Type 9)
228 SMBIOS_STRUCTURE Hdr
;
229 SMBIOS_TABLE_STRING SlotDesignation
;
231 UINT8 SlotDataBusWidth
;
235 UINT8 SlotCharacteristics1
;
236 UINT8 SlotCharacteristics2
;
238 // Add for smbios 2.6
240 UINT16 SegmentGroupNum
;
243 } SMBIOS_TABLE_TYPE9
;
247 SMBIOS_TABLE_STRING DescriptionString
;
251 /// On Board Devices Information (Type 10, obsolete)
254 SMBIOS_STRUCTURE Hdr
;
255 DEVICE_STRUCT Device
[1];
256 } SMBIOS_TABLE_TYPE10
;
259 /// OEM Strings (Type 11)
262 SMBIOS_STRUCTURE Hdr
;
264 } SMBIOS_TABLE_TYPE11
;
267 /// System Configuration Options (Type 12)
270 SMBIOS_STRUCTURE Hdr
;
272 } SMBIOS_TABLE_TYPE12
;
275 /// BIOS Language Information (Type 13)
278 SMBIOS_STRUCTURE Hdr
;
279 UINT8 InstallableLanguages
;
282 SMBIOS_TABLE_STRING CurrentLanguages
;
283 } SMBIOS_TABLE_TYPE13
;
291 /// Group Associations (Type 14)
294 SMBIOS_STRUCTURE Hdr
;
295 SMBIOS_TABLE_STRING GroupName
;
296 GROUP_STRUCT Group
[1];
297 } SMBIOS_TABLE_TYPE14
;
301 UINT8 DataFormatType
;
305 /// System Event Log (Type 15)
308 SMBIOS_STRUCTURE Hdr
;
309 UINT16 LogAreaLength
;
310 UINT16 LogHeaderStartOffset
;
311 UINT16 LogDataStartOffset
;
314 UINT32 LogChangeToken
;
315 UINT32 AccessMethodAddress
;
316 UINT8 LogHeaderFormat
;
317 UINT8 NumberOfSupportedLogTypeDescriptors
;
318 UINT8 LengthOfLogTypeDescriptor
;
319 EVENT_LOG_TYPE EventLogTypeDescriptors
[1];
320 } SMBIOS_TABLE_TYPE15
;
323 /// Physical Memory Array (Type 16)
326 SMBIOS_STRUCTURE Hdr
;
329 UINT8 MemoryErrorCorrection
;
330 UINT32 MaximumCapacity
;
331 UINT16 MemoryErrorInformationHandle
;
332 UINT16 NumberOfMemoryDevices
;
333 } SMBIOS_TABLE_TYPE16
;
336 /// Memory Device (Type 17)
339 SMBIOS_STRUCTURE Hdr
;
340 UINT16 MemoryArrayHandle
;
341 UINT16 MemoryErrorInformationHandle
;
347 SMBIOS_TABLE_STRING DeviceLocator
;
348 SMBIOS_TABLE_STRING BankLocator
;
352 SMBIOS_TABLE_STRING Manufacturer
;
353 SMBIOS_TABLE_STRING SerialNumber
;
354 SMBIOS_TABLE_STRING AssetTag
;
355 SMBIOS_TABLE_STRING PartNumber
;
357 // Add for smbios 2.6
360 } SMBIOS_TABLE_TYPE17
;
363 /// 32-bit Memory Error Information (Type 18)
366 SMBIOS_STRUCTURE Hdr
;
368 UINT8 ErrorGranularity
;
369 UINT8 ErrorOperation
;
370 UINT32 VendorSyndrome
;
371 UINT32 MemoryArrayErrorAddress
;
372 UINT32 DeviceErrorAddress
;
373 UINT32 ErrorResolution
;
374 } SMBIOS_TABLE_TYPE18
;
377 /// Memory Array Mapped Address (Type 19)
380 SMBIOS_STRUCTURE Hdr
;
381 UINT32 StartingAddress
;
382 UINT32 EndingAddress
;
383 UINT16 MemoryArrayHandle
;
384 UINT8 PartitionWidth
;
385 } SMBIOS_TABLE_TYPE19
;
388 /// Memory Device Mapped Address (Type 20)
391 SMBIOS_STRUCTURE Hdr
;
392 UINT32 StartingAddress
;
393 UINT32 EndingAddress
;
394 UINT16 MemoryDeviceHandle
;
395 UINT16 MemoryArrayMappedAddressHandle
;
396 UINT8 PartitionRowPosition
;
397 UINT8 InterleavePosition
;
398 UINT8 InterleavedDataDepth
;
399 } SMBIOS_TABLE_TYPE20
;
402 /// Built-in Pointing Device (Type 21)
405 SMBIOS_STRUCTURE Hdr
;
408 UINT8 NumberOfButtons
;
409 } SMBIOS_TABLE_TYPE21
;
412 /// Portable Battery (Type 22)
415 SMBIOS_STRUCTURE Hdr
;
416 SMBIOS_TABLE_STRING Location
;
417 SMBIOS_TABLE_STRING Manufacturer
;
418 SMBIOS_TABLE_STRING ManufactureDate
;
419 SMBIOS_TABLE_STRING SerialNumber
;
420 SMBIOS_TABLE_STRING DeviceName
;
421 UINT8 DeviceChemistry
;
422 UINT16 DeviceCapacity
;
423 UINT16 DesignVoltage
;
424 SMBIOS_TABLE_STRING SBDSVersionNumber
;
425 UINT8 MaximumErrorInBatteryData
;
426 UINT16 SBDSSerialNumber
;
427 UINT16 SBDSManufactureDate
;
428 SMBIOS_TABLE_STRING SBDSDeviceChemistry
;
429 UINT8 DesignCapacityMultiplier
;
431 } SMBIOS_TABLE_TYPE22
;
434 /// System Reset (Type 23)
437 SMBIOS_STRUCTURE Hdr
;
441 UINT16 TimerInterval
;
443 } SMBIOS_TABLE_TYPE23
;
446 /// Hardware Security (Type 24)
449 SMBIOS_STRUCTURE Hdr
;
450 UINT8 HardwareSecuritySettings
;
451 } SMBIOS_TABLE_TYPE24
;
454 /// System Power Controls (Type 25)
457 SMBIOS_STRUCTURE Hdr
;
458 UINT8 NextScheduledPowerOnMonth
;
459 UINT8 NextScheduledPowerOnDayOfMonth
;
460 UINT8 NextScheduledPowerOnHour
;
461 UINT8 NextScheduledPowerOnMinute
;
462 UINT8 NextScheduledPowerOnSecond
;
463 } SMBIOS_TABLE_TYPE25
;
466 /// Voltage Probe (Type 26)
469 SMBIOS_STRUCTURE Hdr
;
470 SMBIOS_TABLE_STRING Description
;
471 UINT8 LocationAndStatus
;
479 } SMBIOS_TABLE_TYPE26
;
482 /// Cooling Device (Type 27)
485 SMBIOS_STRUCTURE Hdr
;
486 UINT16 TemperatureProbeHandle
;
487 UINT8 DeviceTypeAndStatus
;
488 UINT8 CoolingUnitGroup
;
491 } SMBIOS_TABLE_TYPE27
;
494 /// Temperature Probe (Type 28)
497 SMBIOS_STRUCTURE Hdr
;
498 SMBIOS_TABLE_STRING Description
;
499 UINT8 LocationAndStatus
;
507 } SMBIOS_TABLE_TYPE28
;
510 /// Electrical Current Probe (Type 29)
513 SMBIOS_STRUCTURE Hdr
;
514 SMBIOS_TABLE_STRING Description
;
515 UINT8 LocationAndStatus
;
523 } SMBIOS_TABLE_TYPE29
;
526 /// Out-of-Band Remote Access (Type 30)
529 SMBIOS_STRUCTURE Hdr
;
530 SMBIOS_TABLE_STRING ManufacturerName
;
532 } SMBIOS_TABLE_TYPE30
;
535 /// Boot Integrity Services (BIS) Entry Point (Type 31)
538 SMBIOS_STRUCTURE Hdr
;
546 } SMBIOS_TABLE_TYPE31
;
549 /// System Boot Information (Type 32)
552 SMBIOS_STRUCTURE Hdr
;
555 } SMBIOS_TABLE_TYPE32
;
558 /// 64-bit Memory Error Information (Type 33)
561 SMBIOS_STRUCTURE Hdr
;
563 UINT8 ErrorGranularity
;
564 UINT8 ErrorOperation
;
565 UINT32 VendorSyndrome
;
566 UINT64 MemoryArrayErrorAddress
;
567 UINT64 DeviceErrorAddress
;
568 UINT32 ErrorResolution
;
569 } SMBIOS_TABLE_TYPE33
;
572 /// Management Device (Type 34)
575 SMBIOS_STRUCTURE Hdr
;
576 SMBIOS_TABLE_STRING Description
;
580 } SMBIOS_TABLE_TYPE34
;
583 /// Management Device Component (Type 35)
586 SMBIOS_STRUCTURE Hdr
;
587 SMBIOS_TABLE_STRING Description
;
588 UINT16 ManagementDeviceHandle
;
589 UINT16 ComponentHandle
;
590 UINT16 ThresholdHandle
;
591 } SMBIOS_TABLE_TYPE35
;
594 /// Management Device Threshold Data (Type 36)
597 SMBIOS_STRUCTURE Hdr
;
598 UINT16 LowerThresholdNonCritical
;
599 UINT16 UpperThresholdNonCritical
;
600 UINT16 LowerThresholdCritical
;
601 UINT16 UpperThresholdCritical
;
602 UINT16 LowerThresholdNonRecoverable
;
603 UINT16 UpperThresholdNonRecoverable
;
604 } SMBIOS_TABLE_TYPE36
;
612 /// Memory Channel (Type 37)
615 SMBIOS_STRUCTURE Hdr
;
617 UINT8 MaximumChannelLoad
;
618 UINT8 MemoryDeviceCount
;
619 MEMORY_DEVICE MemoryDevice
[1];
620 } SMBIOS_TABLE_TYPE37
;
623 /// IPMI Device Information (Type 38)
626 SMBIOS_STRUCTURE Hdr
;
628 UINT8 IPMISpecificationRevision
;
629 UINT8 I2CSlaveAddress
;
630 UINT8 NVStorageDeviceAddress
;
632 UINT8 BaseAddressModifier_InterruptInfo
;
633 UINT8 InterruptNumber
;
634 } SMBIOS_TABLE_TYPE38
;
637 /// System Power Supply (Type 39)
640 SMBIOS_STRUCTURE Hdr
;
641 UINT8 PowerUnitGroup
;
642 SMBIOS_TABLE_STRING Location
;
643 SMBIOS_TABLE_STRING DeviceName
;
644 SMBIOS_TABLE_STRING Manufacturer
;
645 SMBIOS_TABLE_STRING SerialNumber
;
646 SMBIOS_TABLE_STRING AssetTagNumber
;
647 SMBIOS_TABLE_STRING ModelPartNumber
;
648 SMBIOS_TABLE_STRING RevisionLevel
;
649 UINT16 MaxPowerCapacity
;
650 UINT16 PowerSupplyCharacteristics
;
651 UINT16 InputVoltageProbeHandle
;
652 UINT16 CoolingDeviceHandle
;
653 UINT16 InputCurrentProbeHandle
;
654 } SMBIOS_TABLE_TYPE39
;
658 UINT16 ReferencedHandle
;
659 UINT8 ReferencedOffset
;
660 SMBIOS_TABLE_STRING EntryString
;
662 }ADDITIONAL_INFORMATION_ENTRY
;
665 /// Additional Information (Type 40)
668 SMBIOS_STRUCTURE Hdr
;
669 UINT8 NumberOfAdditionalInformationEntries
;
670 ADDITIONAL_INFORMATION_ENTRY AdditionalInfoEntries
[1];
671 } SMBIOS_TABLE_TYPE40
;
674 /// Onboard Devices Extended Information (Type 41)
677 SMBIOS_STRUCTURE Hdr
;
678 SMBIOS_TABLE_STRING ReferenceDesignation
;
680 UINT8 DeviceTypeInstance
;
681 UINT16 SegmentGroupNum
;
684 } SMBIOS_TABLE_TYPE41
;
687 /// Inactive (Type 126)
690 SMBIOS_STRUCTURE Hdr
;
691 } SMBIOS_TABLE_TYPE126
;
694 /// End-of-Table (Type 127)
697 SMBIOS_STRUCTURE Hdr
;
698 } SMBIOS_TABLE_TYPE127
;
701 /// Union of all the possible SMBIOS record types
704 SMBIOS_STRUCTURE
*Hdr
;
705 SMBIOS_TABLE_TYPE0
*Type0
;
706 SMBIOS_TABLE_TYPE1
*Type1
;
707 SMBIOS_TABLE_TYPE2
*Type2
;
708 SMBIOS_TABLE_TYPE3
*Type3
;
709 SMBIOS_TABLE_TYPE4
*Type4
;
710 SMBIOS_TABLE_TYPE5
*Type5
;
711 SMBIOS_TABLE_TYPE6
*Type6
;
712 SMBIOS_TABLE_TYPE7
*Type7
;
713 SMBIOS_TABLE_TYPE8
*Type8
;
714 SMBIOS_TABLE_TYPE9
*Type9
;
715 SMBIOS_TABLE_TYPE10
*Type10
;
716 SMBIOS_TABLE_TYPE11
*Type11
;
717 SMBIOS_TABLE_TYPE12
*Type12
;
718 SMBIOS_TABLE_TYPE13
*Type13
;
719 SMBIOS_TABLE_TYPE14
*Type14
;
720 SMBIOS_TABLE_TYPE15
*Type15
;
721 SMBIOS_TABLE_TYPE16
*Type16
;
722 SMBIOS_TABLE_TYPE17
*Type17
;
723 SMBIOS_TABLE_TYPE18
*Type18
;
724 SMBIOS_TABLE_TYPE19
*Type19
;
725 SMBIOS_TABLE_TYPE20
*Type20
;
726 SMBIOS_TABLE_TYPE21
*Type21
;
727 SMBIOS_TABLE_TYPE22
*Type22
;
728 SMBIOS_TABLE_TYPE23
*Type23
;
729 SMBIOS_TABLE_TYPE24
*Type24
;
730 SMBIOS_TABLE_TYPE25
*Type25
;
731 SMBIOS_TABLE_TYPE26
*Type26
;
732 SMBIOS_TABLE_TYPE27
*Type27
;
733 SMBIOS_TABLE_TYPE28
*Type28
;
734 SMBIOS_TABLE_TYPE29
*Type29
;
735 SMBIOS_TABLE_TYPE30
*Type30
;
736 SMBIOS_TABLE_TYPE31
*Type31
;
737 SMBIOS_TABLE_TYPE32
*Type32
;
738 SMBIOS_TABLE_TYPE33
*Type33
;
739 SMBIOS_TABLE_TYPE34
*Type34
;
740 SMBIOS_TABLE_TYPE35
*Type35
;
741 SMBIOS_TABLE_TYPE36
*Type36
;
742 SMBIOS_TABLE_TYPE37
*Type37
;
743 SMBIOS_TABLE_TYPE38
*Type38
;
744 SMBIOS_TABLE_TYPE39
*Type39
;
745 SMBIOS_TABLE_TYPE40
*Type40
;
746 SMBIOS_TABLE_TYPE41
*Type41
;
747 SMBIOS_TABLE_TYPE126
*Type126
;
748 SMBIOS_TABLE_TYPE127
*Type127
;
750 } SMBIOS_STRUCTURE_POINTER
;