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