2 The conversion table that guides the generation of the Smbios struture list.
4 Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are 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.
18 /// The minimal length includes last two zero bytes.
20 SMBIOS_TYPE_INFO_TABLE_ENTRY mTypeInfoTable
[] = {
22 // Type 0: Bios Information
29 }, // size includes wo extension bytes
31 // Type 1: System Information
40 // Type 2: Base Board Information
49 // Type 3: System Enclosure or Chassis
53 0x17, // 0x13 covers till OEM-defined, not right
67 // Type 5: Memory Controller
94 // Type 8: Port Connector Information
103 // Type 9: System Slots
112 // Type 10: On Board Device Information
121 // Type 11: OEM Strings
130 // Type 12: System Configuration Options
139 // Type 13: BIOS Language Information
148 // Type 15: System Event Log
157 // Type 16: Physical Memory Array
166 // Type 17: Memory Device
175 // Type 18: 32 bit Memory Error Information
184 // Type 19: Memory Array Mapped Address
193 // Type 20: Memory Device Mapped Address
202 // Type 21: Pointing Device
211 // Type 22: Portable Battery
220 // Type 23: System Reset
229 // Type 24: Hardware Security
238 // Type 25: System Power Controls
247 // Type 26: Voltage Probe
256 // Type 27: Cooling Device
265 // Type 28: Temperature Probe
274 // Type 29: Electrical Current Probe
283 // Type 30: Out-of-Band Remote Access
292 // Type 31: BIS Entry Point
301 // Type 32: System Boot Information
310 // Type 33: 64 bit Memory Error Information
319 // Type 34: Management Device
328 // Type 36: Management Device Threshold
337 // Type 37: Memory Channel
346 // Type 38: IPMI device info
355 // Type 39: Power supply
364 // Type 0x80-0xFF: OEM type
373 // Type 127: End of Table
390 SMBIOS_CONVERSION_TABLE_ENTRY mConversionTable
[] = {
394 // Processor Sub Class -- Record Type 1: Frequency
396 EFI_PROCESSOR_SUBCLASS_GUID
,
397 ProcessorCoreFrequencyRecordType
,
399 BySubclassInstanceSubinstanceProducer
,
400 ByFunctionWithOffsetSpecified
,
402 SmbiosFldBase10ToWordWithMega
407 // Processor SubClass -- Record Type 2: Bus Frequency
409 EFI_PROCESSOR_SUBCLASS_GUID
,
410 ProcessorFsbFrequencyRecordType
,
412 BySubclassInstanceSubinstanceProducer
,
413 ByFunctionWithOffsetSpecified
,
415 SmbiosFldBase10ToWordWithMega
420 // Processor SubClass -- Record Type 3: Version
422 EFI_PROCESSOR_SUBCLASS_GUID
,
423 ProcessorVersionRecordType
,
425 BySubclassInstanceSubinstanceProducer
,
426 ByFunctionWithOffsetSpecified
,
433 // Processor SubClass -- Record Type 4: Manufacturor
435 EFI_PROCESSOR_SUBCLASS_GUID
,
436 ProcessorManufacturerRecordType
,
438 BySubclassInstanceSubinstanceProducer
,
439 ByFunctionWithOffsetSpecified
,
446 // Processor SubClass -- Record Type 5: Serial Number
448 EFI_PROCESSOR_SUBCLASS_GUID
,
449 ProcessorSerialNumberRecordType
,
451 BySubclassInstanceSubinstanceProducer
,
452 ByFunctionWithOffsetSpecified
,
459 // Processor SubClass -- Record Type 6: ID
461 EFI_PROCESSOR_SUBCLASS_GUID
,
462 ProcessorIdRecordType
,
464 BySubclassInstanceSubinstanceProducer
,
465 ByFunctionWithOffsetSpecified
,
467 SmbiosFldProcessorType6
472 // Processor SubClass -- Record Type 7: Type
474 EFI_PROCESSOR_SUBCLASS_GUID
,
475 ProcessorTypeRecordType
,
477 BySubclassInstanceSubinstanceProducer
,
478 ByFunctionWithOffsetSpecified
,
480 SmbiosFldTruncateToByte
485 // Processor SubClass -- Record Type 8: Family
487 EFI_PROCESSOR_SUBCLASS_GUID
,
488 ProcessorFamilyRecordType
,
490 BySubclassInstanceSubinstanceProducer
,
491 ByFunctionWithOffsetSpecified
,
493 SmbiosFldTruncateToByte
498 // Processor SubClass -- Record Type 9: Voltage
500 EFI_PROCESSOR_SUBCLASS_GUID
,
501 ProcessorVoltageRecordType
,
503 BySubclassInstanceSubinstanceProducer
,
504 ByFunctionWithOffsetSpecified
,
506 SmbiosFldProcessorType9
511 // Processor SubClass -- Record Type 14: Status
513 EFI_PROCESSOR_SUBCLASS_GUID
,
514 ProcessorStatusRecordType
,
516 BySubclassInstanceSubinstanceProducer
,
517 ByFunctionWithOffsetSpecified
,
519 SmbiosFldTruncateToByte
524 // Processor SubClass -- Record Type 15: Socket Type
526 EFI_PROCESSOR_SUBCLASS_GUID
,
527 ProcessorSocketTypeRecordType
,
529 BySubclassInstanceSubinstanceProducer
,
530 ByFunctionWithOffsetSpecified
,
532 SmbiosFldTruncateToByte
537 // Processor SubClass -- Record Type 16: Socket Name
539 EFI_PROCESSOR_SUBCLASS_GUID
,
540 ProcessorSocketNameRecordType
,
542 BySubclassInstanceSubinstanceProducer
,
543 ByFunctionWithOffsetSpecified
,
550 // Processor SubClass -- Record Type 17: Cache Associtation
552 EFI_PROCESSOR_SUBCLASS_GUID
,
553 CacheAssociationRecordType
,
555 BySubClassInstanceProducer
,
556 ByFunctionWithWholeDataRecord
,
558 SmbiosFldProcessorType17
563 // Processor Sub Class -- Record Type 18: MaxFrequency
565 EFI_PROCESSOR_SUBCLASS_GUID
,
566 ProcessorMaxCoreFrequencyRecordType
,
568 BySubclassInstanceSubinstanceProducer
,
569 ByFunctionWithOffsetSpecified
,
571 SmbiosFldBase10ToWordWithMega
576 // Processor SubClass -- Record Type 19: Asset Tag
578 EFI_PROCESSOR_SUBCLASS_GUID
,
579 ProcessorAssetTagRecordType
,
581 BySubclassInstanceSubinstanceProducer
,
582 ByFunctionWithOffsetSpecified
,
589 // Processor Sub Class -- Record Type 25: Core Count
591 EFI_PROCESSOR_SUBCLASS_GUID
,
592 ProcessorCoreCountRecordType
,
594 BySubclassInstanceSubinstanceProducer
,
595 ByFunctionWithOffsetSpecified
,
597 SmbiosFldTruncateToByte
602 // Processor Sub Class -- Record Type 26: Enabled Core Count
604 EFI_PROCESSOR_SUBCLASS_GUID
,
605 ProcessorEnabledCoreCountRecordType
,
607 BySubclassInstanceSubinstanceProducer
,
608 ByFunctionWithOffsetSpecified
,
610 SmbiosFldTruncateToByte
615 // Processor Sub Class -- Record Type 27: Thread Count
617 EFI_PROCESSOR_SUBCLASS_GUID
,
618 ProcessorThreadCountRecordType
,
620 BySubclassInstanceSubinstanceProducer
,
621 ByFunctionWithOffsetSpecified
,
623 SmbiosFldTruncateToByte
628 // Processor Sub Class -- Record Type 28: Processor Characteristics
630 EFI_PROCESSOR_SUBCLASS_GUID
,
631 ProcessorCharacteristicsRecordType
,
633 BySubclassInstanceSubinstanceProducer
,
634 ByFunctionWithOffsetSpecified
,
636 SmbiosFldTruncateToWord
641 // Processor Sub Class -- Record Type 29: Family 2
643 EFI_PROCESSOR_SUBCLASS_GUID
,
644 ProcessorFamily2RecordType
,
646 BySubclassInstanceSubinstanceProducer
,
647 ByFunctionWithOffsetSpecified
,
649 SmbiosFldTruncateToWord
654 // Processor Sub Class -- Record Type 30: Part Number
656 EFI_PROCESSOR_SUBCLASS_GUID
,
657 ProcessorPartNumberRecordType
,
659 BySubclassInstanceSubinstanceProducer
,
660 ByFunctionWithOffsetSpecified
,
667 // Cache SubClass -- Record Type 1: Size
669 EFI_CACHE_SUBCLASS_GUID
,
672 BySubclassInstanceSubinstanceProducer
,
673 ByFunctionWithOffsetSpecified
,
675 SmbiosFldBase2ToWordWithKilo
680 // Cache SubClass -- Record Type 2: Max Size
682 EFI_CACHE_SUBCLASS_GUID
,
683 MaximumSizeCacheRecordType
,
685 BySubclassInstanceSubinstanceProducer
,
686 ByFunctionWithOffsetSpecified
,
688 SmbiosFldBase2ToWordWithKilo
693 // Cache SubClass -- Record Type 3: Speed
695 EFI_CACHE_SUBCLASS_GUID
,
696 CacheSpeedRecordType
,
698 BySubclassInstanceSubinstanceProducer
,
699 ByFunctionWithOffsetSpecified
,
701 SmbiosFldBase10ToByteWithNano
706 // Cache SubClass -- Record Type 4: Socket
708 EFI_CACHE_SUBCLASS_GUID
,
709 CacheSocketRecordType
,
711 BySubclassInstanceSubinstanceProducer
,
712 ByFunctionWithOffsetSpecified
,
719 // Cache SubClass -- Record Type 5: Supported SRAM type
721 EFI_CACHE_SUBCLASS_GUID
,
722 CacheSramTypeRecordType
,
724 BySubclassInstanceSubinstanceProducer
,
725 ByFunctionWithOffsetSpecified
,
727 SmbiosFldCacheType5
// Asynchronous and Synchronous are reversed
732 // Cache SubClass -- Record Type 6: Installed SRAM type
734 EFI_CACHE_SUBCLASS_GUID
,
735 CacheInstalledSramTypeRecordType
,
737 BySubclassInstanceSubinstanceProducer
,
738 ByFunctionWithOffsetSpecified
,
745 // Cache SubClass -- Record Type 7: error correction type
747 EFI_CACHE_SUBCLASS_GUID
,
748 CacheErrorTypeRecordType
,
750 BySubclassInstanceSubinstanceProducer
,
751 ByFunctionWithOffsetSpecified
,
753 SmbiosFldTruncateToByte
758 // Cache SubClass -- Record Type 8: cache type
760 EFI_CACHE_SUBCLASS_GUID
,
763 BySubclassInstanceSubinstanceProducer
,
764 ByFunctionWithOffsetSpecified
,
766 SmbiosFldTruncateToByte
771 // Cache SubClass -- Record Type 9: Associativity
773 EFI_CACHE_SUBCLASS_GUID
,
774 CacheAssociativityRecordType
,
776 BySubclassInstanceSubinstanceProducer
,
777 ByFunctionWithOffsetSpecified
,
779 SmbiosFldTruncateToByte
784 // Cache SubClass -- Record Type 10: Cache configuration
786 EFI_CACHE_SUBCLASS_GUID
,
787 CacheConfigRecordType
,
789 BySubclassInstanceSubinstanceProducer
,
790 ByFunctionWithOffsetSpecified
,
797 // Memory SubClass -- Record Type 2: Physical Memory Array
799 EFI_MEMORY_SUBCLASS_GUID
,
800 EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER
,
802 BySubclassInstanceSubinstanceProducer
,
810 // Memory SubClass -- Record Type 3: Memory Device to SMBIOS type 6
812 EFI_MEMORY_SUBCLASS_GUID
,
813 EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER
,
815 BySubclassInstanceSubinstanceProducer
,
823 // Memory SubClass -- Record Type 3: Memory Device to SMBIOS type 17
825 EFI_MEMORY_SUBCLASS_GUID
,
826 EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER
,
828 BySubclassInstanceSubinstanceProducer
,
836 // Memory SubClass -- Record Type 4: Memory Array Mapped Address
838 EFI_MEMORY_SUBCLASS_GUID
,
839 EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER
,
841 BySubclassInstanceSubinstanceProducer
,
849 // Memory SubClass -- Record Type 5: Memory Device Mapped Address
851 EFI_MEMORY_SUBCLASS_GUID
,
852 EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER
,
854 BySubclassInstanceSubinstanceProducer
,
862 // Memory SubClass -- Record Type 6: Memory Channel Type
864 EFI_MEMORY_SUBCLASS_GUID
,
865 EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER
,
867 BySubclassInstanceSubinstanceProducer
,
875 // Memory SubClass -- Record Type 7: Memory Channel Device
877 EFI_MEMORY_SUBCLASS_GUID
,
878 EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER
,
880 BySubclassInstanceSubinstanceProducer
,
888 // Memory SubClass -- Record Type 8: Memory Controller information
890 EFI_MEMORY_SUBCLASS_GUID
,
891 EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER
,
893 BySubclassInstanceSubinstanceProducer
,
901 // Memory SubClass -- Record Type 9: Memory 32 Bit Error Information
903 EFI_MEMORY_SUBCLASS_GUID
,
904 EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER
,
906 BySubclassInstanceSubinstanceProducer
,
914 // Memory SubClass -- Record Type 10: Memory 64 Bit Error Information
916 EFI_MEMORY_SUBCLASS_GUID
,
917 EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER
,
919 BySubclassInstanceSubinstanceProducer
,
922 SmbiosFldMemoryType10
927 // Misc SubClass -- Record Type 2: Bios Information (SMBIOS Type 0)
929 EFI_MISC_SUBCLASS_GUID
,
930 EFI_MISC_BIOS_VENDOR_RECORD_NUMBER
, // 0,
932 BySubclassInstanceSubinstanceProducer
,
940 // Misc SubClass -- Record Type 3: System Information (SMBIOS Type 1)
942 EFI_MISC_SUBCLASS_GUID
,
943 EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER
, // 1,
945 BySubclassInstanceSubinstanceProducer
,
953 // Misc SubClass -- Record Type 4: Base Board Manufacturer (SMBIOS Type 2)
955 EFI_MISC_SUBCLASS_GUID
,
956 EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER
, // 2,
958 BySubclassInstanceSubinstanceProducer
,
966 // Misc SubClass -- Record Type 5: System Enclosure or Chassis (SMBIOS Type 3)
968 EFI_MISC_SUBCLASS_GUID
,
969 EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER
, // 3,
971 BySubclassInstanceSubinstanceProducer
,
979 // Misc SubClass -- Record Type 6: Port Connector (SMBIOS Type 8)
981 EFI_MISC_SUBCLASS_GUID
,
982 EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER
, // 8,
984 BySubclassInstanceSubinstanceProducer
,
992 // Misc SubClass -- Record Type 7: System Slots (SMBIOS Type 9)
994 EFI_MISC_SUBCLASS_GUID
,
995 EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER
, // 9,
997 BySubclassInstanceSubinstanceProducer
,
1005 // Misc SubClass -- Record Type 8: Onboard Device (SMBIOS Type 10)
1007 EFI_MISC_SUBCLASS_GUID
,
1008 EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER
, // 10,
1010 BySubclassInstanceSubinstanceProducer
,
1018 // Misc Subclass -- Record Type 9: OEM strings (SMBIOS Type 11)
1020 EFI_MISC_SUBCLASS_GUID
,
1021 EFI_MISC_OEM_STRING_RECORD_NUMBER
, // 11,
1023 BySubclassInstanceSubinstanceProducer
,
1031 // Misc SubClass -- Record Type 0A: System Options (SMBIOS Type 12)
1033 EFI_MISC_SUBCLASS_GUID
,
1034 EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER
, // 12,
1036 BySubclassInstanceSubinstanceProducer
,
1044 // Misc SubClass -- Record Type 0B: Number of Installable Languages (SMBIOS Type 13)
1046 EFI_MISC_SUBCLASS_GUID
,
1047 EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER
, // 13,
1049 BySubclassInstanceSubinstanceProducer
,
1057 // Misc SubClass -- Record Type 0C: Installable Languages (SMBIOS Type 13)
1059 EFI_MISC_SUBCLASS_GUID
,
1060 EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER
, // 13,
1062 BySubclassInstanceSubinstanceProducer
,
1070 // Misc SubClass -- Record Type 20: System Event Log (SMBIOS Type 15)
1072 EFI_MISC_SUBCLASS_GUID
,
1073 EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER
, // 15,
1075 BySubclassInstanceSubinstanceProducer
,
1083 // Misc SubClass -- Record Type 0F: Pointing Device (SMBIOS Type 21)
1085 EFI_MISC_SUBCLASS_GUID
,
1086 EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER
, // 21,
1088 BySubclassInstanceSubinstanceProducer
,
1096 // Misc SubClass -- Record Type 10: Portable Battery (SMBIOS Type 22)
1098 EFI_MISC_SUBCLASS_GUID
,
1099 EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER
, // 22,
1101 BySubclassInstanceSubinstanceProducer
,
1109 // Misc SubClass -- Record Type 0x11: Reset Capabilities (SMBIOS Type 23)
1111 EFI_MISC_SUBCLASS_GUID
,
1112 EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER
, // 23,
1114 BySubclassInstanceSubinstanceProducer
,
1122 // Misc SubClass -- Record Type 0x12: Hardware Security (SMBIOS Type 24)
1124 EFI_MISC_SUBCLASS_GUID
,
1125 EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER
, // 24,
1127 BySubclassInstanceSubinstanceProducer
,
1135 // Misc SubClass -- Record Type 0x13: System Power Controls (SMBIOS Type 25)
1137 EFI_MISC_SUBCLASS_GUID
,
1138 EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER
, // 25,
1140 BySubclassInstanceSubinstanceProducer
,
1148 // Misc SubClass -- Record Type 0x14: System Power Controls (SMBIOS Type 26)
1150 EFI_MISC_SUBCLASS_GUID
,
1151 EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER
, // 26,
1153 BySubclassInstanceSubinstanceProducer
,
1161 // Misc SubClass -- Record Type 0x15: Cooling Device (SMBIOS Type 27)
1163 EFI_MISC_SUBCLASS_GUID
,
1164 EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER
, // 27,
1166 BySubclassInstanceSubinstanceProducer
,
1174 // Misc SubClass -- Record Type 0x16: Temperature Probe (SMBIOS Type 28)
1176 EFI_MISC_SUBCLASS_GUID
,
1177 EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER
, // 28,
1179 BySubclassInstanceSubinstanceProducer
,
1187 // Misc SubClass -- Record Type 0x17: Electrical Current Probe (SMBIOS Type 29)
1189 EFI_MISC_SUBCLASS_GUID
,
1190 EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER
, // 29,
1192 BySubclassInstanceSubinstanceProducer
,
1200 // Misc SubClass -- Record Type 0x18: Temperature Probe (SMBIOS Type 30)
1202 EFI_MISC_SUBCLASS_GUID
,
1203 EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER
, // 30,
1205 BySubclassInstanceSubinstanceProducer
,
1213 // Misc SubClass -- Record Type 0x1A: Boot Information (SMBIOS Type 32)
1215 EFI_MISC_SUBCLASS_GUID
,
1216 EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER
, // 32,
1218 BySubclassInstanceSubinstanceProducer
,
1226 // Misc SubClass -- Record Type 0x1B: Management Device (SMBIOS Type 34)
1228 EFI_MISC_SUBCLASS_GUID
,
1229 EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER
, // 34,
1231 BySubclassInstanceSubinstanceProducer
,
1239 // Misc SubClass -- Record Type 0x21: Management Device Threshold (SMBIOS Type 36)
1241 EFI_MISC_SUBCLASS_GUID
,
1242 EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER
, // 36,
1244 BySubclassInstanceSubinstanceProducer
,
1252 // Misc SubClass -- Record Type 0x1D: Boot Information (SMBIOS Type 38)
1254 EFI_MISC_SUBCLASS_GUID
,
1255 EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER
, // 38,
1257 BySubclassInstanceSubinstanceProducer
,
1265 // Misc SubClass -- Record Type 0x1E: Power supply (SMBIOS Type 39)
1267 EFI_MISC_SUBCLASS_GUID
,
1268 EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER
, // 39,
1270 BySubclassInstanceSubinstanceProducer
,
1278 // Misc SubClass -- Record Type 0x80-0xFF: OEM type
1280 EFI_MISC_SUBCLASS_GUID
,
1281 EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER
, // 0x80,
1283 BySubclassInstanceSubinstanceProducer
,
1286 SmbiosFldMiscTypeOEM
1291 // End-of-Table -- Record Type 127
1293 EFI_MISC_SUBCLASS_GUID
,
1296 BySubclassInstanceSubinstanceProducer
,
1299 SmbiosFldMiscType127
1305 {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},
1308 (SMBIOS_STRUCTURE_LOCATING_METHOD
) 0,
1309 (SMBIOS_FIELD_FILLING_METHOD
) 0,