]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c
ShellPkg/SmbiosView: Add DDR5 support
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / SmbiosView / QueryTable.c
1 /** @file
2 Build a table, each item is (Key, Info) pair.
3 And give a interface of query a string out of a table.
4
5 Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.<BR>
6 (C) Copyright 2016-2019 Hewlett Packard Enterprise Development LP<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
8
9 **/
10
11 #include "UefiShellDebug1CommandsLib.h"
12 #include "QueryTable.h"
13 #include "PrintInfo.h"
14
15 TABLE_ITEM SystemWakeupTypeTable[] = {
16 {
17 0x0,
18 L" Reserved"
19 },
20 {
21 0x1,
22 L" Other"
23 },
24 {
25 0x2,
26 L" Unknown"
27 },
28 {
29 0x3,
30 L" APM Timer"
31 },
32 {
33 0x4,
34 L" Modem Ring"
35 },
36 {
37 0x5,
38 L" LAN Remote"
39 },
40 {
41 0x6,
42 L" Power Switch"
43 },
44 {
45 0x7,
46 L" AC Power Restored"
47 }
48 };
49
50 TABLE_ITEM BaseBoardFeatureFlagsTable[] = {
51 {
52 0,
53 L" Hosting board"
54 },
55 {
56 1,
57 L" Requires at least one daughter board or auxiliary card"
58 },
59 {
60 2,
61 L" Removable"
62 },
63 {
64 3,
65 L" Replaceable"
66 },
67 {
68 4,
69 L" Hot swappable"
70 }
71 };
72
73 TABLE_ITEM BaseBoardBoardTypeTable[] = {
74 {
75 0x01,
76 L" Unknown"
77 },
78 {
79 0x02,
80 L" Other"
81 },
82 {
83 0x03,
84 L" Server Blade"
85 },
86 {
87 0x04,
88 L" Connectivity Switch"
89 },
90 {
91 0x05,
92 L" System Management Module"
93 },
94 {
95 0x06,
96 L" Processor Module"
97 },
98 {
99 0x07,
100 L" I/O Module"
101 },
102 {
103 0x08,
104 L" Memory Module"
105 },
106 {
107 0x09,
108 L" Daughter board"
109 },
110 {
111 0x0A,
112 L" Motherboard"
113 },
114 {
115 0x0B,
116 L" Processor/Memory Module"
117 },
118 {
119 0x0C,
120 L" Processor/IO Module"
121 },
122 {
123 0x0D,
124 L" Interconnect Board"
125 }
126 };
127
128 TABLE_ITEM SystemEnclosureTypeTable[] = {
129 {
130 0x01,
131 L" Other"
132 },
133 {
134 0x02,
135 L" Unknown"
136 },
137 {
138 0x03,
139 L" Desktop"
140 },
141 {
142 0x04,
143 L" Low Profile Desktop"
144 },
145 {
146 0x05,
147 L" Pizza Box"
148 },
149 {
150 0x06,
151 L" Mini Tower"
152 },
153 {
154 0x07,
155 L" Tower"
156 },
157 {
158 0x08,
159 L" Portable"
160 },
161 {
162 0x09,
163 L" Laptop"
164 },
165 {
166 0x0A,
167 L" Notebook"
168 },
169 {
170 0x0B,
171 L" Hand Held"
172 },
173 {
174 0x0C,
175 L" Docking Station"
176 },
177 {
178 0x0D,
179 L" All in One"
180 },
181 {
182 0x0E,
183 L" Sub Notebook"
184 },
185 {
186 0x0F,
187 L" Space-saving"
188 },
189 {
190 0x10,
191 L" Main Server Chassis"
192 },
193 {
194 0x11,
195 L" Expansion Chassis"
196 },
197 {
198 0x12,
199 L" SubChassis"
200 },
201 {
202 0x13,
203 L" Sub Notebook"
204 },
205 {
206 0x14,
207 L" Bus Expansion Chassis"
208 },
209 {
210 0x15,
211 L" Peripheral Chassis"
212 },
213 {
214 0x16,
215 L" RAID Chassis"
216 },
217 {
218 0x17,
219 L" Rack Mount Chassis"
220 },
221 {
222 0x18,
223 L" Sealed-case PC"
224 },
225 {
226 0x19,
227 L" Multi-system Chassis"
228 },
229 {
230 0x1A,
231 L" CompactPCI"
232 },
233 {
234 0x1B,
235 L" AdvancedTCA"
236 },
237 {
238 0x1C,
239 L" Blade"
240 },
241 {
242 0x1D,
243 L" Blade Enclosure"
244 },
245 {
246 0x1E,
247 L" Tablet"
248 },
249 {
250 0x1F,
251 L" Convertible"
252 },
253 {
254 0x20,
255 L" Detachable"
256 },
257 {
258 0x21,
259 L" IoT Gateway"
260 },
261 {
262 0x22,
263 L" Embedded PC"
264 },
265 {
266 0x23,
267 L" Mini PC"
268 },
269 {
270 0x24,
271 L" Stick PC"
272 },
273 };
274
275 TABLE_ITEM SystemEnclosureStatusTable[] = {
276 {
277 0x1,
278 L" Other"
279 },
280 {
281 0x2,
282 L" Unknown"
283 },
284 {
285 0x3,
286 L" Safe"
287 },
288 {
289 0x4,
290 L" Warning"
291 },
292 {
293 0x5,
294 L" Critical"
295 },
296 {
297 0x6,
298 L" Non-recoverable"
299 }
300 };
301
302 TABLE_ITEM SESecurityStatusTable[] = {
303 {
304 0x1,
305 L" Other"
306 },
307 {
308 0x2,
309 L" Unknown"
310 },
311 {
312 0x3,
313 L" None"
314 },
315 {
316 0x4,
317 L" External interface locked out"
318 },
319 {
320 0x5,
321 L" External interface enabled"
322 }
323 };
324
325 TABLE_ITEM ProcessorTypeTable[] = {
326 {
327 0x1,
328 L" Other"
329 },
330 {
331 0x2,
332 L" Unknown"
333 },
334 {
335 0x3,
336 L" Central Processor"
337 },
338 {
339 0x4,
340 L" Math Processor"
341 },
342 {
343 0x5,
344 L" DSP Processor"
345 },
346 {
347 0x6,
348 L" Video Processor "
349 },
350 };
351
352 TABLE_ITEM ProcessorUpgradeTable[] = {
353 {
354 0x01,
355 L"Other"
356 },
357 {
358 0x02,
359 L"Unknown"
360 },
361 {
362 0x03,
363 L"Daughter Board"
364 },
365 {
366 0x04,
367 L"ZIF Socket"
368 },
369 {
370 0x05,
371 L"Replaceable Piggy Back"
372 },
373 {
374 0x06,
375 L"None"
376 },
377 {
378 0x07,
379 L"LIF Socket"
380 },
381 {
382 0x08,
383 L"Slot 1"
384 },
385 {
386 0x09,
387 L"Slot 2"
388 },
389 {
390 0x0A,
391 L"370-pin socket"
392 },
393 {
394 0x0B,
395 L"Slot A"
396 },
397 {
398 0x0C,
399 L"Slot M"
400 },
401 {
402 0x0D,
403 L"Socket 423"
404 },
405 {
406 0x0E,
407 L"Socket A"
408 },
409 {
410 0x0F,
411 L"Socket 478"
412 },
413 {
414 0x10,
415 L"Socket 754"
416 },
417 {
418 0x11,
419 L"Socket 940"
420 },
421 {
422 0x12,
423 L"Socket 939"
424 },
425 {
426 0x13,
427 L"Socket mPGA604"
428 },
429 {
430 0x14,
431 L"Socket LGA771"
432 },
433 {
434 0x15,
435 L"Socket LGA775"
436 },
437 {
438 0x16,
439 L"Socket S1"
440 },
441 {
442 0x17,
443 L"Socket AM2"
444 },
445 {
446 0x18,
447 L"Socket F"
448 },
449 {
450 0x19,
451 L"Socket LGA1366"
452 },
453 {
454 0x1A,
455 L"Socket G34"
456 },
457 {
458 0x1B,
459 L"Socket AM3"
460 },
461 {
462 0x1C,
463 L"Socket C32"
464 },
465 {
466 0x1D,
467 L"Socket LGA1156"
468 },
469 {
470 0x1E,
471 L"Socket LGA1567"
472 },
473 {
474 0x1F,
475 L"Socket PGA988A"
476 },
477 {
478 0x20,
479 L"Socket BGA1288"
480 },
481 {
482 0x21,
483 L"Socket rPGA988B"
484 },
485 {
486 0x22,
487 L"Socket BGA1023"
488 },
489 {
490 0x23,
491 L"Socket BGA1224"
492 },
493 {
494 0x24,
495 L"Socket LGA1155"
496 },
497 {
498 0x25,
499 L"Socket LGA1356"
500 },
501 {
502 0x26,
503 L"Socket LGA2011"
504 },
505 {
506 0x27,
507 L"Socket FS1"
508 },
509 {
510 0x28,
511 L"Socket FS2"
512 },
513 {
514 0x29,
515 L"Socket FM1"
516 },
517 {
518 0x2A,
519 L"Socket FM2"
520 },
521 {
522 0x2B,
523 L"Socket LGA2011-3"
524 },
525 {
526 0x2C,
527 L"Socket LGA1356-3"
528 },
529 {
530 0x2D,
531 L"Socket LGA1150"
532 },
533 {
534 0x2E,
535 L"Socket BGA1168"
536 },
537 {
538 0x2F,
539 L"Socket BGA1234"
540 },
541 {
542 0x30,
543 L"Socket BGA1364"
544 },
545 {
546 0x31,
547 L"Socket AM4"
548 },
549 {
550 0x32,
551 L"Socket LGA1151"
552 },
553 {
554 0x33,
555 L"Socket BGA1356"
556 },
557 {
558 0x34,
559 L"Socket BGA1440"
560 },
561 {
562 0x35,
563 L"Socket BGA1515"
564 },
565 {
566 0x36,
567 L"Socket LGA3647-1"
568 },
569 {
570 0x37,
571 L"Socket SP3"
572 },
573 {
574 0x38,
575 L"Socket SP3r2"
576 },
577 {
578 0x39,
579 L"Socket LGA2066"
580 },
581 {
582 0x3A,
583 L"Socket BGA1392"
584 },
585 {
586 0x3B,
587 L"Socket BGA1510"
588 },
589 {
590 0x3C,
591 L"Socket BGA1528"
592 }
593 };
594
595 TABLE_ITEM ProcessorCharacteristicsTable[] = {
596 {
597 1,
598 L" Unknown"
599 },
600 {
601 2,
602 L" 64-bit Capable"
603 },
604 {
605 3,
606 L" Multi-Core"
607 },
608 {
609 4,
610 L" Hardware Thread"
611 },
612 {
613 5,
614 L" Execute Protection"
615 },
616 {
617 6,
618 L" Enhanced Virtualization"
619 },
620 {
621 7,
622 L" Power/Performance Control"
623 },
624 {
625 8,
626 L" 128-bit Capable"
627 }
628 };
629
630
631 TABLE_ITEM McErrorDetectMethodTable[] = {
632 {
633 0x01,
634 L"Other"
635 },
636 {
637 0x02,
638 L"Unknown"
639 },
640 {
641 0x03,
642 L"None"
643 },
644 {
645 0x04,
646 L"8-bit Parity"
647 },
648 {
649 0x05,
650 L"32-bit ECC"
651 },
652 {
653 0x06,
654 L"64-bit ECC"
655 },
656 {
657 0x07,
658 L"128-bit ECC"
659 },
660 {
661 0x08,
662 L"CRC"
663 },
664 };
665
666 TABLE_ITEM McErrorCorrectCapabilityTable[] = {
667 {
668 0,
669 L"Other"
670 },
671 {
672 1,
673 L"Unknown"
674 },
675 {
676 2,
677 L"None"
678 },
679 {
680 3,
681 L"Single Bit Error Correcting"
682 },
683 {
684 4,
685 L"Double Bit Error Correcting"
686 },
687 {
688 5,
689 L"Error Scrubbing"
690 },
691 };
692
693 TABLE_ITEM McInterleaveSupportTable[] = {
694 {
695 0x01,
696 L"Other"
697 },
698 {
699 0x02,
700 L"Unknown"
701 },
702 {
703 0x03,
704 L"One Way Interleave"
705 },
706 {
707 0x04,
708 L"Two Way Interleave"
709 },
710 {
711 0x05,
712 L"Four Way Interleave"
713 },
714 {
715 0x06,
716 L"Eight Way Interleave"
717 },
718 {
719 0x07,
720 L"Sixteen Way Interleave"
721 }
722 };
723
724 TABLE_ITEM McMemorySpeedsTable[] = {
725 {
726 0,
727 L" Other"
728 },
729 {
730 1,
731 L" Unknown"
732 },
733 {
734 2,
735 L" 70ns"
736 },
737 {
738 3,
739 L" 60ns"
740 },
741 {
742 4,
743 L" 50ns"
744 },
745 };
746
747 TABLE_ITEM MemoryModuleVoltageTable[] = {
748 {
749 0,
750 L" 5V"
751 },
752 {
753 1,
754 L" 3.3V"
755 },
756 {
757 2,
758 L" 2.9V"
759 },
760 };
761
762 TABLE_ITEM MmMemoryTypeTable[] = {
763 {
764 0,
765 L" Other"
766 },
767 {
768 1,
769 L" Unknown"
770 },
771 {
772 2,
773 L" Standard"
774 },
775 {
776 3,
777 L" Fast Page Mode"
778 },
779 {
780 4,
781 L" EDO"
782 },
783 {
784 5,
785 L" Parity"
786 },
787 {
788 6,
789 L" ECC "
790 },
791 {
792 7,
793 L" SIMM"
794 },
795 {
796 8,
797 L" DIMM"
798 },
799 {
800 9,
801 L" Burst EDO"
802 },
803 {
804 10,
805 L" SDRAM"
806 }
807 };
808
809 TABLE_ITEM MmErrorStatusTable[] = {
810 {
811 0,
812 L" Uncorrectable errors received"
813 },
814 {
815 1,
816 L" Correctable errors received"
817 },
818 {
819 2,
820 L" Error Status obtained from the event log"
821 }
822 };
823
824 TABLE_ITEM CacheSRAMTypeTable[] = {
825 {
826 0,
827 L" Other"
828 },
829 {
830 1,
831 L" Unknown"
832 },
833 {
834 2,
835 L" Non-Burst"
836 },
837 {
838 3,
839 L" Burst"
840 },
841 {
842 4,
843 L" Pipeline Burst"
844 },
845 {
846 5,
847 L" Synchronous"
848 },
849 {
850 6,
851 L" Asynchronous"
852 },
853 };
854
855 TABLE_ITEM CacheErrCorrectingTypeTable[] = {
856 {
857 0x01,
858 L"Other"
859 },
860 {
861 0x02,
862 L"Unknown"
863 },
864 {
865 0x03,
866 L"None"
867 },
868 {
869 0x04,
870 L"Parity"
871 },
872 {
873 0x05,
874 L"Single-bit ECC"
875 },
876 {
877 0x06,
878 L"Multi-bit ECC"
879 }
880 };
881
882 TABLE_ITEM CacheSystemCacheTypeTable[] = {
883 {
884 0x01,
885 L"Other"
886 },
887 {
888 0x02,
889 L"Unknown"
890 },
891 {
892 0x03,
893 L"Instruction"
894 },
895 {
896 0x04,
897 L"Data"
898 },
899 {
900 0x05,
901 L"Unified"
902 }
903 };
904
905 TABLE_ITEM CacheAssociativityTable[] = {
906 {
907 0x01,
908 L"Other"
909 },
910 {
911 0x02,
912 L"Unknown"
913 },
914 {
915 0x03,
916 L"Direct Mapped"
917 },
918 {
919 0x04,
920 L"2-way Set-Associative"
921 },
922 {
923 0x05,
924 L"4-way Set-Associative"
925 },
926 {
927 0x06,
928 L"Fully Associative"
929 },
930 {
931 0x07,
932 L"8-way Set-Associative"
933 },
934 {
935 0x08,
936 L"16-way Set-Associative"
937 },
938 {
939 0x09,
940 L"12-way Set-Associative"
941 },
942 {
943 0x0A,
944 L"24-way Set-Associative"
945 },
946 {
947 0x0B,
948 L"32-way Set-Associative"
949 },
950 {
951 0x0C,
952 L"48-way Set-Associative"
953 },
954 {
955 0x0D,
956 L"64-way Set-Associative"
957 },
958 {
959 0x0E,
960 L"20-way Set-Associative"
961 }
962 };
963
964 TABLE_ITEM PortConnectorTypeTable[] = {
965 {
966 0x00,
967 L"None"
968 },
969 {
970 0x01,
971 L"Centronics"
972 },
973 {
974 0x02,
975 L"Mini Centronics"
976 },
977 {
978 0x03,
979 L"Proprietary"
980 },
981 {
982 0x04,
983 L"DB-25 pin male"
984 },
985 {
986 0x05,
987 L"DB-25 pin female"
988 },
989 {
990 0x06,
991 L"DB-15 pin male"
992 },
993 {
994 0x07,
995 L"DB-15 pin female"
996 },
997 {
998 0x08,
999 L"DB-9 pin male"
1000 },
1001 {
1002 0x09,
1003 L"DB-9 pin female"
1004 },
1005 {
1006 0x0A,
1007 L"RJ-11"
1008 },
1009 {
1010 0x0B,
1011 L"RJ-45"
1012 },
1013 {
1014 0x0C,
1015 L"50 Pin MiniSCSI"
1016 },
1017 {
1018 0x0D,
1019 L"Mini-DIN"
1020 },
1021 {
1022 0x0E,
1023 L"Micro-DIN"
1024 },
1025 {
1026 0x0F,
1027 L"PS/2"
1028 },
1029 {
1030 0x10,
1031 L"Infrared"
1032 },
1033 {
1034 0x11,
1035 L"HP-HIL"
1036 },
1037 {
1038 0x12,
1039 L"Access Bus (USB)"
1040 },
1041 {
1042 0x13,
1043 L"SSA SCSI"
1044 },
1045 {
1046 0x14,
1047 L"Circular DIN-8 male"
1048 },
1049 {
1050 0x15,
1051 L"Circular DIN-8 female"
1052 },
1053 {
1054 0x16,
1055 L"On Board IDE"
1056 },
1057 {
1058 0x17,
1059 L"On Board Floppy"
1060 },
1061 {
1062 0x18,
1063 L"9 Pin Dual Inline (pin 10 cut)"
1064 },
1065 {
1066 0x19,
1067 L"25 Pin Dual Inline (pin 26 cut)"
1068 },
1069 {
1070 0x1A,
1071 L"50 Pin Dual Inline"
1072 },
1073 {
1074 0x1B,
1075 L"68 Pin Dual Inline"
1076 },
1077 {
1078 0x1C,
1079 L"On Board Sound Input from CD-ROM"
1080 },
1081 {
1082 0x1D,
1083 L"Mini-Centronics Type-14"
1084 },
1085 {
1086 0x1E,
1087 L"Mini-Centronics Type-26"
1088 },
1089 {
1090 0x1F,
1091 L"Mini-jack (headphones)"
1092 },
1093 {
1094 0x20,
1095 L"BNC"
1096 },
1097 {
1098 0x21,
1099 L"1394"
1100 },
1101 {
1102 0x22,
1103 L"SAS/SATA Plug Receptacle"
1104 },
1105 {
1106 0x23,
1107 L"USB Type-C Receptacle"
1108 },
1109 {
1110 0xA0,
1111 L"PC-98"
1112 },
1113 {
1114 0xA1,
1115 L"PC-98Hireso"
1116 },
1117 {
1118 0xA2,
1119 L"PC-H98"
1120 },
1121 {
1122 0xA3,
1123 L"PC-98Note"
1124 },
1125 {
1126 0xA4,
1127 L"PC-98Full"
1128 },
1129 {
1130 0xFF,
1131 L"Other"
1132 },
1133 };
1134
1135 TABLE_ITEM PortTypeTable[] = {
1136 {
1137 0x00,
1138 L"None"
1139 },
1140 {
1141 0x01,
1142 L"Parallel Port XT/AT Compatible"
1143 },
1144 {
1145 0x02,
1146 L"Parallel Port PS/2"
1147 },
1148 {
1149 0x03,
1150 L"Parallel Port ECP"
1151 },
1152 {
1153 0x04,
1154 L"Parallel Port EPP"
1155 },
1156 {
1157 0x05,
1158 L"Parallel Port ECP/EPP"
1159 },
1160 {
1161 0x06,
1162 L"Serial Port XT/AT Compatible"
1163 },
1164 {
1165 0x07,
1166 L"Serial Port 16450 Compatible"
1167 },
1168 {
1169 0x08,
1170 L"Serial Port 16550 Compatible"
1171 },
1172 {
1173 0x09,
1174 L"Serial Port 16550A Compatible"
1175 },
1176 {
1177 0x0A,
1178 L"SCSI Port"
1179 },
1180 {
1181 0x0B,
1182 L"MIDI Port"
1183 },
1184 {
1185 0x0C,
1186 L"Joy Stick Port"
1187 },
1188 {
1189 0x0D,
1190 L"Keyboard Port"
1191 },
1192 {
1193 0x0E,
1194 L"Mouse Port"
1195 },
1196 {
1197 0x0F,
1198 L"SSA SCSI"
1199 },
1200 {
1201 0x10,
1202 L"USB"
1203 },
1204 {
1205 0x11,
1206 L"FireWire (IEEE P1394)"
1207 },
1208 {
1209 0x12,
1210 L"PCMCIA Type II"
1211 },
1212 {
1213 0x13,
1214 L"PCMCIA Type II"
1215 },
1216 {
1217 0x14,
1218 L"PCMCIA Type III"
1219 },
1220 {
1221 0x15,
1222 L"Cardbus"
1223 },
1224 {
1225 0x16,
1226 L"Access Bus Port"
1227 },
1228 {
1229 0x17,
1230 L"SCSI II"
1231 },
1232 {
1233 0x18,
1234 L"SCSI Wide"
1235 },
1236 {
1237 0x19,
1238 L"PC-98"
1239 },
1240 {
1241 0x1A,
1242 L"PC-98-Hireso"
1243 },
1244 {
1245 0x1B,
1246 L"PC-H98"
1247 },
1248 {
1249 0x1C,
1250 L"Video Port"
1251 },
1252 {
1253 0x1D,
1254 L"Audio Port"
1255 },
1256 {
1257 0x1E,
1258 L"Modem Port"
1259 },
1260 {
1261 0x1F,
1262 L"Network Port"
1263 },
1264 {
1265 0x20,
1266 L"SATA Port"
1267 },
1268 {
1269 0x21,
1270 L"SAS Port"
1271 },
1272 {
1273 0x22,
1274 L"Multi-Function Display Port (MFDP)"
1275 },
1276 {
1277 0x23,
1278 L"Thunderbolt"
1279 },
1280 {
1281 0xA0,
1282 L"8251 Compatible"
1283 },
1284 {
1285 0xA1,
1286 L"8251 FIFO Compatible"
1287 },
1288 {
1289 0xFF,
1290 L"Other "
1291 },
1292 };
1293
1294 TABLE_ITEM SystemSlotTypeTable[] = {
1295 {
1296 0x01,
1297 L"Other"
1298 },
1299 {
1300 0x02,
1301 L"Unknown"
1302 },
1303 {
1304 0x03,
1305 L"ISA"
1306 },
1307 {
1308 0x04,
1309 L"MCA"
1310 },
1311 {
1312 0x05,
1313 L"EISA"
1314 },
1315 {
1316 0x06,
1317 L"PCI"
1318 },
1319 {
1320 0x07,
1321 L"PC Card (PCMCIA)"
1322 },
1323 {
1324 0x08,
1325 L"VL-VESA"
1326 },
1327 {
1328 0x09,
1329 L"Proprietary"
1330 },
1331 {
1332 0x0A,
1333 L"Processor Card Slot"
1334 },
1335 {
1336 0x0B,
1337 L"Proprietary Memory Card Slot"
1338 },
1339 {
1340 0x0C,
1341 L"I/O Riser Card Slot"
1342 },
1343 {
1344 0x0D,
1345 L"NuBus"
1346 },
1347 {
1348 0x0E,
1349 L"PCI - 66MHz Capable"
1350 },
1351 {
1352 0x0F,
1353 L"AGP"
1354 },
1355 {
1356 0x10,
1357 L"AGP 2X"
1358 },
1359 {
1360 0x11,
1361 L"AGP 4X"
1362 },
1363 {
1364 0x12,
1365 L"PCI-X"
1366 },
1367 {
1368 0x13,
1369 L"AGP 8X"
1370 },
1371 {
1372 0x14,
1373 L"M.2 Socket 1-DP (Mechanical Key A)"
1374 },
1375 {
1376 0x15,
1377 L"M.2 Socket 1-SD (Mechanical Key E)"
1378 },
1379 {
1380 0x16,
1381 L"M.2 Socket 2 (Mechanical Key B)"
1382 },
1383 {
1384 0x17,
1385 L"M.2 Socket 3 (Mechanical Key M)"
1386 },
1387 {
1388 0x18,
1389 L"MXM Type I"
1390 },
1391 {
1392 0x19,
1393 L"MXM Type II"
1394 },
1395 {
1396 0x1A,
1397 L"MXM Type III (standard connector)"
1398 },
1399 {
1400 0x1B,
1401 L"MXM Type III (HE connector)"
1402 },
1403 {
1404 0x1C,
1405 L"MXM Type IV"
1406 },
1407 {
1408 0x1D,
1409 L"MXM 3.0 Type A"
1410 },
1411 {
1412 0x1E,
1413 L"MXM 3.0 Type B"
1414 },
1415 {
1416 0x1F,
1417 L"PCI Express Gen 2 SFF-8639"
1418 },
1419 {
1420 0x20,
1421 L"PCI Express Gen 3 SFF-8639"
1422 },
1423 {
1424 0x21,
1425 L"PCI Express Mini 52-pin (CEM spec. 2.0) with bottom-side keep-outs"
1426 },
1427 {
1428 0x22,
1429 L"PCI Express Mini 52-pin (CEM spec. 2.0) without bottom-side keep-outs"
1430 },
1431 {
1432 0x23,
1433 L"PCI Express Mini 76-pin (CEM spec. 2.0) Corresponds to Display-Mini card"
1434 },
1435 {
1436 SlotTypeCXLFlexbus10,
1437 L"CXL Flexbus 1.0"
1438 },
1439 {
1440 0xA0,
1441 L"PC-98/C20 "
1442 },
1443 {
1444 0xA1,
1445 L"PC-98/C24 "
1446 },
1447 {
1448 0xA2,
1449 L"PC-98/E "
1450 },
1451 {
1452 0xA3,
1453 L"PC-98/Local Bus "
1454 },
1455 {
1456 0xA4,
1457 L"PC-98/Card "
1458 },
1459 {
1460 0xA5,
1461 L"PCI Express "
1462 },
1463 {
1464 0xA6,
1465 L"PCI Express X1"
1466 },
1467 {
1468 0xA7,
1469 L"PCI Express X2"
1470 },
1471 {
1472 0xA8,
1473 L"PCI Express X4"
1474 },
1475 {
1476 0xA9,
1477 L"PCI Express X8"
1478 },
1479 {
1480 0xAA,
1481 L"PCI Express X16"
1482 },
1483 {
1484 0xAB,
1485 L"PCI Express Gen 2"
1486 },
1487 {
1488 0xAC,
1489 L"PCI Express Gen 2 X1"
1490 },
1491 {
1492 0xAD,
1493 L"PCI Express Gen 2 X2"
1494 },
1495 {
1496 0xAE,
1497 L"PCI Express Gen 2 X4"
1498 },
1499 {
1500 0xAF,
1501 L"PCI Express Gen 2 X8"
1502 },
1503 {
1504 0xB0,
1505 L"PCI Express Gen 2 X16"
1506 },
1507 {
1508 0xB1,
1509 L"PCI Express Gen 3"
1510 },
1511 {
1512 0xB2,
1513 L"PCI Express Gen 3 X1"
1514 },
1515 {
1516 0xB3,
1517 L"PCI Express Gen 3 X2"
1518 },
1519 {
1520 0xB4,
1521 L"PCI Express Gen 3 X4"
1522 },
1523 {
1524 0xB5,
1525 L"PCI Express Gen 3 X8"
1526 },
1527 {
1528 0xB6,
1529 L"PCI Express Gen 3 X16"
1530 },
1531 {
1532 SlotTypePciExpressGen4,
1533 L"PCI Express Gen 4"
1534 },
1535 {
1536 SlotTypePciExpressGen4X1,
1537 L"PCI Express Gen 4 X1"
1538 },
1539 {
1540 SlotTypePciExpressGen4X2,
1541 L"PCI Express Gen 4 X2"
1542 },
1543 {
1544 SlotTypePciExpressGen4X4,
1545 L"PCI Express Gen 4 X4"
1546 },
1547 {
1548 SlotTypePciExpressGen4X8,
1549 L"PCI Express Gen 4 X8"
1550 },
1551 {
1552 SlotTypePciExpressGen4X16,
1553 L"PCI Express Gen 4 X16"
1554 }
1555 };
1556
1557 TABLE_ITEM SystemSlotDataBusWidthTable[] = {
1558 {
1559 0x01,
1560 L" Other"
1561 },
1562 {
1563 0x02,
1564 L" Unknown"
1565 },
1566 {
1567 0x03,
1568 L" 8 bit"
1569 },
1570 {
1571 0x04,
1572 L" 16 bit"
1573 },
1574 {
1575 0x05,
1576 L" 32 bit"
1577 },
1578 {
1579 0x06,
1580 L" 64 bit"
1581 },
1582 {
1583 0x07,
1584 L" 128 bit"
1585 },
1586 {
1587 0x08,
1588 L" 1x or x1"
1589 },
1590 {
1591 0x09,
1592 L" 2x or x2"
1593 },
1594 {
1595 0x0A,
1596 L" 4x or x4"
1597 },
1598 {
1599 0x0B,
1600 L" 8x or x8"
1601 },
1602 {
1603 0x0C,
1604 L" 12x or x12"
1605 },
1606 {
1607 0x0D,
1608 L" 16x or x16"
1609 },
1610 {
1611 0x0E,
1612 L" 32x or x32"
1613 }
1614 };
1615
1616 TABLE_ITEM SystemSlotCurrentUsageTable[] = {
1617 {
1618 0x01,
1619 L" Other"
1620 },
1621 {
1622 0x02,
1623 L" Unknown"
1624 },
1625 {
1626 0x03,
1627 L" Available"
1628 },
1629 {
1630 0x04,
1631 L" In use"
1632 },
1633 {
1634 0x05,
1635 L" Unavailable"
1636 }
1637 };
1638
1639 TABLE_ITEM SystemSlotLengthTable[] = {
1640 {
1641 0x01,
1642 L" Other"
1643 },
1644 {
1645 0x02,
1646 L" Unknown"
1647 },
1648 {
1649 0x03,
1650 L" Short length"
1651 },
1652 {
1653 0x04,
1654 L" Long Length"
1655 },
1656 };
1657
1658 TABLE_ITEM SlotCharacteristics1Table[] = {
1659 {
1660 0,
1661 L" Characteristics Unknown"
1662 },
1663 {
1664 1,
1665 L" Provides 5.0 Volts"
1666 },
1667 {
1668 2,
1669 L" Provides 3.3 Volts"
1670 },
1671 {
1672 3,
1673 L" Slot's opening is shared with another slot, e.g. PCI/EISA shared slot."
1674 },
1675
1676 {
1677 4,
1678 L" PC Card slot supports PC Card-16"
1679 },
1680 {
1681 5,
1682 L" PC Card slot supports CardBus"
1683 },
1684 {
1685 6,
1686 L" PC Card slot supports Zoom Video "
1687 },
1688 {
1689 7,
1690 L" PC Card slot supports Modem Ring Resume "
1691 }
1692 };
1693
1694 TABLE_ITEM SlotCharacteristics2Table[] = {
1695 {
1696 0,
1697 L" PCI slot supports Power Management Enable (PME#) signal"
1698 },
1699 {
1700 1,
1701 L" Slot supports hot-plug devices"
1702 },
1703 {
1704 2,
1705 L" PCI slot supports SMBus signal"
1706 },
1707 {
1708 3,
1709 L" PCIe slot supports bifurcation"
1710 }
1711 };
1712
1713 TABLE_ITEM OnboardDeviceTypesTable[] = {
1714 {
1715 0x01,
1716 L" Other"
1717 },
1718 {
1719 0x02,
1720 L" Unknown"
1721 },
1722 {
1723 0x03,
1724 L" Video"
1725 },
1726 {
1727 0x04,
1728 L" SCSI Controller"
1729 },
1730 {
1731 0x05,
1732 L" Ethernet"
1733 },
1734 {
1735 0x06,
1736 L" Token Ring"
1737 },
1738 {
1739 0x07,
1740 L" Sound"
1741 },
1742 {
1743 0x08,
1744 L" Pata Controller"
1745 },
1746 {
1747 0x09,
1748 L" Sata Controller"
1749 },
1750 {
1751 0x0A,
1752 L" Sas Controller"
1753 },
1754 };
1755
1756 TABLE_ITEM SELTypesTable[] = {
1757 {
1758 0x00,
1759 L" Reserved."
1760 },
1761 {
1762 0x01,
1763 L" Single-bit ECC memory error"
1764 },
1765 {
1766 0x02,
1767 L" Multi-bit ECC memory error"
1768 },
1769 {
1770 0x03,
1771 L" Parity memory error"
1772 },
1773 {
1774 0x04,
1775 L" Bus time-out"
1776 },
1777 {
1778 0x05,
1779 L" I/O Channel Check"
1780 },
1781 {
1782 0x06,
1783 L" Software NMI"
1784 },
1785 {
1786 0x07,
1787 L" POST Memory Resize"
1788 },
1789 {
1790 0x08,
1791 L" POST Error"
1792 },
1793 {
1794 0x09,
1795 L" PCI Parity Error"
1796 },
1797 {
1798 0x0A,
1799 L" PCI System Error"
1800 },
1801 {
1802 0x0B,
1803 L" CPU Failure"
1804 },
1805 {
1806 0x0C,
1807 L" EISA FailSafe Timer time-out"
1808 },
1809 {
1810 0x0D,
1811 L" Correctable memory log disabled"
1812 },
1813 {
1814 0x0E,
1815 L" Logging disabled for a specific Event Type"
1816 },
1817 {
1818 0x0F,
1819 L" Reserved"
1820 },
1821 {
1822 0x10,
1823 L" System Limit Exceeded"
1824 },
1825 {
1826 0x11,
1827 L" Asynchronous hardware timer expired and issued a system reset"
1828 },
1829 {
1830 0x12,
1831 L" System configuration information"
1832 },
1833 {
1834 0x13,
1835 L" Hard-disk information"
1836 },
1837 {
1838 0x14,
1839 L" System reconfigured"
1840 },
1841 {
1842 0x15,
1843 L" Uncorrectable CPU-complex error"
1844 },
1845 {
1846 0x16,
1847 L" Log Area Reset/Cleared"
1848 },
1849 {
1850 0x17,
1851 L" System boot"
1852 },
1853 {
1854 0x7F18,
1855 L" Unused by SMBIOS specification"
1856 },
1857 {
1858 0xFE80,
1859 L" System and OEM specified"
1860 },
1861 {
1862 0xFF,
1863 L" End-of-log"
1864 },
1865 };
1866
1867 TABLE_ITEM SELVarDataFormatTypeTable[] = {
1868 {
1869 0x00,
1870 L" None "
1871 },
1872 {
1873 0x01,
1874 L" Handle "
1875 },
1876 {
1877 0x02,
1878 L" Multiple-Event "
1879 },
1880 {
1881 0x03,
1882 L" Multiple-Event Handle "
1883 },
1884 {
1885 0x04,
1886 L" POST Results Bitmap "
1887 },
1888 //
1889 // Defined below
1890 //
1891 {
1892 0x05,
1893 L" System Management Type"
1894 },
1895 //
1896 // Defined below
1897 //
1898 {
1899 0x06,
1900 L" Multiple-Event System Management Type "
1901 },
1902 {
1903 0x7F07,
1904 L" Unused "
1905 },
1906 {
1907 0xFF80,
1908 L" OEM assigned "
1909 },
1910 };
1911
1912 TABLE_ITEM PostResultsBitmapDw1Table[] = {
1913 {
1914 0,
1915 L" Channel 2 Timer error "
1916 },
1917 {
1918 1,
1919 L" Master PIC (8259 #1) error "
1920 },
1921 {
1922 2,
1923 L" Slave PIC (8259 #2) error "
1924 },
1925 {
1926 3,
1927 L" CMOS Battery Failure "
1928 },
1929 {
1930 4,
1931 L" CMOS System Options Not Set "
1932 },
1933 {
1934 5,
1935 L" CMOS Checksum Error "
1936 },
1937 {
1938 6,
1939 L" CMOS Configuration Error "
1940 },
1941 {
1942 7,
1943 L" Mouse and Keyboard Swapped "
1944 },
1945 {
1946 8,
1947 L" Keyboard Locked "
1948 },
1949 {
1950 9,
1951 L" Keyboard Not Functional "
1952 },
1953 {
1954 10,
1955 L" Keyboard Controller Not Functional "
1956 },
1957 {
1958 11,
1959 L" CMOS Memory Size Different "
1960 },
1961 {
1962 12,
1963 L" Memory Decreased in Size "
1964 },
1965 {
1966 13,
1967 L" Cache Memory Error "
1968 },
1969 {
1970 14,
1971 L" Floppy Drive 0 Error "
1972 },
1973 {
1974 15,
1975 L" Floppy Drive 1 Error "
1976 },
1977 {
1978 16,
1979 L" Floppy Controller Failure "
1980 },
1981 {
1982 17,
1983 L" Number of ATA Drives Reduced Error "
1984 },
1985 {
1986 18,
1987 L" CMOS Time Not Set "
1988 },
1989 {
1990 19,
1991 L" DDC Monitor Configuration Change "
1992 },
1993 {
1994 20,
1995 L" Reserved, set to 0 "
1996 },
1997 {
1998 21,
1999 L" Reserved, set to 0 "
2000 },
2001 {
2002 22,
2003 L" Reserved, set to 0 "
2004 },
2005 {
2006 23,
2007 L" Reserved, set to 0 "
2008 },
2009 {
2010 24,
2011 L" Second DWORD has valid data "
2012 },
2013 {
2014 25,
2015 L" Reserved, set to 0 "
2016 },
2017 {
2018 26,
2019 L" Reserved, set to 0 "
2020 },
2021 {
2022 27,
2023 L" Reserved, set to 0 "
2024 },
2025 {
2026 28,
2027 L" Normally 0; available for OEM assignment "
2028 },
2029 {
2030 29,
2031 L" Normally 0; available for OEM assignment "
2032 },
2033 {
2034 30,
2035 L" Normally 0; available for OEM assignment "
2036 },
2037 {
2038 31,
2039 L" Normally 0; available for OEM assignment "
2040 },
2041 };
2042
2043 TABLE_ITEM PostResultsBitmapDw2Table[] = {
2044 {
2045 0,
2046 L" Normally 0; available for OEM assignment "
2047 },
2048 {
2049 1,
2050 L" Normally 0; available for OEM assignment "
2051 },
2052 {
2053 2,
2054 L" Normally 0; available for OEM assignment "
2055 },
2056 {
2057 3,
2058 L" Normally 0; available for OEM assignment "
2059 },
2060 {
2061 4,
2062 L" Normally 0; available for OEM assignment "
2063 },
2064 {
2065 5,
2066 L" Normally 0; available for OEM assignment "
2067 },
2068 {
2069 6,
2070 L" Normally 0; available for OEM assignment "
2071 },
2072 {
2073 7,
2074 L" PCI Memory Conflict "
2075 },
2076 {
2077 8,
2078 L" PCI I/O Conflict "
2079 },
2080 {
2081 9,
2082 L" PCI IRQ Conflict "
2083 },
2084 {
2085 10,
2086 L" PNP Memory Conflict "
2087 },
2088 {
2089 11,
2090 L" PNP 32 bit Memory Conflict "
2091 },
2092 {
2093 12,
2094 L" PNP I/O Conflict "
2095 },
2096 {
2097 13,
2098 L" PNP IRQ Conflict "
2099 },
2100 {
2101 14,
2102 L" PNP DMA Conflict "
2103 },
2104 {
2105 15,
2106 L" Bad PNP Serial ID Checksum "
2107 },
2108 {
2109 16,
2110 L" Bad PNP Resource Data Checksum "
2111 },
2112 {
2113 17,
2114 L" Static Resource Conflict "
2115 },
2116 {
2117 18,
2118 L" NVRAM Checksum Error, NVRAM Cleared "
2119 },
2120 {
2121 19,
2122 L" System Board Device Resource Conflict "
2123 },
2124 {
2125 20,
2126 L" Primary Output Device Not Found "
2127 },
2128 {
2129 21,
2130 L" Primary Input Device Not Found "
2131 },
2132 {
2133 22,
2134 L" Primary Boot Device Not Found "
2135 },
2136 {
2137 23,
2138 L" NVRAM Cleared By Jumper "
2139 },
2140 {
2141 24,
2142 L" NVRAM Data Invalid, NVRAM Cleared "
2143 },
2144 {
2145 25,
2146 L" FDC Resource Conflict "
2147 },
2148 {
2149 26,
2150 L" Primary ATA Controller Resource Conflict "
2151 },
2152 {
2153 27,
2154 L" Secondary ATA Controller Resource Conflict "
2155 },
2156 {
2157 28,
2158 L" Parallel Port Resource Conflict "
2159 },
2160 {
2161 29,
2162 L" Serial Port 1 Resource Conflict "
2163 },
2164 {
2165 30,
2166 L" Serial Port 2 Resource Conflict "
2167 },
2168 {
2169 31,
2170 L" Audio Resource Conflict "
2171 },
2172 };
2173
2174 TABLE_ITEM SELSysManagementTypesTable[] = {
2175 {
2176 0x01,
2177 L" +2.5V Out of range, #2 "
2178 },
2179 {
2180 0x02,
2181 L" +3.3V Out of range "
2182 },
2183 {
2184 0x03,
2185 L" +5V Out of range "
2186 },
2187 {
2188 0x04,
2189 L" -5V Out of range "
2190 },
2191 {
2192 0x05,
2193 L" +12V Out of range "
2194 },
2195 {
2196 0x06,
2197 L" -12V Out of range "
2198 },
2199 {
2200 0x0F07,
2201 L" Reserved for future out-of-range voltage levels "
2202 },
2203 {
2204 0x10,
2205 L" System board temperature out of range "
2206 },
2207 {
2208 0x11,
2209 L" Processor #1 temperature out of range "
2210 },
2211 {
2212 0x12,
2213 L" Processor #2 temperature out of range "
2214 },
2215 {
2216 0x13,
2217 L" Processor #3 temperature out of range "
2218 },
2219 {
2220 0x14,
2221 L" Processor #4 temperature out of range "
2222 },
2223 {
2224 0x1F15,
2225 L" Reserved for future out-of-range temperatures"
2226 },
2227 {
2228 0x2720,
2229 L" Fan n (n = 0 to 7) Out of range "
2230 },
2231 {
2232 0x2F28,
2233 L" Reserved for future assignment via this specification "
2234 },
2235 {
2236 0x30,
2237 L" Chassis secure switch activated "
2238 },
2239 };
2240
2241 TABLE_ITEM PMALocationTable[] = {
2242 {
2243 0x01,
2244 L" Other"
2245 },
2246 {
2247 0x02,
2248 L" Unknown"
2249 },
2250 {
2251 0x03,
2252 L" System board or motherboard"
2253 },
2254 {
2255 0x04,
2256 L" ISA add-on card"
2257 },
2258 {
2259 0x05,
2260 L" EISA add-on card"
2261 },
2262 {
2263 0x06,
2264 L" PCI add-on card"
2265 },
2266 {
2267 0x07,
2268 L" MCA add-on card"
2269 },
2270 {
2271 0x08,
2272 L" PCMCIA add-on card"
2273 },
2274 {
2275 0x09,
2276 L" Proprietary add-on card"
2277 },
2278 {
2279 0x0A,
2280 L" NuBus"
2281 },
2282 {
2283 0xA0,
2284 L" PC-98/C20 add-on card"
2285 },
2286 {
2287 0xA1,
2288 L" PC-98/C24 add-on card"
2289 },
2290 {
2291 0xA2,
2292 L" PC-98/E add-on card"
2293 },
2294 {
2295 0xA3,
2296 L" PC-98/Local bus add-on card"
2297 },
2298 {
2299 MemoryArrayLocationCXLFlexbus10AddonCard,
2300 L" CXL Flexbus 1.0 add-on card"
2301 }
2302 };
2303
2304 TABLE_ITEM PMAUseTable[] = {
2305 {
2306 0x01,
2307 L" Other"
2308 },
2309 {
2310 0x02,
2311 L" Unknown"
2312 },
2313 {
2314 0x03,
2315 L" System memory"
2316 },
2317 {
2318 0x04,
2319 L" Video memory"
2320 },
2321 {
2322 0x05,
2323 L" Flash memory"
2324 },
2325 {
2326 0x06,
2327 L" Non-volatile RAM"
2328 },
2329 {
2330 0x07,
2331 L" Cache memory"
2332 }
2333 };
2334
2335 TABLE_ITEM PMAErrorCorrectionTypesTable[] = {
2336 {
2337 0x01,
2338 L" Other"
2339 },
2340 {
2341 0x02,
2342 L" Unknown"
2343 },
2344 {
2345 0x03,
2346 L" None"
2347 },
2348 {
2349 0x04,
2350 L" Parity"
2351 },
2352 {
2353 0x05,
2354 L" Single-bit ECC"
2355 },
2356 {
2357 0x06,
2358 L" Multi-bit ECC"
2359 },
2360 {
2361 0x07,
2362 L" CRC"
2363 }
2364 };
2365
2366 TABLE_ITEM MemoryDeviceFormFactorTable[] = {
2367 {
2368 0x01,
2369 L" Other"
2370 },
2371 {
2372 0x02,
2373 L" Unknown"
2374 },
2375 {
2376 0x03,
2377 L" SIMM"
2378 },
2379 {
2380 0x04,
2381 L" SIP"
2382 },
2383 {
2384 0x05,
2385 L" Chip"
2386 },
2387 {
2388 0x06,
2389 L" DIP"
2390 },
2391 {
2392 0x07,
2393 L" ZIP"
2394 },
2395 {
2396 0x08,
2397 L" Proprietary Card"
2398 },
2399 {
2400 0x09,
2401 L" DIMM"
2402 },
2403 {
2404 0x0A,
2405 L" TSOP"
2406 },
2407 {
2408 0x0B,
2409 L" Row of chips"
2410 },
2411 {
2412 0x0C,
2413 L" RIMM"
2414 },
2415 {
2416 0x0D,
2417 L" SODIMM"
2418 },
2419 {
2420 0x0E,
2421 L" SRIMM"
2422 },
2423 {
2424 0x0F,
2425 L" FB-DIMM"
2426 },
2427 {
2428 MemoryFormFactorDie,
2429 L" Die"
2430 }
2431 };
2432
2433 TABLE_ITEM MemoryDeviceTypeTable[] = {
2434 {
2435 0x01,
2436 L" Other"
2437 },
2438 {
2439 0x02,
2440 L" Unknown"
2441 },
2442 {
2443 0x03,
2444 L" DRAM"
2445 },
2446 {
2447 0x04,
2448 L" EDRAM"
2449 },
2450 {
2451 0x05,
2452 L" VRAM"
2453 },
2454 {
2455 0x06,
2456 L" SRAM"
2457 },
2458 {
2459 0x07,
2460 L" RAM"
2461 },
2462 {
2463 0x08,
2464 L" ROM"
2465 },
2466 {
2467 0x09,
2468 L" FLASH"
2469 },
2470 {
2471 0x0A,
2472 L" EEPROM"
2473 },
2474 {
2475 0x0B,
2476 L" FEPROM"
2477 },
2478 {
2479 0x0C,
2480 L" EPROM"
2481 },
2482 {
2483 0x0D,
2484 L" CDRAM"
2485 },
2486 {
2487 0x0E,
2488 L" 3DRAM"
2489 },
2490 {
2491 0x0F,
2492 L" SDRAM"
2493 },
2494 {
2495 0x10,
2496 L" SGRAM"
2497 },
2498 {
2499 0x11,
2500 L" RDRAM"
2501 },
2502 {
2503 0x12,
2504 L" DDR"
2505 },
2506 {
2507 0x13,
2508 L" DDR2"
2509 },
2510 {
2511 0x14,
2512 L" DDR2 FB-DIMM"
2513 },
2514 {
2515 0x18,
2516 L" DDR3"
2517 },
2518 {
2519 0x19,
2520 L" FBD2"
2521 },
2522 {
2523 0x1A,
2524 L" DDR4"
2525 },
2526 {
2527 0x1B,
2528 L" LPDDR"
2529 },
2530 {
2531 0x1C,
2532 L" LPDDR2"
2533 },
2534 {
2535 0x1D,
2536 L" LPDDR3"
2537 },
2538 {
2539 0x1E,
2540 L" LPDDR4"
2541 },
2542 {
2543 0x1F,
2544 L" Logical non-volatile device"
2545 },
2546 {
2547 MemoryTypeHBM,
2548 L" HBM (High Bandwidth Memory)"
2549 },
2550 {
2551 MemoryTypeHBM2,
2552 L" HBM2 (High Bandwidth Memory Generation 2)"
2553 },
2554 {
2555 MemoryTypeDdr5,
2556 L" DDR5"
2557 },
2558 {
2559 MemoryTypeLpddr5,
2560 L" LPDDR5"
2561 }
2562 };
2563
2564 TABLE_ITEM MemoryDeviceTypeDetailTable[] = {
2565 {
2566 1,
2567 L" Other"
2568 },
2569 {
2570 2,
2571 L" Unknown"
2572 },
2573 {
2574 3,
2575 L" Fast-paged"
2576 },
2577 {
2578 4,
2579 L" Static column"
2580 },
2581 {
2582 5,
2583 L" Pseudo-STATIC"
2584 },
2585 {
2586 6,
2587 L" RAMBUS "
2588 },
2589 {
2590 7,
2591 L" Synchronous"
2592 },
2593 {
2594 8,
2595 L" CMOS"
2596 },
2597 {
2598 9,
2599 L" EDO"
2600 },
2601 {
2602 10,
2603 L" Window DRAM"
2604 },
2605 {
2606 11,
2607 L" Cache DRAM"
2608 },
2609 {
2610 12,
2611 L" Non-volatile"
2612 },
2613 {
2614 13,
2615 L" Registered(Buffered)"
2616 },
2617 {
2618 14,
2619 L" Unbuffered(Unregistered)"
2620 }
2621 };
2622
2623 TABLE_ITEM MemoryDeviceMemoryTechnologyTable[] = {
2624 {
2625 0x01,
2626 L" Other"
2627 },
2628 {
2629 0x02,
2630 L" Unknown"
2631 },
2632 {
2633 0x03,
2634 L" DRAM"
2635 },
2636 {
2637 0x04,
2638 L" NVDIMM-N"
2639 },
2640 {
2641 0x05,
2642 L" NVDIMM-F"
2643 },
2644 {
2645 0x06,
2646 L" NVDIMM-P"
2647 },
2648 {
2649 MemoryTechnologyIntelPersistentMemory,
2650 L" Intel Optane DC Persistent Memory"
2651 }
2652 };
2653
2654 TABLE_ITEM MemoryDeviceMemoryOperatingModeCapabilityTable[] = {
2655 {
2656 1,
2657 L" Other"
2658 },
2659 {
2660 2,
2661 L" Unknown"
2662 },
2663 {
2664 3,
2665 L" Volatile memory"
2666 },
2667 {
2668 4,
2669 L" Byte-accessible persistent memory"
2670 },
2671 {
2672 5,
2673 L" Block-accessible persistent memory"
2674 }
2675 };
2676
2677
2678 TABLE_ITEM MemoryErrorTypeTable[] = {
2679 {
2680 0x01,
2681 L" Other"
2682 },
2683 {
2684 0x02,
2685 L" Unknown"
2686 },
2687 {
2688 0x03,
2689 L" OK"
2690 },
2691 {
2692 0x04,
2693 L" Bad read"
2694 },
2695 {
2696 0x05,
2697 L" Parity error"
2698 },
2699 {
2700 0x06,
2701 L" Single-bit error"
2702 },
2703 {
2704 0x07,
2705 L" Double-bit error"
2706 },
2707 {
2708 0x08,
2709 L" Multi-bit error"
2710 },
2711 {
2712 0x09,
2713 L" Nibble error"
2714 },
2715 {
2716 0x0A,
2717 L" Checksum error"
2718 },
2719 {
2720 0x0B,
2721 L" CRC error"
2722 },
2723 {
2724 0x0C,
2725 L" Corrected single-bit error"
2726 },
2727 {
2728 0x0D,
2729 L" Corrected error"
2730 },
2731 {
2732 0x0E,
2733 L" Uncorrectable error"
2734 },
2735 };
2736
2737 TABLE_ITEM MemoryErrorGranularityTable[] = {
2738 {
2739 0x01,
2740 L" Other"
2741 },
2742 {
2743 0x02,
2744 L" Unknown"
2745 },
2746 {
2747 0x03,
2748 L" Device level"
2749 },
2750 {
2751 0x04,
2752 L" Memory partition level"
2753 },
2754 };
2755
2756 TABLE_ITEM MemoryErrorOperationTable[] = {
2757 {
2758 0x01,
2759 L" Other"
2760 },
2761 {
2762 0x02,
2763 L" Unknown"
2764 },
2765 {
2766 0x03,
2767 L" Read"
2768 },
2769 {
2770 0x04,
2771 L" Write"
2772 },
2773 {
2774 0x05,
2775 L" Partial Write"
2776 },
2777 };
2778
2779 TABLE_ITEM PointingDeviceTypeTable[] = {
2780 {
2781 0x01,
2782 L" Other"
2783 },
2784 {
2785 0x02,
2786 L" Unknown"
2787 },
2788 {
2789 0x03,
2790 L" Mouse"
2791 },
2792 {
2793 0x04,
2794 L" Track Ball"
2795 },
2796 {
2797 0x05,
2798 L" Track Point"
2799 },
2800 {
2801 0x06,
2802 L" Glide Point"
2803 },
2804 {
2805 0x07,
2806 L" Touch Pad"
2807 },
2808 };
2809
2810 TABLE_ITEM PointingDeviceInterfaceTable[] = {
2811 {
2812 0x01,
2813 L" Other"
2814 },
2815 {
2816 0x02,
2817 L" Unknown"
2818 },
2819 {
2820 0x03,
2821 L" Serial"
2822 },
2823 {
2824 0x04,
2825 L" PS/2"
2826 },
2827 {
2828 0x05,
2829 L" Infrared"
2830 },
2831 {
2832 0x06,
2833 L" HP-HIL"
2834 },
2835 {
2836 0x07,
2837 L" Bus mouse"
2838 },
2839 {
2840 0x08,
2841 L" ADB(Apple Desktop Bus"
2842 },
2843 {
2844 0xA0,
2845 L" Bus mouse DB-9"
2846 },
2847 {
2848 0xA1,
2849 L" Bus mouse mirco-DIN"
2850 },
2851 {
2852 0xA2,
2853 L" USB"
2854 },
2855 };
2856
2857 TABLE_ITEM PBDeviceChemistryTable[] = {
2858 {
2859 0x01,
2860 L" Other "
2861 },
2862 {
2863 0x02,
2864 L" Unknown "
2865 },
2866 {
2867 0x03,
2868 L" Lead Acid "
2869 },
2870 {
2871 0x04,
2872 L" Nickel Cadmium "
2873 },
2874 {
2875 0x05,
2876 L" Nickel metal hydride "
2877 },
2878 {
2879 0x06,
2880 L" Lithium-ion "
2881 },
2882 {
2883 0x07,
2884 L" Zinc air "
2885 },
2886 {
2887 0x08,
2888 L" Lithium Polymer "
2889 },
2890 };
2891
2892 TABLE_ITEM VPLocationTable[] = {
2893 {
2894 0x01,
2895 L" Other "
2896 },
2897 {
2898 0x02,
2899 L" Unknown "
2900 },
2901 {
2902 0x03,
2903 L" OK "
2904 },
2905 {
2906 0x04,
2907 L" Non-critical "
2908 },
2909 {
2910 0x05,
2911 L" Critical "
2912 },
2913 {
2914 0x06,
2915 L" Non-recoverable "
2916 },
2917 };
2918
2919 TABLE_ITEM VPStatusTable[] = {
2920 {
2921 0x01,
2922 L" Other "
2923 },
2924 {
2925 0x02,
2926 L" Unknown "
2927 },
2928 {
2929 0x03,
2930 L" Processor "
2931 },
2932 {
2933 0x04,
2934 L" Disk "
2935 },
2936 {
2937 0x05,
2938 L" Peripheral Bay "
2939 },
2940 {
2941 0x06,
2942 L" System Management Module "
2943 },
2944 {
2945 0x07,
2946 L" Motherboard "
2947 },
2948 {
2949 0x08,
2950 L" Memory Module "
2951 },
2952 {
2953 0x09,
2954 L" Processor Module "
2955 },
2956 {
2957 0x0A,
2958 L" Power Unit "
2959 },
2960 {
2961 0x0B,
2962 L" Add-in Card "
2963 },
2964 };
2965
2966 TABLE_ITEM CoolingDeviceStatusTable[] = {
2967 {
2968 0x01,
2969 L" Other "
2970 },
2971 {
2972 0x02,
2973 L" Unknown "
2974 },
2975 {
2976 0x03,
2977 L" OK "
2978 },
2979 {
2980 0x04,
2981 L" Non-critical "
2982 },
2983 {
2984 0x05,
2985 L" Critical "
2986 },
2987 {
2988 0x06,
2989 L" Non-recoverable "
2990 },
2991 };
2992
2993 TABLE_ITEM CoolingDeviceTypeTable[] = {
2994 {
2995 0x01,
2996 L" Other "
2997 },
2998 {
2999 0x02,
3000 L" Unknown "
3001 },
3002 {
3003 0x03,
3004 L" Fan "
3005 },
3006 {
3007 0x04,
3008 L" Centrifugal Blower "
3009 },
3010 {
3011 0x05,
3012 L" Chip Fan "
3013 },
3014 {
3015 0x06,
3016 L" Cabinet Fan "
3017 },
3018 {
3019 0x07,
3020 L" Power Supply Fan "
3021 },
3022 {
3023 0x08,
3024 L" Heat Pipe "
3025 },
3026 {
3027 0x09,
3028 L" Integrated Refrigeration "
3029 },
3030 {
3031 0x10,
3032 L" Active Cooling "
3033 },
3034 {
3035 0x11,
3036 L" Passive Cooling "
3037 },
3038 };
3039
3040 TABLE_ITEM TemperatureProbeStatusTable[] = {
3041 {
3042 0x01,
3043 L" Other "
3044 },
3045 {
3046 0x02,
3047 L" Unknown "
3048 },
3049 {
3050 0x03,
3051 L" OK "
3052 },
3053 {
3054 0x04,
3055 L" Non-critical "
3056 },
3057 {
3058 0x05,
3059 L" Critical "
3060 },
3061 {
3062 0x06,
3063 L" Non-recoverable "
3064 },
3065 };
3066
3067 TABLE_ITEM TemperatureProbeLocTable[] = {
3068 {
3069 0x01,
3070 L" Other "
3071 },
3072 {
3073 0x02,
3074 L" Unknown "
3075 },
3076 {
3077 0x03,
3078 L" Processor "
3079 },
3080 {
3081 0x04,
3082 L" Disk "
3083 },
3084 {
3085 0x05,
3086 L" Peripheral Bay "
3087 },
3088 {
3089 0x06,
3090 L" System Management Module "
3091 },
3092 {
3093 0x07,
3094 L" Motherboard "
3095 },
3096 {
3097 0x08,
3098 L" Memory Module "
3099 },
3100 {
3101 0x09,
3102 L" Processor Module "
3103 },
3104 {
3105 0x0A,
3106 L" Power Unit "
3107 },
3108 {
3109 0x0B,
3110 L" Add-in Card "
3111 },
3112 };
3113
3114 TABLE_ITEM ECPStatusTable[] = {
3115 {
3116 0x01,
3117 L" Other "
3118 },
3119 {
3120 0x02,
3121 L" Unknown "
3122 },
3123 {
3124 0x03,
3125 L" OK "
3126 },
3127 {
3128 0x04,
3129 L" Non-critical "
3130 },
3131 {
3132 0x05,
3133 L" Critical "
3134 },
3135 {
3136 0x06,
3137 L" Non-recoverable "
3138 },
3139 };
3140
3141 TABLE_ITEM ECPLocTable[] = {
3142 {
3143 0x01,
3144 L" Other "
3145 },
3146 {
3147 0x02,
3148 L" Unknown "
3149 },
3150 {
3151 0x03,
3152 L" Processor "
3153 },
3154 {
3155 0x04,
3156 L" Disk "
3157 },
3158 {
3159 0x05,
3160 L" Peripheral Bay "
3161 },
3162 {
3163 0x06,
3164 L" System Management Module "
3165 },
3166 {
3167 0x07,
3168 L" Motherboard "
3169 },
3170 {
3171 0x08,
3172 L" Memory Module "
3173 },
3174 {
3175 0x09,
3176 L" Processor Module "
3177 },
3178 {
3179 0x0A,
3180 L" Power Unit "
3181 },
3182 {
3183 0x0B,
3184 L" Add-in Card "
3185 },
3186 };
3187
3188 TABLE_ITEM MDTypeTable[] = {
3189 {
3190 0x01,
3191 L" Other "
3192 },
3193 {
3194 0x02,
3195 L" Unknown "
3196 },
3197 {
3198 0x03,
3199 L" National Semiconductor LM75 "
3200 },
3201 {
3202 0x04,
3203 L" National Semiconductor LM78 "
3204 },
3205 {
3206 0x05,
3207 L" National Semiconductor LM79 "
3208 },
3209 {
3210 0x06,
3211 L" National Semiconductor LM80 "
3212 },
3213 {
3214 0x07,
3215 L" National Semiconductor LM81 "
3216 },
3217 {
3218 0x08,
3219 L" Analog Devices ADM9240 "
3220 },
3221 {
3222 0x09,
3223 L" Dallas Semiconductor DS1780 "
3224 },
3225 {
3226 0x0A,
3227 L" Maxim 1617 "
3228 },
3229 {
3230 0x0B,
3231 L" Genesys GL518SM "
3232 },
3233 {
3234 0x0C,
3235 L" Winbond W83781D "
3236 },
3237 {
3238 0x0D,
3239 L" Holtek HT82H791 "
3240 },
3241 };
3242
3243 TABLE_ITEM MDAddressTypeTable[] = {
3244 {
3245 0x01,
3246 L" Other "
3247 },
3248 {
3249 0x02,
3250 L" Unknown "
3251 },
3252 {
3253 0x03,
3254 L" I/O Port "
3255 },
3256 {
3257 0x04,
3258 L" Memory "
3259 },
3260 {
3261 0x05,
3262 L" SM Bus "
3263 },
3264 };
3265
3266 TABLE_ITEM MemoryChannelTypeTable[] = {
3267 {
3268 0x01,
3269 L" Other "
3270 },
3271 {
3272 0x02,
3273 L" Unknown "
3274 },
3275 {
3276 0x03,
3277 L" RamBus "
3278 },
3279 {
3280 0x04,
3281 L" SyncLink "
3282 },
3283 };
3284
3285 TABLE_ITEM IPMIDIBMCInterfaceTypeTable[] = {
3286 {
3287 0x00,
3288 L" Unknown "
3289 },
3290 {
3291 0x01,
3292 L" KCS: Keyboard Controller Style "
3293 },
3294 {
3295 0x02,
3296 L" SMIC: Server Management Interface Chip "
3297 },
3298 {
3299 0x03,
3300 L" BT: Block Transfer "
3301 },
3302 {
3303 0x04,
3304 L" SSIF: SMBus System Interface "
3305 },
3306 {
3307 0xFF05,
3308 L" Reserved for future assignment by this specification "
3309 },
3310 };
3311
3312 TABLE_ITEM MCHostInterfaceTypeTable[] = {
3313 {
3314 0x3F00,
3315 L" MCTP Host Interface "
3316 },
3317 {
3318 0x40,
3319 L" Network Host Interface "
3320 },
3321 {
3322 0xF0,
3323 L" OEM defined "
3324 },
3325 };
3326
3327 TABLE_ITEM ProcessorArchitectureTypesTable[] = {
3328 {
3329 0,
3330 L" Reserved "
3331 },
3332 {
3333 1,
3334 L" IA32 (x86) "
3335 },
3336 {
3337 2,
3338 L" x64 (x86-64, intel64, AMD64, EM64T) "
3339 },
3340 {
3341 3,
3342 L" Intel Itanium architecture "
3343 },
3344 {
3345 4,
3346 L" 32-bit ARM (Aarch32) "
3347 },
3348 {
3349 5,
3350 L" 64-bit ARM (Aarch64) "
3351 },
3352 {
3353 6,
3354 L" 32-bit RISC-V (RV32) "
3355 },
3356 {
3357 7,
3358 L" 64-bit RISC-V (RV64) "
3359 },
3360 {
3361 8,
3362 L" 128-bit RISC-V (RV128) "
3363 }
3364 };
3365
3366 TABLE_ITEM StructureTypeInfoTable[] = {
3367 {
3368 0,
3369 L" BIOS Information"
3370 },
3371 {
3372 1,
3373 L" System Information"
3374 },
3375 {
3376 2,
3377 L" Base Board Information"
3378 },
3379 {
3380 3,
3381 L" System Enclosure"
3382 },
3383 {
3384 4,
3385 L" Processor Information"
3386 },
3387 {
3388 5,
3389 L" Memory Controller Information "
3390 },
3391 {
3392 6,
3393 L" Memory Module Information "
3394 },
3395 {
3396 7,
3397 L" Cache Information "
3398 },
3399 {
3400 8,
3401 L" Port Connector Information "
3402 },
3403 {
3404 9,
3405 L" System Slots "
3406 },
3407 {
3408 10,
3409 L" On Board Devices Information "
3410 },
3411 {
3412 11,
3413 L" OEM Strings"
3414 },
3415 {
3416 12,
3417 L" System Configuration Options "
3418 },
3419 {
3420 13,
3421 L" BIOS Language Information "
3422 },
3423 {
3424 14,
3425 L" Group Associations "
3426 },
3427 {
3428 15,
3429 L" System Event Log "
3430 },
3431 {
3432 16,
3433 L" Physical Memory Array "
3434 },
3435 {
3436 17,
3437 L" Memory Device "
3438 },
3439 {
3440 18,
3441 L" 32-bit Memory Error Information "
3442 },
3443 {
3444 19,
3445 L" Memory Array Mapped Address "
3446 },
3447 {
3448 20,
3449 L" Memory Device Mapped Address "
3450 },
3451 {
3452 21,
3453 L" Built-in Pointing Device "
3454 },
3455 {
3456 22,
3457 L" Portable Battery "
3458 },
3459 {
3460 23,
3461 L" System Reset "
3462 },
3463 {
3464 24,
3465 L" Hardware Security "
3466 },
3467 {
3468 25,
3469 L" System Power Controls "
3470 },
3471 {
3472 26,
3473 L" Voltage Probe "
3474 },
3475 {
3476 27,
3477 L" Cooling Device "
3478 },
3479 {
3480 28,
3481 L" Temperature Probe "
3482 },
3483 {
3484 29,
3485 L" Electrical Current Probe "
3486 },
3487 {
3488 30,
3489 L" Out-of-Band Remote Access "
3490 },
3491 {
3492 31,
3493 L" Boot Integrity Services (BIS) Entry Point"
3494 },
3495 {
3496 32,
3497 L" System Boot Information "
3498 },
3499 {
3500 33,
3501 L" 64-bit Memory Error Information "
3502 },
3503 {
3504 34,
3505 L" Management Device "
3506 },
3507 {
3508 35,
3509 L" Management Device Component "
3510 },
3511 {
3512 36,
3513 L" Management Device Threshold Data "
3514 },
3515 {
3516 37,
3517 L" Memory Channel "
3518 },
3519 {
3520 38,
3521 L" IPMI Device Information "
3522 },
3523 {
3524 39,
3525 L" System Power Supply"
3526 },
3527 {
3528 40,
3529 L" Additional Information"
3530 },
3531 {
3532 41,
3533 L" Onboard Devices Extended Information"
3534 },
3535 {
3536 42,
3537 L" Management Controller Host Interface"
3538 },
3539 {
3540 43,
3541 L" TPM Device"
3542 },
3543 {
3544 44,
3545 L" Processor Additional Information"
3546 },
3547 {
3548 0x7E,
3549 L" Inactive"
3550 },
3551 {
3552 0x7F,
3553 L" End-of-Table "
3554 },
3555 };
3556
3557
3558 /**
3559 Given a table and a Key, return the responding info.
3560
3561 Notes:
3562 Table[Index].Key is change from UINT8 to UINT16,
3563 in order to deal with "0xaa - 0xbb".
3564
3565 For example:
3566 DisplaySELVariableDataFormatTypes(UINT8 Type, UINT8 Option)
3567 has a item:
3568 "0x07-0x7F, Unused"
3569 Now define Key = 0x7F07, that is to say: High = 0x7F, Low = 0x07.
3570 Then all the Key Value between Low and High gets the same string
3571 L"Unused".
3572
3573 @param[in] Table The begin address of table.
3574 @param[in] Number The number of table items.
3575 @param[in] Key The query Key.
3576 @param[in, out] Info Input as empty buffer; output as data buffer.
3577 @param[in] InfoLen The max number of characters for Info.
3578
3579 @return the found Key and Info is valid.
3580 @retval QUERY_TABLE_UNFOUND and Info should be NULL.
3581 **/
3582 UINT8
3583 QueryTable (
3584 IN TABLE_ITEM *Table,
3585 IN UINTN Number,
3586 IN UINT8 Key,
3587 IN OUT CHAR16 *Info,
3588 IN UINTN InfoLen
3589 )
3590 {
3591 UINTN Index;
3592 //
3593 // High byte and Low byte of word
3594 //
3595 UINT8 High;
3596 UINT8 Low;
3597
3598 for (Index = 0; Index < Number; Index++) {
3599 High = (UINT8) (Table[Index].Key >> 8);
3600 Low = (UINT8) (Table[Index].Key & 0x00FF);
3601
3602 //
3603 // Check if Key is in the range
3604 // or if Key == Value in the table
3605 //
3606 if ((High > Low && Key >= Low && Key <= High)
3607 || (Table[Index].Key == Key)) {
3608 StrnCpyS (Info, InfoLen, Table[Index].Info, InfoLen - 1);
3609 StrnCatS (Info, InfoLen, L"\n", InfoLen - 1 - StrLen(Info));
3610 return Key;
3611 }
3612 }
3613
3614 StrCpyS (Info, InfoLen, L"Undefined Value\n");
3615 return QUERY_TABLE_UNFOUND;
3616 }
3617
3618 /**
3619 Given a table of bit info and a Key, return the responding info to the Key.
3620
3621 @param[in] Table Point to a table which maintains a map of 'bit' to 'message'.
3622 @param[in] Number Number of table items.
3623 @param[in] Bits The Key of query the bit map information.
3624 **/
3625 VOID
3626 PrintBitsInfo (
3627 IN TABLE_ITEM *Table,
3628 IN UINTN Number,
3629 IN UINT32 Bits
3630 )
3631 {
3632 //
3633 // Get certain bit of 'Value':
3634 //
3635 #define BIT(Value, bit) ((Value) & ((UINT32) 1) << (bit))
3636 //
3637 // Clear certain bit of 'Value':
3638 //
3639 #define CLR_BIT(Value, bit) ((Value) -= (BIT (Value, bit)))
3640
3641 UINTN Index;
3642 UINT32 Value;
3643 BOOLEAN FirstInfo;
3644
3645 FirstInfo = TRUE;
3646 Value = Bits;
3647 //
3648 // query the table and print information
3649 //
3650 for (Index = 0; Index < Number; Index++) {
3651 if (BIT (Value, Table[Index].Key) != 0) {
3652 if (!FirstInfo) {
3653 //
3654 // If it is not first info, print the separator first.
3655 //
3656 Print (L" | ");
3657 }
3658 Print (Table[Index].Info);
3659
3660 FirstInfo = FALSE;
3661 //
3662 // clear the bit, for reserved bits test
3663 //
3664 CLR_BIT (Value, Table[Index].Key);
3665 }
3666 }
3667
3668 //
3669 // There is no any info if FirstInfo is still TRUE.
3670 //
3671 if (FirstInfo) {
3672 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_NO_INFO), gShellDebug1HiiHandle);
3673 }
3674
3675 if (Value != 0) {
3676 ShellPrintHiiEx(-1,-1,NULL,
3677 STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_BITS_SET),
3678 gShellDebug1HiiHandle,
3679 Value
3680 );
3681 }
3682
3683 Print (L"\n");
3684 }
3685 //
3686 // //////////////////////////////////////////////////////////////////
3687 //
3688 // Following uses QueryTable functions to simplify the coding.
3689 // QueryTable(), PrintBitsInfo()
3690 //
3691 //
3692 #define PRINT_TABLE_ITEM(Table, Key) \
3693 do { \
3694 UINTN Num; \
3695 CHAR16 Info[66]; \
3696 Num = sizeof (Table) / sizeof (TABLE_ITEM); \
3697 ZeroMem (Info, sizeof (Info)); \
3698 QueryTable (Table, Num, Key, Info, sizeof(Info)/sizeof(Info[0])); \
3699 Print (Info); \
3700 } while (0);
3701
3702 #define PRINT_BITS_INFO(Table, bits) \
3703 do { \
3704 UINTN Num; \
3705 Num = sizeof (Table) / sizeof (TABLE_ITEM); \
3706 PrintBitsInfo (Table, Num, (UINT32) bits); \
3707 } while (0);
3708
3709 /**
3710 Display System Information (Type 1) Type.
3711
3712 @param[in] Type The key of the structure.
3713 @param[in] Option The optional information.
3714 **/
3715 VOID
3716 DisplaySystemWakeupType (
3717 IN UINT8 Type,
3718 IN UINT8 Option
3719 )
3720 {
3721 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_WAKEUP_TYPE), gShellDebug1HiiHandle);
3722 PRINT_INFO_OPTION (Type, Option);
3723 PRINT_TABLE_ITEM (SystemWakeupTypeTable, Type);
3724 }
3725
3726 /**
3727 Display Base Board (Type 2) Feature Flags.
3728
3729 @param[in] FeatureFlags The key of the structure.
3730 @param[in] Option The optional information.
3731 **/
3732 VOID
3733 DisplayBaseBoardFeatureFlags (
3734 IN UINT8 FeatureFlags,
3735 IN UINT8 Option
3736 )
3737 {
3738 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BASE_BOARD_FEATURE_FLAGS), gShellDebug1HiiHandle);
3739 PRINT_INFO_OPTION (FeatureFlags, Option);
3740 PRINT_BITS_INFO (BaseBoardFeatureFlagsTable, FeatureFlags);
3741 }
3742
3743 /**
3744 Display Base Board (Type 2) Board Type.
3745
3746 @param[in] Type The key of the structure.
3747 @param[in] Option The optional information.
3748 **/
3749 VOID
3750 DisplayBaseBoardBoardType(
3751 IN UINT8 Type,
3752 IN UINT8 Option
3753 )
3754 {
3755 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BASE_BOARD_BOARD_TYPE), gShellDebug1HiiHandle);
3756 PRINT_INFO_OPTION (Type, Option);
3757 PRINT_TABLE_ITEM (BaseBoardBoardTypeTable, Type);
3758 }
3759
3760 /**
3761 Display System Enclosure (Type 3) Enclosure Type.
3762
3763 @param[in] Type The key of the structure.
3764 @param[in] Option The optional information.
3765 **/
3766 VOID
3767 DisplaySystemEnclosureType (
3768 IN UINT8 Type,
3769 IN UINT8 Option
3770 )
3771 {
3772 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_TYPE), gShellDebug1HiiHandle);
3773 PRINT_INFO_OPTION (Type, Option);
3774 //
3775 // query table and print info
3776 //
3777 PRINT_TABLE_ITEM (SystemEnclosureTypeTable, Type);
3778
3779 if (BIT (Type, 7) != 0) {
3780 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CHASSIS_LOCK_PRESENT), gShellDebug1HiiHandle);
3781 }
3782 }
3783
3784 /**
3785 Display System Enclosure (Type 3) Enclosure Status.
3786
3787 @param[in] Status The key of the structure.
3788 @param[in] Option The optional information.
3789 **/
3790 VOID
3791 DisplaySystemEnclosureStatus (
3792 IN UINT8 Status,
3793 IN UINT8 Option
3794 )
3795 {
3796 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_STATUS), gShellDebug1HiiHandle);
3797 PRINT_INFO_OPTION (Status, Option);
3798 PRINT_TABLE_ITEM (SystemEnclosureStatusTable, Status);
3799 }
3800
3801 /**
3802 Display System Enclosure (Type 3) Security Status.
3803
3804 @param[in] Status The key of the structure.
3805 @param[in] Option The optional information.
3806 **/
3807 VOID
3808 DisplaySESecurityStatus (
3809 IN UINT8 Status,
3810 IN UINT8 Option
3811 )
3812 {
3813 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_SECURITY), gShellDebug1HiiHandle);
3814 PRINT_INFO_OPTION (Status, Option);
3815 PRINT_TABLE_ITEM (SESecurityStatusTable, Status);
3816 }
3817
3818 /**
3819 Display Processor Information (Type 4) Type.
3820
3821 @param[in] Type The key of the structure.
3822 @param[in] Option The optional information.
3823 **/
3824 VOID
3825 DisplayProcessorType (
3826 IN UINT8 Type,
3827 IN UINT8 Option
3828 )
3829 {
3830 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_TYPE), gShellDebug1HiiHandle);
3831 PRINT_INFO_OPTION (Type, Option);
3832 PRINT_TABLE_ITEM (ProcessorTypeTable, Type);
3833 }
3834
3835 /**
3836 Display Processor Information (Type 4) Upgrade.
3837
3838 @param[in] Upgrade The key of the structure.
3839 @param[in] Option The optional information.
3840 **/
3841 VOID
3842 DisplayProcessorUpgrade (
3843 IN UINT8 Upgrade,
3844 IN UINT8 Option
3845 )
3846 {
3847 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_UPDATE), gShellDebug1HiiHandle);
3848 PRINT_INFO_OPTION (Upgrade, Option);
3849 PRINT_TABLE_ITEM (ProcessorUpgradeTable, Upgrade);
3850 }
3851
3852 /**
3853 Display Processor Information (Type 4) Characteristics.
3854
3855 @param[in] Type The key of the structure.
3856 @param[in] Option The optional information.
3857 **/
3858 VOID
3859 DisplayProcessorCharacteristics (
3860 IN UINT16 Type,
3861 IN UINT8 Option
3862 )
3863 {
3864 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_CHARACTERISTICS), gShellDebug1HiiHandle);
3865 PRINT_INFO_OPTION (Type, Option);
3866 PRINT_BITS_INFO (ProcessorCharacteristicsTable, Type);
3867 }
3868
3869 /**
3870 Display Memory Controller Information (Type 5) method.
3871
3872 @param[in] Method The key of the structure.
3873 @param[in] Option The optional information.
3874 **/
3875 VOID
3876 DisplayMcErrorDetectMethod (
3877 IN UINT8 Method,
3878 IN UINT8 Option
3879 )
3880 {
3881 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DETECTMETHOD), gShellDebug1HiiHandle);
3882 PRINT_INFO_OPTION (Method, Option);
3883 PRINT_TABLE_ITEM (McErrorDetectMethodTable, Method);
3884 }
3885
3886 /**
3887 Display Memory Controller Information (Type 5) Capability.
3888
3889 @param[in] Capability The key of the structure.
3890 @param[in] Option The optional information.
3891 **/
3892 VOID
3893 DisplayMcErrorCorrectCapability (
3894 IN UINT8 Capability,
3895 IN UINT8 Option
3896 )
3897 {
3898 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CORRECT_CAPABILITY), gShellDebug1HiiHandle);
3899 PRINT_INFO_OPTION (Capability, Option);
3900 PRINT_BITS_INFO (McErrorCorrectCapabilityTable, Capability);
3901 }
3902
3903 /**
3904 Display Memory Controller Information (Type 5) Support.
3905
3906 @param[in] Support The key of the structure.
3907 @param[in] Option The optional information.
3908 **/
3909 VOID
3910 DisplayMcInterleaveSupport (
3911 IN UINT8 Support,
3912 IN UINT8 Option
3913 )
3914 {
3915 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_INTERLEAVE_SUPPORT), gShellDebug1HiiHandle);
3916 PRINT_INFO_OPTION (Support, Option);
3917 PRINT_TABLE_ITEM (McInterleaveSupportTable, Support);
3918 }
3919
3920 /**
3921 Display Memory Controller Information (Type 5) speeds.
3922
3923 @param[in] Speed The key of the structure.
3924 @param[in] Option The optional information.
3925 **/
3926 VOID
3927 DisplayMcMemorySpeeds (
3928 IN UINT16 Speed,
3929 IN UINT8 Option
3930 )
3931 {
3932 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MEMORY_SPEED), gShellDebug1HiiHandle);
3933 PRINT_INFO_OPTION (Speed, Option);
3934 PRINT_BITS_INFO (McMemorySpeedsTable, Speed);
3935 }
3936
3937 /**
3938 Display Memory Controller Information (Type 5) voltage.
3939
3940 @param[in] Voltage The key of the structure.
3941 @param[in] Option The optional information.
3942 **/
3943 VOID
3944 DisplayMemoryModuleVoltage (
3945 IN UINT8 Voltage,
3946 IN UINT8 Option
3947 )
3948 {
3949 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_REQUIRED_VOLTAGES), gShellDebug1HiiHandle);
3950 PRINT_INFO_OPTION (Voltage, Option);
3951 PRINT_BITS_INFO (MemoryModuleVoltageTable, Voltage);
3952 }
3953
3954 /**
3955 Display Memory Module Information (Type 6) type.
3956
3957 @param[in] Type The key of the structure.
3958 @param[in] Option The optional information.
3959 **/
3960 VOID
3961 DisplayMmMemoryType (
3962 IN UINT16 Type,
3963 IN UINT8 Option
3964 )
3965 {
3966 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_TYPE), gShellDebug1HiiHandle);
3967 PRINT_INFO_OPTION (Type, Option);
3968 PRINT_BITS_INFO (MmMemoryTypeTable, Type);
3969 }
3970
3971 /**
3972 Display Memory Module Information (Type 6) status.
3973
3974 @param[in] Status The key of the structure.
3975 @param[in] Option The optional information.
3976 **/
3977 VOID
3978 DisplayMmErrorStatus (
3979 IN UINT8 Status,
3980 IN UINT8 Option
3981 )
3982 {
3983 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_ERROR_STATUS), gShellDebug1HiiHandle);
3984 PRINT_INFO_OPTION (Status, Option);
3985 PRINT_BITS_INFO (MmErrorStatusTable, Status);
3986 }
3987
3988 /**
3989 Display Cache Information (Type 7) SRAM Type.
3990
3991 @param[in] Type The key of the structure.
3992 @param[in] Option The optional information.
3993 **/
3994 VOID
3995 DisplayCacheSRAMType (
3996 IN UINT16 Type,
3997 IN UINT8 Option
3998 )
3999 {
4000 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SRAM_TYPE), gShellDebug1HiiHandle);
4001 PRINT_INFO_OPTION ((UINT8) Type, Option);
4002 PRINT_BITS_INFO (CacheSRAMTypeTable, (UINT8) Type);
4003 }
4004
4005 /**
4006 Display Cache Information (Type 7) correcting Type.
4007
4008 @param[in] Type The key of the structure.
4009 @param[in] Option The optional information.
4010 **/
4011 VOID
4012 DisplayCacheErrCorrectingType (
4013 IN UINT8 Type,
4014 IN UINT8 Option
4015 )
4016 {
4017 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ERROR_CORRECTING), gShellDebug1HiiHandle);
4018 PRINT_INFO_OPTION (Type, Option);
4019 PRINT_TABLE_ITEM (CacheErrCorrectingTypeTable, Type);
4020 }
4021
4022 /**
4023 Display Cache Information (Type 7) Type.
4024
4025 @param[in] Type The key of the structure.
4026 @param[in] Option The optional information.
4027 **/
4028 VOID
4029 DisplayCacheSystemCacheType (
4030 IN UINT8 Type,
4031 IN UINT8 Option
4032 )
4033 {
4034 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SYSTEM_TYPE), gShellDebug1HiiHandle);
4035 PRINT_INFO_OPTION (Type, Option);
4036 PRINT_TABLE_ITEM (CacheSystemCacheTypeTable, Type);
4037 }
4038
4039 /**
4040 Display Cache Information (Type 7) Associativity.
4041
4042 @param[in] Associativity The key of the structure.
4043 @param[in] Option The optional information.
4044 **/
4045 VOID
4046 DisplayCacheAssociativity (
4047 IN UINT8 Associativity,
4048 IN UINT8 Option
4049 )
4050 {
4051 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ASSOCIATIVITY), gShellDebug1HiiHandle);
4052 PRINT_INFO_OPTION (Associativity, Option);
4053 PRINT_TABLE_ITEM (CacheAssociativityTable, Associativity);
4054 }
4055
4056 /**
4057 Display Port Connector Information (Type 8) type.
4058
4059 @param[in] Type The key of the structure.
4060 @param[in] Option The optional information.
4061 **/
4062 VOID
4063 DisplayPortConnectorType (
4064 IN UINT8 Type,
4065 IN UINT8 Option
4066 )
4067 {
4068 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_CONNECTOR_TYPE), gShellDebug1HiiHandle);
4069 PRINT_INFO_OPTION (Type, Option);
4070 PRINT_TABLE_ITEM (PortConnectorTypeTable, Type);
4071 }
4072
4073 /**
4074 Display Port Connector Information (Type 8) port type.
4075
4076 @param[in] Type The key of the structure.
4077 @param[in] Option The optional information.
4078 **/
4079 VOID
4080 DisplayPortType (
4081 IN UINT8 Type,
4082 IN UINT8 Option
4083 )
4084 {
4085 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_TYPE), gShellDebug1HiiHandle);
4086 PRINT_INFO_OPTION (Type, Option);
4087 PRINT_TABLE_ITEM (PortTypeTable, Type);
4088 }
4089
4090 /**
4091 Display System Slots (Type 9) slot type.
4092
4093 @param[in] Type The key of the structure.
4094 @param[in] Option The optional information.
4095 **/
4096 VOID
4097 DisplaySystemSlotType (
4098 IN UINT8 Type,
4099 IN UINT8 Option
4100 )
4101 {
4102 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_TYPE), gShellDebug1HiiHandle);
4103 PRINT_INFO_OPTION (Type, Option);
4104 PRINT_TABLE_ITEM (SystemSlotTypeTable, Type);
4105 }
4106
4107 /**
4108 Display System Slots (Type 9) data bus width.
4109
4110 @param[in] Width The key of the structure.
4111 @param[in] Option The optional information.
4112 **/
4113 VOID
4114 DisplaySystemSlotDataBusWidth (
4115 IN UINT8 Width,
4116 IN UINT8 Option
4117 )
4118 {
4119 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_DATA), gShellDebug1HiiHandle);
4120 PRINT_INFO_OPTION (Width, Option);
4121 PRINT_TABLE_ITEM (SystemSlotDataBusWidthTable, Width);
4122 }
4123
4124 /**
4125 Display System Slots (Type 9) usage information.
4126
4127 @param[in] Usage The key of the structure.
4128 @param[in] Option The optional information.
4129 **/
4130 VOID
4131 DisplaySystemSlotCurrentUsage (
4132 IN UINT8 Usage,
4133 IN UINT8 Option
4134 )
4135 {
4136 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_CURRENT_USAGE), gShellDebug1HiiHandle);
4137 PRINT_INFO_OPTION (Usage, Option);
4138 PRINT_TABLE_ITEM (SystemSlotCurrentUsageTable, Usage);
4139 }
4140
4141 /**
4142 Display System Slots (Type 9) slot length.
4143
4144 @param[in] Length The key of the structure.
4145 @param[in] Option The optional information.
4146 **/
4147 VOID
4148 DisplaySystemSlotLength (
4149 IN UINT8 Length,
4150 IN UINT8 Option
4151 )
4152 {
4153 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_LENGTH), gShellDebug1HiiHandle);
4154 PRINT_INFO_OPTION (Length, Option);
4155 PRINT_TABLE_ITEM (SystemSlotLengthTable, Length);
4156 }
4157
4158 /**
4159 Display System Slots (Type 9) characteristics.
4160
4161 @param[in] Chara1 The key of the structure.
4162 @param[in] Option The optional information.
4163 **/
4164 VOID
4165 DisplaySlotCharacteristics1 (
4166 IN UINT8 Chara1,
4167 IN UINT8 Option
4168 )
4169 {
4170 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS), gShellDebug1HiiHandle);
4171 PRINT_INFO_OPTION (Chara1, Option);
4172 PRINT_BITS_INFO (SlotCharacteristics1Table, Chara1);
4173 }
4174
4175 /**
4176 Display System Slots (Type 9) characteristics.
4177
4178 @param[in] Chara2 The key of the structure.
4179 @param[in] Option The optional information.
4180 **/
4181 VOID
4182 DisplaySlotCharacteristics2 (
4183 IN UINT8 Chara2,
4184 IN UINT8 Option
4185 )
4186 {
4187 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS_2), gShellDebug1HiiHandle);
4188 PRINT_INFO_OPTION (Chara2, Option);
4189 PRINT_BITS_INFO (SlotCharacteristics2Table, Chara2);
4190 }
4191
4192 /**
4193 Display On Board Devices Information (Type 10) types.
4194
4195 @param[in] Type The key of the structure.
4196 @param[in] Option The optional information.
4197 **/
4198 VOID
4199 DisplayOnboardDeviceTypes (
4200 IN UINT8 Type,
4201 IN UINT8 Option
4202 )
4203 {
4204 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ONBOARD_DEVICE_TYPE), gShellDebug1HiiHandle);
4205 PRINT_INFO_OPTION (Type, Option);
4206 PRINT_TABLE_ITEM (OnboardDeviceTypesTable, Type);
4207 }
4208
4209 /**
4210 Display System Event Log (Type 15) types.
4211
4212 @param[in] Type The key of the structure.
4213 @param[in] Option The optional information.
4214 **/
4215 VOID
4216 DisplaySELTypes (
4217 IN UINT8 Type,
4218 IN UINT8 Option
4219 )
4220 {
4221 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_EVENT_LOG_TYPE), gShellDebug1HiiHandle);
4222 PRINT_INFO_OPTION (Type, Option);
4223 PRINT_TABLE_ITEM (SELTypesTable, Type);
4224 }
4225
4226 /**
4227 Display System Event Log (Type 15) format type.
4228
4229 @param[in] Type The key of the structure.
4230 @param[in] Option The optional information.
4231 **/
4232 VOID
4233 DisplaySELVarDataFormatType (
4234 IN UINT8 Type,
4235 IN UINT8 Option
4236 )
4237 {
4238 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_EVENT_LOG_VAR_DATA_FORMAT), gShellDebug1HiiHandle);
4239 PRINT_INFO_OPTION (Type, Option);
4240 PRINT_TABLE_ITEM (SELVarDataFormatTypeTable, Type);
4241 }
4242
4243 /**
4244 Display System Event Log (Type 15) dw1.
4245
4246 @param[in] Key The key of the structure.
4247 @param[in] Option The optional information.
4248 **/
4249 VOID
4250 DisplayPostResultsBitmapDw1 (
4251 IN UINT32 Key,
4252 IN UINT8 Option
4253 )
4254 {
4255 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_BITMAP), gShellDebug1HiiHandle);
4256 PRINT_INFO_OPTION (Key, Option);
4257 PRINT_BITS_INFO (PostResultsBitmapDw1Table, Key);
4258 }
4259
4260 /**
4261 Display System Event Log (Type 15) dw2.
4262
4263 @param[in] Key The key of the structure.
4264 @param[in] Option The optional information.
4265 **/
4266 VOID
4267 DisplayPostResultsBitmapDw2 (
4268 IN UINT32 Key,
4269 IN UINT8 Option
4270 )
4271 {
4272 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_SECOND_DWORD), gShellDebug1HiiHandle);
4273 PRINT_INFO_OPTION (Key, Option);
4274 PRINT_BITS_INFO (PostResultsBitmapDw2Table, Key);
4275 }
4276
4277 /**
4278 Display System Event Log (Type 15) type.
4279
4280 @param[in] SMType The key of the structure.
4281 @param[in] Option The optional information.
4282 **/
4283 VOID
4284 DisplaySELSysManagementTypes (
4285 IN UINT32 SMType,
4286 IN UINT8 Option
4287 )
4288 {
4289 UINT8 Temp;
4290
4291 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_TYPES), gShellDebug1HiiHandle);
4292 PRINT_INFO_OPTION (SMType, Option);
4293
4294 //
4295 // Deal with wide range Value
4296 //
4297 if (SMType >= 0x80000000) {
4298 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_OEM_ASSIGNED), gShellDebug1HiiHandle);
4299 } else if (SMType >= 0x00020000) {
4300 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), gShellDebug1HiiHandle);
4301 } else if (SMType >= 0x00010000) {
4302 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_PROBE), gShellDebug1HiiHandle);
4303 } else if (SMType >= 0x31) {
4304 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), gShellDebug1HiiHandle);
4305 } else {
4306 //
4307 // Deal with One byte data
4308 //
4309 Temp = (UINT8) (SMType & 0x3F);
4310 PRINT_TABLE_ITEM (SELSysManagementTypesTable, Temp);
4311 }
4312 }
4313
4314 /**
4315 Display Physical Memory Array (Type 16) Location.
4316
4317 @param[in] Location The key of the structure.
4318 @param[in] Option The optional information.
4319 **/
4320 VOID
4321 DisplayPMALocation (
4322 IN UINT8 Location,
4323 IN UINT8 Option
4324 )
4325 {
4326 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_LOCATION), gShellDebug1HiiHandle);
4327 PRINT_INFO_OPTION (Location, Option);
4328 PRINT_TABLE_ITEM (PMALocationTable, Location);
4329 }
4330
4331 /**
4332 Display Physical Memory Array (Type 16) Use.
4333
4334 @param[in] Use The key of the structure.
4335 @param[in] Option The optional information.
4336 **/
4337 VOID
4338 DisplayPMAUse (
4339 IN UINT8 Use,
4340 IN UINT8 Option
4341 )
4342 {
4343 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_USE), gShellDebug1HiiHandle);
4344 PRINT_INFO_OPTION (Use, Option);
4345 PRINT_TABLE_ITEM (PMAUseTable, Use);
4346 }
4347
4348 /**
4349 Display Physical Memory Array (Type 16) Types.
4350
4351 @param[in] Type The key of the structure.
4352 @param[in] Option The optional information.
4353 **/
4354 VOID
4355 DisplayPMAErrorCorrectionTypes (
4356 IN UINT8 Type,
4357 IN UINT8 Option
4358 )
4359 {
4360 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_ERROR), gShellDebug1HiiHandle);
4361 PRINT_INFO_OPTION (Type, Option);
4362 PRINT_TABLE_ITEM (PMAErrorCorrectionTypesTable, Type);
4363 }
4364
4365 /**
4366 Display Memory Device (Type 17) form factor.
4367
4368 @param[in] FormFactor The key of the structure.
4369 @param[in] Option The optional information.
4370 **/
4371 VOID
4372 DisplayMemoryDeviceFormFactor (
4373 IN UINT8 FormFactor,
4374 IN UINT8 Option
4375 )
4376 {
4377 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_FORM_FACTOR), gShellDebug1HiiHandle);
4378 PRINT_INFO_OPTION (FormFactor, Option);
4379 PRINT_TABLE_ITEM (MemoryDeviceFormFactorTable, FormFactor);
4380 }
4381
4382 /**
4383 Display Memory Device (Type 17) type.
4384
4385 @param[in] Type The key of the structure.
4386 @param[in] Option The optional information.
4387 **/
4388 VOID
4389 DisplayMemoryDeviceType (
4390 IN UINT8 Type,
4391 IN UINT8 Option
4392 )
4393 {
4394 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE), gShellDebug1HiiHandle);
4395 PRINT_INFO_OPTION (Type, Option);
4396 PRINT_TABLE_ITEM (MemoryDeviceTypeTable, Type);
4397 }
4398
4399 /**
4400 Display Memory Device (Type 17) details.
4401
4402 @param[in] Para The key of the structure.
4403 @param[in] Option The optional information.
4404 **/
4405 VOID
4406 DisplayMemoryDeviceTypeDetail (
4407 IN UINT16 Para,
4408 IN UINT8 Option
4409 )
4410 {
4411 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE_DETAIL), gShellDebug1HiiHandle);
4412 PRINT_INFO_OPTION (Para, Option);
4413 PRINT_BITS_INFO (MemoryDeviceTypeDetailTable, Para);
4414 }
4415
4416 /**
4417 Display Memory Device (Type 17) memory technology.
4418
4419 @param[in] Para The key of the structure.
4420 @param[in] Option The optional information.
4421 **/
4422 VOID
4423 DisplayMemoryDeviceMemoryTechnology (
4424 IN UINT8 Para,
4425 IN UINT8 Option
4426 )
4427 {
4428 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_MEMORY_TECHNOLOGY), gShellDebug1HiiHandle);
4429 PRINT_INFO_OPTION (Para, Option);
4430 PRINT_TABLE_ITEM (MemoryDeviceMemoryTechnologyTable, Para);
4431 }
4432
4433 /**
4434 Display Memory Device (Type 17) memory operating mode capability.
4435
4436 @param[in] Para The key of the structure.
4437 @param[in] Option The optional information.
4438 **/
4439 VOID
4440 DisplayMemoryDeviceMemoryOperatingModeCapability (
4441 IN UINT16 Para,
4442 IN UINT8 Option
4443 )
4444 {
4445 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_MEM_OPER_MODE_CAPA), gShellDebug1HiiHandle);
4446 PRINT_INFO_OPTION (Para, Option);
4447 PRINT_BITS_INFO (MemoryDeviceMemoryOperatingModeCapabilityTable, Para);
4448 }
4449
4450 /**
4451 Display 32-bit Memory Error Information (Type 18) type.
4452
4453 @param[in] ErrorType The key of the structure.
4454 @param[in] Option The optional information.
4455 **/
4456 VOID
4457 DisplayMemoryErrorType (
4458 IN UINT8 ErrorType,
4459 IN UINT8 Option
4460 )
4461 {
4462 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_INFO), gShellDebug1HiiHandle);
4463 PRINT_INFO_OPTION (ErrorType, Option);
4464 PRINT_TABLE_ITEM (MemoryErrorTypeTable, ErrorType);
4465 }
4466
4467 /**
4468 Display 32-bit Memory Error Information (Type 18) error granularity.
4469
4470 @param[in] Granularity The key of the structure.
4471 @param[in] Option The optional information.
4472 **/
4473 VOID
4474 DisplayMemoryErrorGranularity (
4475 IN UINT8 Granularity,
4476 IN UINT8 Option
4477 )
4478 {
4479 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_GRANULARITY), gShellDebug1HiiHandle);
4480 PRINT_INFO_OPTION (Granularity, Option);
4481 PRINT_TABLE_ITEM (MemoryErrorGranularityTable, Granularity);
4482 }
4483
4484 /**
4485 Display 32-bit Memory Error Information (Type 18) error information.
4486
4487 @param[in] Operation The key of the structure.
4488 @param[in] Option The optional information.
4489 **/
4490 VOID
4491 DisplayMemoryErrorOperation (
4492 IN UINT8 Operation,
4493 IN UINT8 Option
4494 )
4495 {
4496 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_OP), gShellDebug1HiiHandle);
4497 PRINT_INFO_OPTION (Operation, Option);
4498 PRINT_TABLE_ITEM (MemoryErrorOperationTable, Operation);
4499 }
4500
4501 /**
4502 Display Built-in Pointing Device (Type 21) type information.
4503
4504 @param[in] Type The key of the structure.
4505 @param[in] Option The optional information.
4506 **/
4507 VOID
4508 DisplayPointingDeviceType (
4509 IN UINT8 Type,
4510 IN UINT8 Option
4511 )
4512 {
4513 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_TYPE), gShellDebug1HiiHandle);
4514 PRINT_INFO_OPTION (Type, Option);
4515 PRINT_TABLE_ITEM (PointingDeviceTypeTable, Type);
4516 }
4517
4518 /**
4519 Display Built-in Pointing Device (Type 21) information.
4520
4521 @param[in] Interface The key of the structure.
4522 @param[in] Option The optional information.
4523 **/
4524 VOID
4525 DisplayPointingDeviceInterface (
4526 IN UINT8 Interface,
4527 IN UINT8 Option
4528 )
4529 {
4530 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_INTERFACE), gShellDebug1HiiHandle);
4531 PRINT_INFO_OPTION (Interface, Option);
4532 PRINT_TABLE_ITEM (PointingDeviceInterfaceTable, Interface);
4533 }
4534
4535 /**
4536 Display Portable Battery (Type 22) information.
4537
4538 @param[in] Key The key of the structure.
4539 @param[in] Option The optional information.
4540 **/
4541 VOID
4542 DisplayPBDeviceChemistry (
4543 IN UINT8 Key,
4544 IN UINT8 Option
4545 )
4546 {
4547 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORTABLE_BATT_DEV_CHEM), gShellDebug1HiiHandle);
4548 PRINT_INFO_OPTION (Key, Option);
4549 PRINT_TABLE_ITEM (PBDeviceChemistryTable, Key);
4550 }
4551
4552 /**
4553 Display Voltage Probe (Type 26) location information.
4554
4555 @param[in] Key The key of the structure.
4556 @param[in] Option The optional information.
4557 **/
4558 VOID
4559 DisplayVPLocation (
4560 IN UINT8 Key,
4561 IN UINT8 Option
4562 )
4563 {
4564 UINT8 Loc;
4565
4566 Loc = (UINT8) ((Key & 0xE0) >> 5);
4567 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), gShellDebug1HiiHandle);
4568 PRINT_INFO_OPTION (Loc, Option);
4569 PRINT_TABLE_ITEM (VPLocationTable, Loc);
4570 }
4571
4572 /**
4573 Display Voltage Probe (Type 26) status ype information.
4574
4575 @param[in] Key The key of the structure.
4576 @param[in] Option The optional information.
4577 **/
4578 VOID
4579 DisplayVPStatus (
4580 IN UINT8 Key,
4581 IN UINT8 Option
4582 )
4583 {
4584 UINT8 Status;
4585
4586 Status = (UINT8) (Key & 0x1F);
4587 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_STATUS), gShellDebug1HiiHandle);
4588 PRINT_INFO_OPTION (Status, Option);
4589 PRINT_TABLE_ITEM (VPStatusTable, Status);
4590 }
4591
4592 /**
4593 Display Cooling (Type 27) status information.
4594
4595 @param[in] Key The key of the structure.
4596 @param[in] Option The optional information.
4597 **/
4598 VOID
4599 DisplayCoolingDeviceStatus (
4600 IN UINT8 Key,
4601 IN UINT8 Option
4602 )
4603 {
4604 UINT8 Status;
4605
4606 Status = (UINT8) ((Key & 0xE0) >> 5);
4607 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_STATUS), gShellDebug1HiiHandle);
4608 PRINT_INFO_OPTION (Status, Option);
4609 PRINT_TABLE_ITEM (CoolingDeviceStatusTable, Status);
4610 }
4611
4612 /**
4613 Display Cooling (Type 27) type information.
4614
4615 @param[in] Key The key of the structure.
4616 @param[in] Option The optional information.
4617 **/
4618 VOID
4619 DisplayCoolingDeviceType (
4620 IN UINT8 Key,
4621 IN UINT8 Option
4622 )
4623 {
4624 UINT8 Type;
4625
4626 Type = (UINT8) (Key & 0x1F);
4627 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_TYPE), gShellDebug1HiiHandle);
4628 PRINT_INFO_OPTION (Type, Option);
4629 PRINT_TABLE_ITEM (CoolingDeviceTypeTable, Type);
4630 }
4631
4632 /**
4633 Display Temperature Probe (Type 28) status information.
4634
4635 @param[in] Key The key of the structure.
4636 @param[in] Option The optional information.
4637 **/
4638 VOID
4639 DisplayTemperatureProbeStatus (
4640 IN UINT8 Key,
4641 IN UINT8 Option
4642 )
4643 {
4644 UINT8 Status;
4645
4646 Status = (UINT8) ((Key & 0xE0) >> 5);
4647 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_TEMP_PROBE), gShellDebug1HiiHandle);
4648 PRINT_INFO_OPTION (Status, Option);
4649 PRINT_TABLE_ITEM (TemperatureProbeStatusTable, Status);
4650 }
4651
4652 /**
4653 Display Temperature Probe (Type 28) location information.
4654
4655 @param[in] Key The key of the structure.
4656 @param[in] Option The optional information.
4657 **/
4658 VOID
4659 DisplayTemperatureProbeLoc (
4660 IN UINT8 Key,
4661 IN UINT8 Option
4662 )
4663 {
4664 UINT8 Loc;
4665
4666 Loc = (UINT8) (Key & 0x1F);
4667 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), gShellDebug1HiiHandle);
4668 PRINT_INFO_OPTION (Loc, Option);
4669 PRINT_TABLE_ITEM (TemperatureProbeLocTable, Loc);
4670 }
4671
4672 /**
4673 Display Electrical Current Probe (Type 29) status information.
4674
4675 @param[in] Key The key of the structure.
4676 @param[in] Option The optional information.
4677 **/
4678 VOID
4679 DisplayECPStatus (
4680 IN UINT8 Key,
4681 IN UINT8 Option
4682 )
4683 {
4684 UINT8 Status;
4685
4686 Status = (UINT8) ((Key & 0xE0) >> 5);
4687 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_STATUS), gShellDebug1HiiHandle);
4688 PRINT_INFO_OPTION (Status, Option);
4689 PRINT_TABLE_ITEM (ECPStatusTable, Status);
4690 }
4691
4692 /**
4693 Display Type 29 information.
4694
4695 @param[in] Key The key of the structure.
4696 @param[in] Option The optional information.
4697 **/
4698 VOID
4699 DisplayECPLoc (
4700 IN UINT8 Key,
4701 IN UINT8 Option
4702 )
4703 {
4704 UINT8 Loc;
4705
4706 Loc = (UINT8) (Key & 0x1F);
4707 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_LOC), gShellDebug1HiiHandle);
4708 PRINT_INFO_OPTION (Loc, Option);
4709 PRINT_TABLE_ITEM (ECPLocTable, Loc);
4710 }
4711
4712 /**
4713 Display Management Device (Type 34) Type.
4714
4715 @param[in] Key The key of the structure.
4716 @param[in] Option The optional information.
4717 **/
4718 VOID
4719 DisplayMDType (
4720 IN UINT8 Key,
4721 IN UINT8 Option
4722 )
4723 {
4724 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_TYPE), gShellDebug1HiiHandle);
4725 PRINT_INFO_OPTION (Key, Option);
4726 PRINT_TABLE_ITEM (MDTypeTable, Key);
4727 }
4728
4729 /**
4730 Display Management Device (Type 34) Address Type.
4731
4732 @param[in] Key The key of the structure.
4733 @param[in] Option The optional information.
4734 **/
4735 VOID
4736 DisplayMDAddressType (
4737 IN UINT8 Key,
4738 IN UINT8 Option
4739 )
4740 {
4741 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_ADDR_TYPE), gShellDebug1HiiHandle);
4742 PRINT_INFO_OPTION (Key, Option);
4743 PRINT_TABLE_ITEM (MDAddressTypeTable, Key);
4744 }
4745
4746 /**
4747 Display Memory Channel (Type 37) information.
4748
4749 @param[in] Key The key of the structure.
4750 @param[in] Option The optional information.
4751 **/
4752 VOID
4753 DisplayMemoryChannelType (
4754 IN UINT8 Key,
4755 IN UINT8 Option
4756 )
4757 {
4758 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CHANNEL_TYPE), gShellDebug1HiiHandle);
4759 PRINT_INFO_OPTION (Key, Option);
4760 PRINT_TABLE_ITEM (MemoryChannelTypeTable, Key);
4761 }
4762
4763 /**
4764 Display IPMI Device Information (Type 38) information.
4765
4766 @param[in] Key The key of the structure.
4767 @param[in] Option The optional information.
4768 **/
4769 VOID
4770 DisplayIPMIDIBMCInterfaceType (
4771 IN UINT8 Key,
4772 IN UINT8 Option
4773 )
4774 {
4775 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BMC_INTERFACE_TYPE), gShellDebug1HiiHandle);
4776 PRINT_INFO_OPTION (Key, Option);
4777 PRINT_TABLE_ITEM (IPMIDIBMCInterfaceTypeTable, Key);
4778 }
4779
4780 /**
4781 Display Management Controller Host Interface (Type 42) information.
4782
4783 @param[in] Key The key of the structure.
4784 @param[in] Option The optional information.
4785 **/
4786 VOID
4787 DisplayMCHostInterfaceType (
4788 IN UINT8 Key,
4789 IN UINT8 Option
4790 )
4791 {
4792 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MC_HOST_INTERFACE_TYPE), gShellDebug1HiiHandle);
4793 PRINT_INFO_OPTION (Key, Option);
4794 PRINT_TABLE_ITEM (MCHostInterfaceTypeTable, Key);
4795 }
4796
4797 /**
4798 Display Processor Architecture Type (Type 44).
4799
4800 @param[in] Key The key of the structure.
4801 @param[in] Option The optional information.
4802 **/
4803 VOID
4804 DisplayProcessorArchitectureType (
4805 IN UINT8 Key,
4806 IN UINT8 Option
4807 )
4808 {
4809 ShellPrintHiiEx (-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROCESSOR_ARCH_TYPE), gShellDebug1HiiHandle);
4810 PRINT_INFO_OPTION (Key, Option);
4811 PRINT_TABLE_ITEM (ProcessorArchitectureTypesTable, Key);
4812 }
4813
4814 /**
4815 Display the structure type information.
4816
4817 @param[in] Key The key of the structure.
4818 @param[in] Option The optional information.
4819 **/
4820 VOID
4821 DisplayStructureTypeInfo (
4822 IN UINT8 Key,
4823 IN UINT8 Option
4824 )
4825 {
4826 //
4827 // display
4828 //
4829 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_STRUCT_TYPE), gShellDebug1HiiHandle);
4830 PRINT_INFO_OPTION (Key, Option);
4831 PRINT_TABLE_ITEM (StructureTypeInfoTable, Key);
4832 }