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