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