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 /// Smbios Table Entry Point Structure
23 UINT8 AnchorString
[4];
24 UINT8 EntryPointStructureChecksum
;
25 UINT8 EntryPointLength
;
28 UINT16 MaxStructureSize
;
29 UINT8 EntryPointRevision
;
30 UINT8 FormattedArea
[5];
31 UINT8 IntermediateAnchorString
[5];
32 UINT8 IntermediateChecksum
;
35 UINT16 NumberOfSmbiosStructures
;
36 UINT8 SmbiosBcdRevision
;
37 } SMBIOS_TABLE_ENTRY_POINT
;
40 /// The Smbios structure header
49 /// String Number for a Null terminated string, 00h stands for no string available.
51 typedef UINT8 SMBIOS_TABLE_STRING
;
54 /// BIOS Characteristics
55 /// Defines which functions the BIOS supports. PCI, PCMCIA, Flash, etc.
58 UINT32 Reserved
:2; //Bits 0-1
60 UINT32 BiosCharacteristicsNotSupported
:1;
61 UINT32 IsaIsSupported
:1;
62 UINT32 McaIsSupported
:1;
63 UINT32 EisaIsSupported
:1;
64 UINT32 PciIsSupported
:1;
65 UINT32 PcmciaIsSupported
:1;
66 UINT32 PlugAndPlayIsSupported
:1;
67 UINT32 ApmIsSupported
:1;
68 UINT32 BiosIsUpgradable
:1;
69 UINT32 BiosShadowingAllowed
:1;
70 UINT32 VlVesaIsSupported
:1;
71 UINT32 EscdSupportIsAvailable
:1;
72 UINT32 BootFromCdIsSupported
:1;
73 UINT32 SelectableBootIsSupported
:1;
74 UINT32 RomBiosIsSocketed
:1;
75 UINT32 BootFromPcmciaIsSupported
:1;
76 UINT32 EDDSpecificationIsSupported
:1;
77 UINT32 JapaneseNecFloppyIsSupported
:1;
78 UINT32 JapaneseToshibaFloppyIsSupported
:1;
79 UINT32 Floppy525_360IsSupported
:1;
80 UINT32 Floppy525_12IsSupported
:1;
81 UINT32 Floppy35_720IsSupported
:1;
82 UINT32 Floppy35_288IsSupported
:1;
83 UINT32 PrintScreenIsSupported
:1;
84 UINT32 Keyboard8042IsSupported
:1;
85 UINT32 SerialIsSupported
:1;
86 UINT32 PrinterIsSupported
:1;
87 UINT32 CgaMonoIsSupported
:1;
89 UINT32 ReservedForVendor
:32; // Bits 32-63. Bits 32-47 reserved for BIOS vendor
90 // and bits 48-63 reserved for System Vendor.
91 } MISC_BIOS_CHARACTERISTICS
;
94 /// BIOS Characteristics Extension Byte 1
95 /// This information, available for SMBIOS version 2.1 and later, appears at offset 12h
96 /// within the BIOS Information structure.
99 UINT8 AcpiIsSupported
:1;
100 UINT8 UsbLegacyIsSupported
:1;
101 UINT8 AgpIsSupported
:1;
102 UINT8 I20BootIsSupported
:1;
103 UINT8 Ls120BootIsSupported
:1;
104 UINT8 AtapiZipDriveBootIsSupported
:1;
105 UINT8 Boot1394IsSupported
:1;
106 UINT8 SmartBatteryIsSupported
:1;
107 } MBCE_BIOS_RESERVED
;
110 /// BIOS Characteristics Extension Byte 2
111 /// This information, available for SMBIOS version 2.3 and later, appears at offset 13h
112 /// within the BIOS Information structure.
115 UINT8 BiosBootSpecIsSupported
:1;
116 UINT8 FunctionKeyNetworkBootIsSupported
:1;
117 UINT8 TargetContentDistributionEnabled
:1;
118 UINT8 ExtensionByte2Reserved
:1; //Bits 3-7
119 } MBCE_SYSTEM_RESERVED
;
122 /// BIOS Characteristics Extension Bytes
125 MBCE_BIOS_RESERVED BiosReserved
;
126 MBCE_SYSTEM_RESERVED SystemReserved
;
128 } MISC_BIOS_CHARACTERISTICS_EXTENSION
;
131 /// BIOS Information (Type 0)
134 SMBIOS_STRUCTURE Hdr
;
135 SMBIOS_TABLE_STRING Vendor
;
136 SMBIOS_TABLE_STRING BiosVersion
;
138 SMBIOS_TABLE_STRING BiosReleaseDate
;
140 MISC_BIOS_CHARACTERISTICS BiosCharacteristics
;
141 UINT8 BIOSCharacteristicsExtensionBytes
[2];
142 UINT8 SystemBiosMajorRelease
;
143 UINT8 SystemBiosMinorRelease
;
144 UINT8 EmbeddedControllerFirmwareMajorRelease
;
145 UINT8 EmbeddedControllerFirmwareMinorRelease
;
146 } SMBIOS_TABLE_TYPE0
;
149 /// System Wake-up Type
152 SystemWakeupTypeReserved
= 0x00,
153 SystemWakeupTypeOther
= 0x01,
154 SystemWakeupTypeUnknown
= 0x02,
155 SystemWakeupTypeApmTimer
= 0x03,
156 SystemWakeupTypeModemRing
= 0x04,
157 SystemWakeupTypeLanRemote
= 0x05,
158 SystemWakeupTypePowerSwitch
= 0x06,
159 SystemWakeupTypePciPme
= 0x07,
160 SystemWakeupTypeAcPowerRestored
= 0x08
161 } MISC_SYSTEM_WAKEUP_TYPE
;
164 /// System Information (Type 1)
166 /// The information in this structure defines attributes of the overall system and is
167 /// intended to be associated with the Component ID group of the system's MIF.
168 /// An SMBIOS implementation is associated with a single system instance and contains
169 /// one and only one System Information (Type 1) structure.
172 SMBIOS_STRUCTURE Hdr
;
173 SMBIOS_TABLE_STRING Manufacturer
;
174 SMBIOS_TABLE_STRING ProductName
;
175 SMBIOS_TABLE_STRING Version
;
176 SMBIOS_TABLE_STRING SerialNumber
;
178 MISC_SYSTEM_WAKEUP_TYPE WakeUpType
;
179 SMBIOS_TABLE_STRING SKUNumber
;
180 SMBIOS_TABLE_STRING Family
;
181 } SMBIOS_TABLE_TYPE1
;
184 /// Base Board - Feature Flags
187 UINT8 Motherboard
:1;
188 UINT8 RequiresDaughterCard
:1;
190 UINT8 Replaceable
:1;
191 UINT8 HotSwappable
:1;
193 } BASE_BOARD_FEATURE_FLAGS
;
196 /// Base Board - Board Type
199 BaseBoardTypeUnknown
= 0x1,
200 BaseBoardTypeOther
= 0x2,
201 BaseBoardTypeServerBlade
= 0x3,
202 BaseBoardTypeConnectivitySwitch
= 0x4,
203 BaseBoardTypeSystemManagementModule
= 0x5,
204 BaseBoardTypeProcessorModule
= 0x6,
205 BaseBoardTypeIOModule
= 0x7,
206 BaseBoardTypeMemoryModule
= 0x8,
207 BaseBoardTypeDaughterBoard
= 0x9,
208 BaseBoardTypeMotherBoard
= 0xA,
209 BaseBoardTypeProcessorMemoryModule
= 0xB,
210 BaseBoardTypeProcessorIOModule
= 0xC,
211 BaseBoardTypeInterconnectBoard
= 0xD
215 /// Base Board (or Module) Information (Type 2)
217 /// The information in this structure defines attributes of a system baseboard -
218 /// for example a motherboard, planar, or server blade or other standard system module.
221 SMBIOS_STRUCTURE Hdr
;
222 SMBIOS_TABLE_STRING Manufacturer
;
223 SMBIOS_TABLE_STRING ProductName
;
224 SMBIOS_TABLE_STRING Version
;
225 SMBIOS_TABLE_STRING SerialNumber
;
226 SMBIOS_TABLE_STRING AssetTag
;
227 BASE_BOARD_FEATURE_FLAGS FeatureFlag
;
228 SMBIOS_TABLE_STRING LocationInChassis
;
229 UINT16 ChassisHandle
;
230 BASE_BOARD_TYPE BoardType
;
231 UINT8 NumberOfContainedObjectHandles
;
232 UINT16 ContainedObjectHandles
[1];
233 } SMBIOS_TABLE_TYPE2
;
236 /// System Enclosure or Chassis Types
239 MiscChassisTypeOther
= 0x01,
240 MiscChassisTypeUnknown
= 0x02,
241 MiscChassisTypeDeskTop
= 0x03,
242 MiscChassisTypeLowProfileDesktop
= 0x04,
243 MiscChassisTypePizzaBox
= 0x05,
244 MiscChassisTypeMiniTower
= 0x06,
245 MiscChassisTypeTower
= 0x07,
246 MiscChassisTypePortable
= 0x08,
247 MiscChassisTypeLapTop
= 0x09,
248 MiscChassisTypeNotebook
= 0x0A,
249 MiscChassisTypeHandHeld
= 0x0B,
250 MiscChassisTypeDockingStation
= 0x0C,
251 MiscChassisTypeAllInOne
= 0x0D,
252 MiscChassisTypeSubNotebook
= 0x0E,
253 MiscChassisTypeSpaceSaving
= 0x0F,
254 MiscChassisTypeLunchBox
= 0x10,
255 MiscChassisTypeMainServerChassis
= 0x11,
256 MiscChassisTypeExpansionChassis
= 0x12,
257 MiscChassisTypeSubChassis
= 0x13,
258 MiscChassisTypeBusExpansionChassis
= 0x14,
259 MiscChassisTypePeripheralChassis
= 0x15,
260 MiscChassisTypeRaidChassis
= 0x16,
261 MiscChassisTypeRackMountChassis
= 0x17,
262 MiscChassisTypeSealedCasePc
= 0x18,
263 MiscChassisMultiSystemChassis
= 0x19,
264 MiscChassisCompactPCI
= 0x1A,
265 MiscChassisAdvancedTCA
= 0x1B,
266 MiscChassisBlade
= 0x1C,
267 MiscChassisBladeEnclosure
= 0x1D
271 /// System Enclosure or Chassis States
274 ChassisStateOther
= 0x01,
275 ChassisStateUnknown
= 0x02,
276 ChassisStateSafe
= 0x03,
277 ChassisStateWarning
= 0x04,
278 ChassisStateCritical
= 0x05,
279 ChassisStateNonRecoverable
= 0x06
280 } MISC_CHASSIS_STATE
;
283 /// System Enclosure or Chassis Security Status
286 ChassisSecurityStatusOther
= 0x01,
287 ChassisSecurityStatusUnknown
= 0x02,
288 ChassisSecurityStatusNone
= 0x03,
289 ChassisSecurityStatusExternalInterfaceLockedOut
= 0x04,
290 ChassisSecurityStatusExternalInterfaceLockedEnabled
= 0x05
291 } MISC_CHASSIS_SECURITY_STATE
;
294 /// Contained Element record
297 UINT8 ContainedElementType
;
298 UINT8 ContainedElementMinimum
;
299 UINT8 ContainedElementMaximum
;
304 /// System Enclosure or Chassis (Type 3)
306 /// The information in this structure defines attributes of the system's mechanical enclosure(s).
307 /// For example, if a system included a separate enclosure for its peripheral devices,
308 /// two structures would be returned: one for the main, system enclosure and the second for
309 /// the peripheral device enclosure. The additions to this structure in v2.1 of this specification
310 /// support the population of the CIM_Chassis class.
313 SMBIOS_STRUCTURE Hdr
;
314 SMBIOS_TABLE_STRING Manufacturer
;
316 SMBIOS_TABLE_STRING Version
;
317 SMBIOS_TABLE_STRING SerialNumber
;
318 SMBIOS_TABLE_STRING AssetTag
;
319 MISC_CHASSIS_STATE BootupState
;
320 MISC_CHASSIS_STATE PowerSupplyState
;
321 MISC_CHASSIS_STATE ThermalState
;
322 MISC_CHASSIS_SECURITY_STATE SecurityStatus
;
325 UINT8 NumberofPowerCords
;
326 UINT8 ContainedElementCount
;
327 UINT8 ContainedElementRecordLength
;
328 CONTAINED_ELEMENT ContainedElements
[1];
329 } SMBIOS_TABLE_TYPE3
;
332 /// Processor Information - Processor Type
335 ProcessorOther
= 0x01,
336 ProcessorUnknown
= 0x02,
337 CentralProcessor
= 0x03,
338 MathProcessor
= 0x04,
340 VideoProcessor
= 0x06
341 } PROCESSOR_TYPE_DATA
;
344 /// Processor Information - Processor Family
347 ProcessorFamilyOther
= 0x01,
348 ProcessorFamilyUnknown
= 0x02,
349 ProcessorFamily8086
= 0x03,
350 ProcessorFamily80286
= 0x04,
351 ProcessorFamilyIntel386
= 0x05,
352 ProcessorFamilyIntel486
= 0x06,
353 ProcessorFamily8087
= 0x07,
354 ProcessorFamily80287
= 0x08,
355 ProcessorFamily80387
= 0x09,
356 ProcessorFamily80487
= 0x0A,
357 ProcessorFamilyPentium
= 0x0B,
358 ProcessorFamilyPentiumPro
= 0x0C,
359 ProcessorFamilyPentiumII
= 0x0D,
360 ProcessorFamilyPentiumMMX
= 0x0E,
361 ProcessorFamilyCeleron
= 0x0F,
362 ProcessorFamilyPentiumIIXeon
= 0x10,
363 ProcessorFamilyPentiumIII
= 0x11,
364 ProcessorFamilyM1
= 0x12,
365 ProcessorFamilyM2
= 0x13,
366 ProcessorFamilyM1Reserved2
= 0x14,
367 ProcessorFamilyM1Reserved3
= 0x15,
368 ProcessorFamilyM1Reserved4
= 0x16,
369 ProcessorFamilyM1Reserved5
= 0x17,
370 ProcessorFamilyAmdDuron
= 0x18,
371 ProcessorFamilyK5
= 0x19,
372 ProcessorFamilyK6
= 0x1A,
373 ProcessorFamilyK6_2
= 0x1B,
374 ProcessorFamilyK6_3
= 0x1C,
375 ProcessorFamilyAmdAthlon
= 0x1D,
376 ProcessorFamilyAmd29000
= 0x1E,
377 ProcessorFamilyK6_2Plus
= 0x1F,
378 ProcessorFamilyPowerPC
= 0x20,
379 ProcessorFamilyPowerPC601
= 0x21,
380 ProcessorFamilyPowerPC603
= 0x22,
381 ProcessorFamilyPowerPC603Plus
= 0x23,
382 ProcessorFamilyPowerPC604
= 0x24,
383 ProcessorFamilyPowerPC620
= 0x25,
384 ProcessorFamilyPowerPCx704
= 0x26,
385 ProcessorFamilyPowerPC750
= 0x27,
386 ProcessorFamilyAlpha3
= 0x30,
387 ProcessorFamilyAlpha21064
= 0x31,
388 ProcessorFamilyAlpha21066
= 0x32,
389 ProcessorFamilyAlpha21164
= 0x33,
390 ProcessorFamilyAlpha21164PC
= 0x34,
391 ProcessorFamilyAlpha21164a
= 0x35,
392 ProcessorFamilyAlpha21264
= 0x36,
393 ProcessorFamilyAlpha21364
= 0x37,
394 ProcessorFamilyMips
= 0x40,
395 ProcessorFamilyMIPSR4000
= 0x41,
396 ProcessorFamilyMIPSR4200
= 0x42,
397 ProcessorFamilyMIPSR4400
= 0x43,
398 ProcessorFamilyMIPSR4600
= 0x44,
399 ProcessorFamilyMIPSR10000
= 0x45,
400 ProcessorFamilySparc
= 0x50,
401 ProcessorFamilySuperSparc
= 0x51,
402 ProcessorFamilymicroSparcII
= 0x52,
403 ProcessorFamilymicroSparcIIep
= 0x53,
404 ProcessorFamilyUltraSparc
= 0x54,
405 ProcessorFamilyUltraSparcII
= 0x55,
406 ProcessorFamilyUltraSparcIIi
= 0x56,
407 ProcessorFamilyUltraSparcIII
= 0x57,
408 ProcessorFamilyUltraSparcIIIi
= 0x58,
409 ProcessorFamily68040
= 0x60,
410 ProcessorFamily68xxx
= 0x61,
411 ProcessorFamily68000
= 0x62,
412 ProcessorFamily68010
= 0x63,
413 ProcessorFamily68020
= 0x64,
414 ProcessorFamily68030
= 0x65,
415 ProcessorFamilyHobbit
= 0x70,
416 ProcessorFamilyCrusoeTM5000
= 0x78,
417 ProcessorFamilyCrusoeTM3000
= 0x79,
418 ProcessorFamilyEfficeonTM8000
= 0x7A,
419 ProcessorFamilyWeitek
= 0x80,
420 ProcessorFamilyItanium
= 0x82,
421 ProcessorFamilyAmdAthlon64
= 0x83,
422 ProcessorFamilyAmdOpteron
= 0x84,
423 ProcessorFamilyAmdSempron
= 0x85,
424 ProcessorFamilyAmdTurion64Mobile
= 0x86,
425 ProcessorFamilyDualCoreAmdOpteron
= 0x87,
426 ProcessorFamilyAmdAthlon64X2DualCore
= 0x88,
427 ProcessorFamilyAmdTurion64X2Mobile
= 0x89,
428 ProcessorFamilyPARISC
= 0x90,
429 ProcessorFamilyPaRisc8500
= 0x91,
430 ProcessorFamilyPaRisc8000
= 0x92,
431 ProcessorFamilyPaRisc7300LC
= 0x93,
432 ProcessorFamilyPaRisc7200
= 0x94,
433 ProcessorFamilyPaRisc7100LC
= 0x95,
434 ProcessorFamilyPaRisc7100
= 0x96,
435 ProcessorFamilyV30
= 0xA0,
436 ProcessorFamilyPentiumIIIXeon
= 0xB0,
437 ProcessorFamilyPentiumIIISpeedStep
= 0xB1,
438 ProcessorFamilyPentium4
= 0xB2,
439 ProcessorFamilyIntelXeon
= 0xB3,
440 ProcessorFamilyAS400
= 0xB4,
441 ProcessorFamilyIntelXeonMP
= 0xB5,
442 ProcessorFamilyAMDAthlonXP
= 0xB6,
443 ProcessorFamilyAMDAthlonMP
= 0xB7,
444 ProcessorFamilyIntelItanium2
= 0xB8,
445 ProcessorFamilyIntelPentiumM
= 0xB9,
446 ProcessorFamilyIntelCeleronD
= 0xBA,
447 ProcessorFamilyIntelPentiumD
= 0xBB,
448 ProcessorFamilyIntelPentiumEx
= 0xBC,
449 ProcessorFamilyIntelCoreSolo
= 0xBD, // SMBIOS spec 2.6 correct this value
450 ProcessorFamilyReserved
= 0xBE,
451 ProcessorFamilyIntelCore2
= 0xBF,
452 ProcessorFamilyIBM390
= 0xC8,
453 ProcessorFamilyG4
= 0xC9,
454 ProcessorFamilyG5
= 0xCA,
455 ProcessorFamilyG6
= 0xCB,
456 ProcessorFamilyzArchitectur
= 0xCC,
457 ProcessorFamilyViaC7M
= 0xD2,
458 ProcessorFamilyViaC7D
= 0xD3,
459 ProcessorFamilyViaC7
= 0xD4,
460 ProcessorFamilyViaEden
= 0xD5,
461 ProcessorFamilyi860
= 0xFA,
462 ProcessorFamilyi960
= 0xFB,
463 ProcessorFamilyIndicatorFamily2
= 0xFE,
464 ProcessorFamilyReserved1
= 0xFF
465 } PROCESSOR_FAMILY_DATA
;
468 /// Processor Information - Voltage
471 UINT8 ProcessorVoltageCapability5V
:1; // Bit 0
472 UINT8 ProcessorVoltageCapability3_3V
:1; // Bit 1
473 UINT8 ProcessorVoltageCapability2_9V
:1; // Bit 2
474 UINT8 ProcessorVoltageCapabilityReserved
:1; // Bit 3 ,must be zero.
475 UINT8 ProcessorVoltageReserved
:3; // Bits 4-6, must be zero.
476 UINT8 ProcessorVoltageIndicateLegacy
:1; // Bit 7.
480 /// Processor Information - Processor Upgrade
483 ProcessorUpgradeOther
= 0x01,
484 ProcessorUpgradeUnknown
= 0x02,
485 ProcessorUpgradeDaughterBoard
= 0x03,
486 ProcessorUpgradeZIFSocket
= 0x04,
487 ProcessorUpgradePiggyBack
= 0x05, // Replaceable
488 ProcessorUpgradeNone
= 0x06,
489 ProcessorUpgradeLIFSocket
= 0x07,
490 ProcessorUpgradeSlot1
= 0x08,
491 ProcessorUpgradeSlot2
= 0x09,
492 ProcessorUpgrade370PinSocket
= 0x0A,
493 ProcessorUpgradeSlotA
= 0x0B,
494 ProcessorUpgradeSlotM
= 0x0C,
495 ProcessorUpgradeSocket423
= 0x0D,
496 ProcessorUpgradeSocketA
= 0x0E, // Socket 462
497 ProcessorUpgradeSocket478
= 0x0F,
498 ProcessorUpgradeSocket754
= 0x10,
499 ProcessorUpgradeSocket940
= 0x11,
500 ProcessorUpgradeSocket939
= 0x12,
501 ProcessorUpgradeSocketmPGA604
= 0x13,
502 ProcessorUpgradeSocketLGA771
= 0x14,
503 ProcessorUpgradeSocketLGA775
= 0x15,
504 ProcessorUpgradeSocketS1
= 0x16,
505 ProcessorUpgradeAM2
= 0x17,
506 ProcessorUpgradeF1207
= 0x18
510 /// Processor ID Field Description
513 UINT32 ProcessorSteppingId
:4;
514 UINT32 ProcessorModel
: 4;
515 UINT32 ProcessorFamily
: 4;
516 UINT32 ProcessorType
: 2;
517 UINT32 ProcessorReserved1
: 2;
518 UINT32 ProcessorXModel
: 4;
519 UINT32 ProcessorXFamily
: 8;
520 UINT32 ProcessorReserved2
: 4;
521 } PROCESSOR_SIGNATURE
;
524 UINT32 ProcessorBrandIndex
:8;
525 UINT32 ProcessorClflush
:8;
526 UINT32 ProcessorReserved
:8;
527 UINT32 ProcessorDfltApicId
:8;
528 } PROCESSOR_MISC_INFO
;
531 UINT32 ProcessorFpu
:1;
532 UINT32 ProcessorVme
:1;
533 UINT32 ProcessorDe
:1;
534 UINT32 ProcessorPse
:1;
535 UINT32 ProcessorTsc
:1;
536 UINT32 ProcessorMsr
:1;
537 UINT32 ProcessorPae
:1;
538 UINT32 ProcessorMce
:1;
539 UINT32 ProcessorCx8
:1;
540 UINT32 ProcessorApic
:1;
541 UINT32 ProcessorReserved1
:1;
542 UINT32 ProcessorSep
:1;
543 UINT32 ProcessorMtrr
:1;
544 UINT32 ProcessorPge
:1;
545 UINT32 ProcessorMca
:1;
546 UINT32 ProcessorCmov
:1;
547 UINT32 ProcessorPat
:1;
548 UINT32 ProcessorPse36
:1;
549 UINT32 ProcessorPsn
:1;
550 UINT32 ProcessorClfsh
:1;
551 UINT32 ProcessorReserved2
:1;
552 UINT32 ProcessorDs
:1;
553 UINT32 ProcessorAcpi
:1;
554 UINT32 ProcessorMmx
:1;
555 UINT32 ProcessorFxsr
:1;
556 UINT32 ProcessorSse
:1;
557 UINT32 ProcessorSse2
:1;
558 UINT32 ProcessorSs
:1;
559 UINT32 ProcessorReserved3
:1;
560 UINT32 ProcessorTm
:1;
561 UINT32 ProcessorReserved4
:2;
562 } PROCESSOR_FEATURE_FLAGS
;
565 PROCESSOR_SIGNATURE Signature
;
566 PROCESSOR_MISC_INFO MiscInfo
;
568 PROCESSOR_FEATURE_FLAGS FeatureFlags
;
569 } PROCESSOR_ID_DATA
; // 4*4 bytes
572 /// Processor Information (Type 4)
574 /// The information in this structure defines the attributes of a single processor;
575 /// a separate structure instance is provided for each system processor socket/slot.
576 /// For example, a system with an IntelDX2 processor would have a single
577 /// structure instance while a system with an IntelSX2 processor would have a structure
578 /// to describe the main CPU and a second structure to describe the 80487 co-processor.
581 SMBIOS_STRUCTURE Hdr
;
583 PROCESSOR_TYPE_DATA ProcessorType
;
584 PROCESSOR_FAMILY_DATA ProcessorFamily
;
585 SMBIOS_TABLE_STRING ProcessorManufacture
;
586 PROCESSOR_ID_DATA ProcessorId
;
587 SMBIOS_TABLE_STRING ProcessorVersion
;
588 PROCESSOR_VOLTAGE Voltage
;
589 UINT16 ExternalClock
;
593 PROCESSOR_UPGRADE ProcessorUpgrade
;
594 UINT16 L1CacheHandle
;
595 UINT16 L2CacheHandle
;
596 UINT16 L3CacheHandle
;
597 SMBIOS_TABLE_STRING SerialNumber
;
598 SMBIOS_TABLE_STRING AssetTag
;
599 SMBIOS_TABLE_STRING PartNumber
;
601 // Add for smbios 2.5
604 UINT8 EnabledCoreCount
;
606 UINT16 ProcessorCharacteristics
;
608 // Add for smbios 2.6
610 UINT16 ProcessorFamily2
;
611 } SMBIOS_TABLE_TYPE4
;
614 /// Memory Controller Error Detecting Method
617 ErrorDetectingMethodOther
= 0x01,
618 ErrorDetectingMethodUnknown
= 0x02,
619 ErrorDetectingMethodNone
= 0x03,
620 ErrorDetectingMethodParity
= 0x04,
621 ErrorDetectingMethod32Ecc
= 0x05,
622 ErrorDetectingMethod64Ecc
= 0x06,
623 ErrorDetectingMethod128Ecc
= 0x07,
624 ErrorDetectingMethodCrc
= 0x08
625 } MEMORY_ERROR_DETECT_METHOD
;
628 /// Memory Controller Error Correcting Capability
634 UINT8 SingleBitErrorCorrect
:1;
635 UINT8 DoubleBitErrorCorrect
:1;
636 UINT8 ErrorScrubbing
:1;
638 } MEMORY_ERROR_CORRECT_CAPABILITY
;
641 /// Memory Controller Information - Interleave Support
644 MemoryInterleaveOther
= 0x01,
645 MemoryInterleaveUnknown
= 0x02,
646 MemoryInterleaveOneWay
= 0x03,
647 MemoryInterleaveTwoWay
= 0x04,
648 MemoryInterleaveFourWay
= 0x05,
649 MemoryInterleaveEightWay
= 0x06,
650 MemoryInterleaveSixteenWay
= 0x07
651 } MEMORY_SUPPORT_INTERLEAVE_TYPE
;
654 /// Memory Controller Information - Memory Speeds
666 /// Memory Controller Information (Type 5, Obsolete)
668 /// The information in this structure defines the attributes of the system's memory controller(s)
669 /// and the supported attributes of any memory-modules present in the sockets controlled by
671 /// Note: This structure, and its companion Memory Module Information (Type 6, Obsolete),
672 /// are obsolete starting with version 2.1 of this specification; the Physical Memory Array (Type 16)
673 /// and Memory Device (Type 17) structures should be used instead. BIOS providers might
674 /// choose to implement both memory description types to allow existing DMI browsers
675 /// to properly display the system's memory attributes.
678 SMBIOS_STRUCTURE Hdr
;
679 MEMORY_ERROR_DETECT_METHOD ErrDetectMethod
;
680 MEMORY_ERROR_CORRECT_CAPABILITY ErrCorrectCapability
;
681 MEMORY_SUPPORT_INTERLEAVE_TYPE SupportInterleave
;
682 UINT8 CurrentInterleave
;
683 UINT8 MaxMemoryModuleSize
;
684 MEMORY_SPEED_TYPE SupportSpeed
;
685 UINT16 SupportMemoryType
;
686 UINT8 MemoryModuleVoltage
;
687 UINT8 AssociatedMemorySlotNum
;
688 UINT16 MemoryModuleConfigHandles
[1];
689 } SMBIOS_TABLE_TYPE5
;
692 /// Memory Module Information - Memory Types
698 UINT16 FastPageMode
:1;
707 } MEMORY_CURRENT_TYPE
;
710 /// Memory Module Information - Memory Size
713 UINT8 InstalledOrEnabledSize
:7;// Size (n), where 2**n is the size in MB.
714 UINT8 SingleOrDoubleBank
:1;
715 } MEMORY_INSTALLED_ENABLED_SIZE
;
718 /// Memory Module Information (Type 6, Obsolete)
720 /// One Memory Module Information structure is included for each memory-module socket
721 /// in the system. The structure describes the speed, type, size, and error status
722 /// of each system memory module. The supported attributes of each module are described
723 /// by the "owning" Memory Controller Information structure.
724 /// Note: This structure, and its companion Memory Controller Information (Type 5, Obsolete),
725 /// are obsolete starting with version 2.1 of this specification; the Physical Memory Array (Type 16)
726 /// and Memory Device (Type 17) structures should be used instead.
729 SMBIOS_STRUCTURE Hdr
;
730 SMBIOS_TABLE_STRING SocketDesignation
;
731 UINT8 BankConnections
;
733 MEMORY_CURRENT_TYPE CurrentMemoryType
;
734 MEMORY_INSTALLED_ENABLED_SIZE InstalledSize
;
735 MEMORY_INSTALLED_ENABLED_SIZE EnabledSize
;
737 } SMBIOS_TABLE_TYPE6
;
740 /// Cache Information - SRAM Type
747 UINT16 PipelineBurst
:1;
748 UINT16 Asynchronous
:1;
749 UINT16 Synchronous
:1;
751 } CACHE_SRAM_TYPE_DATA
;
754 /// Cache Information - Error Correction Type
757 CacheErrorOther
= 0x01,
758 CacheErrorUnknown
= 0x02,
759 CacheErrorNone
= 0x03,
760 CacheErrorParity
= 0x04,
761 CacheErrorSingleBit
= 0x05, // ECC
762 CacheErrorMultiBit
= 0x06 // ECC
763 } CACHE_ERROR_TYPE_DATA
;
766 /// Cache Information - System Cache Type
769 CacheTypeOther
= 0x01,
770 CacheTypeUnknown
= 0x02,
771 CacheTypeInstruction
= 0x03,
772 CacheTypeData
= 0x04,
773 CacheTypeUnified
= 0x05
777 /// Cache Information - Associativity
780 CacheAssociativityOther
= 0x01,
781 CacheAssociativityUnknown
= 0x02,
782 CacheAssociativityDirectMapped
= 0x03,
783 CacheAssociativity2Way
= 0x04,
784 CacheAssociativity4Way
= 0x05,
785 CacheAssociativityFully
= 0x06,
786 CacheAssociativity8Way
= 0x07,
787 CacheAssociativity16Way
= 0x08,
788 CacheAssociativity24Way
= 0x09
789 } CACHE_ASSOCIATIVITY_DATA
;
792 /// Cache Information (Type 7)
794 /// he information in this structure defines the attributes of CPU cache device in the system.
795 /// One structure is specified for each such device, whether the device is internal to
796 /// or external to the CPU module. Cache modules can be associated with a processor structure
797 /// in one or two ways depending on the SMBIOS version.
800 SMBIOS_STRUCTURE Hdr
;
801 SMBIOS_TABLE_STRING SocketDesignation
;
802 UINT16 CacheConfiguration
;
803 UINT16 MaximumCacheSize
;
804 UINT16 InstalledSize
;
805 CACHE_SRAM_TYPE_DATA SupportedSRAMType
;
806 CACHE_SRAM_TYPE_DATA CurrentSRAMType
;
808 CACHE_ERROR_TYPE_DATA ErrorCorrectionType
;
809 CACHE_TYPE_DATA SystemCacheType
;
810 CACHE_ASSOCIATIVITY_DATA Associativity
;
811 } SMBIOS_TABLE_TYPE7
;
814 /// Port Connector Information - Connector Types
817 PortConnectorTypeNone
= 0x00,
818 PortConnectorTypeCentronics
= 0x01,
819 PortConnectorTypeMiniCentronics
= 0x02,
820 PortConnectorTypeProprietary
= 0x03,
821 PortConnectorTypeDB25Male
= 0x04,
822 PortConnectorTypeDB25Female
= 0x05,
823 PortConnectorTypeDB15Male
= 0x06,
824 PortConnectorTypeDB15Female
= 0x07,
825 PortConnectorTypeDB9Male
= 0x08,
826 PortConnectorTypeDB9Female
= 0x09,
827 PortConnectorTypeRJ11
= 0x0A,
828 PortConnectorTypeRJ45
= 0x0B,
829 PortConnectorType50PinMiniScsi
= 0x0C,
830 PortConnectorTypeMiniDin
= 0x0D,
831 PortConnectorTypeMicriDin
= 0x0E,
832 PortConnectorTypePS2
= 0x0F,
833 PortConnectorTypeInfrared
= 0x10,
834 PortConnectorTypeHpHil
= 0x11,
835 PortConnectorTypeUsb
= 0x12,
836 PortConnectorTypeSsaScsi
= 0x13,
837 PortConnectorTypeCircularDin8Male
= 0x14,
838 PortConnectorTypeCircularDin8Female
= 0x15,
839 PortConnectorTypeOnboardIde
= 0x16,
840 PortConnectorTypeOnboardFloppy
= 0x17,
841 PortConnectorType9PinDualInline
= 0x18,
842 PortConnectorType25PinDualInline
= 0x19,
843 PortConnectorType50PinDualInline
= 0x1A,
844 PortConnectorType68PinDualInline
= 0x1B,
845 PortConnectorTypeOnboardSoundInput
= 0x1C,
846 PortConnectorTypeMiniCentronicsType14
= 0x1D,
847 PortConnectorTypeMiniCentronicsType26
= 0x1E,
848 PortConnectorTypeHeadPhoneMiniJack
= 0x1F,
849 PortConnectorTypeBNC
= 0x20,
850 PortConnectorType1394
= 0x21,
851 PortConnectorTypePC98
= 0xA0,
852 PortConnectorTypePC98Hireso
= 0xA1,
853 PortConnectorTypePCH98
= 0xA2,
854 PortConnectorTypePC98Note
= 0xA3,
855 PortConnectorTypePC98Full
= 0xA4,
856 PortConnectorTypeOther
= 0xFF
857 } MISC_PORT_CONNECTOR_TYPE
;
860 /// Port Connector Information - Port Types
864 PortTypeParallelXtAtCompatible
= 0x01,
865 PortTypeParallelPortPs2
= 0x02,
866 PortTypeParallelPortEcp
= 0x03,
867 PortTypeParallelPortEpp
= 0x04,
868 PortTypeParallelPortEcpEpp
= 0x05,
869 PortTypeSerialXtAtCompatible
= 0x06,
870 PortTypeSerial16450Compatible
= 0x07,
871 PortTypeSerial16550Compatible
= 0x08,
872 PortTypeSerial16550ACompatible
= 0x09,
875 PortTypeJoyStick
= 0x0C,
876 PortTypeKeyboard
= 0x0D,
877 PortTypeMouse
= 0x0E,
878 PortTypeSsaScsi
= 0x0F,
880 PortTypeFireWire
= 0x11,
881 PortTypePcmciaTypeI
= 0x12,
882 PortTypePcmciaTypeII
= 0x13,
883 PortTypePcmciaTypeIII
= 0x14,
884 PortTypeCardBus
= 0x15,
885 PortTypeAccessBusPort
= 0x16,
886 PortTypeScsiII
= 0x17,
887 PortTypeScsiWide
= 0x18,
889 PortTypePC98Hireso
= 0x1A,
890 PortTypePCH98
= 0x1B,
891 PortTypeVideoPort
= 0x1C,
892 PortTypeAudioPort
= 0x1D,
893 PortTypeModemPort
= 0x1E,
894 PortTypeNetworkPort
= 0x1F,
895 PortType8251Compatible
= 0xA0,
896 PortType8251FifoCompatible
= 0xA1,
901 /// Port Connector Information (Type 8)
903 /// The information in this structure defines the attributes of a system port connector,
904 /// e.g. parallel, serial, keyboard, or mouse ports. The port's type and connector information
905 /// are provided. One structure is present for each port provided by the system.
908 SMBIOS_STRUCTURE Hdr
;
909 SMBIOS_TABLE_STRING InternalReferenceDesignator
;
910 MISC_PORT_CONNECTOR_TYPE InternalConnectorType
;
911 SMBIOS_TABLE_STRING ExternalReferenceDesignator
;
912 MISC_PORT_CONNECTOR_TYPE ExternalConnectorType
;
913 MISC_PORT_TYPE PortType
;
914 } SMBIOS_TABLE_TYPE8
;
917 /// System Slots - Slot Type
920 SlotTypeOther
= 0x01,
921 SlotTypeUnknown
= 0x02,
926 SlotTypePcmcia
= 0x07,
927 SlotTypeVlVesa
= 0x08,
928 SlotTypeProprietary
= 0x09,
929 SlotTypeProcessorCardSlot
= 0x0A,
930 SlotTypeProprietaryMemoryCardSlot
= 0x0B,
931 SlotTypeIORiserCardSlot
= 0x0C,
932 SlotTypeNuBus
= 0x0D,
933 SlotTypePci66MhzCapable
= 0x0E,
935 SlotTypeApg2X
= 0x10,
936 SlotTypeAgp4X
= 0x11,
938 SlotTypeAgp4x
= 0x13,
939 SlotTypePC98C20
= 0xA0,
940 SlotTypePC98C24
= 0xA1,
941 SlotTypePC98E
= 0xA2,
942 SlotTypePC98LocalBus
= 0xA3,
943 SlotTypePC98Card
= 0xA4,
944 SlotTypePciExpress
= 0xA5,
945 SlotTypePciExpressX1
= 0xA6,
946 SlotTypePciExpressX2
= 0xA7,
947 SlotTypePciExpressX4
= 0xA8,
948 SlotTypePciExpressX8
= 0xA9,
949 SlotTypePciExpressX16
= 0xAA
953 /// System Slots - Slot Data Bus Width
956 SlotDataBusWidthOther
= 0x01,
957 SlotDataBusWidthUnknown
= 0x02,
958 SlotDataBusWidth8Bit
= 0x03,
959 SlotDataBusWidth16Bit
= 0x04,
960 SlotDataBusWidth32Bit
= 0x05,
961 SlotDataBusWidth64Bit
= 0x06,
962 SlotDataBusWidth128Bit
= 0x07,
963 SlotDataBusWidth1X
= 0x08, // Or X1
964 SlotDataBusWidth2X
= 0x09, // Or X2
965 SlotDataBusWidth4X
= 0x0A, // Or X4
966 SlotDataBusWidth8X
= 0x0B, // Or X8
967 SlotDataBusWidth12X
= 0x0C, // Or X12
968 SlotDataBusWidth16X
= 0x0D, // Or X16
969 SlotDataBusWidth32X
= 0x0E // Or X32
970 } MISC_SLOT_DATA_BUS_WIDTH
;
973 /// System Slots - Current Usage
976 SlotUsageOther
= 0x01,
977 SlotUsageUnknown
= 0x02,
978 SlotUsageAvailable
= 0x03,
979 SlotUsageInUse
= 0x04
983 /// System Slots - Slot Length
986 SlotLengthOther
= 0x01,
987 SlotLengthUnknown
= 0x02,
988 SlotLengthShort
= 0x03,
989 SlotLengthLong
= 0x04
993 /// System Slots - Slot Characteristics 1
996 UINT8 CharacteristicsUnknown
:1;
997 UINT8 Provides50Volts
:1;
998 UINT8 Provides33Volts
:1;
1000 UINT8 PcCard16Supported
:1;
1001 UINT8 CardBusSupported
:1;
1002 UINT8 ZoomVideoSupported
:1;
1003 UINT8 ModemRingResumeSupported
:1;
1004 } MISC_SLOT_CHARACTERISTICS1
;
1006 /// System Slots - Slot Characteristics 2
1009 UINT8 PmeSignalSupported
:1;
1010 UINT8 HotPlugDevicesSupported
:1;
1011 UINT8 SmbusSignalSupported
:1;
1012 UINT8 Reserved
:5; //Set to 0.
1013 } MISC_SLOT_CHARACTERISTICS2
;
1016 /// System Slots (Type 9)
1018 /// The information in this structure defines the attributes of a system slot.
1019 /// One structure is provided for each slot in the system.
1023 SMBIOS_STRUCTURE Hdr
;
1024 SMBIOS_TABLE_STRING SlotDesignation
;
1025 MISC_SLOT_TYPE SlotType
;
1026 MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth
;
1027 MISC_SLOT_USAGE CurrentUsage
;
1028 MISC_SLOT_LENGTH SlotLength
;
1030 MISC_SLOT_CHARACTERISTICS1 SlotCharacteristics1
;
1031 MISC_SLOT_CHARACTERISTICS2 SlotCharacteristics2
;
1033 // Add for smbios 2.6
1035 UINT16 SegmentGroupNum
;
1038 } SMBIOS_TABLE_TYPE9
;
1041 /// On Board Devices Information - Device Types
1044 OnBoardDeviceTypeOther
= 0x01,
1045 OnBoardDeviceTypeUnknown
= 0x02,
1046 OnBoardDeviceTypeVideo
= 0x03,
1047 OnBoardDeviceTypeScsiController
= 0x04,
1048 OnBoardDeviceTypeEthernet
= 0x05,
1049 OnBoardDeviceTypeTokenRing
= 0x06,
1050 OnBoardDeviceTypeSound
= 0x07
1051 } MISC_ONBOARD_DEVICE_TYPE
;
1054 /// Device Item Entry
1057 MISC_ONBOARD_DEVICE_TYPE DeviceType
;
1058 SMBIOS_TABLE_STRING DescriptionString
;
1062 /// On Board Devices Information (Type 10, obsolete)
1064 /// Note: This structure is obsolete starting with version 2.6 specification; the Onboard Devices Extended
1065 /// Information (Type 41) structure should be used instead . BIOS providers can choose to implement both
1066 /// types to allow existing SMBIOS browsers to properly display the system's onboard devices information.
1067 /// The information in this structure defines the attributes of devices that are onboard (soldered onto)
1068 /// a system element, usually the baseboard. In general, an entry in this table implies that the BIOS
1069 /// has some level of control over the enabling of the associated device for use by the system.
1072 SMBIOS_STRUCTURE Hdr
;
1073 DEVICE_STRUCT Device
[1];
1074 } SMBIOS_TABLE_TYPE10
;
1077 /// OEM Strings (Type 11)
1078 /// This structure contains free form strings defined by the OEM. Examples of this are:
1079 /// Part Numbers for Reference Documents for the system, contact information for the manufacturer, etc.
1082 SMBIOS_STRUCTURE Hdr
;
1084 } SMBIOS_TABLE_TYPE11
;
1087 /// System Configuration Options (Type 12)
1089 /// This structure contains information required to configure the base board's Jumpers and Switches.
1092 SMBIOS_STRUCTURE Hdr
;
1094 } SMBIOS_TABLE_TYPE12
;
1098 /// BIOS Language Information (Type 13)
1100 /// The information in this structure defines the installable language attributes of the BIOS.
1103 SMBIOS_STRUCTURE Hdr
;
1104 UINT8 InstallableLanguages
;
1107 SMBIOS_TABLE_STRING CurrentLanguages
;
1108 } SMBIOS_TABLE_TYPE13
;
1111 /// System Event Log - Event Log Types
1114 EventLogTypeReserved
= 0x00,
1115 EventLogTypeSingleBitECC
= 0x01,
1116 EventLogTypeMultiBitECC
= 0x02,
1117 EventLogTypeParityMemErr
= 0x03,
1118 EventLogTypeBusTimeOut
= 0x04,
1119 EventLogTypeIOChannelCheck
= 0x05,
1120 EventLogTypeSoftwareNMI
= 0x06,
1121 EventLogTypePOSTMemResize
= 0x07,
1122 EventLogTypePOSTErr
= 0x08,
1123 EventLogTypePCIParityErr
= 0x09,
1124 EventLogTypePCISystemErr
= 0x0A,
1125 EventLogTypeCPUFailure
= 0x0B,
1126 EventLogTypeEISATimeOut
= 0x0C,
1127 EventLogTypeMemLogDisabled
= 0x0D,
1128 EventLogTypeLoggingDisabled
= 0x0E,
1129 EventLogTypeSysLimitExce
= 0x10,
1130 EventLogTypeAsyncHWTimer
= 0x11,
1131 EventLogTypeSysConfigInfo
= 0x12,
1132 EventLogTypeHDInfo
= 0x13,
1133 EventLogTypeSysReconfig
= 0x14,
1134 EventLogTypeUncorrectCPUErr
= 0x15,
1135 EventLogTypeAreaResetAndClr
= 0x16,
1136 EventLogTypeSystemBoot
= 0x17,
1137 EventLogTypeUnused
= 0x18, // 0x18 - 0x7F
1138 EventLogTypeAvailForSys
= 0x80, // 0x80 - 0xFE
1139 EventLogTypeEndOfLog
= 0xFF
1140 } EVENT_LOG_TYPE_DATA
;
1143 /// System Event Log - Variable Data Format Types
1146 EventLogVariableNone
= 0x00,
1147 EventLogVariableHandle
= 0x01,
1148 EventLogVariableMutilEvent
= 0x02,
1149 EventLogVariableMutilEventHandle
= 0x03,
1150 EventLogVariablePOSTResultBitmap
= 0x04,
1151 EventLogVariableSysManagementType
= 0x05,
1152 EventLogVariableMutliEventSysManagmentType
= 0x06,
1153 EventLogVariableUnused
= 0x07,
1154 EventLogVariableOEMAssigned
= 0x80
1155 } EVENT_LOG_TYPE_DATA
;
1158 /// Group Item Entry
1166 /// Event Log Type Descriptors
1169 EVENT_LOG_TYPE_DATA LogType
;
1170 UINT8 DataFormatType
;
1174 /// Group Associations (Type 14)
1176 /// The Group Associations structure is provided for OEMs who want to specify
1177 /// the arrangement or hierarchy of certain components (including other Group Associations)
1178 /// within the system.
1181 SMBIOS_STRUCTURE Hdr
;
1182 SMBIOS_TABLE_STRING GroupName
;
1183 GROUP_STRUCT Group
[1];
1184 } SMBIOS_TABLE_TYPE14
;
1187 /// System Event Log (Type 15)
1189 /// The presence of this structure within the SMBIOS data returned for a system indicates
1190 /// that the system supports an event log. An event log is a fixed-length area within a
1191 /// non-volatile storage element, starting with a fixed-length (and vendor-specific) header
1192 /// record, followed by one or more variable-length log records.
1195 SMBIOS_STRUCTURE Hdr
;
1196 UINT16 LogAreaLength
;
1197 UINT16 LogHeaderStartOffset
;
1198 UINT16 LogDataStartOffset
;
1201 UINT32 LogChangeToken
;
1202 UINT32 AccessMethodAddress
;
1203 UINT8 LogHeaderFormat
;
1204 UINT8 NumberOfSupportedLogTypeDescriptors
;
1205 UINT8 LengthOfLogTypeDescriptor
;
1206 EVENT_LOG_TYPE EventLogTypeDescriptors
[1];
1207 } SMBIOS_TABLE_TYPE15
;
1210 /// Physical Memory Array - Location
1213 MemoryArrayLocationOther
= 0x01,
1214 MemoryArrayLocationUnknown
= 0x02,
1215 MemoryArrayLocationSystemBoard
= 0x03,
1216 MemoryArrayLocationIsaAddonCard
= 0x04,
1217 MemoryArrayLocationEisaAddonCard
= 0x05,
1218 MemoryArrayLocationPciAddonCard
= 0x06,
1219 MemoryArrayLocationMcaAddonCard
= 0x07,
1220 MemoryArrayLocationPcmciaAddonCard
= 0x08,
1221 MemoryArrayLocationProprietaryAddonCard
= 0x09,
1222 MemoryArrayLocationNuBus
= 0x0A,
1223 MemoryArrayLocationPc98C20AddonCard
= 0xA0,
1224 MemoryArrayLocationPc98C24AddonCard
= 0xA1,
1225 MemoryArrayLocationPc98EAddonCard
= 0xA2,
1226 MemoryArrayLocationPc98LocalBusAddonCard
= 0xA3
1227 } MEMORY_ARRAY_LOCATION
;
1230 /// Physical Memory Array - Use
1233 MemoryArrayUseOther
= 0x01,
1234 MemoryArrayUseUnknown
= 0x02,
1235 MemoryArrayUseSystemMemory
= 0x03,
1236 MemoryArrayUseVideoMemory
= 0x04,
1237 MemoryArrayUseFlashMemory
= 0x05,
1238 MemoryArrayUseNonVolatileRam
= 0x06,
1239 MemoryArrayUseCacheMemory
= 0x07
1243 /// Physical Memory Array - Error Correction Types
1246 MemoryErrorCorrectionOther
= 0x01,
1247 MemoryErrorCorrectionUnknown
= 0x02,
1248 MemoryErrorCorrectionNone
= 0x03,
1249 MemoryErrorCorrectionParity
= 0x04,
1250 MemoryErrorCorrectionSingleBitEcc
= 0x05,
1251 MemoryErrorCorrectionMultiBitEcc
= 0x06,
1252 MemoryErrorCorrectionCrc
= 0x07
1253 } MEMORY_ERROR_CORRECTION
;
1256 /// Physical Memory Array (Type 16)
1258 /// This structure describes a collection of memory devices that operate
1259 /// together to form a memory address space.
1262 SMBIOS_STRUCTURE Hdr
;
1263 MEMORY_ARRAY_LOCATION Location
;
1264 MEMORY_ARRAY_USE Use
;
1265 MEMORY_ERROR_CORRECTION MemoryErrorCorrection
;
1266 UINT32 MaximumCapacity
;
1267 UINT16 MemoryErrorInformationHandle
;
1268 UINT16 NumberOfMemoryDevices
;
1269 } SMBIOS_TABLE_TYPE16
;
1272 /// Memory Device - Form Factor
1275 MemoryFormFactorOther
= 0x01,
1276 MemoryFormFactorUnknown
= 0x02,
1277 MemoryFormFactorSimm
= 0x03,
1278 MemoryFormFactorSip
= 0x04,
1279 MemoryFormFactorChip
= 0x05,
1280 MemoryFormFactorDip
= 0x06,
1281 MemoryFormFactorZip
= 0x07,
1282 MemoryFormFactorProprietaryCard
= 0x08,
1283 MemoryFormFactorDimm
= 0x09,
1284 MemoryFormFactorTsop
= 0x0A,
1285 MemoryFormFactorRowOfChips
= 0x0B,
1286 MemoryFormFactorRimm
= 0x0C,
1287 MemoryFormFactorSodimm
= 0x0D,
1288 MemoryFormFactorSrimm
= 0x0E,
1289 MemoryFormFactorFbDimm
= 0x0F
1290 } MEMORY_FORM_FACTOR
;
1293 /// Memory Device - Type
1296 MemoryTypeOther
= 0x01,
1297 MemoryTypeUnknown
= 0x02,
1298 MemoryTypeDram
= 0x03,
1299 MemoryTypeEdram
= 0x04,
1300 MemoryTypeVram
= 0x05,
1301 MemoryTypeSram
= 0x06,
1302 MemoryTypeRam
= 0x07,
1303 MemoryTypeRom
= 0x08,
1304 MemoryTypeFlash
= 0x09,
1305 MemoryTypeEeprom
= 0x0A,
1306 MemoryTypeFeprom
= 0x0B,
1307 MemoryTypeEprom
= 0x0C,
1308 MemoryTypeCdram
= 0x0D,
1309 MemoryType3Dram
= 0x0E,
1310 MemoryTypeSdram
= 0x0F,
1311 MemoryTypeSgram
= 0x10,
1312 MemoryTypeRdram
= 0x11,
1313 MemoryTypeDdr
= 0x12,
1314 MemoryTypeDdr2
= 0x13,
1315 MemoryTypeDdr2FbDimm
= 0x14
1316 } MEMORY_DEVICE_TYPE
;
1322 UINT16 FastPaged
:1;
1323 UINT16 StaticColumn
:1;
1324 UINT16 PseudoStatic
:1;
1326 UINT16 Synchronous
:1;
1329 UINT16 WindowDram
:1;
1330 UINT16 CacheDram
:1;
1331 UINT16 Nonvolatile
:1;
1332 UINT16 Reserved1
:3;
1333 } MEMORY_DEVICE_TYPE_DETAIL
;
1336 /// Memory Device (Type 17)
1338 /// This structure describes a single memory device that is part of
1339 /// a larger Physical Memory Array (Type 16).
1340 /// Note: If a system includes memory-device sockets, the SMBIOS implementation
1341 /// includes a Memory Device structure instance for each slot whether or not the
1342 /// socket is currently populated.
1345 SMBIOS_STRUCTURE Hdr
;
1346 UINT16 MemoryArrayHandle
;
1347 UINT16 MemoryErrorInformationHandle
;
1351 MEMORY_FORM_FACTOR FormFactor
;
1353 SMBIOS_TABLE_STRING DeviceLocator
;
1354 SMBIOS_TABLE_STRING BankLocator
;
1355 MEMORY_DEVICE_TYPE MemoryType
;
1356 MEMORY_DEVICE_TYPE_DETAIL TypeDetail
;
1358 SMBIOS_TABLE_STRING Manufacturer
;
1359 SMBIOS_TABLE_STRING SerialNumber
;
1360 SMBIOS_TABLE_STRING AssetTag
;
1361 SMBIOS_TABLE_STRING PartNumber
;
1363 // Add for smbios 2.6
1366 } SMBIOS_TABLE_TYPE17
;
1369 /// 32-bit Memory Error Information - Error Type
1372 MemoryErrorOther
= 0x01,
1373 MemoryErrorUnknown
= 0x02,
1374 MemoryErrorOk
= 0x03,
1375 MemoryErrorBadRead
= 0x04,
1376 MemoryErrorParity
= 0x05,
1377 MemoryErrorSigleBit
= 0x06,
1378 MemoryErrorDoubleBit
= 0x07,
1379 MemoryErrorMultiBit
= 0x08,
1380 MemoryErrorNibble
= 0x09,
1381 MemoryErrorChecksum
= 0x0A,
1382 MemoryErrorCrc
= 0x0B,
1383 MemoryErrorCorrectSingleBit
= 0x0C,
1384 MemoryErrorCorrected
= 0x0D,
1385 MemoryErrorUnCorrectable
= 0x0E
1386 } MEMORY_ERROR_TYPE
;
1389 /// 32-bit Memory Error Information - Error Granularity
1392 MemoryGranularityOther
= 0x01,
1393 MemoryGranularityOtherUnknown
= 0x02,
1394 MemoryGranularityDeviceLevel
= 0x03,
1395 MemoryGranularityMemPartitionLevel
= 0x04
1396 } MEMORY_ERROR_GRANULARITY
;
1399 /// 32-bit Memory Error Information - Error Operation
1402 MemoryErrorOperationOther
= 0x01,
1403 MemoryErrorOperationUnknown
= 0x02,
1404 MemoryErrorOperationRead
= 0x03,
1405 MemoryErrorOperationWrite
= 0x04,
1406 MemoryErrorOperationPartialWrite
= 0x05
1407 } MEMORY_ERROR_OPERATION
;
1410 /// 32-bit Memory Error Information (Type 18)
1412 /// This structure identifies the specifics of an error that might be detected
1413 /// within a Physical Memory Array.
1416 SMBIOS_STRUCTURE Hdr
;
1417 MEMORY_ERROR_TYPE ErrorType
;
1418 MEMORY_ERROR_GRANULARITY ErrorGranularity
;
1419 MEMORY_ERROR_OPERATION ErrorOperation
;
1420 UINT32 VendorSyndrome
;
1421 UINT32 MemoryArrayErrorAddress
;
1422 UINT32 DeviceErrorAddress
;
1423 UINT32 ErrorResolution
;
1424 } SMBIOS_TABLE_TYPE18
;
1427 /// Memory Array Mapped Address (Type 19)
1429 /// This structure provides the address mapping for a Physical Memory Array.
1430 /// One structure is present for each contiguous address range described.
1433 SMBIOS_STRUCTURE Hdr
;
1434 UINT32 StartingAddress
;
1435 UINT32 EndingAddress
;
1436 UINT16 MemoryArrayHandle
;
1437 UINT8 PartitionWidth
;
1438 } SMBIOS_TABLE_TYPE19
;
1441 /// Memory Device Mapped Address (Type 20)
1443 /// This structure maps memory address space usually to a device-level granularity.
1444 /// One structure is present for each contiguous address range described.
1447 SMBIOS_STRUCTURE Hdr
;
1448 UINT32 StartingAddress
;
1449 UINT32 EndingAddress
;
1450 UINT16 MemoryDeviceHandle
;
1451 UINT16 MemoryArrayMappedAddressHandle
;
1452 UINT8 PartitionRowPosition
;
1453 UINT8 InterleavePosition
;
1454 UINT8 InterleavedDataDepth
;
1455 } SMBIOS_TABLE_TYPE20
;
1458 /// Built-in Pointing Device - Type
1461 PointingDeviceTypeOther
= 0x01,
1462 PointingDeviceTypeUnknown
= 0x02,
1463 PointingDeviceTypeMouse
= 0x03,
1464 PointingDeviceTypeTrackBall
= 0x04,
1465 PointingDeviceTypeTrackPoint
= 0x05,
1466 PointingDeviceTypeGlidePoint
= 0x06,
1467 PointingDeviceTouchPad
= 0x07,
1468 PointingDeviceTouchScreen
= 0x08,
1469 PointingDeviceOpticalSensor
= 0x09
1470 } BUILTIN_POINTING_DEVICE_TYPE
;
1473 /// Built-in Pointing Device - Interface
1476 PointingDeviceInterfaceOther
= 0x01,
1477 PointingDeviceInterfaceUnknown
= 0x02,
1478 PointingDeviceInterfaceSerial
= 0x03,
1479 PointingDeviceInterfacePs2
= 0x04,
1480 PointingDeviceInterfaceInfrared
= 0x05,
1481 PointingDeviceInterfaceHpHil
= 0x06,
1482 PointingDeviceInterfaceBusMouse
= 0x07,
1483 PointingDeviceInterfaceADB
= 0x08,
1484 PointingDeviceInterfaceBusMouseDB9
= 0xA0,
1485 PointingDeviceInterfaceBusMouseMicroDin
= 0xA1,
1486 PointingDeviceInterfaceUsb
= 0xA2
1487 } BUILTIN_POINTING_DEVICE_INTERFACE
;
1490 /// Built-in Pointing Device (Type 21)
1492 /// This structure describes the attributes of the built-in pointing device for the
1493 /// system - the presence of this structure does not imply that the built-in
1494 /// pointing device is active for the system's use!
1497 SMBIOS_STRUCTURE Hdr
;
1498 BUILTIN_POINTING_DEVICE_TYPE Type
;
1499 BUILTIN_POINTING_DEVICE_INTERFACE Interface
;
1500 UINT8 NumberOfButtons
;
1501 } SMBIOS_TABLE_TYPE21
;
1504 /// Portable Battery - Device Chemistry
1507 PortableBatteryDeviceChemistryOther
= 0x01,
1508 PortableBatteryDeviceChemistryUnknown
= 0x02,
1509 PortableBatteryDeviceChemistryLeadAcid
= 0x03,
1510 PortableBatteryDeviceChemistryNickelCadmium
= 0x04,
1511 PortableBatteryDeviceChemistryNickelMetalHydride
= 0x05,
1512 PortableBatteryDeviceChemistryLithiumIon
= 0x06,
1513 PortableBatteryDeviceChemistryZincAir
= 0x07,
1514 PortableBatteryDeviceChemistryLithiumPolymer
= 0x08
1515 } PORTABLE_BATTERY_DEVICE_CHEMISTRY
;
1518 /// Portable Battery (Type 22)
1520 /// This structure describes the attributes of the portable battery(s) for the system.
1521 /// The structure contains the static attributes for the group. Each structure describes
1522 /// a single battery pack's attributes.
1525 SMBIOS_STRUCTURE Hdr
;
1526 SMBIOS_TABLE_STRING Location
;
1527 SMBIOS_TABLE_STRING Manufacturer
;
1528 SMBIOS_TABLE_STRING ManufactureDate
;
1529 SMBIOS_TABLE_STRING SerialNumber
;
1530 SMBIOS_TABLE_STRING DeviceName
;
1531 PORTABLE_BATTERY_DEVICE_CHEMISTRY DeviceChemistry
;
1532 UINT16 DeviceCapacity
;
1533 UINT16 DesignVoltage
;
1534 SMBIOS_TABLE_STRING SBDSVersionNumber
;
1535 UINT8 MaximumErrorInBatteryData
;
1536 UINT16 SBDSSerialNumber
;
1537 UINT16 SBDSManufactureDate
;
1538 SMBIOS_TABLE_STRING SBDSDeviceChemistry
;
1539 UINT8 DesignCapacityMultiplier
;
1541 } SMBIOS_TABLE_TYPE22
;
1544 /// System Reset (Type 23)
1546 /// This structure describes whether Automatic System Reset functions enabled (Status).
1547 /// If the system has a watchdog Timer and the timer is not reset (Timer Reset)
1548 /// before the Interval elapses, an automatic system reset will occur. The system will re-boot
1549 /// according to the Boot Option. This function may repeat until the Limit is reached, at which time
1550 /// the system will re-boot according to the Boot Option at Limit.
1553 SMBIOS_STRUCTURE Hdr
;
1557 UINT16 TimerInterval
;
1559 } SMBIOS_TABLE_TYPE23
;
1562 /// Hardware Security (Type 24)
1564 /// This structure describes the system-wide hardware security settings.
1567 SMBIOS_STRUCTURE Hdr
;
1568 UINT8 HardwareSecuritySettings
;
1569 } SMBIOS_TABLE_TYPE24
;
1572 /// System Power Controls (Type 25)
1574 /// This structure describes the attributes for controlling the main power supply to the system.
1575 /// Software that interprets this structure uses the month, day, hour, minute, and second values
1576 /// to determine the number of seconds until the next power-on of the system. The presence of
1577 /// this structure implies that a timed power-on facility is available for the system.
1580 SMBIOS_STRUCTURE Hdr
;
1581 UINT8 NextScheduledPowerOnMonth
;
1582 UINT8 NextScheduledPowerOnDayOfMonth
;
1583 UINT8 NextScheduledPowerOnHour
;
1584 UINT8 NextScheduledPowerOnMinute
;
1585 UINT8 NextScheduledPowerOnSecond
;
1586 } SMBIOS_TABLE_TYPE25
;
1589 /// Voltage Probe - Location and Status
1592 UINT8 VoltageProbeSite
:5;
1593 UINT8 VoltageProbeStatus
:3;
1594 } MISC_VOLTAGE_PROBE_LOCATION
;
1597 /// Voltage Probe (Type 26)
1599 /// This describes the attributes for a voltage probe in the system.
1600 /// Each structure describes a single voltage probe.
1603 SMBIOS_STRUCTURE Hdr
;
1604 SMBIOS_TABLE_STRING Description
;
1605 MISC_VOLTAGE_PROBE_LOCATION LocationAndStatus
;
1606 UINT16 MaximumValue
;
1607 UINT16 MinimumValue
;
1612 UINT16 NominalValue
;
1613 } SMBIOS_TABLE_TYPE26
;
1616 /// Cooling Device - Device Type and Status
1619 UINT8 CoolingDevice
:5;
1620 UINT8 CoolingDeviceStatus
:3;
1621 } MISC_COOLING_DEVICE_TYPE
;
1624 /// Cooling Device (Type 27)
1626 /// This structure describes the attributes for a cooling device in the system.
1627 /// Each structure describes a single cooling device.
1630 SMBIOS_STRUCTURE Hdr
;
1631 UINT16 TemperatureProbeHandle
;
1632 MISC_COOLING_DEVICE_TYPE DeviceTypeAndStatus
;
1633 UINT8 CoolingUnitGroup
;
1635 UINT16 NominalSpeed
;
1636 } SMBIOS_TABLE_TYPE27
;
1639 /// Temperature Probe - Location and Status
1642 UINT8 TemperatureProbeSite
:5;
1643 UINT8 TemperatureProbeStatus
:3;
1644 } MISC_TEMPERATURE_PROBE_LOCATION
;
1647 /// Temperature Probe (Type 28)
1649 /// This structure describes the attributes for a temperature probe in the system.
1650 /// Each structure describes a single temperature probe.
1653 SMBIOS_STRUCTURE Hdr
;
1654 SMBIOS_TABLE_STRING Description
;
1655 MISC_TEMPERATURE_PROBE_LOCATION LocationAndStatus
;
1656 UINT16 MaximumValue
;
1657 UINT16 MinimumValue
;
1662 UINT16 NominalValue
;
1663 } SMBIOS_TABLE_TYPE28
;
1666 /// Electrical Current Probe - Location and Status
1669 UINT8 ElectricalCurrentProbeSite
:5;
1670 UINT8 ElectricalCurrentProbeStatus
:3;
1671 } MISC_ELECTRICAL_CURRENT_PROBE_LOCATION
;
1674 /// Electrical Current Probe (Type 29)
1676 /// This structure describes the attributes for an electrical current probe in the system.
1677 /// Each structure describes a single electrical current probe.
1680 SMBIOS_STRUCTURE Hdr
;
1681 SMBIOS_TABLE_STRING Description
;
1682 MISC_ELECTRICAL_CURRENT_PROBE_LOCATION LocationAndStatus
;
1683 UINT16 MaximumValue
;
1684 UINT16 MinimumValue
;
1689 UINT16 NominalValue
;
1690 } SMBIOS_TABLE_TYPE29
;
1693 /// Out-of-Band Remote Access (Type 30)
1695 /// This structure describes the attributes and policy settings of a hardware facility
1696 /// that may be used to gain remote access to a hardware system when the operating system
1697 /// is not available due to power-down status, hardware failures, or boot failures.
1700 SMBIOS_STRUCTURE Hdr
;
1701 SMBIOS_TABLE_STRING ManufacturerName
;
1703 } SMBIOS_TABLE_TYPE30
;
1706 /// Boot Integrity Services (BIS) Entry Point (Type 31)
1708 /// Structure type 31 (decimal) is reserved for use by the Boot Integrity Services (BIS).
1711 SMBIOS_STRUCTURE Hdr
;
1719 } SMBIOS_TABLE_TYPE31
;
1722 /// System Boot Information - System Boot Status
1725 BootInformationStatusNoError
= 0x00,
1726 BootInformationStatusNoBootableMedia
= 0x01,
1727 BootInformationStatusNormalOSFailedLoading
= 0x02,
1728 BootInformationStatusFirmwareDetectedFailure
= 0x03,
1729 BootInformationStatusOSDetectedFailure
= 0x04,
1730 BootInformationStatusUserRequestedBoot
= 0x05,
1731 BootInformationStatusSystemSecurityViolation
= 0x06,
1732 BootInformationStatusPreviousRequestedImage
= 0x07,
1733 BootInformationStatusWatchdogTimerExpired
= 0x08,
1734 BootInformationStatusStartReserved
= 0x09,
1735 BootInformationStatusStartOemSpecific
= 0x80,
1736 BootInformationStatusStartProductSpecific
= 0xC0
1737 } MISC_BOOT_INFORMATION_STATUS_DATA_TYPE
;
1740 /// System Boot Information (Type 32)
1742 /// The client system firmware, e.g. BIOS, communicates the System Boot Status to the
1743 /// client's Pre-boot Execution Environment (PXE) boot image or OS-present management
1744 /// application via this structure. When used in the PXE environment, for example,
1745 /// this code identifies the reason the PXE was initiated and can be used by boot-image
1746 /// software to further automate an enterprise's PXE sessions. For example, an enterprise
1747 /// could choose to automatically download a hardware-diagnostic image to a client whose
1748 /// reason code indicated either a firmware- or operating system-detected hardware failure.
1751 SMBIOS_STRUCTURE Hdr
;
1753 MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootStatus
;
1754 } SMBIOS_TABLE_TYPE32
;
1757 /// 64-bit Memory Error Information (Type 33)
1759 /// This structure describes an error within a Physical Memory Array,
1760 /// when the error address is above 4G (0xFFFFFFFF).
1763 SMBIOS_STRUCTURE Hdr
;
1764 MEMORY_ERROR_TYPE ErrorType
; // Same as Type 18
1765 MEMORY_ERROR_GRANULARITY ErrorGranularity
; // Same as Type 18
1766 MEMORY_ERROR_OPERATION ErrorOperation
; // Same as Type 18
1767 UINT32 VendorSyndrome
;
1768 UINT64 MemoryArrayErrorAddress
;
1769 UINT64 DeviceErrorAddress
;
1770 UINT32 ErrorResolution
;
1771 } SMBIOS_TABLE_TYPE33
;
1774 /// Management Device - Type
1777 ManagementDeviceTypeOther
= 0x01,
1778 ManagementDeviceTypeUnknown
= 0x02,
1779 ManagementDeviceTypeLm75
= 0x03,
1780 ManagementDeviceTypeLm78
= 0x04,
1781 ManagementDeviceTypeLm79
= 0x05,
1782 ManagementDeviceTypeLm80
= 0x06,
1783 ManagementDeviceTypeLm81
= 0x07,
1784 ManagementDeviceTypeAdm9240
= 0x08,
1785 ManagementDeviceTypeDs1780
= 0x09,
1786 ManagementDeviceTypeMaxim1617
= 0x0A,
1787 ManagementDeviceTypeGl518Sm
= 0x0B,
1788 ManagementDeviceTypeW83781D
= 0x0C,
1789 ManagementDeviceTypeHt82H791
= 0x0D
1790 } MISC_MANAGEMENT_DEVICE_TYPE
;
1793 /// Management Device - Address Type
1796 ManagementDeviceAddressTypeOther
= 0x01,
1797 ManagementDeviceAddressTypeUnknown
= 0x02,
1798 ManagementDeviceAddressTypeIOPort
= 0x03,
1799 ManagementDeviceAddressTypeMemory
= 0x04,
1800 ManagementDeviceAddressTypeSmbus
= 0x05
1801 } MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE
;
1804 /// Management Device (Type 34)
1806 /// The information in this structure defines the attributes of a Management Device.
1807 /// A Management Device might control one or more fans or voltage, current, or temperature
1808 /// probes as defined by one or more Management Device Component structures.
1811 SMBIOS_STRUCTURE Hdr
;
1812 SMBIOS_TABLE_STRING Description
;
1813 MISC_MANAGEMENT_DEVICE_TYPE Type
;
1815 MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE AddressType
;
1816 } SMBIOS_TABLE_TYPE34
;
1819 /// Management Device Component (Type 35)
1821 /// This structure associates a cooling device or environmental probe with structures
1822 /// that define the controlling hardware device and (optionally) the component's thresholds.
1825 SMBIOS_STRUCTURE Hdr
;
1826 SMBIOS_TABLE_STRING Description
;
1827 UINT16 ManagementDeviceHandle
;
1828 UINT16 ComponentHandle
;
1829 UINT16 ThresholdHandle
;
1830 } SMBIOS_TABLE_TYPE35
;
1833 /// Management Device Threshold Data (Type 36)
1835 /// The information in this structure defines threshold information for
1836 /// a component (probe or cooling-unit) contained within a Management Device.
1839 SMBIOS_STRUCTURE Hdr
;
1840 UINT16 LowerThresholdNonCritical
;
1841 UINT16 UpperThresholdNonCritical
;
1842 UINT16 LowerThresholdCritical
;
1843 UINT16 UpperThresholdCritical
;
1844 UINT16 LowerThresholdNonRecoverable
;
1845 UINT16 UpperThresholdNonRecoverable
;
1846 } SMBIOS_TABLE_TYPE36
;
1849 /// Memory Channel Entry
1853 UINT16 DeviceHandle
;
1857 /// Memory Channel - Channel Type
1860 MemoryChannelTypeOther
= 0x01,
1861 MemoryChannelTypeUnknown
= 0x02,
1862 MemoryChannelTypeRambus
= 0x03,
1863 MemoryChannelTypeSyncLink
= 0x04
1864 } MEMORY_CHANNEL_TYPE
;
1867 /// Memory Channel (Type 37)
1869 /// The information in this structure provides the correlation between a Memory Channel
1870 /// and its associated Memory Devices. Each device presents one or more loads to the channel;
1871 /// the sum of all device loads cannot exceed the channel's defined maximum.
1874 SMBIOS_STRUCTURE Hdr
;
1876 UINT8 MaximumChannelLoad
;
1877 UINT8 MemoryDeviceCount
;
1878 MEMORY_DEVICE MemoryDevice
[1];
1879 } SMBIOS_TABLE_TYPE37
;
1882 /// IPMI Device Information - BMC Interface Type
1885 IPMIDeviceInfoInterfaceTypeUnknown
= 0x00,
1886 IPMIDeviceInfoInterfaceTypeKCS
= 0x01, // Keyboard Controller Style
1887 IPMIDeviceInfoInterfaceTypeSMIC
= 0x02, // Server Management Interface Chip
1888 IPMIDeviceInfoInterfaceTypeBT
= 0x03, // Block Transfer
1889 IPMIDeviceInfoInterfaceTypeReserved
= 0x04
1890 } BMC_INTERFACE_TYPE
;
1893 /// IPMI Device Information (Type 38)
1895 /// The information in this structure defines the attributes of an
1896 /// Intelligent Platform Management Interface (IPMI) Baseboard Management Controller (BMC).
1899 SMBIOS_STRUCTURE Hdr
;
1900 BMC_INTERFACE_TYPE InterfaceType
;
1901 UINT8 IPMISpecificationRevision
;
1902 UINT8 I2CSlaveAddress
;
1903 UINT8 NVStorageDeviceAddress
;
1905 UINT8 BaseAddressModifier_InterruptInfo
;
1906 UINT8 InterruptNumber
;
1907 } SMBIOS_TABLE_TYPE38
;
1910 /// System Power Supply - Power Supply Characteristics
1913 UINT16 PowerSupplyHotReplaceable
:1;
1914 UINT16 PowerSupplyPresent
:1;
1915 UINT16 PowerSupplyUnplugged
:1;
1916 UINT16 InputVoltageRangeSwitch
:4;
1917 UINT16 PowerSupplyStatus
:3;
1918 UINT16 PowerSupplyType
:4;
1920 } SYS_POWER_SUPPLY_CHARACTERISTICS
;
1923 /// System Power Supply (Type 39)
1925 /// This structure identifies attributes of a system power supply. One instance
1926 /// of this record is present for each possible power supply in a system.
1929 SMBIOS_STRUCTURE Hdr
;
1930 UINT8 PowerUnitGroup
;
1931 SMBIOS_TABLE_STRING Location
;
1932 SMBIOS_TABLE_STRING DeviceName
;
1933 SMBIOS_TABLE_STRING Manufacturer
;
1934 SMBIOS_TABLE_STRING SerialNumber
;
1935 SMBIOS_TABLE_STRING AssetTagNumber
;
1936 SMBIOS_TABLE_STRING ModelPartNumber
;
1937 SMBIOS_TABLE_STRING RevisionLevel
;
1938 UINT16 MaxPowerCapacity
;
1939 SYS_POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics
;
1940 UINT16 InputVoltageProbeHandle
;
1941 UINT16 CoolingDeviceHandle
;
1942 UINT16 InputCurrentProbeHandle
;
1943 } SMBIOS_TABLE_TYPE39
;
1946 /// Additional Information Entry Format
1950 UINT16 ReferencedHandle
;
1951 UINT8 ReferencedOffset
;
1952 SMBIOS_TABLE_STRING EntryString
;
1954 }ADDITIONAL_INFORMATION_ENTRY
;
1957 /// Additional Information (Type 40)
1959 /// This structure is intended to provide additional information for handling unspecified
1960 /// enumerated values and interim field updates in another structure.
1963 SMBIOS_STRUCTURE Hdr
;
1964 UINT8 NumberOfAdditionalInformationEntries
;
1965 ADDITIONAL_INFORMATION_ENTRY AdditionalInfoEntries
[1];
1966 } SMBIOS_TABLE_TYPE40
;
1969 /// Onboard Devices Extended Information - Onboard Device Types
1972 OnBoardDeviceExtendedTypeOther
= 0x01,
1973 OnBoardDeviceExtendedTypeUnknown
= 0x02,
1974 OnBoardDeviceExtendedTypeVideo
= 0x03,
1975 OnBoardDeviceExtendedTypeScsiController
= 0x04,
1976 OnBoardDeviceExtendedTypeEthernet
= 0x05,
1977 OnBoardDeviceExtendedTypeTokenRing
= 0x06,
1978 OnBoardDeviceExtendedTypeSound
= 0x07,
1979 OnBoardDeviceExtendedTypePATAController
= 0x08,
1980 OnBoardDeviceExtendedTypeSATAController
= 0x09,
1981 OnBoardDeviceExtendedTypeSASController
= 0x0A
1982 } ONBOARD_DEVICE_EXTENDED_INFO_TYPE
;
1985 /// Onboard Devices Extended Information (Type 41)
1987 /// The information in this structure defines the attributes of devices that
1988 /// are onboard (soldered onto) a system element, usually the baseboard.
1989 /// In general, an entry in this table implies that the BIOS has some level of
1990 /// control over the enabling of the associated device for use by the system.
1993 SMBIOS_STRUCTURE Hdr
;
1994 SMBIOS_TABLE_STRING ReferenceDesignation
;
1995 ONBOARD_DEVICE_EXTENDED_INFO_TYPE DeviceType
;
1996 UINT8 DeviceTypeInstance
;
1997 UINT16 SegmentGroupNum
;
2000 } SMBIOS_TABLE_TYPE41
;
2003 /// Inactive (Type 126)
2006 SMBIOS_STRUCTURE Hdr
;
2007 } SMBIOS_TABLE_TYPE126
;
2010 /// End-of-Table (Type 127)
2013 SMBIOS_STRUCTURE Hdr
;
2014 } SMBIOS_TABLE_TYPE127
;
2017 /// Union of all the possible SMBIOS record types
2020 SMBIOS_STRUCTURE
*Hdr
;
2021 SMBIOS_TABLE_TYPE0
*Type0
;
2022 SMBIOS_TABLE_TYPE1
*Type1
;
2023 SMBIOS_TABLE_TYPE2
*Type2
;
2024 SMBIOS_TABLE_TYPE3
*Type3
;
2025 SMBIOS_TABLE_TYPE4
*Type4
;
2026 SMBIOS_TABLE_TYPE5
*Type5
;
2027 SMBIOS_TABLE_TYPE6
*Type6
;
2028 SMBIOS_TABLE_TYPE7
*Type7
;
2029 SMBIOS_TABLE_TYPE8
*Type8
;
2030 SMBIOS_TABLE_TYPE9
*Type9
;
2031 SMBIOS_TABLE_TYPE10
*Type10
;
2032 SMBIOS_TABLE_TYPE11
*Type11
;
2033 SMBIOS_TABLE_TYPE12
*Type12
;
2034 SMBIOS_TABLE_TYPE13
*Type13
;
2035 SMBIOS_TABLE_TYPE14
*Type14
;
2036 SMBIOS_TABLE_TYPE15
*Type15
;
2037 SMBIOS_TABLE_TYPE16
*Type16
;
2038 SMBIOS_TABLE_TYPE17
*Type17
;
2039 SMBIOS_TABLE_TYPE18
*Type18
;
2040 SMBIOS_TABLE_TYPE19
*Type19
;
2041 SMBIOS_TABLE_TYPE20
*Type20
;
2042 SMBIOS_TABLE_TYPE21
*Type21
;
2043 SMBIOS_TABLE_TYPE22
*Type22
;
2044 SMBIOS_TABLE_TYPE23
*Type23
;
2045 SMBIOS_TABLE_TYPE24
*Type24
;
2046 SMBIOS_TABLE_TYPE25
*Type25
;
2047 SMBIOS_TABLE_TYPE26
*Type26
;
2048 SMBIOS_TABLE_TYPE27
*Type27
;
2049 SMBIOS_TABLE_TYPE28
*Type28
;
2050 SMBIOS_TABLE_TYPE29
*Type29
;
2051 SMBIOS_TABLE_TYPE30
*Type30
;
2052 SMBIOS_TABLE_TYPE31
*Type31
;
2053 SMBIOS_TABLE_TYPE32
*Type32
;
2054 SMBIOS_TABLE_TYPE33
*Type33
;
2055 SMBIOS_TABLE_TYPE34
*Type34
;
2056 SMBIOS_TABLE_TYPE35
*Type35
;
2057 SMBIOS_TABLE_TYPE36
*Type36
;
2058 SMBIOS_TABLE_TYPE37
*Type37
;
2059 SMBIOS_TABLE_TYPE38
*Type38
;
2060 SMBIOS_TABLE_TYPE39
*Type39
;
2061 SMBIOS_TABLE_TYPE40
*Type40
;
2062 SMBIOS_TABLE_TYPE41
*Type41
;
2063 SMBIOS_TABLE_TYPE126
*Type126
;
2064 SMBIOS_TABLE_TYPE127
*Type127
;
2066 } SMBIOS_STRUCTURE_POINTER
;