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