2 Industry Standard Definitions of SMBIOS tables.
5 Copyright (c) 2006 - 2007, Intel Corporation All rights
6 reserved. This program and the accompanying materials are
7 licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 @par Revision Reference: SMBIOS 2.0
18 #ifndef __SMBIOS_STANDARD_H__
19 #define __SMBIOS_STANDARD_H__
21 // Smbios Table Entry Point Structure
25 UINT8 AnchorString
[4];
26 UINT8 EntryPointStructureChecksum
;
27 UINT8 EntryPointLength
;
30 UINT16 MaxStructureSize
;
31 UINT8 EntryPointRevision
;
32 UINT8 FormattedArea
[5];
33 UINT8 IntermediateAnchorString
[5];
34 UINT8 IntermediateChecksum
;
37 UINT16 NumberOfSmbiosStructures
;
38 UINT8 SmbiosBcdRevision
;
39 } SMBIOS_TABLE_ENTRY_POINT
;
42 // The Smbios structure header
50 typedef UINT8 SMBIOS_TABLE_STRING
;
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
;
69 SMBIOS_TABLE_STRING Manufacturer
;
70 SMBIOS_TABLE_STRING ProductName
;
71 SMBIOS_TABLE_STRING Version
;
72 SMBIOS_TABLE_STRING SerialNumber
;
75 SMBIOS_TABLE_STRING SKUNumber
;
76 SMBIOS_TABLE_STRING Family
;
81 SMBIOS_TABLE_STRING Manufacturer
;
82 SMBIOS_TABLE_STRING ProductName
;
83 SMBIOS_TABLE_STRING Version
;
84 SMBIOS_TABLE_STRING SerialNumber
;
85 SMBIOS_TABLE_STRING AssetTag
;
87 SMBIOS_TABLE_STRING LocationInChassis
;
90 UINT8 NumberOfContainedObjectHandles
;
91 UINT16 ContainedObjectHandles
[1];
95 UINT8 ContainedElementType
;
96 UINT8 ContainedElementMinimum
;
97 UINT8 ContainedElementMaximum
;
101 SMBIOS_STRUCTURE Hdr
;
102 SMBIOS_TABLE_STRING Manufacturer
;
104 SMBIOS_TABLE_STRING Version
;
105 SMBIOS_TABLE_STRING SerialNumber
;
106 SMBIOS_TABLE_STRING AssetTag
;
108 UINT8 PowerSupplyState
;
110 UINT8 SecurityStatus
;
113 UINT8 NumberofPowerCords
;
114 UINT8 ContainedElementCount
;
115 UINT8 ContainedElementRecordLength
;
116 CONTAINED_ELEMENT ContainedElements
[1];
117 } SMBIOS_TABLE_TYPE3
;
120 SMBIOS_STRUCTURE Hdr
;
123 UINT8 ProcessorFamily
;
124 SMBIOS_TABLE_STRING ProcessorManufacture
;
125 UINT8 ProcessorId
[8];
126 SMBIOS_TABLE_STRING ProcessorVersion
;
128 UINT16 ExternalClock
;
132 UINT8 ProcessorUpgrade
;
133 UINT16 L1CacheHandle
;
134 UINT16 L2CacheHandle
;
135 UINT16 L3CacheHandle
;
136 SMBIOS_TABLE_STRING SerialNumber
;
137 SMBIOS_TABLE_STRING AssetTag
;
138 SMBIOS_TABLE_STRING PartNumber
;
140 // Add for smbios 2.5
143 UINT8 EnabledCoreCount
;
145 UINT16 ProcessorCharacteristics
;
147 // Add for smbios 2.6
149 UINT16 ProcessorFamily2
;
150 } SMBIOS_TABLE_TYPE4
;
153 SMBIOS_STRUCTURE Hdr
;
154 UINT8 ErrDetectMethod
;
155 UINT8 ErrCorrectCapability
;
156 UINT8 SupportInterleave
;
157 UINT8 CurrentInterleave
;
158 UINT8 MaxMemoryModuleSize
;
160 UINT16 SupportMemoryType
;
161 UINT8 MemoryModuleVoltage
;
162 UINT8 AssociatedMemorySlotNum
;
163 UINT16 MemoryModuleConfigHandles
[1];
164 // UINT8 EnableErrCorrectCapabilities;
165 } SMBIOS_TABLE_TYPE5
;
168 SMBIOS_STRUCTURE Hdr
;
169 SMBIOS_TABLE_STRING SocketDesignation
;
170 UINT8 BankConnections
;
172 UINT16 CurrentMemoryType
;
176 } SMBIOS_TABLE_TYPE6
;
179 SMBIOS_STRUCTURE Hdr
;
180 SMBIOS_TABLE_STRING SocketDesignation
;
181 UINT16 CacheConfiguration
;
182 UINT16 MaximumCacheSize
;
183 UINT16 InstalledSize
;
184 UINT16 SupportedSRAMType
;
185 UINT16 CurrentSRAMType
;
187 UINT8 ErrorCorrectionType
;
188 UINT8 SystemCacheType
;
190 } SMBIOS_TABLE_TYPE7
;
193 SMBIOS_STRUCTURE Hdr
;
194 SMBIOS_TABLE_STRING InternalReferenceDesignator
;
195 UINT8 InternalConnectorType
;
196 SMBIOS_TABLE_STRING ExternalReferenceDesignator
;
197 UINT8 ExternalConnectorType
;
199 } SMBIOS_TABLE_TYPE8
;
202 SMBIOS_STRUCTURE Hdr
;
203 SMBIOS_TABLE_STRING SlotDesignation
;
205 UINT8 SlotDataBusWidth
;
209 UINT8 SlotCharacteristics1
;
210 UINT8 SlotCharacteristics2
;
212 // Add for smbios 2.6
214 UINT16 SegmentGroupNum
;
217 } SMBIOS_TABLE_TYPE9
;
221 SMBIOS_TABLE_STRING DescriptionString
;
225 SMBIOS_STRUCTURE Hdr
;
226 DEVICE_STRUCT Device
[1];
227 } SMBIOS_TABLE_TYPE10
;
230 SMBIOS_STRUCTURE Hdr
;
232 } SMBIOS_TABLE_TYPE11
;
235 SMBIOS_STRUCTURE Hdr
;
237 } SMBIOS_TABLE_TYPE12
;
240 SMBIOS_STRUCTURE Hdr
;
241 UINT8 InstallableLanguages
;
244 SMBIOS_TABLE_STRING CurrentLanguages
;
245 } SMBIOS_TABLE_TYPE13
;
253 SMBIOS_STRUCTURE Hdr
;
254 SMBIOS_TABLE_STRING GroupName
;
255 GROUP_STRUCT Group
[1];
256 } SMBIOS_TABLE_TYPE14
;
260 UINT8 DataFormatType
;
264 SMBIOS_STRUCTURE Hdr
;
265 UINT16 LogAreaLength
;
266 UINT16 LogHeaderStartOffset
;
267 UINT16 LogDataStartOffset
;
270 UINT32 LogChangeToken
;
271 UINT32 AccessMethodAddress
;
272 UINT8 LogHeaderFormat
;
273 UINT8 NumberOfSupportedLogTypeDescriptors
;
274 UINT8 LengthOfLogTypeDescriptor
;
275 EVENT_LOG_TYPE EventLogTypeDescriptors
[1];
276 } SMBIOS_TABLE_TYPE15
;
279 SMBIOS_STRUCTURE Hdr
;
282 UINT8 MemoryErrorCorrection
;
283 UINT32 MaximumCapacity
;
284 UINT16 MemoryErrorInformationHandle
;
285 UINT16 NumberOfMemoryDevices
;
286 } SMBIOS_TABLE_TYPE16
;
289 SMBIOS_STRUCTURE Hdr
;
290 UINT16 MemoryArrayHandle
;
291 UINT16 MemoryErrorInformationHandle
;
297 SMBIOS_TABLE_STRING DeviceLocator
;
298 SMBIOS_TABLE_STRING BankLocator
;
302 SMBIOS_TABLE_STRING Manufacturer
;
303 SMBIOS_TABLE_STRING SerialNumber
;
304 SMBIOS_TABLE_STRING AssetTag
;
305 SMBIOS_TABLE_STRING PartNumber
;
307 // Add for smbios 2.6
310 } SMBIOS_TABLE_TYPE17
;
313 SMBIOS_STRUCTURE Hdr
;
315 UINT8 ErrorGranularity
;
316 UINT8 ErrorOperation
;
317 UINT32 VendorSyndrome
;
318 UINT32 MemoryArrayErrorAddress
;
319 UINT32 DeviceErrorAddress
;
320 UINT32 ErrorResolution
;
321 } SMBIOS_TABLE_TYPE18
;
324 SMBIOS_STRUCTURE Hdr
;
325 UINT32 StartingAddress
;
326 UINT32 EndingAddress
;
327 UINT16 MemoryArrayHandle
;
328 UINT8 PartitionWidth
;
329 } SMBIOS_TABLE_TYPE19
;
332 SMBIOS_STRUCTURE Hdr
;
333 UINT32 StartingAddress
;
334 UINT32 EndingAddress
;
335 UINT16 MemoryDeviceHandle
;
336 UINT16 MemoryArrayMappedAddressHandle
;
337 UINT8 PartitionRowPosition
;
338 UINT8 InterleavePosition
;
339 UINT8 InterleavedDataDepth
;
340 } SMBIOS_TABLE_TYPE20
;
343 SMBIOS_STRUCTURE Hdr
;
346 UINT8 NumberOfButtons
;
347 } SMBIOS_TABLE_TYPE21
;
350 SMBIOS_STRUCTURE Hdr
;
351 SMBIOS_TABLE_STRING Location
;
352 SMBIOS_TABLE_STRING Manufacturer
;
353 SMBIOS_TABLE_STRING ManufactureDate
;
354 SMBIOS_TABLE_STRING SerialNumber
;
355 SMBIOS_TABLE_STRING DeviceName
;
356 UINT8 DeviceChemistry
;
357 UINT16 DeviceCapacity
;
358 UINT16 DesignVoltage
;
359 SMBIOS_TABLE_STRING SBDSVersionNumber
;
360 UINT8 MaximumErrorInBatteryData
;
361 UINT16 SBDSSerialNumber
;
362 UINT16 SBDSManufactureDate
;
363 SMBIOS_TABLE_STRING SBDSDeviceChemistry
;
364 UINT8 DesignCapacityMultiplier
;
366 } SMBIOS_TABLE_TYPE22
;
369 SMBIOS_STRUCTURE Hdr
;
373 UINT16 TimerInterval
;
375 } SMBIOS_TABLE_TYPE23
;
378 SMBIOS_STRUCTURE Hdr
;
379 UINT8 HardwareSecuritySettings
;
380 } SMBIOS_TABLE_TYPE24
;
383 SMBIOS_STRUCTURE Hdr
;
384 UINT8 NextScheduledPowerOnMonth
;
385 UINT8 NextScheduledPowerOnDayOfMonth
;
386 UINT8 NextScheduledPowerOnHour
;
387 UINT8 NextScheduledPowerOnMinute
;
388 UINT8 NextScheduledPowerOnSecond
;
389 } SMBIOS_TABLE_TYPE25
;
392 SMBIOS_STRUCTURE Hdr
;
393 SMBIOS_TABLE_STRING Description
;
394 UINT8 LocationAndStatus
;
402 } SMBIOS_TABLE_TYPE26
;
405 SMBIOS_STRUCTURE Hdr
;
406 UINT16 TemperatureProbeHandle
;
407 UINT8 DeviceTypeAndStatus
;
408 UINT8 CoolingUnitGroup
;
411 } SMBIOS_TABLE_TYPE27
;
414 SMBIOS_STRUCTURE Hdr
;
415 SMBIOS_TABLE_STRING Description
;
416 UINT8 LocationAndStatus
;
424 } SMBIOS_TABLE_TYPE28
;
427 SMBIOS_STRUCTURE Hdr
;
428 SMBIOS_TABLE_STRING Description
;
429 UINT8 LocationAndStatus
;
437 } SMBIOS_TABLE_TYPE29
;
440 SMBIOS_STRUCTURE Hdr
;
441 SMBIOS_TABLE_STRING ManufacturerName
;
443 } SMBIOS_TABLE_TYPE30
;
446 SMBIOS_STRUCTURE Hdr
;
454 } SMBIOS_TABLE_TYPE31
;
457 SMBIOS_STRUCTURE Hdr
;
460 } SMBIOS_TABLE_TYPE32
;
463 SMBIOS_STRUCTURE Hdr
;
465 UINT8 ErrorGranularity
;
466 UINT8 ErrorOperation
;
467 UINT32 VendorSyndrome
;
468 UINT64 MemoryArrayErrorAddress
;
469 UINT64 DeviceErrorAddress
;
470 UINT32 ErrorResolution
;
471 } SMBIOS_TABLE_TYPE33
;
474 SMBIOS_STRUCTURE Hdr
;
475 SMBIOS_TABLE_STRING Description
;
479 } SMBIOS_TABLE_TYPE34
;
482 SMBIOS_STRUCTURE Hdr
;
483 SMBIOS_TABLE_STRING Description
;
484 UINT16 ManagementDeviceHandle
;
485 UINT16 ComponentHandle
;
486 UINT16 ThresholdHandle
;
487 } SMBIOS_TABLE_TYPE35
;
490 SMBIOS_STRUCTURE Hdr
;
491 UINT16 LowerThresholdNonCritical
;
492 UINT16 UpperThresholdNonCritical
;
493 UINT16 LowerThresholdCritical
;
494 UINT16 UpperThresholdCritical
;
495 UINT16 LowerThresholdNonRecoverable
;
496 UINT16 UpperThresholdNonRecoverable
;
497 } SMBIOS_TABLE_TYPE36
;
505 SMBIOS_STRUCTURE Hdr
;
507 UINT8 MaximumChannelLoad
;
508 UINT8 MemoryDeviceCount
;
509 MEMORY_DEVICE MemoryDevice
[1];
510 } SMBIOS_TABLE_TYPE37
;
513 SMBIOS_STRUCTURE Hdr
;
515 UINT8 IPMISpecificationRevision
;
516 UINT8 I2CSlaveAddress
;
517 UINT8 NVStorageDeviceAddress
;
519 UINT8 BaseAddressModifier_InterruptInfo
;
520 UINT8 InterruptNumber
;
521 } SMBIOS_TABLE_TYPE38
;
524 SMBIOS_STRUCTURE Hdr
;
525 UINT8 PowerUnitGroup
;
526 SMBIOS_TABLE_STRING Location
;
527 SMBIOS_TABLE_STRING DeviceName
;
528 SMBIOS_TABLE_STRING Manufacturer
;
529 SMBIOS_TABLE_STRING SerialNumber
;
530 SMBIOS_TABLE_STRING AssetTagNumber
;
531 SMBIOS_TABLE_STRING ModelPartNumber
;
532 SMBIOS_TABLE_STRING RevisionLevel
;
533 UINT16 MaxPowerCapacity
;
534 UINT16 PowerSupplyCharacteristics
;
535 UINT16 InputVoltageProbeHandle
;
536 UINT16 CoolingDeviceHandle
;
537 UINT16 InputCurrentProbeHandle
;
538 } SMBIOS_TABLE_TYPE39
;
541 // Add type 40 and type 41 for smbios 2.6
545 UINT16 ReferencedHandle
;
546 UINT8 ReferencedOffset
;
547 SMBIOS_TABLE_STRING EntryString
;
549 }ADDITIONAL_INFORMATION_ENTRY
;
552 SMBIOS_STRUCTURE Hdr
;
553 UINT8 NumberOfAdditionalInformationEntries
;
554 ADDITIONAL_INFORMATION_ENTRY AdditionalInfoEntries
[1];
555 } SMBIOS_TABLE_TYPE40
;
558 SMBIOS_STRUCTURE Hdr
;
559 SMBIOS_TABLE_STRING ReferenceDesignation
;
561 UINT8 DeviceTypeInstance
;
562 UINT16 SegmentGroupNum
;
565 } SMBIOS_TABLE_TYPE41
;
568 SMBIOS_STRUCTURE Hdr
;
569 } SMBIOS_TABLE_TYPE126
;
572 SMBIOS_STRUCTURE Hdr
;
573 } SMBIOS_TABLE_TYPE127
;
576 SMBIOS_STRUCTURE
*Hdr
;
577 SMBIOS_TABLE_TYPE0
*Type0
;
578 SMBIOS_TABLE_TYPE1
*Type1
;
579 SMBIOS_TABLE_TYPE2
*Type2
;
580 SMBIOS_TABLE_TYPE3
*Type3
;
581 SMBIOS_TABLE_TYPE4
*Type4
;
582 SMBIOS_TABLE_TYPE5
*Type5
;
583 SMBIOS_TABLE_TYPE6
*Type6
;
584 SMBIOS_TABLE_TYPE7
*Type7
;
585 SMBIOS_TABLE_TYPE8
*Type8
;
586 SMBIOS_TABLE_TYPE9
*Type9
;
587 SMBIOS_TABLE_TYPE10
*Type10
;
588 SMBIOS_TABLE_TYPE11
*Type11
;
589 SMBIOS_TABLE_TYPE12
*Type12
;
590 SMBIOS_TABLE_TYPE13
*Type13
;
591 SMBIOS_TABLE_TYPE14
*Type14
;
592 SMBIOS_TABLE_TYPE15
*Type15
;
593 SMBIOS_TABLE_TYPE16
*Type16
;
594 SMBIOS_TABLE_TYPE17
*Type17
;
595 SMBIOS_TABLE_TYPE18
*Type18
;
596 SMBIOS_TABLE_TYPE19
*Type19
;
597 SMBIOS_TABLE_TYPE20
*Type20
;
598 SMBIOS_TABLE_TYPE21
*Type21
;
599 SMBIOS_TABLE_TYPE22
*Type22
;
600 SMBIOS_TABLE_TYPE23
*Type23
;
601 SMBIOS_TABLE_TYPE24
*Type24
;
602 SMBIOS_TABLE_TYPE25
*Type25
;
603 SMBIOS_TABLE_TYPE26
*Type26
;
604 SMBIOS_TABLE_TYPE27
*Type27
;
605 SMBIOS_TABLE_TYPE28
*Type28
;
606 SMBIOS_TABLE_TYPE29
*Type29
;
607 SMBIOS_TABLE_TYPE30
*Type30
;
608 SMBIOS_TABLE_TYPE31
*Type31
;
609 SMBIOS_TABLE_TYPE32
*Type32
;
610 SMBIOS_TABLE_TYPE33
*Type33
;
611 SMBIOS_TABLE_TYPE34
*Type34
;
612 SMBIOS_TABLE_TYPE35
*Type35
;
613 SMBIOS_TABLE_TYPE36
*Type36
;
614 SMBIOS_TABLE_TYPE37
*Type37
;
615 SMBIOS_TABLE_TYPE38
*Type38
;
616 SMBIOS_TABLE_TYPE39
*Type39
;
617 SMBIOS_TABLE_TYPE40
*Type40
;
618 SMBIOS_TABLE_TYPE41
*Type41
;
619 SMBIOS_TABLE_TYPE126
*Type126
;
620 SMBIOS_TABLE_TYPE127
*Type127
;
622 } SMBIOS_STRUCTURE_POINTER
;