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