/** @file Build a table, each item is (Key, Info) pair. And give a interface of query a string out of a table. Copyright (c) 2005 - 2024, Intel Corporation. All rights reserved.
(C) Copyright 2016-2019 Hewlett Packard Enterprise Development LP
Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include "UefiShellDebug1CommandsLib.h" #include "QueryTable.h" #include "PrintInfo.h" TABLE_ITEM SystemWakeupTypeTable[] = { { 0x0, L" Reserved" }, { 0x1, L" Other" }, { 0x2, L" Unknown" }, { 0x3, L" APM Timer" }, { 0x4, L" Modem Ring" }, { 0x5, L" LAN Remote" }, { 0x6, L" Power Switch" }, { 0x7, L" AC Power Restored" } }; TABLE_ITEM BaseBoardFeatureFlagsTable[] = { { 0, L" Hosting board" }, { 1, L" Requires at least one daughter board or auxiliary card" }, { 2, L" Removable" }, { 3, L" Replaceable" }, { 4, L" Hot swappable" } }; TABLE_ITEM BaseBoardBoardTypeTable[] = { { 0x01, L" Unknown" }, { 0x02, L" Other" }, { 0x03, L" Server Blade" }, { 0x04, L" Connectivity Switch" }, { 0x05, L" System Management Module" }, { 0x06, L" Processor Module" }, { 0x07, L" I/O Module" }, { 0x08, L" Memory Module" }, { 0x09, L" Daughter board" }, { 0x0A, L" Motherboard" }, { 0x0B, L" Processor/Memory Module" }, { 0x0C, L" Processor/IO Module" }, { 0x0D, L" Interconnect Board" } }; TABLE_ITEM SystemEnclosureTypeTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" Desktop" }, { 0x04, L" Low Profile Desktop" }, { 0x05, L" Pizza Box" }, { 0x06, L" Mini Tower" }, { 0x07, L" Tower" }, { 0x08, L" Portable" }, { 0x09, L" Laptop" }, { 0x0A, L" Notebook" }, { 0x0B, L" Hand Held" }, { 0x0C, L" Docking Station" }, { 0x0D, L" All in One" }, { 0x0E, L" Sub Notebook" }, { 0x0F, L" Space-saving" }, { 0x10, L" Lunch Box" }, { 0x11, L" Main Server Chassis" }, { 0x12, L" Expansion Chassis" }, { 0x13, L" SubChassis" }, { 0x14, L" Bus Expansion Chassis" }, { 0x15, L" Peripheral Chassis" }, { 0x16, L" RAID Chassis" }, { 0x17, L" Rack Mount Chassis" }, { 0x18, L" Sealed-case PC" }, { 0x19, L" Multi-system Chassis" }, { 0x1A, L" CompactPCI" }, { 0x1B, L" AdvancedTCA" }, { 0x1C, L" Blade" }, { 0x1D, L" Blade Enclosure" }, { 0x1E, L" Tablet" }, { 0x1F, L" Convertible" }, { 0x20, L" Detachable" }, { 0x21, L" IoT Gateway" }, { 0x22, L" Embedded PC" }, { 0x23, L" Mini PC" }, { 0x24, L" Stick PC" }, }; TABLE_ITEM SystemEnclosureStatusTable[] = { { 0x1, L" Other" }, { 0x2, L" Unknown" }, { 0x3, L" Safe" }, { 0x4, L" Warning" }, { 0x5, L" Critical" }, { 0x6, L" Non-recoverable" } }; TABLE_ITEM SESecurityStatusTable[] = { { 0x1, L" Other" }, { 0x2, L" Unknown" }, { 0x3, L" None" }, { 0x4, L" External interface locked out" }, { 0x5, L" External interface enabled" } }; TABLE_ITEM ProcessorTypeTable[] = { { 0x1, L" Other" }, { 0x2, L" Unknown" }, { 0x3, L" Central Processor" }, { 0x4, L" Math Processor" }, { 0x5, L" DSP Processor" }, { 0x6, L" Video Processor " }, }; TABLE_ITEM ProcessorUpgradeTable[] = { { 0x01, L"Other" }, { 0x02, L"Unknown" }, { 0x03, L"Daughter Board" }, { 0x04, L"ZIF Socket" }, { 0x05, L"Replaceable Piggy Back" }, { 0x06, L"None" }, { 0x07, L"LIF Socket" }, { 0x08, L"Slot 1" }, { 0x09, L"Slot 2" }, { 0x0A, L"370-pin socket" }, { 0x0B, L"Slot A" }, { 0x0C, L"Slot M" }, { 0x0D, L"Socket 423" }, { 0x0E, L"Socket A" }, { 0x0F, L"Socket 478" }, { 0x10, L"Socket 754" }, { 0x11, L"Socket 940" }, { 0x12, L"Socket 939" }, { 0x13, L"Socket mPGA604" }, { 0x14, L"Socket LGA771" }, { 0x15, L"Socket LGA775" }, { 0x16, L"Socket S1" }, { 0x17, L"Socket AM2" }, { 0x18, L"Socket F" }, { 0x19, L"Socket LGA1366" }, { 0x1A, L"Socket G34" }, { 0x1B, L"Socket AM3" }, { 0x1C, L"Socket C32" }, { 0x1D, L"Socket LGA1156" }, { 0x1E, L"Socket LGA1567" }, { 0x1F, L"Socket PGA988A" }, { 0x20, L"Socket BGA1288" }, { 0x21, L"Socket rPGA988B" }, { 0x22, L"Socket BGA1023" }, { 0x23, L"Socket BGA1224" }, { 0x24, L"Socket LGA1155" }, { 0x25, L"Socket LGA1356" }, { 0x26, L"Socket LGA2011" }, { 0x27, L"Socket FS1" }, { 0x28, L"Socket FS2" }, { 0x29, L"Socket FM1" }, { 0x2A, L"Socket FM2" }, { 0x2B, L"Socket LGA2011-3" }, { 0x2C, L"Socket LGA1356-3" }, { 0x2D, L"Socket LGA1150" }, { 0x2E, L"Socket BGA1168" }, { 0x2F, L"Socket BGA1234" }, { 0x30, L"Socket BGA1364" }, { 0x31, L"Socket AM4" }, { 0x32, L"Socket LGA1151" }, { 0x33, L"Socket BGA1356" }, { 0x34, L"Socket BGA1440" }, { 0x35, L"Socket BGA1515" }, { 0x36, L"Socket LGA3647-1" }, { 0x37, L"Socket SP3" }, { 0x38, L"Socket SP3r2" }, { 0x39, L"Socket LGA2066" }, { 0x3A, L"Socket BGA1392" }, { 0x3B, L"Socket BGA1510" }, { 0x3C, L"Socket BGA1528" }, { 0x3D, L"Socket LGA4189" }, { 0x3E, L"Socket LGA1200" }, { 0x3F, L"Socket LGA4677" }, { 0x40, L"Socket LGA1700" }, { 0x41, L"Socket BGA1744" }, { 0x42, L"Socket BGA1781" }, { 0x43, L"Socket BGA1211" }, { 0x44, L"Socket BGA2422" }, { 0x45, L"Socket LGA1211" }, { 0x46, L"Socket LGA2422" }, { 0x47, L"Socket LGA5773" }, { 0x48, L"Socket BGA5773" }, { 0x49, L"Socket AM5" }, { 0x4A, L"Socket SP5" }, { 0x4B, L"Socket SP6" }, { 0x4C, L"Socket BGA883" }, { 0x4D, L"Socket BGA1190" }, { 0x4E, L"Socket BGA4129" }, { 0x4F, L"Socket LGA4710" }, { 0x50, L"Socket LGA7529" }, { 0x51, L"Socket BGA1964" }, { 0x52, L"Socket BGA1792" }, { 0x53, L"Socket BGA2049" }, { 0x54, L"Socket BGA2551" }, { 0x55, L"Socket LGA1851" }, { 0x56, L"Socket BGA2114" }, { 0x57, L"Socket BGA2833" } }; TABLE_ITEM ProcessorCharacteristicsTable[] = { { 1, L" Unknown" }, { 2, L" 64-bit Capable" }, { 3, L" Multi-Core" }, { 4, L" Hardware Thread" }, { 5, L" Execute Protection" }, { 6, L" Enhanced Virtualization" }, { 7, L" Power/Performance Control" }, { 8, L" 128-bit Capable" }, { 9, L" ARM64 SoC ID" } }; TABLE_ITEM McErrorDetectMethodTable[] = { { 0x01, L"Other" }, { 0x02, L"Unknown" }, { 0x03, L"None" }, { 0x04, L"8-bit Parity" }, { 0x05, L"32-bit ECC" }, { 0x06, L"64-bit ECC" }, { 0x07, L"128-bit ECC" }, { 0x08, L"CRC" }, }; TABLE_ITEM McErrorCorrectCapabilityTable[] = { { 0, L"Other" }, { 1, L"Unknown" }, { 2, L"None" }, { 3, L"Single Bit Error Correcting" }, { 4, L"Double Bit Error Correcting" }, { 5, L"Error Scrubbing" }, }; TABLE_ITEM McInterleaveSupportTable[] = { { 0x01, L"Other" }, { 0x02, L"Unknown" }, { 0x03, L"One Way Interleave" }, { 0x04, L"Two Way Interleave" }, { 0x05, L"Four Way Interleave" }, { 0x06, L"Eight Way Interleave" }, { 0x07, L"Sixteen Way Interleave" } }; TABLE_ITEM McMemorySpeedsTable[] = { { 0, L" Other" }, { 1, L" Unknown" }, { 2, L" 70ns" }, { 3, L" 60ns" }, { 4, L" 50ns" }, }; TABLE_ITEM MemoryModuleVoltageTable[] = { { 0, L" 5V" }, { 1, L" 3.3V" }, { 2, L" 2.9V" }, }; TABLE_ITEM MmMemoryTypeTable[] = { { 0, L" Other" }, { 1, L" Unknown" }, { 2, L" Standard" }, { 3, L" Fast Page Mode" }, { 4, L" EDO" }, { 5, L" Parity" }, { 6, L" ECC " }, { 7, L" SIMM" }, { 8, L" DIMM" }, { 9, L" Burst EDO" }, { 10, L" SDRAM" } }; TABLE_ITEM MmErrorStatusTable[] = { { 0, L" Uncorrectable errors received" }, { 1, L" Correctable errors received" }, { 2, L" Error Status obtained from the event log" } }; TABLE_ITEM CacheSRAMTypeTable[] = { { 0, L" Other" }, { 1, L" Unknown" }, { 2, L" Non-Burst" }, { 3, L" Burst" }, { 4, L" Pipeline Burst" }, { 5, L" Synchronous" }, { 6, L" Asynchronous" }, }; TABLE_ITEM CacheErrCorrectingTypeTable[] = { { 0x01, L"Other" }, { 0x02, L"Unknown" }, { 0x03, L"None" }, { 0x04, L"Parity" }, { 0x05, L"Single-bit ECC" }, { 0x06, L"Multi-bit ECC" } }; TABLE_ITEM CacheSystemCacheTypeTable[] = { { 0x01, L"Other" }, { 0x02, L"Unknown" }, { 0x03, L"Instruction" }, { 0x04, L"Data" }, { 0x05, L"Unified" } }; TABLE_ITEM CacheAssociativityTable[] = { { 0x01, L"Other" }, { 0x02, L"Unknown" }, { 0x03, L"Direct Mapped" }, { 0x04, L"2-way Set-Associative" }, { 0x05, L"4-way Set-Associative" }, { 0x06, L"Fully Associative" }, { 0x07, L"8-way Set-Associative" }, { 0x08, L"16-way Set-Associative" }, { 0x09, L"12-way Set-Associative" }, { 0x0A, L"24-way Set-Associative" }, { 0x0B, L"32-way Set-Associative" }, { 0x0C, L"48-way Set-Associative" }, { 0x0D, L"64-way Set-Associative" }, { 0x0E, L"20-way Set-Associative" } }; TABLE_ITEM PortConnectorTypeTable[] = { { 0x00, L"None" }, { 0x01, L"Centronics" }, { 0x02, L"Mini Centronics" }, { 0x03, L"Proprietary" }, { 0x04, L"DB-25 pin male" }, { 0x05, L"DB-25 pin female" }, { 0x06, L"DB-15 pin male" }, { 0x07, L"DB-15 pin female" }, { 0x08, L"DB-9 pin male" }, { 0x09, L"DB-9 pin female" }, { 0x0A, L"RJ-11" }, { 0x0B, L"RJ-45" }, { 0x0C, L"50 Pin MiniSCSI" }, { 0x0D, L"Mini-DIN" }, { 0x0E, L"Micro-DIN" }, { 0x0F, L"PS/2" }, { 0x10, L"Infrared" }, { 0x11, L"HP-HIL" }, { 0x12, L"Access Bus (USB)" }, { 0x13, L"SSA SCSI" }, { 0x14, L"Circular DIN-8 male" }, { 0x15, L"Circular DIN-8 female" }, { 0x16, L"On Board IDE" }, { 0x17, L"On Board Floppy" }, { 0x18, L"9 Pin Dual Inline (pin 10 cut)" }, { 0x19, L"25 Pin Dual Inline (pin 26 cut)" }, { 0x1A, L"50 Pin Dual Inline" }, { 0x1B, L"68 Pin Dual Inline" }, { 0x1C, L"On Board Sound Input from CD-ROM" }, { 0x1D, L"Mini-Centronics Type-14" }, { 0x1E, L"Mini-Centronics Type-26" }, { 0x1F, L"Mini-jack (headphones)" }, { 0x20, L"BNC" }, { 0x21, L"1394" }, { 0x22, L"SAS/SATA Plug Receptacle" }, { 0x23, L"USB Type-C Receptacle" }, { 0xA0, L"PC-98" }, { 0xA1, L"PC-98Hireso" }, { 0xA2, L"PC-H98" }, { 0xA3, L"PC-98Note" }, { 0xA4, L"PC-98Full" }, { 0xFF, L"Other" }, }; TABLE_ITEM PortTypeTable[] = { { 0x00, L"None" }, { 0x01, L"Parallel Port XT/AT Compatible" }, { 0x02, L"Parallel Port PS/2" }, { 0x03, L"Parallel Port ECP" }, { 0x04, L"Parallel Port EPP" }, { 0x05, L"Parallel Port ECP/EPP" }, { 0x06, L"Serial Port XT/AT Compatible" }, { 0x07, L"Serial Port 16450 Compatible" }, { 0x08, L"Serial Port 16550 Compatible" }, { 0x09, L"Serial Port 16550A Compatible" }, { 0x0A, L"SCSI Port" }, { 0x0B, L"MIDI Port" }, { 0x0C, L"Joy Stick Port" }, { 0x0D, L"Keyboard Port" }, { 0x0E, L"Mouse Port" }, { 0x0F, L"SSA SCSI" }, { 0x10, L"USB" }, { 0x11, L"FireWire (IEEE P1394)" }, { 0x12, L"PCMCIA Type II" }, { 0x13, L"PCMCIA Type II" }, { 0x14, L"PCMCIA Type III" }, { 0x15, L"Cardbus" }, { 0x16, L"Access Bus Port" }, { 0x17, L"SCSI II" }, { 0x18, L"SCSI Wide" }, { 0x19, L"PC-98" }, { 0x1A, L"PC-98-Hireso" }, { 0x1B, L"PC-H98" }, { 0x1C, L"Video Port" }, { 0x1D, L"Audio Port" }, { 0x1E, L"Modem Port" }, { 0x1F, L"Network Port" }, { 0x20, L"SATA Port" }, { 0x21, L"SAS Port" }, { 0x22, L"Multi-Function Display Port (MFDP)" }, { 0x23, L"Thunderbolt" }, { 0xA0, L"8251 Compatible" }, { 0xA1, L"8251 FIFO Compatible" }, { 0xFF, L"Other " }, }; TABLE_ITEM SystemSlotTypeTable[] = { { 0x01, L"Other" }, { 0x02, L"Unknown" }, { 0x03, L"ISA" }, { 0x04, L"MCA" }, { 0x05, L"EISA" }, { 0x06, L"PCI" }, { 0x07, L"PC Card (PCMCIA)" }, { 0x08, L"VL-VESA" }, { 0x09, L"Proprietary" }, { 0x0A, L"Processor Card Slot" }, { 0x0B, L"Proprietary Memory Card Slot" }, { 0x0C, L"I/O Riser Card Slot" }, { 0x0D, L"NuBus" }, { 0x0E, L"PCI - 66MHz Capable" }, { 0x0F, L"AGP" }, { 0x10, L"AGP 2X" }, { 0x11, L"AGP 4X" }, { 0x12, L"PCI-X" }, { 0x13, L"AGP 8X" }, { 0x14, L"M.2 Socket 1-DP (Mechanical Key A)" }, { 0x15, L"M.2 Socket 1-SD (Mechanical Key E)" }, { 0x16, L"M.2 Socket 2 (Mechanical Key B)" }, { 0x17, L"M.2 Socket 3 (Mechanical Key M)" }, { 0x18, L"MXM Type I" }, { 0x19, L"MXM Type II" }, { 0x1A, L"MXM Type III (standard connector)" }, { 0x1B, L"MXM Type III (HE connector)" }, { 0x1C, L"MXM Type IV" }, { 0x1D, L"MXM 3.0 Type A" }, { 0x1E, L"MXM 3.0 Type B" }, { 0x1F, L"PCI Express Gen 2 SFF-8639" }, { 0x20, L"PCI Express Gen 3 SFF-8639" }, { 0x21, L"PCI Express Mini 52-pin (CEM spec. 2.0) with bottom-side keep-outs" }, { 0x22, L"PCI Express Mini 52-pin (CEM spec. 2.0) without bottom-side keep-outs" }, { 0x23, L"PCI Express Mini 76-pin (CEM spec. 2.0) Corresponds to Display-Mini card" }, { 0x24, L"PCI Express Gen 4 SFF-8639 (U.2)" }, { 0x25, L"PCI Express Gen 5 SFF-8639 (U.2)" }, { 0x26, L"OCP NIC 3.0 Small Form Factor (SFF)" }, { 0x27, L"OCP NIC 3.0 Large Form Factor (LFF)" }, { 0x28, L"OCP NIC Prior to 3.0" }, { SlotTypeCXLFlexbus10, L"CXL Flexbus 1.0" }, { 0xA0, L"PC-98/C20 " }, { 0xA1, L"PC-98/C24 " }, { 0xA2, L"PC-98/E " }, { 0xA3, L"PC-98/Local Bus " }, { 0xA4, L"PC-98/Card " }, { 0xA5, L"PCI Express " }, { 0xA6, L"PCI Express X1" }, { 0xA7, L"PCI Express X2" }, { 0xA8, L"PCI Express X4" }, { 0xA9, L"PCI Express X8" }, { 0xAA, L"PCI Express X16" }, { 0xAB, L"PCI Express Gen 2" }, { 0xAC, L"PCI Express Gen 2 X1" }, { 0xAD, L"PCI Express Gen 2 X2" }, { 0xAE, L"PCI Express Gen 2 X4" }, { 0xAF, L"PCI Express Gen 2 X8" }, { 0xB0, L"PCI Express Gen 2 X16" }, { 0xB1, L"PCI Express Gen 3" }, { 0xB2, L"PCI Express Gen 3 X1" }, { 0xB3, L"PCI Express Gen 3 X2" }, { 0xB4, L"PCI Express Gen 3 X4" }, { 0xB5, L"PCI Express Gen 3 X8" }, { 0xB6, L"PCI Express Gen 3 X16" }, { SlotTypePciExpressGen4, L"PCI Express Gen 4" }, { SlotTypePciExpressGen4X1, L"PCI Express Gen 4 X1" }, { SlotTypePciExpressGen4X2, L"PCI Express Gen 4 X2" }, { SlotTypePciExpressGen4X4, L"PCI Express Gen 4 X4" }, { SlotTypePciExpressGen4X8, L"PCI Express Gen 4 X8" }, { SlotTypePciExpressGen4X16, L"PCI Express Gen 4 X16" }, { SlotTypePCIExpressGen5, L"PCI Express Gen 5" }, { SlotTypePCIExpressGen5X1, L"PCI Express Gen 5 x1" }, { SlotTypePCIExpressGen5X2, L"PCI Express Gen 5 x2" }, { SlotTypePCIExpressGen5X4, L"PCI Express Gen 5 x4" }, { SlotTypePCIExpressGen5X8, L"PCI Express Gen 5 x8" }, { SlotTypePCIExpressGen5X16, L"PCI Express Gen 5 x16" }, { SlotTypePCIExpressGen6andBeyond, L"PCI Express Gen 6 and Beyond" }, { SlotTypeEnterpriseandDatacenter1UE1FormFactorSlot, L"Enterprise and Datacenter 1U E1 Form Factor Slot" }, { SlotTypeEnterpriseandDatacenter3E3FormFactorSlot, L"Enterprise and Datacenter 3'E3 Form Factor Slot" } }; TABLE_ITEM SystemSlotDataBusWidthTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" 8 bit" }, { 0x04, L" 16 bit" }, { 0x05, L" 32 bit" }, { 0x06, L" 64 bit" }, { 0x07, L" 128 bit" }, { 0x08, L" 1x or x1" }, { 0x09, L" 2x or x2" }, { 0x0A, L" 4x or x4" }, { 0x0B, L" 8x or x8" }, { 0x0C, L" 12x or x12" }, { 0x0D, L" 16x or x16" }, { 0x0E, L" 32x or x32" } }; TABLE_ITEM SystemSlotPhysicalWidthTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" 8 bit" }, { 0x04, L" 16 bit" }, { 0x05, L" 32 bit" }, { 0x06, L" 64 bit" }, { 0x07, L" 128 bit" }, { 0x08, L" 1x or x1" }, { 0x09, L" 2x or x2" }, { 0x0A, L" 4x or x4" }, { 0x0B, L" 8x or x8" }, { 0x0C, L" 12x or x12" }, { 0x0D, L" 16x or x16" }, { 0x0E, L" 32x or x32" } }; TABLE_ITEM SystemSlotInformationTable[] = { { 0x00, L" Others" }, { 0x01, L" Gen 1" }, { 0x02, L" Gen 2" }, { 0x03, L" Gen 3" }, { 0x04, L" Gen 4" }, { 0x05, L" Gen 5" }, { 0x06, L" Gen 6" } }; TABLE_ITEM SystemSlotCurrentUsageTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" Available" }, { 0x04, L" In use" }, { 0x05, L" Unavailable" } }; TABLE_ITEM SystemSlotLengthTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" Short length" }, { 0x04, L" Long Length" }, }; TABLE_ITEM SystemSlotHeightTable[] = { { 0x00, L" Not applicable" }, { 0x01, L" Other" }, { 0x02, L" Unkown" }, { 0x03, L" Full height" }, { 0x04, L" Low-Profile" }, }; TABLE_ITEM SlotCharacteristics1Table[] = { { 0, L" Characteristics Unknown" }, { 1, L" Provides 5.0 Volts" }, { 2, L" Provides 3.3 Volts" }, { 3, L" Slot's opening is shared with another slot, e.g. PCI/EISA shared slot." }, { 4, L" PC Card slot supports PC Card-16" }, { 5, L" PC Card slot supports CardBus" }, { 6, L" PC Card slot supports Zoom Video " }, { 7, L" PC Card slot supports Modem Ring Resume " } }; TABLE_ITEM SlotCharacteristics2Table[] = { { 0, L" PCI slot supports Power Management Enable (PME#) signal" }, { 1, L" Slot supports hot-plug devices" }, { 2, L" PCI slot supports SMBus signal" }, { 3, L" PCIe slot supports bifurcation" }, { 4, L" Slot supports async/surprise removal" }, { 5, L" Flexbus slot, CXL 1.0 capable" }, { 6, L" Flexbus slot, CXL 2.0 capable" }, { 7, L" Reserved" } }; TABLE_ITEM OnboardDeviceTypesTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" Video" }, { 0x04, L" SCSI Controller" }, { 0x05, L" Ethernet" }, { 0x06, L" Token Ring" }, { 0x07, L" Sound" }, { 0x08, L" Pata Controller" }, { 0x09, L" Sata Controller" }, { 0x0A, L" Sas Controller" }, { 0x0B, L" Wireless LAN" }, { 0x0C, L" Bluetooth" }, { 0x0D, L" WWAN" }, { 0x0E, L" embedded Multi-Media Controller" }, { 0x0F, L" NVMe Controller" }, { 0x10, L" UFS Controller" } }; TABLE_ITEM SELTypesTable[] = { { 0x00, L" Reserved." }, { 0x01, L" Single-bit ECC memory error" }, { 0x02, L" Multi-bit ECC memory error" }, { 0x03, L" Parity memory error" }, { 0x04, L" Bus time-out" }, { 0x05, L" I/O Channel Check" }, { 0x06, L" Software NMI" }, { 0x07, L" POST Memory Resize" }, { 0x08, L" POST Error" }, { 0x09, L" PCI Parity Error" }, { 0x0A, L" PCI System Error" }, { 0x0B, L" CPU Failure" }, { 0x0C, L" EISA FailSafe Timer time-out" }, { 0x0D, L" Correctable memory log disabled" }, { 0x0E, L" Logging disabled for a specific Event Type" }, { 0x0F, L" Reserved" }, { 0x10, L" System Limit Exceeded" }, { 0x11, L" Asynchronous hardware timer expired and issued a system reset" }, { 0x12, L" System configuration information" }, { 0x13, L" Hard-disk information" }, { 0x14, L" System reconfigured" }, { 0x15, L" Uncorrectable CPU-complex error" }, { 0x16, L" Log Area Reset/Cleared" }, { 0x17, L" System boot" }, { 0x7F18, L" Unused by SMBIOS specification" }, { 0xFE80, L" System and OEM specified" }, { 0xFF, L" End-of-log" }, }; TABLE_ITEM SELVarDataFormatTypeTable[] = { { 0x00, L" None " }, { 0x01, L" Handle " }, { 0x02, L" Multiple-Event " }, { 0x03, L" Multiple-Event Handle " }, { 0x04, L" POST Results Bitmap " }, // // Defined below // { 0x05, L" System Management Type" }, // // Defined below // { 0x06, L" Multiple-Event System Management Type " }, { 0x7F07, L" Unused " }, { 0xFF80, L" OEM assigned " }, }; TABLE_ITEM PostResultsBitmapDw1Table[] = { { 0, L" Channel 2 Timer error " }, { 1, L" Master PIC (8259 #1) error " }, { 2, L" Slave PIC (8259 #2) error " }, { 3, L" CMOS Battery Failure " }, { 4, L" CMOS System Options Not Set " }, { 5, L" CMOS Checksum Error " }, { 6, L" CMOS Configuration Error " }, { 7, L" Mouse and Keyboard Swapped " }, { 8, L" Keyboard Locked " }, { 9, L" Keyboard Not Functional " }, { 10, L" Keyboard Controller Not Functional " }, { 11, L" CMOS Memory Size Different " }, { 12, L" Memory Decreased in Size " }, { 13, L" Cache Memory Error " }, { 14, L" Floppy Drive 0 Error " }, { 15, L" Floppy Drive 1 Error " }, { 16, L" Floppy Controller Failure " }, { 17, L" Number of ATA Drives Reduced Error " }, { 18, L" CMOS Time Not Set " }, { 19, L" DDC Monitor Configuration Change " }, { 20, L" Reserved, set to 0 " }, { 21, L" Reserved, set to 0 " }, { 22, L" Reserved, set to 0 " }, { 23, L" Reserved, set to 0 " }, { 24, L" Second DWORD has valid data " }, { 25, L" Reserved, set to 0 " }, { 26, L" Reserved, set to 0 " }, { 27, L" Reserved, set to 0 " }, { 28, L" Normally 0; available for OEM assignment " }, { 29, L" Normally 0; available for OEM assignment " }, { 30, L" Normally 0; available for OEM assignment " }, { 31, L" Normally 0; available for OEM assignment " }, }; TABLE_ITEM PostResultsBitmapDw2Table[] = { { 0, L" Normally 0; available for OEM assignment " }, { 1, L" Normally 0; available for OEM assignment " }, { 2, L" Normally 0; available for OEM assignment " }, { 3, L" Normally 0; available for OEM assignment " }, { 4, L" Normally 0; available for OEM assignment " }, { 5, L" Normally 0; available for OEM assignment " }, { 6, L" Normally 0; available for OEM assignment " }, { 7, L" PCI Memory Conflict " }, { 8, L" PCI I/O Conflict " }, { 9, L" PCI IRQ Conflict " }, { 10, L" PNP Memory Conflict " }, { 11, L" PNP 32 bit Memory Conflict " }, { 12, L" PNP I/O Conflict " }, { 13, L" PNP IRQ Conflict " }, { 14, L" PNP DMA Conflict " }, { 15, L" Bad PNP Serial ID Checksum " }, { 16, L" Bad PNP Resource Data Checksum " }, { 17, L" Static Resource Conflict " }, { 18, L" NVRAM Checksum Error, NVRAM Cleared " }, { 19, L" System Board Device Resource Conflict " }, { 20, L" Primary Output Device Not Found " }, { 21, L" Primary Input Device Not Found " }, { 22, L" Primary Boot Device Not Found " }, { 23, L" NVRAM Cleared By Jumper " }, { 24, L" NVRAM Data Invalid, NVRAM Cleared " }, { 25, L" FDC Resource Conflict " }, { 26, L" Primary ATA Controller Resource Conflict " }, { 27, L" Secondary ATA Controller Resource Conflict " }, { 28, L" Parallel Port Resource Conflict " }, { 29, L" Serial Port 1 Resource Conflict " }, { 30, L" Serial Port 2 Resource Conflict " }, { 31, L" Audio Resource Conflict " }, }; TABLE_ITEM SELSysManagementTypesTable[] = { { 0x01, L" +2.5V Out of range, #2 " }, { 0x02, L" +3.3V Out of range " }, { 0x03, L" +5V Out of range " }, { 0x04, L" -5V Out of range " }, { 0x05, L" +12V Out of range " }, { 0x06, L" -12V Out of range " }, { 0x0F07, L" Reserved for future out-of-range voltage levels " }, { 0x10, L" System board temperature out of range " }, { 0x11, L" Processor #1 temperature out of range " }, { 0x12, L" Processor #2 temperature out of range " }, { 0x13, L" Processor #3 temperature out of range " }, { 0x14, L" Processor #4 temperature out of range " }, { 0x1F15, L" Reserved for future out-of-range temperatures" }, { 0x2720, L" Fan n (n = 0 to 7) Out of range " }, { 0x2F28, L" Reserved for future assignment via this specification " }, { 0x30, L" Chassis secure switch activated " }, }; TABLE_ITEM PMALocationTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" System board or motherboard" }, { 0x04, L" ISA add-on card" }, { 0x05, L" EISA add-on card" }, { 0x06, L" PCI add-on card" }, { 0x07, L" MCA add-on card" }, { 0x08, L" PCMCIA add-on card" }, { 0x09, L" Proprietary add-on card" }, { 0x0A, L" NuBus" }, { 0xA0, L" PC-98/C20 add-on card" }, { 0xA1, L" PC-98/C24 add-on card" }, { 0xA2, L" PC-98/E add-on card" }, { 0xA3, L" PC-98/Local bus add-on card" }, { MemoryArrayLocationCXLAddonCard, L" CXL add-on card" } }; TABLE_ITEM PMAUseTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" System memory" }, { 0x04, L" Video memory" }, { 0x05, L" Flash memory" }, { 0x06, L" Non-volatile RAM" }, { 0x07, L" Cache memory" } }; TABLE_ITEM PMAErrorCorrectionTypesTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" None" }, { 0x04, L" Parity" }, { 0x05, L" Single-bit ECC" }, { 0x06, L" Multi-bit ECC" }, { 0x07, L" CRC" } }; TABLE_ITEM MemoryDeviceFormFactorTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" SIMM" }, { 0x04, L" SIP" }, { 0x05, L" Chip" }, { 0x06, L" DIP" }, { 0x07, L" ZIP" }, { 0x08, L" Proprietary Card" }, { 0x09, L" DIMM" }, { 0x0A, L" TSOP" }, { 0x0B, L" Row of chips" }, { 0x0C, L" RIMM" }, { 0x0D, L" SODIMM" }, { 0x0E, L" SRIMM" }, { 0x0F, L" FB-DIMM" }, { MemoryFormFactorDie, L" Die" } }; TABLE_ITEM MemoryDeviceTypeTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" DRAM" }, { 0x04, L" EDRAM" }, { 0x05, L" VRAM" }, { 0x06, L" SRAM" }, { 0x07, L" RAM" }, { 0x08, L" ROM" }, { 0x09, L" FLASH" }, { 0x0A, L" EEPROM" }, { 0x0B, L" FEPROM" }, { 0x0C, L" EPROM" }, { 0x0D, L" CDRAM" }, { 0x0E, L" 3DRAM" }, { 0x0F, L" SDRAM" }, { 0x10, L" SGRAM" }, { 0x11, L" RDRAM" }, { 0x12, L" DDR" }, { 0x13, L" DDR2" }, { 0x14, L" DDR2 FB-DIMM" }, { 0x18, L" DDR3" }, { 0x19, L" FBD2" }, { 0x1A, L" DDR4" }, { 0x1B, L" LPDDR" }, { 0x1C, L" LPDDR2" }, { 0x1D, L" LPDDR3" }, { 0x1E, L" LPDDR4" }, { 0x1F, L" Logical non-volatile device" }, { MemoryTypeHBM, L" HBM (High Bandwidth Memory)" }, { MemoryTypeHBM2, L" HBM2 (High Bandwidth Memory Generation 2)" }, { MemoryTypeDdr5, L" DDR5" }, { MemoryTypeLpddr5, L" LPDDR5" } }; TABLE_ITEM MemoryDeviceTypeDetailTable[] = { { 1, L" Other" }, { 2, L" Unknown" }, { 3, L" Fast-paged" }, { 4, L" Static column" }, { 5, L" Pseudo-STATIC" }, { 6, L" RAMBUS " }, { 7, L" Synchronous" }, { 8, L" CMOS" }, { 9, L" EDO" }, { 10, L" Window DRAM" }, { 11, L" Cache DRAM" }, { 12, L" Non-volatile" }, { 13, L" Registered(Buffered)" }, { 14, L" Unbuffered(Unregistered)" } }; TABLE_ITEM MemoryDeviceMemoryTechnologyTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" DRAM" }, { 0x04, L" NVDIMM-N" }, { 0x05, L" NVDIMM-F" }, { 0x06, L" NVDIMM-P" }, { MemoryTechnologyIntelOptanePersistentMemory, L" Intel Optane Persistent Memory" } }; TABLE_ITEM MemoryDeviceMemoryOperatingModeCapabilityTable[] = { { 1, L" Other" }, { 2, L" Unknown" }, { 3, L" Volatile memory" }, { 4, L" Byte-accessible persistent memory" }, { 5, L" Block-accessible persistent memory" } }; TABLE_ITEM MemoryErrorTypeTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" OK" }, { 0x04, L" Bad read" }, { 0x05, L" Parity error" }, { 0x06, L" Single-bit error" }, { 0x07, L" Double-bit error" }, { 0x08, L" Multi-bit error" }, { 0x09, L" Nibble error" }, { 0x0A, L" Checksum error" }, { 0x0B, L" CRC error" }, { 0x0C, L" Corrected single-bit error" }, { 0x0D, L" Corrected error" }, { 0x0E, L" Uncorrectable error" }, }; TABLE_ITEM MemoryErrorGranularityTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" Device level" }, { 0x04, L" Memory partition level" }, }; TABLE_ITEM MemoryErrorOperationTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" Read" }, { 0x04, L" Write" }, { 0x05, L" Partial Write" }, }; TABLE_ITEM PointingDeviceTypeTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" Mouse" }, { 0x04, L" Track Ball" }, { 0x05, L" Track Point" }, { 0x06, L" Glide Point" }, { 0x07, L" Touch Pad" }, }; TABLE_ITEM PointingDeviceInterfaceTable[] = { { 0x01, L" Other" }, { 0x02, L" Unknown" }, { 0x03, L" Serial" }, { 0x04, L" PS/2" }, { 0x05, L" Infrared" }, { 0x06, L" HP-HIL" }, { 0x07, L" Bus mouse" }, { 0x08, L" ADB(Apple Desktop Bus" }, { 0xA0, L" Bus mouse DB-9" }, { 0xA1, L" Bus mouse mirco-DIN" }, { 0xA2, L" USB" }, }; TABLE_ITEM PBDeviceChemistryTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" Lead Acid " }, { 0x04, L" Nickel Cadmium " }, { 0x05, L" Nickel metal hydride " }, { 0x06, L" Lithium-ion " }, { 0x07, L" Zinc air " }, { 0x08, L" Lithium Polymer " }, }; TABLE_ITEM VPLocationTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" OK " }, { 0x04, L" Non-critical " }, { 0x05, L" Critical " }, { 0x06, L" Non-recoverable " }, }; TABLE_ITEM VPStatusTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" Processor " }, { 0x04, L" Disk " }, { 0x05, L" Peripheral Bay " }, { 0x06, L" System Management Module " }, { 0x07, L" Motherboard " }, { 0x08, L" Memory Module " }, { 0x09, L" Processor Module " }, { 0x0A, L" Power Unit " }, { 0x0B, L" Add-in Card " }, }; TABLE_ITEM CoolingDeviceStatusTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" OK " }, { 0x04, L" Non-critical " }, { 0x05, L" Critical " }, { 0x06, L" Non-recoverable " }, }; TABLE_ITEM CoolingDeviceTypeTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" Fan " }, { 0x04, L" Centrifugal Blower " }, { 0x05, L" Chip Fan " }, { 0x06, L" Cabinet Fan " }, { 0x07, L" Power Supply Fan " }, { 0x08, L" Heat Pipe " }, { 0x09, L" Integrated Refrigeration " }, { 0x10, L" Active Cooling " }, { 0x11, L" Passive Cooling " }, }; TABLE_ITEM TemperatureProbeStatusTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" OK " }, { 0x04, L" Non-critical " }, { 0x05, L" Critical " }, { 0x06, L" Non-recoverable " }, }; TABLE_ITEM TemperatureProbeLocTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" Processor " }, { 0x04, L" Disk " }, { 0x05, L" Peripheral Bay " }, { 0x06, L" System Management Module " }, { 0x07, L" Motherboard " }, { 0x08, L" Memory Module " }, { 0x09, L" Processor Module " }, { 0x0A, L" Power Unit " }, { 0x0B, L" Add-in Card " }, }; TABLE_ITEM ECPStatusTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" OK " }, { 0x04, L" Non-critical " }, { 0x05, L" Critical " }, { 0x06, L" Non-recoverable " }, }; TABLE_ITEM ECPLocTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" Processor " }, { 0x04, L" Disk " }, { 0x05, L" Peripheral Bay " }, { 0x06, L" System Management Module " }, { 0x07, L" Motherboard " }, { 0x08, L" Memory Module " }, { 0x09, L" Processor Module " }, { 0x0A, L" Power Unit " }, { 0x0B, L" Add-in Card " }, }; TABLE_ITEM MDTypeTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" National Semiconductor LM75 " }, { 0x04, L" National Semiconductor LM78 " }, { 0x05, L" National Semiconductor LM79 " }, { 0x06, L" National Semiconductor LM80 " }, { 0x07, L" National Semiconductor LM81 " }, { 0x08, L" Analog Devices ADM9240 " }, { 0x09, L" Dallas Semiconductor DS1780 " }, { 0x0A, L" Maxim 1617 " }, { 0x0B, L" Genesys GL518SM " }, { 0x0C, L" Winbond W83781D " }, { 0x0D, L" Holtek HT82H791 " }, }; TABLE_ITEM MDAddressTypeTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" I/O Port " }, { 0x04, L" Memory " }, { 0x05, L" SM Bus " }, }; TABLE_ITEM MemoryChannelTypeTable[] = { { 0x01, L" Other " }, { 0x02, L" Unknown " }, { 0x03, L" RamBus " }, { 0x04, L" SyncLink " }, }; TABLE_ITEM IPMIDIBMCInterfaceTypeTable[] = { { 0x00, L" Unknown " }, { 0x01, L" KCS: Keyboard Controller Style " }, { 0x02, L" SMIC: Server Management Interface Chip " }, { 0x03, L" BT: Block Transfer " }, { 0x04, L" SSIF: SMBus System Interface " }, { 0xFF05, L" Reserved for future assignment by this specification " }, }; TABLE_ITEM MCHostInterfaceTypeTable[] = { { 0x3F00, L" MCTP Host Interface " }, { 0x40, L" Network Host Interface " }, { 0xF0, L" OEM defined " }, }; TABLE_ITEM ProcessorArchitectureTypesTable[] = { { 0, L" Reserved " }, { 1, L" IA32 (x86) " }, { 2, L" x64 (x86-64, intel64, AMD64, EM64T) " }, { 3, L" Intel Itanium architecture " }, { 4, L" 32-bit ARM (Aarch32) " }, { 5, L" 64-bit ARM (Aarch64) " }, { 6, L" 32-bit RISC-V (RV32) " }, { 7, L" 64-bit RISC-V (RV64) " }, { 8, L" 128-bit RISC-V (RV128) " }, { 9, L" 32-bit LoongArch (LoongArch32) " }, { 10, L" 64-bit LoongArch (LoongArch64) " } }; TABLE_ITEM FirmwareInventoryCharTable[] = { { 0, L"Updatable" }, { 1, L"Write-Protect" } }; TABLE_ITEM FirmwareInventoryStateTable[] = { { 1, L" Other" }, { 2, L" Unknown " }, { 3, L" Disabled: This firmware component is disabled. " }, { 4, L" Enabled: This firmware component is enabled. " }, { 5, L" Absent: This firmware component is either not present or not detected " }, { 6, L" StandbyOffline: This firmware is enabled but awaits an external action to activate it. " }, { 7, L" StandbySpare: This firmware is part of a redundancy set and awaits a failover or other external action to activate it. " }, { 8, L" UnavailableOffline: This firmware component is present but cannot be used. " }, }; TABLE_ITEM StructureTypeInfoTable[] = { { 0, L" BIOS Information" }, { 1, L" System Information" }, { 2, L" Base Board Information" }, { 3, L" System Enclosure" }, { 4, L" Processor Information" }, { 5, L" Memory Controller Information " }, { 6, L" Memory Module Information " }, { 7, L" Cache Information " }, { 8, L" Port Connector Information " }, { 9, L" System Slots " }, { 10, L" On Board Devices Information " }, { 11, L" OEM Strings" }, { 12, L" System Configuration Options " }, { 13, L" BIOS Language Information " }, { 14, L" Group Associations " }, { 15, L" System Event Log " }, { 16, L" Physical Memory Array " }, { 17, L" Memory Device " }, { 18, L" 32-bit Memory Error Information " }, { 19, L" Memory Array Mapped Address " }, { 20, L" Memory Device Mapped Address " }, { 21, L" Built-in Pointing Device " }, { 22, L" Portable Battery " }, { 23, L" System Reset " }, { 24, L" Hardware Security " }, { 25, L" System Power Controls " }, { 26, L" Voltage Probe " }, { 27, L" Cooling Device " }, { 28, L" Temperature Probe " }, { 29, L" Electrical Current Probe " }, { 30, L" Out-of-Band Remote Access " }, { 31, L" Boot Integrity Services (BIS) Entry Point" }, { 32, L" System Boot Information " }, { 33, L" 64-bit Memory Error Information " }, { 34, L" Management Device " }, { 35, L" Management Device Component " }, { 36, L" Management Device Threshold Data " }, { 37, L" Memory Channel " }, { 38, L" IPMI Device Information " }, { 39, L" System Power Supply" }, { 40, L" Additional Information" }, { 41, L" Onboard Devices Extended Information" }, { 42, L" Management Controller Host Interface" }, { 43, L" TPM Device" }, { 44, L" Processor Additional Information" }, { 0x7E, L" Inactive" }, { 0x7F, L" End-of-Table " }, }; /** Given a table and a Key, return the responding info. Notes: Table[Index].Key is change from UINT8 to UINT16, in order to deal with "0xaa - 0xbb". For example: DisplaySELVariableDataFormatTypes(UINT8 Type, UINT8 Option) has a item: "0x07-0x7F, Unused" Now define Key = 0x7F07, that is to say: High = 0x7F, Low = 0x07. Then all the Key Value between Low and High gets the same string L"Unused". @param[in] Table The begin address of table. @param[in] Number The number of table items. @param[in] Key The query Key. @param[in, out] Info Input as empty buffer; output as data buffer. @param[in] InfoLen The max number of characters for Info. @return the found Key and Info is valid. @retval QUERY_TABLE_UNFOUND and Info should be NULL. **/ UINT8 QueryTable ( IN TABLE_ITEM *Table, IN UINTN Number, IN UINT8 Key, IN OUT CHAR16 *Info, IN UINTN InfoLen ) { UINTN Index; // // High byte and Low byte of word // UINT8 High; UINT8 Low; for (Index = 0; Index < Number; Index++) { High = (UINT8)(Table[Index].Key >> 8); Low = (UINT8)(Table[Index].Key & 0x00FF); // // Check if Key is in the range // or if Key == Value in the table // if ( ((High > Low) && (Key >= Low) && (Key <= High)) || (Table[Index].Key == Key)) { StrnCpyS (Info, InfoLen, Table[Index].Info, InfoLen - 1); StrnCatS (Info, InfoLen, L"\n", InfoLen - 1 - StrLen (Info)); return Key; } } StrCpyS (Info, InfoLen, L"Undefined Value\n"); return QUERY_TABLE_UNFOUND; } /** Given a table of bit info and a Key, return the responding info to the Key. @param[in] Table Point to a table which maintains a map of 'bit' to 'message'. @param[in] Number Number of table items. @param[in] Bits The Key of query the bit map information. **/ VOID PrintBitsInfo ( IN TABLE_ITEM *Table, IN UINTN Number, IN UINT32 Bits ) { // // Get certain bit of 'Value': // #define BIT(Value, bit) ((Value) & ((UINT32) 1) << (bit)) // // Clear certain bit of 'Value': // #define CLR_BIT(Value, bit) ((Value) -= (BIT (Value, bit))) UINTN Index; UINT32 Value; BOOLEAN FirstInfo; FirstInfo = TRUE; Value = Bits; // // query the table and print information // for (Index = 0; Index < Number; Index++) { if (BIT (Value, Table[Index].Key) != 0) { if (!FirstInfo) { // // If it is not first info, print the separator first. // Print (L" | "); } Print (Table[Index].Info); FirstInfo = FALSE; // // clear the bit, for reserved bits test // CLR_BIT (Value, Table[Index].Key); } } // // There is no any info if FirstInfo is still TRUE. // if (FirstInfo) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_NO_INFO), gShellDebug1HiiHandle); } if (Value != 0) { ShellPrintHiiEx ( -1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_BITS_SET), gShellDebug1HiiHandle, Value ); } Print (L"\n"); } // // ////////////////////////////////////////////////////////////////// // // Following uses QueryTable functions to simplify the coding. // QueryTable(), PrintBitsInfo() // // #define PRINT_TABLE_ITEM(Table, Key) \ do { \ UINTN Num; \ CHAR16 Info[66]; \ Num = sizeof (Table) / sizeof (TABLE_ITEM); \ ZeroMem (Info, sizeof (Info)); \ QueryTable (Table, Num, Key, Info, sizeof(Info)/sizeof(Info[0])); \ Print (Info); \ } while (0); #define PRINT_BITS_INFO(Table, bits) \ do { \ UINTN Num; \ Num = sizeof (Table) / sizeof (TABLE_ITEM); \ PrintBitsInfo (Table, Num, (UINT32) bits); \ } while (0); /** Display System Information (Type 1) Type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemWakeupType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_WAKEUP_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (SystemWakeupTypeTable, Type); } /** Display Base Board (Type 2) Feature Flags. @param[in] FeatureFlags The key of the structure. @param[in] Option The optional information. **/ VOID DisplayBaseBoardFeatureFlags ( IN UINT8 FeatureFlags, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BASE_BOARD_FEATURE_FLAGS), gShellDebug1HiiHandle); PRINT_INFO_OPTION (FeatureFlags, Option); PRINT_BITS_INFO (BaseBoardFeatureFlagsTable, FeatureFlags); } /** Display Base Board (Type 2) Board Type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayBaseBoardBoardType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BASE_BOARD_BOARD_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (BaseBoardBoardTypeTable, Type); } /** Display System Enclosure (Type 3) Enclosure Type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemEnclosureType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); // // query table and print info // PRINT_TABLE_ITEM (SystemEnclosureTypeTable, Type); if (BIT (Type, 7) != 0) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CHASSIS_LOCK_PRESENT), gShellDebug1HiiHandle); } } /** Display System Enclosure (Type 3) Enclosure Status. @param[in] Status The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemEnclosureStatus ( IN UINT8 Status, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_STATUS), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Status, Option); PRINT_TABLE_ITEM (SystemEnclosureStatusTable, Status); } /** Display System Enclosure (Type 3) Security Status. @param[in] Status The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySESecurityStatus ( IN UINT8 Status, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_SECURITY), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Status, Option); PRINT_TABLE_ITEM (SESecurityStatusTable, Status); } /** Display Processor Information (Type 4) Type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayProcessorType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (ProcessorTypeTable, Type); } /** Display Processor Information (Type 4) Upgrade. @param[in] Upgrade The key of the structure. @param[in] Option The optional information. **/ VOID DisplayProcessorUpgrade ( IN UINT8 Upgrade, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_UPDATE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Upgrade, Option); PRINT_TABLE_ITEM (ProcessorUpgradeTable, Upgrade); } /** Display Processor Information (Type 4) Characteristics. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayProcessorCharacteristics ( IN UINT16 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_CHARACTERISTICS), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_BITS_INFO (ProcessorCharacteristicsTable, Type); } /** Display Memory Controller Information (Type 5) method. @param[in] Method The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMcErrorDetectMethod ( IN UINT8 Method, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DETECTMETHOD), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Method, Option); PRINT_TABLE_ITEM (McErrorDetectMethodTable, Method); } /** Display Memory Controller Information (Type 5) Capability. @param[in] Capability The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMcErrorCorrectCapability ( IN UINT8 Capability, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CORRECT_CAPABILITY), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Capability, Option); PRINT_BITS_INFO (McErrorCorrectCapabilityTable, Capability); } /** Display Memory Controller Information (Type 5) Support. @param[in] Support The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMcInterleaveSupport ( IN UINT8 Support, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_INTERLEAVE_SUPPORT), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Support, Option); PRINT_TABLE_ITEM (McInterleaveSupportTable, Support); } /** Display Memory Controller Information (Type 5) speeds. @param[in] Speed The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMcMemorySpeeds ( IN UINT16 Speed, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MEMORY_SPEED), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Speed, Option); PRINT_BITS_INFO (McMemorySpeedsTable, Speed); } /** Display Memory Controller Information (Type 5) voltage. @param[in] Voltage The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryModuleVoltage ( IN UINT8 Voltage, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_REQUIRED_VOLTAGES), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Voltage, Option); PRINT_BITS_INFO (MemoryModuleVoltageTable, Voltage); } /** Display Memory Module Information (Type 6) type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMmMemoryType ( IN UINT16 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_BITS_INFO (MmMemoryTypeTable, Type); } /** Display Memory Module Information (Type 6) status. @param[in] Status The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMmErrorStatus ( IN UINT8 Status, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_ERROR_STATUS), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Status, Option); PRINT_BITS_INFO (MmErrorStatusTable, Status); } /** Display Cache Information (Type 7) SRAM Type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayCacheSRAMType ( IN UINT16 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SRAM_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION ((UINT8)Type, Option); PRINT_BITS_INFO (CacheSRAMTypeTable, (UINT8)Type); } /** Display Cache Information (Type 7) correcting Type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayCacheErrCorrectingType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ERROR_CORRECTING), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (CacheErrCorrectingTypeTable, Type); } /** Display Cache Information (Type 7) Type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayCacheSystemCacheType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SYSTEM_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (CacheSystemCacheTypeTable, Type); } /** Display Cache Information (Type 7) Associativity. @param[in] Associativity The key of the structure. @param[in] Option The optional information. **/ VOID DisplayCacheAssociativity ( IN UINT8 Associativity, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ASSOCIATIVITY), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Associativity, Option); PRINT_TABLE_ITEM (CacheAssociativityTable, Associativity); } /** Display Port Connector Information (Type 8) type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPortConnectorType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_CONNECTOR_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (PortConnectorTypeTable, Type); } /** Display Port Connector Information (Type 8) port type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPortType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (PortTypeTable, Type); } /** Display System Slots (Type 9) slot type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemSlotType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (SystemSlotTypeTable, Type); } /** Display System Slots (Type 9) data bus width. @param[in] Width The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemSlotDataBusWidth ( IN UINT8 Width, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_DATA), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Width, Option); PRINT_TABLE_ITEM (SystemSlotDataBusWidthTable, Width); } /** Display System Slots (Type 9) usage information. @param[in] Usage The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemSlotCurrentUsage ( IN UINT8 Usage, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_CURRENT_USAGE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Usage, Option); PRINT_TABLE_ITEM (SystemSlotCurrentUsageTable, Usage); } /** Display System Slots (Type 9) slot length. @param[in] Length The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemSlotLength ( IN UINT8 Length, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_LENGTH), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Length, Option); PRINT_TABLE_ITEM (SystemSlotLengthTable, Length); } /** Display System Slots (Type 9) characteristics. @param[in] Chara1 The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySlotCharacteristics1 ( IN UINT8 Chara1, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Chara1, Option); PRINT_BITS_INFO (SlotCharacteristics1Table, Chara1); } /** Display System Slots (Type 9) characteristics. @param[in] Chara2 The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySlotCharacteristics2 ( IN UINT8 Chara2, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS_2), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Chara2, Option); PRINT_BITS_INFO (SlotCharacteristics2Table, Chara2); } /** Display System Slots (Type 9) Information. @param[in] Width The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemSlotInformation ( IN UINT8 Width, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_INFORMATION), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Width, Option); PRINT_TABLE_ITEM (SystemSlotInformationTable, Width); } /** Display System Slots (Type 9) Physical Width. @param[in] Width The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemSlotPhysicalWidth ( IN UINT8 Width, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_PHYSICAL_WIDTH), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Width, Option); PRINT_TABLE_ITEM (SystemSlotPhysicalWidthTable, Width); } /** Display System Slots (Type 9) slot height. @param[in] Length The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySystemSlotHeight ( IN UINT8 Length, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_HEIGHT), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Length, Option); PRINT_TABLE_ITEM (SystemSlotHeightTable, Length); } /** Display On Board Devices Information (Type 10) types. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayOnboardDeviceTypes ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ONBOARD_DEVICE_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (OnboardDeviceTypesTable, Type); } /** Display System Event Log (Type 15) types. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySELTypes ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_EVENT_LOG_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (SELTypesTable, Type); } /** Display System Event Log (Type 15) format type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySELVarDataFormatType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_EVENT_LOG_VAR_DATA_FORMAT), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (SELVarDataFormatTypeTable, Type); } /** Display System Event Log (Type 15) dw1. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPostResultsBitmapDw1 ( IN UINT32 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_BITMAP), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_BITS_INFO (PostResultsBitmapDw1Table, Key); } /** Display System Event Log (Type 15) dw2. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPostResultsBitmapDw2 ( IN UINT32 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_SECOND_DWORD), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_BITS_INFO (PostResultsBitmapDw2Table, Key); } /** Display System Event Log (Type 15) type. @param[in] SMType The key of the structure. @param[in] Option The optional information. **/ VOID DisplaySELSysManagementTypes ( IN UINT32 SMType, IN UINT8 Option ) { UINT8 Temp; ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_TYPES), gShellDebug1HiiHandle); PRINT_INFO_OPTION (SMType, Option); // // Deal with wide range Value // if (SMType >= 0x80000000) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_OEM_ASSIGNED), gShellDebug1HiiHandle); } else if (SMType >= 0x00020000) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), gShellDebug1HiiHandle); } else if (SMType >= 0x00010000) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_PROBE), gShellDebug1HiiHandle); } else if (SMType >= 0x31) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), gShellDebug1HiiHandle); } else { // // Deal with One byte data // Temp = (UINT8)(SMType & 0x3F); PRINT_TABLE_ITEM (SELSysManagementTypesTable, Temp); } } /** Display Physical Memory Array (Type 16) Location. @param[in] Location The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPMALocation ( IN UINT8 Location, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_LOCATION), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Location, Option); PRINT_TABLE_ITEM (PMALocationTable, Location); } /** Display Physical Memory Array (Type 16) Use. @param[in] Use The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPMAUse ( IN UINT8 Use, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_USE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Use, Option); PRINT_TABLE_ITEM (PMAUseTable, Use); } /** Display Physical Memory Array (Type 16) Types. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPMAErrorCorrectionTypes ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_ERROR), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (PMAErrorCorrectionTypesTable, Type); } /** Display Memory Device (Type 17) form factor. @param[in] FormFactor The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryDeviceFormFactor ( IN UINT8 FormFactor, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_FORM_FACTOR), gShellDebug1HiiHandle); PRINT_INFO_OPTION (FormFactor, Option); PRINT_TABLE_ITEM (MemoryDeviceFormFactorTable, FormFactor); } /** Display Memory Device (Type 17) type. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryDeviceType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (MemoryDeviceTypeTable, Type); } /** Display Memory Device (Type 17) details. @param[in] Para The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryDeviceTypeDetail ( IN UINT16 Para, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE_DETAIL), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Para, Option); PRINT_BITS_INFO (MemoryDeviceTypeDetailTable, Para); } /** Display Memory Device (Type 17) memory technology. @param[in] Para The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryDeviceMemoryTechnology ( IN UINT8 Para, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_MEMORY_TECHNOLOGY), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Para, Option); PRINT_TABLE_ITEM (MemoryDeviceMemoryTechnologyTable, Para); } /** Display Memory Device (Type 17) memory operating mode capability. @param[in] Para The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryDeviceMemoryOperatingModeCapability ( IN UINT16 Para, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_MEM_OPER_MODE_CAPA), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Para, Option); PRINT_BITS_INFO (MemoryDeviceMemoryOperatingModeCapabilityTable, Para); } /** Display 32-bit Memory Error Information (Type 18) type. @param[in] ErrorType The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryErrorType ( IN UINT8 ErrorType, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_INFO), gShellDebug1HiiHandle); PRINT_INFO_OPTION (ErrorType, Option); PRINT_TABLE_ITEM (MemoryErrorTypeTable, ErrorType); } /** Display 32-bit Memory Error Information (Type 18) error granularity. @param[in] Granularity The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryErrorGranularity ( IN UINT8 Granularity, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_GRANULARITY), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Granularity, Option); PRINT_TABLE_ITEM (MemoryErrorGranularityTable, Granularity); } /** Display 32-bit Memory Error Information (Type 18) error information. @param[in] Operation The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryErrorOperation ( IN UINT8 Operation, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_OP), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Operation, Option); PRINT_TABLE_ITEM (MemoryErrorOperationTable, Operation); } /** Display Built-in Pointing Device (Type 21) type information. @param[in] Type The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPointingDeviceType ( IN UINT8 Type, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (PointingDeviceTypeTable, Type); } /** Display Built-in Pointing Device (Type 21) information. @param[in] Interface The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPointingDeviceInterface ( IN UINT8 Interface, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_INTERFACE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Interface, Option); PRINT_TABLE_ITEM (PointingDeviceInterfaceTable, Interface); } /** Display Portable Battery (Type 22) information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayPBDeviceChemistry ( IN UINT8 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORTABLE_BATT_DEV_CHEM), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (PBDeviceChemistryTable, Key); } /** Display Voltage Probe (Type 26) location information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayVPLocation ( IN UINT8 Key, IN UINT8 Option ) { UINT8 Loc; Loc = (UINT8)((Key & 0xE0) >> 5); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Loc, Option); PRINT_TABLE_ITEM (VPLocationTable, Loc); } /** Display Voltage Probe (Type 26) status ype information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayVPStatus ( IN UINT8 Key, IN UINT8 Option ) { UINT8 Status; Status = (UINT8)(Key & 0x1F); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_STATUS), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Status, Option); PRINT_TABLE_ITEM (VPStatusTable, Status); } /** Display Cooling (Type 27) status information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayCoolingDeviceStatus ( IN UINT8 Key, IN UINT8 Option ) { UINT8 Status; Status = (UINT8)((Key & 0xE0) >> 5); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_STATUS), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Status, Option); PRINT_TABLE_ITEM (CoolingDeviceStatusTable, Status); } /** Display Cooling (Type 27) type information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayCoolingDeviceType ( IN UINT8 Key, IN UINT8 Option ) { UINT8 Type; Type = (UINT8)(Key & 0x1F); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Type, Option); PRINT_TABLE_ITEM (CoolingDeviceTypeTable, Type); } /** Display Temperature Probe (Type 28) status information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayTemperatureProbeStatus ( IN UINT8 Key, IN UINT8 Option ) { UINT8 Status; Status = (UINT8)((Key & 0xE0) >> 5); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_TEMP_PROBE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Status, Option); PRINT_TABLE_ITEM (TemperatureProbeStatusTable, Status); } /** Display Temperature Probe (Type 28) location information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayTemperatureProbeLoc ( IN UINT8 Key, IN UINT8 Option ) { UINT8 Loc; Loc = (UINT8)(Key & 0x1F); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Loc, Option); PRINT_TABLE_ITEM (TemperatureProbeLocTable, Loc); } /** Display Electrical Current Probe (Type 29) status information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayECPStatus ( IN UINT8 Key, IN UINT8 Option ) { UINT8 Status; Status = (UINT8)((Key & 0xE0) >> 5); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_STATUS), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Status, Option); PRINT_TABLE_ITEM (ECPStatusTable, Status); } /** Display Type 29 information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayECPLoc ( IN UINT8 Key, IN UINT8 Option ) { UINT8 Loc; Loc = (UINT8)(Key & 0x1F); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_LOC), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Loc, Option); PRINT_TABLE_ITEM (ECPLocTable, Loc); } /** Display Management Device (Type 34) Type. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMDType ( IN UINT8 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (MDTypeTable, Key); } /** Display Management Device (Type 34) Address Type. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMDAddressType ( IN UINT8 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_ADDR_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (MDAddressTypeTable, Key); } /** Display Memory Channel (Type 37) information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMemoryChannelType ( IN UINT8 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CHANNEL_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (MemoryChannelTypeTable, Key); } /** Display IPMI Device Information (Type 38) information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayIPMIDIBMCInterfaceType ( IN UINT8 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BMC_INTERFACE_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (IPMIDIBMCInterfaceTypeTable, Key); } /** Display Management Controller Host Interface (Type 42) information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayMCHostInterfaceType ( IN UINT8 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MC_HOST_INTERFACE_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (MCHostInterfaceTypeTable, Key); } /** Display Processor Architecture Type (Type 44). @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayProcessorArchitectureType ( IN UINT8 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROCESSOR_ARCH_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (ProcessorArchitectureTypesTable, Key); } /** Display Firmware Characteristics (Type 45) details. @param[in] Chara The information bits. @param[in] Option The optional information. **/ VOID DisplayFirmwareCharacteristics ( IN UINT16 Chara, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_FIRMWARE_INVENTORY_CHAR), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Chara, Option); PRINT_BITS_INFO (FirmwareInventoryCharTable, Chara); } /** Display Firmware state (Type 45) details. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayFirmwareState ( IN UINT8 Key, IN UINT8 Option ) { ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_FIRMWARE_INVENTORY_STATE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (FirmwareInventoryStateTable, Key); } /** Display the structure type information. @param[in] Key The key of the structure. @param[in] Option The optional information. **/ VOID DisplayStructureTypeInfo ( IN UINT8 Key, IN UINT8 Option ) { // // display // ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_STRUCT_TYPE), gShellDebug1HiiHandle); PRINT_INFO_OPTION (Key, Option); PRINT_TABLE_ITEM (StructureTypeInfoTable, Key); }