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