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