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
48 /// String Number for a Null terminated string, 00h stands for no string available.
50 typedef UINT8 SMBIOS_TABLE_STRING
;
53 /// BIOS Information (Type 0)
57 SMBIOS_TABLE_STRING Vendor
;
58 SMBIOS_TABLE_STRING BiosVersion
;
60 SMBIOS_TABLE_STRING BiosReleaseDate
;
62 UINT64 BiosCharacteristics
;
63 UINT8 BIOSCharacteristicsExtensionBytes
[2];
64 UINT8 SystemBiosMajorRelease
;
65 UINT8 SystemBiosMinorRelease
;
66 UINT8 EmbeddedControllerFirmwareMajorRelease
;
67 UINT8 EmbeddedControllerFirmwareMinorRelease
;
71 /// System Information (Type 1)
75 SMBIOS_TABLE_STRING Manufacturer
;
76 SMBIOS_TABLE_STRING ProductName
;
77 SMBIOS_TABLE_STRING Version
;
78 SMBIOS_TABLE_STRING SerialNumber
;
81 SMBIOS_TABLE_STRING SKUNumber
;
82 SMBIOS_TABLE_STRING Family
;
86 /// Base Board (or Module) Information (Type 2)
90 SMBIOS_TABLE_STRING Manufacturer
;
91 SMBIOS_TABLE_STRING ProductName
;
92 SMBIOS_TABLE_STRING Version
;
93 SMBIOS_TABLE_STRING SerialNumber
;
94 SMBIOS_TABLE_STRING AssetTag
;
96 SMBIOS_TABLE_STRING LocationInChassis
;
99 UINT8 NumberOfContainedObjectHandles
;
100 UINT16 ContainedObjectHandles
[1];
101 } SMBIOS_TABLE_TYPE2
;
104 /// Contained Element record
107 UINT8 ContainedElementType
;
108 UINT8 ContainedElementMinimum
;
109 UINT8 ContainedElementMaximum
;
113 /// System Enclosure or Chassis (Type 3)
116 SMBIOS_STRUCTURE Hdr
;
117 SMBIOS_TABLE_STRING Manufacturer
;
119 SMBIOS_TABLE_STRING Version
;
120 SMBIOS_TABLE_STRING SerialNumber
;
121 SMBIOS_TABLE_STRING AssetTag
;
123 UINT8 PowerSupplyState
;
125 UINT8 SecurityStatus
;
128 UINT8 NumberofPowerCords
;
129 UINT8 ContainedElementCount
;
130 UINT8 ContainedElementRecordLength
;
131 CONTAINED_ELEMENT ContainedElements
[1];
132 } SMBIOS_TABLE_TYPE3
;
135 /// Processor Information (Type 4)
138 SMBIOS_STRUCTURE Hdr
;
141 UINT8 ProcessorFamily
;
142 SMBIOS_TABLE_STRING ProcessorManufacture
;
143 UINT8 ProcessorId
[8];
144 SMBIOS_TABLE_STRING ProcessorVersion
;
146 UINT16 ExternalClock
;
150 UINT8 ProcessorUpgrade
;
151 UINT16 L1CacheHandle
;
152 UINT16 L2CacheHandle
;
153 UINT16 L3CacheHandle
;
154 SMBIOS_TABLE_STRING SerialNumber
;
155 SMBIOS_TABLE_STRING AssetTag
;
156 SMBIOS_TABLE_STRING PartNumber
;
158 // Add for smbios 2.5
161 UINT8 EnabledCoreCount
;
163 UINT16 ProcessorCharacteristics
;
165 // Add for smbios 2.6
167 UINT16 ProcessorFamily2
;
168 } SMBIOS_TABLE_TYPE4
;
171 /// Memory Controller Information (Type 5, Obsolete)
174 SMBIOS_STRUCTURE Hdr
;
175 UINT8 ErrDetectMethod
;
176 UINT8 ErrCorrectCapability
;
177 UINT8 SupportInterleave
;
178 UINT8 CurrentInterleave
;
179 UINT8 MaxMemoryModuleSize
;
181 UINT16 SupportMemoryType
;
182 UINT8 MemoryModuleVoltage
;
183 UINT8 AssociatedMemorySlotNum
;
184 UINT16 MemoryModuleConfigHandles
[1];
185 } SMBIOS_TABLE_TYPE5
;
188 /// Memory Module Information (Type 6, Obsolete)
191 SMBIOS_STRUCTURE Hdr
;
192 SMBIOS_TABLE_STRING SocketDesignation
;
193 UINT8 BankConnections
;
195 UINT16 CurrentMemoryType
;
199 } SMBIOS_TABLE_TYPE6
;
202 /// Cache Information (Type 7)
205 SMBIOS_STRUCTURE Hdr
;
206 SMBIOS_TABLE_STRING SocketDesignation
;
207 UINT16 CacheConfiguration
;
208 UINT16 MaximumCacheSize
;
209 UINT16 InstalledSize
;
210 UINT16 SupportedSRAMType
;
211 UINT16 CurrentSRAMType
;
213 UINT8 ErrorCorrectionType
;
214 UINT8 SystemCacheType
;
216 } SMBIOS_TABLE_TYPE7
;
219 /// Port Connector Information (Type 8)
222 SMBIOS_STRUCTURE Hdr
;
223 SMBIOS_TABLE_STRING InternalReferenceDesignator
;
224 UINT8 InternalConnectorType
;
225 SMBIOS_TABLE_STRING ExternalReferenceDesignator
;
226 UINT8 ExternalConnectorType
;
228 } SMBIOS_TABLE_TYPE8
;
231 /// System Slots (Type 9)
234 SMBIOS_STRUCTURE Hdr
;
235 SMBIOS_TABLE_STRING SlotDesignation
;
237 UINT8 SlotDataBusWidth
;
241 UINT8 SlotCharacteristics1
;
242 UINT8 SlotCharacteristics2
;
244 // Add for smbios 2.6
246 UINT16 SegmentGroupNum
;
249 } SMBIOS_TABLE_TYPE9
;
252 /// Device Item Entry
256 SMBIOS_TABLE_STRING DescriptionString
;
260 /// On Board Devices Information (Type 10, obsolete)
263 SMBIOS_STRUCTURE Hdr
;
264 DEVICE_STRUCT Device
[1];
265 } SMBIOS_TABLE_TYPE10
;
268 /// OEM Strings (Type 11)
271 SMBIOS_STRUCTURE Hdr
;
273 } SMBIOS_TABLE_TYPE11
;
276 /// System Configuration Options (Type 12)
279 SMBIOS_STRUCTURE Hdr
;
281 } SMBIOS_TABLE_TYPE12
;
284 /// BIOS Language Information (Type 13)
287 SMBIOS_STRUCTURE Hdr
;
288 UINT8 InstallableLanguages
;
291 SMBIOS_TABLE_STRING CurrentLanguages
;
292 } SMBIOS_TABLE_TYPE13
;
303 /// Group Associations (Type 14)
306 SMBIOS_STRUCTURE Hdr
;
307 SMBIOS_TABLE_STRING GroupName
;
308 GROUP_STRUCT Group
[1];
309 } SMBIOS_TABLE_TYPE14
;
312 /// Event Log Type Descriptors
316 UINT8 DataFormatType
;
320 /// System Event Log (Type 15)
323 SMBIOS_STRUCTURE Hdr
;
324 UINT16 LogAreaLength
;
325 UINT16 LogHeaderStartOffset
;
326 UINT16 LogDataStartOffset
;
329 UINT32 LogChangeToken
;
330 UINT32 AccessMethodAddress
;
331 UINT8 LogHeaderFormat
;
332 UINT8 NumberOfSupportedLogTypeDescriptors
;
333 UINT8 LengthOfLogTypeDescriptor
;
334 EVENT_LOG_TYPE EventLogTypeDescriptors
[1];
335 } SMBIOS_TABLE_TYPE15
;
338 /// Physical Memory Array (Type 16)
341 SMBIOS_STRUCTURE Hdr
;
344 UINT8 MemoryErrorCorrection
;
345 UINT32 MaximumCapacity
;
346 UINT16 MemoryErrorInformationHandle
;
347 UINT16 NumberOfMemoryDevices
;
348 } SMBIOS_TABLE_TYPE16
;
351 /// Memory Device (Type 17)
354 SMBIOS_STRUCTURE Hdr
;
355 UINT16 MemoryArrayHandle
;
356 UINT16 MemoryErrorInformationHandle
;
362 SMBIOS_TABLE_STRING DeviceLocator
;
363 SMBIOS_TABLE_STRING BankLocator
;
367 SMBIOS_TABLE_STRING Manufacturer
;
368 SMBIOS_TABLE_STRING SerialNumber
;
369 SMBIOS_TABLE_STRING AssetTag
;
370 SMBIOS_TABLE_STRING PartNumber
;
372 // Add for smbios 2.6
375 } SMBIOS_TABLE_TYPE17
;
378 /// 32-bit Memory Error Information (Type 18)
381 SMBIOS_STRUCTURE Hdr
;
383 UINT8 ErrorGranularity
;
384 UINT8 ErrorOperation
;
385 UINT32 VendorSyndrome
;
386 UINT32 MemoryArrayErrorAddress
;
387 UINT32 DeviceErrorAddress
;
388 UINT32 ErrorResolution
;
389 } SMBIOS_TABLE_TYPE18
;
392 /// Memory Array Mapped Address (Type 19)
395 SMBIOS_STRUCTURE Hdr
;
396 UINT32 StartingAddress
;
397 UINT32 EndingAddress
;
398 UINT16 MemoryArrayHandle
;
399 UINT8 PartitionWidth
;
400 } SMBIOS_TABLE_TYPE19
;
403 /// Memory Device Mapped Address (Type 20)
406 SMBIOS_STRUCTURE Hdr
;
407 UINT32 StartingAddress
;
408 UINT32 EndingAddress
;
409 UINT16 MemoryDeviceHandle
;
410 UINT16 MemoryArrayMappedAddressHandle
;
411 UINT8 PartitionRowPosition
;
412 UINT8 InterleavePosition
;
413 UINT8 InterleavedDataDepth
;
414 } SMBIOS_TABLE_TYPE20
;
417 /// Built-in Pointing Device (Type 21)
420 SMBIOS_STRUCTURE Hdr
;
423 UINT8 NumberOfButtons
;
424 } SMBIOS_TABLE_TYPE21
;
427 /// Portable Battery (Type 22)
430 SMBIOS_STRUCTURE Hdr
;
431 SMBIOS_TABLE_STRING Location
;
432 SMBIOS_TABLE_STRING Manufacturer
;
433 SMBIOS_TABLE_STRING ManufactureDate
;
434 SMBIOS_TABLE_STRING SerialNumber
;
435 SMBIOS_TABLE_STRING DeviceName
;
436 UINT8 DeviceChemistry
;
437 UINT16 DeviceCapacity
;
438 UINT16 DesignVoltage
;
439 SMBIOS_TABLE_STRING SBDSVersionNumber
;
440 UINT8 MaximumErrorInBatteryData
;
441 UINT16 SBDSSerialNumber
;
442 UINT16 SBDSManufactureDate
;
443 SMBIOS_TABLE_STRING SBDSDeviceChemistry
;
444 UINT8 DesignCapacityMultiplier
;
446 } SMBIOS_TABLE_TYPE22
;
449 /// System Reset (Type 23)
452 SMBIOS_STRUCTURE Hdr
;
456 UINT16 TimerInterval
;
458 } SMBIOS_TABLE_TYPE23
;
461 /// Hardware Security (Type 24)
464 SMBIOS_STRUCTURE Hdr
;
465 UINT8 HardwareSecuritySettings
;
466 } SMBIOS_TABLE_TYPE24
;
469 /// System Power Controls (Type 25)
472 SMBIOS_STRUCTURE Hdr
;
473 UINT8 NextScheduledPowerOnMonth
;
474 UINT8 NextScheduledPowerOnDayOfMonth
;
475 UINT8 NextScheduledPowerOnHour
;
476 UINT8 NextScheduledPowerOnMinute
;
477 UINT8 NextScheduledPowerOnSecond
;
478 } SMBIOS_TABLE_TYPE25
;
481 /// Voltage Probe (Type 26)
484 SMBIOS_STRUCTURE Hdr
;
485 SMBIOS_TABLE_STRING Description
;
486 UINT8 LocationAndStatus
;
494 } SMBIOS_TABLE_TYPE26
;
497 /// Cooling Device (Type 27)
500 SMBIOS_STRUCTURE Hdr
;
501 UINT16 TemperatureProbeHandle
;
502 UINT8 DeviceTypeAndStatus
;
503 UINT8 CoolingUnitGroup
;
506 } SMBIOS_TABLE_TYPE27
;
509 /// Temperature Probe (Type 28)
512 SMBIOS_STRUCTURE Hdr
;
513 SMBIOS_TABLE_STRING Description
;
514 UINT8 LocationAndStatus
;
522 } SMBIOS_TABLE_TYPE28
;
525 /// Electrical Current Probe (Type 29)
528 SMBIOS_STRUCTURE Hdr
;
529 SMBIOS_TABLE_STRING Description
;
530 UINT8 LocationAndStatus
;
538 } SMBIOS_TABLE_TYPE29
;
541 /// Out-of-Band Remote Access (Type 30)
544 SMBIOS_STRUCTURE Hdr
;
545 SMBIOS_TABLE_STRING ManufacturerName
;
547 } SMBIOS_TABLE_TYPE30
;
550 /// Boot Integrity Services (BIS) Entry Point (Type 31)
553 SMBIOS_STRUCTURE Hdr
;
561 } SMBIOS_TABLE_TYPE31
;
564 /// System Boot Information (Type 32)
567 SMBIOS_STRUCTURE Hdr
;
570 } SMBIOS_TABLE_TYPE32
;
573 /// 64-bit Memory Error Information (Type 33)
576 SMBIOS_STRUCTURE Hdr
;
578 UINT8 ErrorGranularity
;
579 UINT8 ErrorOperation
;
580 UINT32 VendorSyndrome
;
581 UINT64 MemoryArrayErrorAddress
;
582 UINT64 DeviceErrorAddress
;
583 UINT32 ErrorResolution
;
584 } SMBIOS_TABLE_TYPE33
;
587 /// Management Device (Type 34)
590 SMBIOS_STRUCTURE Hdr
;
591 SMBIOS_TABLE_STRING Description
;
595 } SMBIOS_TABLE_TYPE34
;
598 /// Management Device Component (Type 35)
601 SMBIOS_STRUCTURE Hdr
;
602 SMBIOS_TABLE_STRING Description
;
603 UINT16 ManagementDeviceHandle
;
604 UINT16 ComponentHandle
;
605 UINT16 ThresholdHandle
;
606 } SMBIOS_TABLE_TYPE35
;
609 /// Management Device Threshold Data (Type 36)
612 SMBIOS_STRUCTURE Hdr
;
613 UINT16 LowerThresholdNonCritical
;
614 UINT16 UpperThresholdNonCritical
;
615 UINT16 LowerThresholdCritical
;
616 UINT16 UpperThresholdCritical
;
617 UINT16 LowerThresholdNonRecoverable
;
618 UINT16 UpperThresholdNonRecoverable
;
619 } SMBIOS_TABLE_TYPE36
;
622 /// Memory Channel Entry
630 /// Memory Channel (Type 37)
633 SMBIOS_STRUCTURE Hdr
;
635 UINT8 MaximumChannelLoad
;
636 UINT8 MemoryDeviceCount
;
637 MEMORY_DEVICE MemoryDevice
[1];
638 } SMBIOS_TABLE_TYPE37
;
641 /// IPMI Device Information (Type 38)
644 SMBIOS_STRUCTURE Hdr
;
646 UINT8 IPMISpecificationRevision
;
647 UINT8 I2CSlaveAddress
;
648 UINT8 NVStorageDeviceAddress
;
650 UINT8 BaseAddressModifier_InterruptInfo
;
651 UINT8 InterruptNumber
;
652 } SMBIOS_TABLE_TYPE38
;
655 /// System Power Supply (Type 39)
658 SMBIOS_STRUCTURE Hdr
;
659 UINT8 PowerUnitGroup
;
660 SMBIOS_TABLE_STRING Location
;
661 SMBIOS_TABLE_STRING DeviceName
;
662 SMBIOS_TABLE_STRING Manufacturer
;
663 SMBIOS_TABLE_STRING SerialNumber
;
664 SMBIOS_TABLE_STRING AssetTagNumber
;
665 SMBIOS_TABLE_STRING ModelPartNumber
;
666 SMBIOS_TABLE_STRING RevisionLevel
;
667 UINT16 MaxPowerCapacity
;
668 UINT16 PowerSupplyCharacteristics
;
669 UINT16 InputVoltageProbeHandle
;
670 UINT16 CoolingDeviceHandle
;
671 UINT16 InputCurrentProbeHandle
;
672 } SMBIOS_TABLE_TYPE39
;
675 /// Additional Information Entry Format
679 UINT16 ReferencedHandle
;
680 UINT8 ReferencedOffset
;
681 SMBIOS_TABLE_STRING EntryString
;
683 }ADDITIONAL_INFORMATION_ENTRY
;
686 /// Additional Information (Type 40)
689 SMBIOS_STRUCTURE Hdr
;
690 UINT8 NumberOfAdditionalInformationEntries
;
691 ADDITIONAL_INFORMATION_ENTRY AdditionalInfoEntries
[1];
692 } SMBIOS_TABLE_TYPE40
;
695 /// Onboard Devices Extended Information (Type 41)
698 SMBIOS_STRUCTURE Hdr
;
699 SMBIOS_TABLE_STRING ReferenceDesignation
;
701 UINT8 DeviceTypeInstance
;
702 UINT16 SegmentGroupNum
;
705 } SMBIOS_TABLE_TYPE41
;
708 /// Inactive (Type 126)
711 SMBIOS_STRUCTURE Hdr
;
712 } SMBIOS_TABLE_TYPE126
;
715 /// End-of-Table (Type 127)
718 SMBIOS_STRUCTURE Hdr
;
719 } SMBIOS_TABLE_TYPE127
;
722 /// Union of all the possible SMBIOS record types
725 SMBIOS_STRUCTURE
*Hdr
;
726 SMBIOS_TABLE_TYPE0
*Type0
;
727 SMBIOS_TABLE_TYPE1
*Type1
;
728 SMBIOS_TABLE_TYPE2
*Type2
;
729 SMBIOS_TABLE_TYPE3
*Type3
;
730 SMBIOS_TABLE_TYPE4
*Type4
;
731 SMBIOS_TABLE_TYPE5
*Type5
;
732 SMBIOS_TABLE_TYPE6
*Type6
;
733 SMBIOS_TABLE_TYPE7
*Type7
;
734 SMBIOS_TABLE_TYPE8
*Type8
;
735 SMBIOS_TABLE_TYPE9
*Type9
;
736 SMBIOS_TABLE_TYPE10
*Type10
;
737 SMBIOS_TABLE_TYPE11
*Type11
;
738 SMBIOS_TABLE_TYPE12
*Type12
;
739 SMBIOS_TABLE_TYPE13
*Type13
;
740 SMBIOS_TABLE_TYPE14
*Type14
;
741 SMBIOS_TABLE_TYPE15
*Type15
;
742 SMBIOS_TABLE_TYPE16
*Type16
;
743 SMBIOS_TABLE_TYPE17
*Type17
;
744 SMBIOS_TABLE_TYPE18
*Type18
;
745 SMBIOS_TABLE_TYPE19
*Type19
;
746 SMBIOS_TABLE_TYPE20
*Type20
;
747 SMBIOS_TABLE_TYPE21
*Type21
;
748 SMBIOS_TABLE_TYPE22
*Type22
;
749 SMBIOS_TABLE_TYPE23
*Type23
;
750 SMBIOS_TABLE_TYPE24
*Type24
;
751 SMBIOS_TABLE_TYPE25
*Type25
;
752 SMBIOS_TABLE_TYPE26
*Type26
;
753 SMBIOS_TABLE_TYPE27
*Type27
;
754 SMBIOS_TABLE_TYPE28
*Type28
;
755 SMBIOS_TABLE_TYPE29
*Type29
;
756 SMBIOS_TABLE_TYPE30
*Type30
;
757 SMBIOS_TABLE_TYPE31
*Type31
;
758 SMBIOS_TABLE_TYPE32
*Type32
;
759 SMBIOS_TABLE_TYPE33
*Type33
;
760 SMBIOS_TABLE_TYPE34
*Type34
;
761 SMBIOS_TABLE_TYPE35
*Type35
;
762 SMBIOS_TABLE_TYPE36
*Type36
;
763 SMBIOS_TABLE_TYPE37
*Type37
;
764 SMBIOS_TABLE_TYPE38
*Type38
;
765 SMBIOS_TABLE_TYPE39
*Type39
;
766 SMBIOS_TABLE_TYPE40
*Type40
;
767 SMBIOS_TABLE_TYPE41
*Type41
;
768 SMBIOS_TABLE_TYPE126
*Type126
;
769 SMBIOS_TABLE_TYPE127
*Type127
;
771 } SMBIOS_STRUCTURE_POINTER
;