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