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