]> git.proxmox.com Git - mirror_edk2.git/blame - ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
ShellPkg: Update header file including style
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / SmbiosView / PrintInfo.c
CommitLineData
5d73d92f 1/** @file\r
2 Module for clarifying the content of the smbios structure element information.\r
3\r
c326e078 4 Copyright (c) 2005 - 2017, Intel Corporation. All rights reserved.<BR>\r
09d1c9e6 5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR> \r
12233c19 6 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>\r
5d73d92f 7 This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14\r
15**/\r
16\r
8a765da2 17#include "UefiShellDebug1CommandsLib.h"\r
5d73d92f 18#include "PrintInfo.h"\r
19#include "LibSmbiosView.h"\r
20#include "QueryTable.h"\r
21#include "EventLogInfo.h"\r
22\r
23\r
24//\r
25// Get the certain bit of 'value'\r
26//\r
27#define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))\r
28\r
187cb3dd
SZ
29//\r
30// Check if above or equal to version\r
31//\r
32#define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \\r
33 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))\r
34\r
5d73d92f 35//\r
36//////////////////////////////////////////////////////////\r
37// Macros of print structure element, simplify coding.\r
38//\r
a1d4bfcc 39#define PRINT_PENDING_STRING(pStruct, type, element) \\r
5d73d92f 40 do { \\r
187cb3dd
SZ
41 CHAR8 *StringBuf; \\r
42 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \\r
5d73d92f 43 ShellPrintEx(-1,-1,L"%a",#element); \\r
187cb3dd 44 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \\r
5d73d92f 45 } while (0);\r
46\r
a1d4bfcc 47#define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \\r
5d73d92f 48 do { \\r
187cb3dd
SZ
49 CHAR8 *StringBuf; \\r
50 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \\r
5d73d92f 51 ShellPrintEx(-1,-1,L"%a",#element); \\r
187cb3dd 52 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \\r
5d73d92f 53 } while (0);\r
54\r
a1d4bfcc 55#define PRINT_STRUCT_VALUE(pStruct, type, element) \\r
5d73d92f 56 do { \\r
57 ShellPrintEx(-1,-1,L"%a",#element); \\r
58 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \\r
59 } while (0);\r
60\r
a1d4bfcc 61#define PRINT_STRUCT_VALUE_H(pStruct, type, element) \\r
5d73d92f 62 do { \\r
63 ShellPrintEx(-1,-1,L"%a",#element); \\r
64 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \\r
65 } while (0);\r
66\r
4641e700 67#define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \\r
68 do { \\r
69 ShellPrintEx(-1,-1,L"%a",#element); \\r
70 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \\r
71 } while (0);\r
72\r
a1d4bfcc 73#define PRINT_BIT_FIELD(pStruct, type, element, size) \\r
5d73d92f 74 do { \\r
75 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \\r
76 ShellPrintEx(-1,-1,L"%a",#element); \\r
77 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \\r
78 DumpHex (0, 0, size, &(pStruct->type->element)); \\r
79 } while (0);\r
80\r
a1d4bfcc 81#define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \\r
5d73d92f 82 do { \\r
83 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \\r
84 ShellPrintEx(-1,-1,L"%a",#element); \\r
85 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \\r
86 DumpHex (0, 0, size, startaddress); \\r
87 } while (0);\r
88\r
89//\r
90/////////////////////////////////////////\r
91//\r
a1d4bfcc 92\r
93/**\r
94 Copy Length of Src buffer to Dest buffer,\r
95 add a NULL termination to Dest buffer.\r
96\r
4ff7e37b
ED
97 @param[in, out] Dest Destination buffer head.\r
98 @param[in] Src Source buffer head.\r
99 @param[in] Length Length of buffer to be copied.\r
a1d4bfcc 100**/\r
5d73d92f 101VOID\r
102MemToString (\r
103 IN OUT VOID *Dest,\r
104 IN VOID *Src,\r
105 IN UINTN Length\r
106 )\r
5d73d92f 107{\r
108 UINT8 *SrcBuffer;\r
109 UINT8 *DestBuffer;\r
110 SrcBuffer = (UINT8 *) Src;\r
111 DestBuffer = (UINT8 *) Dest;\r
112 //\r
113 // copy byte by byte\r
114 //\r
115 while ((Length--)!=0) {\r
116 *DestBuffer++ = *SrcBuffer++;\r
117 }\r
118 //\r
119 // append a NULL terminator\r
120 //\r
121 *DestBuffer = '\0';\r
122}\r
123\r
124//\r
125//////////////////////////////////////////////\r
126//\r
127// Functions below is to show the information\r
128//\r
a1d4bfcc 129\r
130/**\r
131 Print the info of EPS(Entry Point Structure).\r
132\r
133 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.\r
134 @param[in] Option Display option.\r
135**/\r
5d73d92f 136VOID\r
137SmbiosPrintEPSInfo (\r
187cb3dd
SZ
138 IN SMBIOS_TABLE_ENTRY_POINT *SmbiosTable,\r
139 IN UINT8 Option\r
5d73d92f 140 )\r
5d73d92f 141{\r
142 UINT8 Anchor[5];\r
143 UINT8 InAnchor[6];\r
144\r
145 if (SmbiosTable == NULL) {\r
146 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL), gShellDebug1HiiHandle);\r
147 return ;\r
148 }\r
149\r
150 if (Option == SHOW_NONE) {\r
151 return ;\r
152 }\r
153\r
154 if (Option >= SHOW_NORMAL) {\r
155 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN), gShellDebug1HiiHandle);\r
156 MemToString (Anchor, SmbiosTable->AnchorString, 4);\r
157 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR), gShellDebug1HiiHandle, Anchor);\r
158 ShellPrintHiiEx(-1,-1,NULL,\r
159 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM),\r
160 gShellDebug1HiiHandle,\r
161 SmbiosTable->EntryPointStructureChecksum\r
162 );\r
163 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN), gShellDebug1HiiHandle, SmbiosTable->EntryPointLength);\r
164 ShellPrintHiiEx(-1,-1,NULL,\r
165 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION),\r
166 gShellDebug1HiiHandle,\r
167 SmbiosTable->MajorVersion,\r
168 SmbiosTable->MinorVersion\r
169 );\r
170 ShellPrintHiiEx(-1,-1,NULL,\r
171 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT),\r
172 gShellDebug1HiiHandle,\r
173 SmbiosTable->NumberOfSmbiosStructures\r
174 );\r
175 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE), gShellDebug1HiiHandle, SmbiosTable->MaxStructureSize);\r
176 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR), gShellDebug1HiiHandle, SmbiosTable->TableAddress);\r
177 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH), gShellDebug1HiiHandle, SmbiosTable->TableLength);\r
178\r
179 }\r
180 //\r
181 // If SHOW_ALL, also print followings.\r
182 //\r
183 if (Option >= SHOW_DETAIL) {\r
184 ShellPrintHiiEx(-1,-1,NULL,\r
185 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION),\r
186 gShellDebug1HiiHandle,\r
187 SmbiosTable->EntryPointRevision\r
188 );\r
189 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION), gShellDebug1HiiHandle, SmbiosTable->SmbiosBcdRevision);\r
190 //\r
191 // Since raw data is not string, add a NULL terminater.\r
192 //\r
193 MemToString (InAnchor, SmbiosTable->IntermediateAnchorString, 5);\r
194 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR), gShellDebug1HiiHandle, InAnchor);\r
195 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM), gShellDebug1HiiHandle, SmbiosTable->IntermediateChecksum);\r
196 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA), gShellDebug1HiiHandle);\r
197 DumpHex (2, 0, 5, SmbiosTable->FormattedArea);\r
198 }\r
199\r
ec8a502e
EL
200 Print (L"\n");\r
201}\r
202\r
203/**\r
204 Print the info of 64-bit EPS(Entry Point Structure).\r
205\r
206 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.\r
207 @param[in] Option Display option.\r
208**/\r
209VOID\r
210Smbios64BitPrintEPSInfo (\r
211 IN SMBIOS_TABLE_3_0_ENTRY_POINT *SmbiosTable,\r
212 IN UINT8 Option\r
213 )\r
214{\r
215 UINT8 Anchor[5];\r
216\r
217 if (SmbiosTable == NULL) {\r
218 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL), gShellDebug1HiiHandle);\r
219 return ;\r
220 }\r
221\r
222 if (Option == SHOW_NONE) {\r
223 return ;\r
224 }\r
225\r
226 if (Option >= SHOW_NORMAL) {\r
227 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN), gShellDebug1HiiHandle);\r
228\r
229 MemToString (Anchor, SmbiosTable->AnchorString, 5);\r
230 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR), gShellDebug1HiiHandle, Anchor);\r
231\r
232 ShellPrintHiiEx(-1,-1,NULL,\r
233 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM),\r
234 gShellDebug1HiiHandle,\r
235 SmbiosTable->EntryPointStructureChecksum\r
236 );\r
237\r
238 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN), gShellDebug1HiiHandle, SmbiosTable->EntryPointLength);\r
239\r
240 ShellPrintHiiEx(-1,-1,NULL,\r
241 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION),\r
242 gShellDebug1HiiHandle,\r
243 SmbiosTable->MajorVersion,\r
244 SmbiosTable->MinorVersion\r
245 );\r
246\r
247 ShellPrintHiiEx(-1,-1,NULL,\r
248 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV),\r
249 gShellDebug1HiiHandle,\r
250 SmbiosTable->DocRev\r
251 );\r
252\r
253 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE), gShellDebug1HiiHandle, SmbiosTable->TableMaximumSize);\r
254\r
255 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR), gShellDebug1HiiHandle, SmbiosTable->TableAddress);\r
256\r
257 }\r
258 //\r
259 // If SHOW_ALL, also print followings.\r
260 //\r
261 if (Option >= SHOW_DETAIL) {\r
262 ShellPrintHiiEx(-1,-1,NULL,\r
263 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION),\r
264 gShellDebug1HiiHandle,\r
265 SmbiosTable->EntryPointRevision\r
266 );\r
267 }\r
268\r
5d73d92f 269 Print (L"\n");\r
270}\r
271\r
a1d4bfcc 272/**\r
273 This function print the content of the structure pointed by Struct.\r
274\r
275 @param[in] Struct Point to the structure to be printed.\r
276 @param[in] Option Print option of information detail.\r
277\r
278 @retval EFI_SUCCESS Successfully Printing this function.\r
279 @retval EFI_INVALID_PARAMETER Invalid Structure.\r
280 @retval EFI_UNSUPPORTED Unsupported.\r
281**/\r
5d73d92f 282EFI_STATUS\r
283SmbiosPrintStructure (\r
a1d4bfcc 284 IN SMBIOS_STRUCTURE_POINTER *Struct,\r
5d73d92f 285 IN UINT8 Option\r
286 )\r
5d73d92f 287{\r
288 UINT8 Index;\r
289 UINT8 *Buffer;\r
290\r
a1d4bfcc 291 if (Struct == NULL) {\r
5d73d92f 292 return EFI_INVALID_PARAMETER;\r
293 }\r
294\r
295 if (Option == SHOW_NONE) {\r
296 return EFI_SUCCESS;\r
297 }\r
187cb3dd
SZ
298\r
299 Buffer = (UINT8 *) (UINTN) (Struct->Raw);\r
300\r
5d73d92f 301 //\r
302 // Display structure header\r
303 //\r
a1d4bfcc 304 DisplayStructureTypeInfo (Struct->Hdr->Type, SHOW_DETAIL);\r
305 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN), gShellDebug1HiiHandle, Struct->Hdr->Length);\r
306 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE), gShellDebug1HiiHandle, Struct->Hdr->Handle);\r
5d73d92f 307\r
308 if (Option == SHOW_OUTLINE) {\r
309 return EFI_SUCCESS;\r
310 }\r
311\r
a1d4bfcc 312 switch (Struct->Hdr->Type) {\r
5d73d92f 313 //\r
187cb3dd 314 // BIOS Information (Type 0)\r
5d73d92f 315 //\r
316 case 0:\r
a1d4bfcc 317 PRINT_PENDING_STRING (Struct, Type0, Vendor);\r
318 PRINT_PENDING_STRING (Struct, Type0, BiosVersion);\r
fed709de 319 PRINT_STRUCT_VALUE_H (Struct, Type0, BiosSegment);\r
a1d4bfcc 320 PRINT_PENDING_STRING (Struct, Type0, BiosReleaseDate);\r
321 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE), gShellDebug1HiiHandle, 64 * (Struct->Type0->BiosSize + 1));\r
5d73d92f 322\r
0b6cb335 323 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64 *) (UINTN) &(Struct->Type0->BiosCharacteristics)), Option);\r
5d73d92f 324\r
187cb3dd
SZ
325 if (Struct->Hdr->Length > 0x12) {\r
326 DisplayBiosCharacteristicsExt1 (Struct->Type0->BIOSCharacteristicsExtensionBytes[0], Option);\r
327 }\r
328 if (Struct->Hdr->Length > 0x13) {\r
329 DisplayBiosCharacteristicsExt2 (Struct->Type0->BIOSCharacteristicsExtensionBytes[1], Option);\r
330 }\r
5d73d92f 331\r
187cb3dd
SZ
332 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct->Hdr->Length > 0x14)) {\r
333 PRINT_STRUCT_VALUE (Struct, Type0, SystemBiosMajorRelease);\r
334 PRINT_STRUCT_VALUE (Struct, Type0, SystemBiosMinorRelease);\r
335 PRINT_STRUCT_VALUE (Struct, Type0, EmbeddedControllerFirmwareMajorRelease);\r
336 PRINT_STRUCT_VALUE (Struct, Type0, EmbeddedControllerFirmwareMinorRelease);\r
5d73d92f 337 }\r
44175ee7
SZ
338 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct->Hdr->Length > 0x18)) {\r
339 ShellPrintHiiEx (\r
340 -1,\r
341 -1,\r
342 NULL,\r
343 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTENDED_BIOS_SIZE),\r
344 gShellDebug1HiiHandle,\r
345 Struct->Type0->ExtendedBiosSize.Size,\r
346 (Struct->Type0->ExtendedBiosSize.Unit == 0x0) ? L"MB": L"GB"\r
347 );\r
348 }\r
5d73d92f 349 break;\r
350\r
351 //\r
352 // System Information (Type 1)\r
353 //\r
354 case 1:\r
a1d4bfcc 355 PRINT_PENDING_STRING (Struct, Type1, Manufacturer);\r
356 PRINT_PENDING_STRING (Struct, Type1, ProductName);\r
357 PRINT_PENDING_STRING (Struct, Type1, Version);\r
358 PRINT_PENDING_STRING (Struct, Type1, SerialNumber);\r
359 PRINT_BIT_FIELD (Struct, Type1, Uuid, 16);\r
360 DisplaySystemWakeupType (Struct->Type1->WakeUpType, Option);\r
187cb3dd
SZ
361 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct->Hdr->Length > 0x19)) {\r
362 PRINT_PENDING_STRING (Struct, Type1, SKUNumber);\r
363 PRINT_PENDING_STRING (Struct, Type1, Family);\r
364 }\r
365\r
5d73d92f 366 break;\r
367\r
187cb3dd
SZ
368 //\r
369 // Baseboard Information (Type 2)\r
370 //\r
5d73d92f 371 case 2:\r
a1d4bfcc 372 PRINT_PENDING_STRING (Struct, Type2, Manufacturer);\r
373 PRINT_PENDING_STRING (Struct, Type2, ProductName);\r
374 PRINT_PENDING_STRING (Struct, Type2, Version);\r
375 PRINT_PENDING_STRING (Struct, Type2, SerialNumber);\r
187cb3dd
SZ
376 if (Struct->Hdr->Length > 0x8) {\r
377 PRINT_PENDING_STRING (Struct, Type2, AssetTag);\r
378 DisplayBaseBoardFeatureFlags (*(UINT8 *) &Struct->Type2->FeatureFlag, Option);\r
379 PRINT_PENDING_STRING (Struct, Type2, LocationInChassis);\r
380 PRINT_STRUCT_VALUE_H (Struct, Type2, ChassisHandle);\r
381 DisplayBaseBoardBoardType (Struct->Type2->BoardType, Option);\r
382 }\r
5d73d92f 383 break;\r
384\r
385 //\r
386 // System Enclosure (Type 3)\r
387 //\r
388 case 3:\r
a1d4bfcc 389 PRINT_PENDING_STRING (Struct, Type3, Manufacturer);\r
390 PRINT_STRUCT_VALUE (Struct, Type3, Type);\r
391 DisplaySystemEnclosureType (Struct->Type3->Type, Option);\r
392 PRINT_PENDING_STRING (Struct, Type3, Version);\r
393 PRINT_PENDING_STRING (Struct, Type3, SerialNumber);\r
394 PRINT_PENDING_STRING (Struct, Type3, AssetTag);\r
5d73d92f 395 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE), gShellDebug1HiiHandle);\r
a1d4bfcc 396 DisplaySystemEnclosureStatus (Struct->Type3->BootupState, Option);\r
5d73d92f 397 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE), gShellDebug1HiiHandle);\r
a1d4bfcc 398 DisplaySystemEnclosureStatus (Struct->Type3->PowerSupplyState, Option);\r
5d73d92f 399 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE), gShellDebug1HiiHandle);\r
a1d4bfcc 400 DisplaySystemEnclosureStatus (Struct->Type3->ThermalState, Option);\r
5d73d92f 401 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS), gShellDebug1HiiHandle);\r
a1d4bfcc 402 DisplaySESecurityStatus (Struct->Type3->SecurityStatus, Option);\r
12233c19
CP
403 if (AE_SMBIOS_VERSION (0x2, 0x3)) {\r
404 if (Struct->Hdr->Length > 0xD) {\r
405 PRINT_BIT_FIELD (Struct, Type3, OemDefined, 4);\r
406 }\r
407 if (Struct->Hdr->Length > 0x11) {\r
408 PRINT_STRUCT_VALUE (Struct, Type3, Height);\r
409 }\r
410 if (Struct->Hdr->Length > 0x12) {\r
411 PRINT_STRUCT_VALUE (Struct, Type3, NumberofPowerCords);\r
412 }\r
413 }\r
414 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0x13)) {\r
415 if (Struct->Hdr->Length > (0x15 + (Struct->Type3->ContainedElementCount * Struct->Type3->ContainedElementRecordLength))) {\r
416 PRINT_SMBIOS_STRING (Struct, Buffer[0x15 + (Struct->Type3->ContainedElementCount * Struct->Type3->ContainedElementRecordLength)], SKUNumber);\r
417 }\r
187cb3dd 418 }\r
5d73d92f 419 break;\r
420\r
421 //\r
422 // Processor Information (Type 4)\r
423 //\r
424 case 4:\r
f4c6c0fd 425 PRINT_SMBIOS_STRING (Struct, Struct->Type4->Socket, SocketDesignation)\r
a1d4bfcc 426 DisplayProcessorType (Struct->Type4->ProcessorType, Option);\r
187cb3dd 427 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct->Hdr->Length > 0x28) &&\r
a1d4bfcc 428 (Struct->Type4->ProcessorFamily == 0xFE)) {\r
5d73d92f 429 //\r
430 // Get family from ProcessorFamily2 field\r
431 //\r
a1d4bfcc 432 DisplayProcessorFamily2 (Struct->Type4->ProcessorFamily2, Option);\r
5d73d92f 433 } else {\r
a1d4bfcc 434 DisplayProcessorFamily (Struct->Type4->ProcessorFamily, Option);\r
5d73d92f 435 }\r
a1d4bfcc 436 PRINT_PENDING_STRING (Struct, Type4, ProcessorManufacture);\r
437 PRINT_BIT_FIELD (Struct, Type4, ProcessorId, 8);\r
438 PRINT_PENDING_STRING (Struct, Type4, ProcessorVersion);\r
187cb3dd 439 DisplayProcessorVoltage (*(UINT8 *) &(Struct->Type4->Voltage), Option);\r
a1d4bfcc 440 PRINT_STRUCT_VALUE (Struct, Type4, ExternalClock);\r
441 PRINT_STRUCT_VALUE (Struct, Type4, MaxSpeed);\r
442 PRINT_STRUCT_VALUE (Struct, Type4, CurrentSpeed);\r
443 DisplayProcessorStatus (Struct->Type4->Status, Option);\r
444 DisplayProcessorUpgrade (Struct->Type4->ProcessorUpgrade, Option);\r
445 PRINT_STRUCT_VALUE_H (Struct, Type4, L1CacheHandle);\r
446 PRINT_STRUCT_VALUE_H (Struct, Type4, L2CacheHandle);\r
447 PRINT_STRUCT_VALUE_H (Struct, Type4, L3CacheHandle);\r
187cb3dd
SZ
448 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct->Hdr->Length > 0x20)) {\r
449 PRINT_PENDING_STRING (Struct, Type4, SerialNumber);\r
450 PRINT_PENDING_STRING (Struct, Type4, AssetTag);\r
451 PRINT_PENDING_STRING (Struct, Type4, PartNumber);\r
452 }\r
453 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct->Hdr->Length > 0x23)) {\r
a1d4bfcc 454 PRINT_STRUCT_VALUE (Struct, Type4, CoreCount);\r
455 PRINT_STRUCT_VALUE (Struct, Type4, EnabledCoreCount);\r
456 PRINT_STRUCT_VALUE (Struct, Type4, ThreadCount);\r
187cb3dd 457 DisplayProcessorCharacteristics (Struct->Type4->ProcessorCharacteristics, Option);\r
5d73d92f 458 }\r
447cb913 459 if ((SmbiosMajorVersion >= 0x3) && (Struct->Hdr->Length > 0x2A)) {\r
1581c9a2
EL
460 PRINT_STRUCT_VALUE (Struct, Type4, CoreCount2);\r
461 PRINT_STRUCT_VALUE (Struct, Type4, EnabledCoreCount2);\r
462 PRINT_STRUCT_VALUE (Struct, Type4, ThreadCount2);\r
463 }\r
5d73d92f 464 break;\r
465\r
466 //\r
467 // Memory Controller Information (Type 5)\r
468 //\r
469 case 5:\r
470 {\r
471 UINT8 SlotNum;\r
a1d4bfcc 472 SlotNum = Struct->Type5->AssociatedMemorySlotNum;\r
5d73d92f 473\r
a1d4bfcc 474 DisplayMcErrorDetectMethod (Struct->Type5->ErrDetectMethod, Option);\r
187cb3dd 475 DisplayMcErrorCorrectCapability (*(UINT8 *) &(Struct->Type5->ErrCorrectCapability), Option);\r
5d73d92f 476 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT), gShellDebug1HiiHandle);\r
a1d4bfcc 477 DisplayMcInterleaveSupport (Struct->Type5->SupportInterleave, Option);\r
5d73d92f 478 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT), gShellDebug1HiiHandle);\r
a1d4bfcc 479 DisplayMcInterleaveSupport (Struct->Type5->CurrentInterleave, Option);\r
480 DisplayMaxMemoryModuleSize (Struct->Type5->MaxMemoryModuleSize, SlotNum, Option);\r
187cb3dd 481 DisplayMcMemorySpeeds (*(UINT16 *) &(Struct->Type5->SupportSpeed), Option);\r
a1d4bfcc 482 DisplayMmMemoryType (Struct->Type5->SupportMemoryType, Option);\r
483 DisplayMemoryModuleVoltage (Struct->Type5->MemoryModuleVoltage, Option);\r
484 PRINT_STRUCT_VALUE (Struct, Type5, AssociatedMemorySlotNum);\r
5d73d92f 485 //\r
486 // According to SMBIOS Specification, offset 0x0F\r
487 //\r
488 DisplayMemoryModuleConfigHandles ((UINT16 *) (&Buffer[0x0F]), SlotNum, Option);\r
489 DisplayMcErrorCorrectCapability (Buffer[0x0F + 2 * SlotNum], Option);\r
490 }\r
491 break;\r
492\r
493 //\r
494 // Memory Module Information (Type 6)\r
495 //\r
496 case 6:\r
a1d4bfcc 497 PRINT_PENDING_STRING (Struct, Type6, SocketDesignation);\r
498 DisplayMmBankConnections (Struct->Type6->BankConnections, Option);\r
499 PRINT_STRUCT_VALUE (Struct, Type6, CurrentSpeed);\r
187cb3dd 500 DisplayMmMemoryType (*(UINT16 *) &(Struct->Type6->CurrentMemoryType), Option);\r
5d73d92f 501 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED), gShellDebug1HiiHandle);\r
187cb3dd 502 DisplayMmMemorySize (*(UINT8 *) &(Struct->Type6->InstalledSize), Option);\r
5d73d92f 503 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED), gShellDebug1HiiHandle);\r
187cb3dd 504 DisplayMmMemorySize (*(UINT8 *) &(Struct->Type6->EnabledSize), Option);\r
a1d4bfcc 505 DisplayMmErrorStatus (Struct->Type6->ErrorStatus, Option);\r
5d73d92f 506 break;\r
507\r
508 //\r
509 // Cache Information (Type 7)\r
510 //\r
511 case 7:\r
a1d4bfcc 512 PRINT_PENDING_STRING (Struct, Type7, SocketDesignation);\r
187cb3dd 513 DisplayCacheConfiguration (Struct->Type7->CacheConfiguration, Option);\r
a1d4bfcc 514 PRINT_STRUCT_VALUE_H (Struct, Type7, MaximumCacheSize);\r
515 PRINT_STRUCT_VALUE_H (Struct, Type7, InstalledSize);\r
516 PRINT_STRUCT_VALUE_H (Struct, Type7, SupportedSRAMType);\r
517 PRINT_STRUCT_VALUE_H (Struct, Type7, CurrentSRAMType);\r
0b6cb335 518 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16 *) (UINTN) &(Struct->Type7->CurrentSRAMType)), Option);\r
a1d4bfcc 519 PRINT_STRUCT_VALUE_H (Struct, Type7, CacheSpeed);\r
520 DisplayCacheErrCorrectingType (Struct->Type7->ErrorCorrectionType, Option);\r
521 DisplayCacheSystemCacheType (Struct->Type7->SystemCacheType, Option);\r
522 DisplayCacheAssociativity (Struct->Type7->Associativity, Option);\r
44175ee7
SZ
523 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct->Hdr->Length > 0x13)) {\r
524 PRINT_STRUCT_VALUE_H (Struct, Type7, MaximumCacheSize2);\r
525 PRINT_STRUCT_VALUE_H (Struct, Type7, InstalledSize2);\r
526 }\r
5d73d92f 527 break;\r
528\r
529 //\r
530 // Port Connector Information (Type 8)\r
531 //\r
532 case 8:\r
a1d4bfcc 533 PRINT_PENDING_STRING (Struct, Type8, InternalReferenceDesignator);\r
5d73d92f 534 Print (L"Internal ");\r
a1d4bfcc 535 DisplayPortConnectorType (Struct->Type8->InternalConnectorType, Option);\r
536 PRINT_PENDING_STRING (Struct, Type8, ExternalReferenceDesignator);\r
5d73d92f 537 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL), gShellDebug1HiiHandle);\r
a1d4bfcc 538 DisplayPortConnectorType (Struct->Type8->ExternalConnectorType, Option);\r
539 DisplayPortType (Struct->Type8->PortType, Option);\r
5d73d92f 540 break;\r
541\r
542 //\r
543 // System Slots (Type 9)\r
544 //\r
545 case 9:\r
a1d4bfcc 546 PRINT_PENDING_STRING (Struct, Type9, SlotDesignation);\r
547 DisplaySystemSlotType (Struct->Type9->SlotType, Option);\r
548 DisplaySystemSlotDataBusWidth (Struct->Type9->SlotDataBusWidth, Option);\r
549 DisplaySystemSlotCurrentUsage (Struct->Type9->CurrentUsage, Option);\r
550 DisplaySystemSlotLength (Struct->Type9->SlotLength, Option);\r
5d73d92f 551 DisplaySystemSlotId (\r
a1d4bfcc 552 Struct->Type9->SlotID,\r
553 Struct->Type9->SlotType,\r
5d73d92f 554 Option\r
555 );\r
187cb3dd
SZ
556 DisplaySlotCharacteristics1 (*(UINT8 *) &(Struct->Type9->SlotCharacteristics1), Option);\r
557 DisplaySlotCharacteristics2 (*(UINT8 *) &(Struct->Type9->SlotCharacteristics2), Option);\r
558 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct->Hdr->Length > 0xD)) {\r
a1d4bfcc 559 PRINT_STRUCT_VALUE_H (Struct, Type9, SegmentGroupNum);\r
560 PRINT_STRUCT_VALUE_H (Struct, Type9, BusNum);\r
561 PRINT_STRUCT_VALUE_H (Struct, Type9, DevFuncNum);\r
5d73d92f 562 }\r
563 break;\r
564\r
565 //\r
566 // On Board Devices Information (Type 10)\r
567 //\r
568 case 10:\r
569 {\r
570 UINTN NumOfDevice;\r
187cb3dd 571 NumOfDevice = (Struct->Type10->Hdr.Length - sizeof (SMBIOS_STRUCTURE)) / (2 * sizeof (UINT8));\r
5d73d92f 572 for (Index = 0; Index < NumOfDevice; Index++) {\r
33bed756
SZ
573 ShellPrintEx(-1,-1,(((Struct->Type10->Device[Index].DeviceType) & 0x80) != 0) ? L"Device Enabled\n": L"Device Disabled\n");\r
574 DisplayOnboardDeviceTypes ((Struct->Type10->Device[Index].DeviceType) & 0x7F, Option);\r
5d73d92f 575 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING), gShellDebug1HiiHandle);\r
187cb3dd 576 ShellPrintEx(-1,-1,L"%a\n",LibGetSmbiosString (Struct, Struct->Type10->Device[Index].DescriptionString));\r
5d73d92f 577 }\r
578 }\r
579 break;\r
580\r
187cb3dd
SZ
581 //\r
582 // Oem Strings (Type 11)\r
583 //\r
5d73d92f 584 case 11:\r
a1d4bfcc 585 PRINT_STRUCT_VALUE (Struct, Type11, StringCount);\r
586 for (Index = 1; Index <= Struct->Type11->StringCount; Index++) {\r
587 ShellPrintEx(-1,-1,L"%a\n", LibGetSmbiosString (Struct, Index));\r
5d73d92f 588 }\r
589 break;\r
590\r
187cb3dd
SZ
591 //\r
592 // System Configuration Options (Type 12)\r
593 //\r
5d73d92f 594 case 12:\r
a1d4bfcc 595 PRINT_STRUCT_VALUE (Struct, Type12, StringCount);\r
596 for (Index = 1; Index <= Struct->Type12->StringCount; Index++) {\r
597 ShellPrintEx(-1,-1,L"%a\n", LibGetSmbiosString (Struct, Index));\r
5d73d92f 598 }\r
599 break;\r
600\r
187cb3dd
SZ
601 //\r
602 // BIOS Language Information (Type 13)\r
603 //\r
5d73d92f 604 case 13:\r
a1d4bfcc 605 PRINT_STRUCT_VALUE (Struct, Type13, InstallableLanguages);\r
606 PRINT_STRUCT_VALUE (Struct, Type13, Flags);\r
607 PRINT_BIT_FIELD (Struct, Type13, Reserved, 15);\r
608 PRINT_PENDING_STRING (Struct, Type13, CurrentLanguages);\r
5d73d92f 609 break;\r
610\r
187cb3dd
SZ
611 //\r
612 // Group Associations (Type 14)\r
613 //\r
5d73d92f 614 case 14:\r
187cb3dd
SZ
615 {\r
616 UINT8 NumOfItem;\r
617 NumOfItem = (Struct->Type14->Hdr.Length - 5) / 3;\r
618 PRINT_PENDING_STRING (Struct, Type14, GroupName);\r
619 for (Index = 0; Index < NumOfItem; Index++) {\r
620 ShellPrintEx(-1,-1,L"ItemType %d: %d\n", Index + 1, Struct->Type14->Group[Index].ItemType);\r
621 ShellPrintEx(-1,-1,L"ItemHandle %d: %d\n", Index + 1, Struct->Type14->Group[Index].ItemHandle);\r
622 }\r
623 }\r
5d73d92f 624 break;\r
625\r
626 //\r
627 // System Event Log (Type 15)\r
628 //\r
629 case 15:\r
630 {\r
187cb3dd
SZ
631 EVENT_LOG_TYPE *Ptr;\r
632 UINT8 Count;\r
633 UINT8 *AccessMethodAddress;\r
5d73d92f 634\r
a1d4bfcc 635 PRINT_STRUCT_VALUE_H (Struct, Type15, LogAreaLength);\r
636 PRINT_STRUCT_VALUE_H (Struct, Type15, LogHeaderStartOffset);\r
637 PRINT_STRUCT_VALUE_H (Struct, Type15, LogDataStartOffset);\r
638 DisplaySELAccessMethod (Struct->Type15->AccessMethod, Option);\r
639 PRINT_STRUCT_VALUE_H (Struct, Type15, AccessMethodAddress);\r
640 DisplaySELLogStatus (Struct->Type15->LogStatus, Option);\r
641 PRINT_STRUCT_VALUE_H (Struct, Type15, LogChangeToken);\r
642 DisplaySysEventLogHeaderFormat (Struct->Type15->LogHeaderFormat, Option);\r
643 PRINT_STRUCT_VALUE_H (Struct, Type15, NumberOfSupportedLogTypeDescriptors);\r
644 PRINT_STRUCT_VALUE_H (Struct, Type15, LengthOfLogTypeDescriptor);\r
645\r
646 Count = Struct->Type15->NumberOfSupportedLogTypeDescriptors;\r
5d73d92f 647 if (Count > 0) {\r
a1d4bfcc 648 Ptr = Struct->Type15->EventLogTypeDescriptors;\r
5d73d92f 649\r
650 //\r
651 // Display all Event Log type descriptors supported by system\r
652 //\r
653 for (Index = 0; Index < Count; Index++, Ptr++) {\r
654 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT), gShellDebug1HiiHandle, Index + 1);\r
655 DisplaySELTypes (Ptr->LogType, Option);\r
656 DisplaySELVarDataFormatType (Ptr->DataFormatType, Option);\r
657 }\r
658\r
659 if (Option >= SHOW_DETAIL) {\r
a1d4bfcc 660 switch (Struct->Type15->AccessMethod) {\r
5d73d92f 661 case 03:\r
a1d4bfcc 662 AccessMethodAddress = (UINT8 *) (UINTN) (Struct->Type15->AccessMethodAddress);\r
5d73d92f 663 break;\r
664\r
665 case 00:\r
666 case 01:\r
667 case 02:\r
668 case 04:\r
669 default:\r
670 ShellPrintHiiEx(-1,-1,NULL,\r
671 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED),\r
672 gShellDebug1HiiHandle,\r
a1d4bfcc 673 Struct->Type15->AccessMethod\r
5d73d92f 674 );\r
675 return EFI_UNSUPPORTED;\r
676 }\r
677 //\r
678 // Display Event Log Header\r
679 //\r
680 // Starting offset (or index) within the nonvolatile storage\r
681 // of the event-log's header, from the Access Method Address\r
682 //\r
683 DisplaySysEventLogHeader (\r
a1d4bfcc 684 Struct->Type15->LogHeaderFormat,\r
685 AccessMethodAddress + Struct->Type15->LogHeaderStartOffset\r
5d73d92f 686 );\r
687\r
688 //\r
689 // Display all Event Log data\r
690 //\r
691 // Starting offset (or index) within the nonvolatile storage\r
692 // of the event-log's first data byte, from the Access Method Address(0x14)\r
693 //\r
694 DisplaySysEventLogData (\r
a1d4bfcc 695 AccessMethodAddress + Struct->Type15->LogDataStartOffset,\r
5d73d92f 696 (UINT16)\r
697 (\r
187cb3dd
SZ
698 Struct->Type15->LogAreaLength -\r
699 (Struct->Type15->LogDataStartOffset - Struct->Type15->LogHeaderStartOffset)\r
700 )\r
5d73d92f 701 );\r
702 }\r
703\r
704 }\r
705 }\r
706 break;\r
707\r
708 //\r
709 // Physical Memory Array (Type 16)\r
710 //\r
711 case 16:\r
a1d4bfcc 712 DisplayPMALocation (Struct->Type16->Location, Option);\r
713 DisplayPMAUse (Struct->Type16->Use, Option);\r
5d73d92f 714 DisplayPMAErrorCorrectionTypes (\r
a1d4bfcc 715 Struct->Type16->MemoryErrorCorrection,\r
5d73d92f 716 Option\r
717 );\r
a1d4bfcc 718 PRINT_STRUCT_VALUE_H (Struct, Type16, MaximumCapacity);\r
719 PRINT_STRUCT_VALUE_H (Struct, Type16, MemoryErrorInformationHandle);\r
720 PRINT_STRUCT_VALUE_H (Struct, Type16, NumberOfMemoryDevices);\r
187cb3dd
SZ
721 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct->Hdr->Length > 0xF) {\r
722 PRINT_STRUCT_VALUE_LH (Struct, Type16, ExtendedMaximumCapacity);\r
723 }\r
5d73d92f 724 break;\r
725\r
726 //\r
727 // Memory Device (Type 17)\r
728 //\r
729 case 17:\r
a1d4bfcc 730 PRINT_STRUCT_VALUE_H (Struct, Type17, MemoryArrayHandle);\r
731 PRINT_STRUCT_VALUE_H (Struct, Type17, MemoryErrorInformationHandle);\r
732 PRINT_STRUCT_VALUE (Struct, Type17, TotalWidth);\r
733 PRINT_STRUCT_VALUE (Struct, Type17, DataWidth);\r
734 PRINT_STRUCT_VALUE (Struct, Type17, Size);\r
735 DisplayMemoryDeviceFormFactor (Struct->Type17->FormFactor, Option);\r
736 PRINT_STRUCT_VALUE_H (Struct, Type17, DeviceSet);\r
737 PRINT_PENDING_STRING (Struct, Type17, DeviceLocator);\r
738 PRINT_PENDING_STRING (Struct, Type17, BankLocator);\r
739 DisplayMemoryDeviceType (Struct->Type17->MemoryType, Option);\r
0b6cb335 740 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16 *) (UINTN) &(Struct->Type17->TypeDetail)), Option);\r
a1d4bfcc 741 PRINT_STRUCT_VALUE_H (Struct, Type17, Speed);\r
742 PRINT_PENDING_STRING (Struct, Type17, Manufacturer);\r
743 PRINT_PENDING_STRING (Struct, Type17, SerialNumber);\r
744 PRINT_PENDING_STRING (Struct, Type17, AssetTag);\r
745 PRINT_PENDING_STRING (Struct, Type17, PartNumber);\r
187cb3dd 746 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct->Hdr->Length > 0x1B)) {\r
a1d4bfcc 747 PRINT_STRUCT_VALUE_H (Struct, Type17, Attributes);\r
5d73d92f 748 }\r
187cb3dd
SZ
749 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0x1C)) {\r
750 PRINT_STRUCT_VALUE (Struct, Type17, ExtendedSize);\r
751 PRINT_STRUCT_VALUE (Struct, Type17, ConfiguredMemoryClockSpeed);\r
752 }\r
09d1c9e6
SEHM
753 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct->Hdr->Length > 0x22)) {\r
754 PRINT_STRUCT_VALUE (Struct, Type17, MinimumVoltage);\r
755 PRINT_STRUCT_VALUE (Struct, Type17, MaximumVoltage);\r
756 PRINT_STRUCT_VALUE (Struct, Type17, ConfiguredVoltage);\r
757 }\r
5d73d92f 758 break;\r
759\r
760 //\r
761 // 32-bit Memory Error Information (Type 18)\r
762 //\r
763 case 18:\r
a1d4bfcc 764 DisplayMemoryErrorType (Struct->Type18->ErrorType, Option);\r
5d73d92f 765 DisplayMemoryErrorGranularity (\r
a1d4bfcc 766 Struct->Type18->ErrorGranularity,\r
5d73d92f 767 Option\r
768 );\r
a1d4bfcc 769 DisplayMemoryErrorOperation (Struct->Type18->ErrorOperation, Option);\r
770 PRINT_STRUCT_VALUE_H (Struct, Type18, VendorSyndrome);\r
771 PRINT_STRUCT_VALUE_H (Struct, Type18, MemoryArrayErrorAddress);\r
772 PRINT_STRUCT_VALUE_H (Struct, Type18, DeviceErrorAddress);\r
773 PRINT_STRUCT_VALUE_H (Struct, Type18, ErrorResolution);\r
5d73d92f 774 break;\r
775\r
776 //\r
777 // Memory Array Mapped Address (Type 19)\r
778 //\r
779 case 19:\r
a1d4bfcc 780 PRINT_STRUCT_VALUE_H (Struct, Type19, StartingAddress);\r
781 PRINT_STRUCT_VALUE_H (Struct, Type19, EndingAddress);\r
782 PRINT_STRUCT_VALUE_H (Struct, Type19, MemoryArrayHandle);\r
783 PRINT_STRUCT_VALUE_H (Struct, Type19, PartitionWidth);\r
187cb3dd 784 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0xF)) {\r
4641e700 785 PRINT_STRUCT_VALUE_LH (Struct, Type19, ExtendedStartingAddress);\r
786 PRINT_STRUCT_VALUE_LH (Struct, Type19, ExtendedEndingAddress);\r
787 }\r
5d73d92f 788 break;\r
789\r
790 //\r
187cb3dd 791 // Memory Device Mapped Address (Type 20)\r
5d73d92f 792 //\r
793 case 20:\r
a1d4bfcc 794 PRINT_STRUCT_VALUE_H (Struct, Type20, StartingAddress);\r
795 PRINT_STRUCT_VALUE_H (Struct, Type20, EndingAddress);\r
796 PRINT_STRUCT_VALUE_H (Struct, Type20, MemoryDeviceHandle);\r
797 PRINT_STRUCT_VALUE_H (Struct, Type20, MemoryArrayMappedAddressHandle);\r
798 PRINT_STRUCT_VALUE_H (Struct, Type20, PartitionRowPosition);\r
799 PRINT_STRUCT_VALUE_H (Struct, Type20, InterleavePosition);\r
800 PRINT_STRUCT_VALUE_H (Struct, Type20, InterleavedDataDepth);\r
187cb3dd
SZ
801 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0x13)) {\r
802 PRINT_STRUCT_VALUE_LH (Struct, Type19, ExtendedStartingAddress);\r
803 PRINT_STRUCT_VALUE_LH (Struct, Type19, ExtendedEndingAddress);\r
804 }\r
5d73d92f 805 break;\r
806\r
807 //\r
187cb3dd 808 // Built-in Pointing Device (Type 21)\r
5d73d92f 809 //\r
810 case 21:\r
a1d4bfcc 811 DisplayPointingDeviceType (Struct->Type21->Type, Option);\r
812 DisplayPointingDeviceInterface (Struct->Type21->Interface, Option);\r
813 PRINT_STRUCT_VALUE (Struct, Type21, NumberOfButtons);\r
5d73d92f 814 break;\r
815\r
816 //\r
187cb3dd 817 // Portable Battery (Type 22)\r
5d73d92f 818 //\r
819 case 22:\r
a1d4bfcc 820 PRINT_PENDING_STRING (Struct, Type22, Location);\r
821 PRINT_PENDING_STRING (Struct, Type22, Manufacturer);\r
822 PRINT_PENDING_STRING (Struct, Type22, ManufactureDate);\r
823 PRINT_PENDING_STRING (Struct, Type22, SerialNumber);\r
824 PRINT_PENDING_STRING (Struct, Type22, DeviceName);\r
5d73d92f 825 DisplayPBDeviceChemistry (\r
a1d4bfcc 826 Struct->Type22->DeviceChemistry,\r
5d73d92f 827 Option\r
828 );\r
a1d4bfcc 829 PRINT_STRUCT_VALUE_H (Struct, Type22, DeviceCapacity);\r
830 PRINT_STRUCT_VALUE_H (Struct, Type22, DesignVoltage);\r
831 PRINT_PENDING_STRING (Struct, Type22, SBDSVersionNumber);\r
832 PRINT_STRUCT_VALUE_H (Struct, Type22, MaximumErrorInBatteryData);\r
833 PRINT_STRUCT_VALUE_H (Struct, Type22, SBDSSerialNumber);\r
5d73d92f 834 DisplaySBDSManufactureDate (\r
a1d4bfcc 835 Struct->Type22->SBDSManufactureDate,\r
5d73d92f 836 Option\r
837 );\r
a1d4bfcc 838 PRINT_PENDING_STRING (Struct, Type22, SBDSDeviceChemistry);\r
839 PRINT_STRUCT_VALUE_H (Struct, Type22, DesignCapacityMultiplier);\r
840 PRINT_STRUCT_VALUE_H (Struct, Type22, OEMSpecific);\r
5d73d92f 841 break;\r
842\r
187cb3dd
SZ
843 //\r
844 // System Reset (Type 23)\r
845 //\r
5d73d92f 846 case 23:\r
847 DisplaySystemResetCapabilities (\r
a1d4bfcc 848 Struct->Type23->Capabilities,\r
5d73d92f 849 Option\r
850 );\r
a1d4bfcc 851 PRINT_STRUCT_VALUE_H (Struct, Type23, ResetCount);\r
852 PRINT_STRUCT_VALUE_H (Struct, Type23, ResetLimit);\r
853 PRINT_STRUCT_VALUE_H (Struct, Type23, TimerInterval);\r
854 PRINT_STRUCT_VALUE_H (Struct, Type23, Timeout);\r
5d73d92f 855 break;\r
856\r
187cb3dd
SZ
857 //\r
858 // Hardware Security (Type 24)\r
859 //\r
5d73d92f 860 case 24:\r
861 DisplayHardwareSecuritySettings (\r
a1d4bfcc 862 Struct->Type24->HardwareSecuritySettings,\r
5d73d92f 863 Option\r
864 );\r
865 break;\r
866\r
187cb3dd
SZ
867 //\r
868 // System Power Controls (Type 25)\r
869 //\r
5d73d92f 870 case 25:\r
a1d4bfcc 871 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnMonth);\r
872 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnDayOfMonth);\r
873 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnHour);\r
874 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnMinute);\r
875 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnSecond);\r
5d73d92f 876 break;\r
877\r
187cb3dd
SZ
878 //\r
879 // Voltage Probe (Type 26)\r
880 //\r
5d73d92f 881 case 26:\r
a1d4bfcc 882 PRINT_PENDING_STRING (Struct, Type26, Description);\r
187cb3dd
SZ
883 DisplayVPLocation (*(UINT8 *) &(Struct->Type26->LocationAndStatus), Option);\r
884 DisplayVPStatus (*(UINT8 *) &(Struct->Type26->LocationAndStatus), Option);\r
a1d4bfcc 885 PRINT_STRUCT_VALUE_H (Struct, Type26, MaximumValue);\r
886 PRINT_STRUCT_VALUE_H (Struct, Type26, MinimumValue);\r
887 PRINT_STRUCT_VALUE_H (Struct, Type26, Resolution);\r
888 PRINT_STRUCT_VALUE_H (Struct, Type26, Tolerance);\r
889 PRINT_STRUCT_VALUE_H (Struct, Type26, Accuracy);\r
890 PRINT_STRUCT_VALUE_H (Struct, Type26, OEMDefined);\r
891 PRINT_STRUCT_VALUE_H (Struct, Type26, NominalValue);\r
5d73d92f 892 break;\r
893\r
187cb3dd
SZ
894 //\r
895 // Cooling Device (Type 27)\r
896 //\r
5d73d92f 897 case 27:\r
a1d4bfcc 898 PRINT_STRUCT_VALUE_H (Struct, Type27, TemperatureProbeHandle);\r
187cb3dd
SZ
899 DisplayCoolingDeviceStatus (*(UINT8 *) &(Struct->Type27->DeviceTypeAndStatus), Option);\r
900 DisplayCoolingDeviceType (*(UINT8 *) &(Struct->Type27->DeviceTypeAndStatus), Option);\r
a1d4bfcc 901 PRINT_STRUCT_VALUE_H (Struct, Type27, CoolingUnitGroup);\r
902 PRINT_STRUCT_VALUE_H (Struct, Type27, OEMDefined);\r
903 PRINT_STRUCT_VALUE_H (Struct, Type27, NominalSpeed);\r
187cb3dd
SZ
904 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0xE)) {\r
905 PRINT_PENDING_STRING (Struct, Type27, Description);\r
906 }\r
5d73d92f 907 break;\r
908\r
187cb3dd
SZ
909 //\r
910 // Temperature Probe (Type 28)\r
911 //\r
5d73d92f 912 case 28:\r
a1d4bfcc 913 PRINT_PENDING_STRING (Struct, Type28, Description);\r
187cb3dd
SZ
914 DisplayTemperatureProbeStatus (*(UINT8 *) &(Struct->Type28->LocationAndStatus), Option);\r
915 DisplayTemperatureProbeLoc (*(UINT8 *) &(Struct->Type28->LocationAndStatus), Option);\r
a1d4bfcc 916 PRINT_STRUCT_VALUE_H (Struct, Type28, MaximumValue);\r
917 PRINT_STRUCT_VALUE_H (Struct, Type28, MinimumValue);\r
918 PRINT_STRUCT_VALUE_H (Struct, Type28, Resolution);\r
919 PRINT_STRUCT_VALUE_H (Struct, Type28, Tolerance);\r
920 PRINT_STRUCT_VALUE_H (Struct, Type28, Accuracy);\r
921 PRINT_STRUCT_VALUE_H (Struct, Type28, OEMDefined);\r
922 PRINT_STRUCT_VALUE_H (Struct, Type28, NominalValue);\r
5d73d92f 923 break;\r
924\r
187cb3dd
SZ
925 //\r
926 // Electrical Current Probe (Type 29)\r
927 //\r
5d73d92f 928 case 29:\r
a1d4bfcc 929 PRINT_PENDING_STRING (Struct, Type29, Description);\r
187cb3dd
SZ
930 DisplayECPStatus (*(UINT8 *) &(Struct->Type29->LocationAndStatus), Option);\r
931 DisplayECPLoc (*(UINT8 *) &(Struct->Type29->LocationAndStatus), Option);\r
a1d4bfcc 932 PRINT_STRUCT_VALUE_H (Struct, Type29, MaximumValue);\r
933 PRINT_STRUCT_VALUE_H (Struct, Type29, MinimumValue);\r
934 PRINT_STRUCT_VALUE_H (Struct, Type29, Resolution);\r
935 PRINT_STRUCT_VALUE_H (Struct, Type29, Tolerance);\r
936 PRINT_STRUCT_VALUE_H (Struct, Type29, Accuracy);\r
937 PRINT_STRUCT_VALUE_H (Struct, Type29, OEMDefined);\r
938 PRINT_STRUCT_VALUE_H (Struct, Type29, NominalValue);\r
5d73d92f 939 break;\r
940\r
187cb3dd
SZ
941 //\r
942 // Out-of-Band Remote Access (Type 30)\r
943 //\r
5d73d92f 944 case 30:\r
a1d4bfcc 945 PRINT_PENDING_STRING (Struct, Type30, ManufacturerName);\r
946 DisplayOBRAConnections (Struct->Type30->Connections, Option);\r
5d73d92f 947 break;\r
948\r
187cb3dd
SZ
949 //\r
950 // Boot Integrity Services (BIS) Entry Point (Type 31)\r
951 //\r
5d73d92f 952 case 31:\r
953 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31), gShellDebug1HiiHandle);\r
954 break;\r
955\r
187cb3dd
SZ
956 //\r
957 // System Boot Information (Type 32)\r
958 //\r
5d73d92f 959 case 32:\r
a1d4bfcc 960 PRINT_BIT_FIELD (Struct, Type32, Reserved, 6);\r
187cb3dd 961 DisplaySystemBootStatus (Struct->Type32->BootStatus, Option);\r
5d73d92f 962 break;\r
963\r
187cb3dd
SZ
964 //\r
965 // 64-Bit Memory Error Information (Type 33)\r
966 //\r
5d73d92f 967 case 33:\r
a1d4bfcc 968 DisplayMemoryErrorType (Struct->Type33->ErrorType, Option);\r
5d73d92f 969 DisplayMemoryErrorGranularity (\r
a1d4bfcc 970 Struct->Type33->ErrorGranularity,\r
5d73d92f 971 Option\r
972 );\r
a1d4bfcc 973 DisplayMemoryErrorOperation (Struct->Type33->ErrorOperation, Option);\r
974 PRINT_STRUCT_VALUE_H (Struct, Type33, VendorSyndrome);\r
187cb3dd
SZ
975 PRINT_STRUCT_VALUE_LH (Struct, Type33, MemoryArrayErrorAddress);\r
976 PRINT_STRUCT_VALUE_LH (Struct, Type33, DeviceErrorAddress);\r
a1d4bfcc 977 PRINT_STRUCT_VALUE_H (Struct, Type33, ErrorResolution);\r
5d73d92f 978 break;\r
979\r
980 //\r
187cb3dd 981 // Management Device (Type 34)\r
5d73d92f 982 //\r
983 case 34:\r
a1d4bfcc 984 PRINT_PENDING_STRING (Struct, Type34, Description);\r
985 DisplayMDType (Struct->Type34->Type, Option);\r
986 PRINT_STRUCT_VALUE_H (Struct, Type34, Address);\r
187cb3dd 987 DisplayMDAddressType (Struct->Type34->AddressType, Option);\r
5d73d92f 988 break;\r
989\r
187cb3dd
SZ
990 //\r
991 // Management Device Component (Type 35)\r
992 //\r
5d73d92f 993 case 35:\r
a1d4bfcc 994 PRINT_PENDING_STRING (Struct, Type35, Description);\r
995 PRINT_STRUCT_VALUE_H (Struct, Type35, ManagementDeviceHandle);\r
996 PRINT_STRUCT_VALUE_H (Struct, Type35, ComponentHandle);\r
997 PRINT_STRUCT_VALUE_H (Struct, Type35, ThresholdHandle);\r
5d73d92f 998 break;\r
999\r
187cb3dd
SZ
1000 //\r
1001 // Management Device Threshold Data (Type 36)\r
1002 //\r
5d73d92f 1003 case 36:\r
a1d4bfcc 1004 PRINT_STRUCT_VALUE_H (Struct, Type36, LowerThresholdNonCritical);\r
1005 PRINT_STRUCT_VALUE_H (Struct, Type36, UpperThresholdNonCritical);\r
1006 PRINT_STRUCT_VALUE_H (Struct, Type36, LowerThresholdCritical);\r
1007 PRINT_STRUCT_VALUE_H (Struct, Type36, UpperThresholdCritical);\r
1008 PRINT_STRUCT_VALUE_H (Struct, Type36, LowerThresholdNonRecoverable);\r
1009 PRINT_STRUCT_VALUE_H (Struct, Type36, UpperThresholdNonRecoverable);\r
5d73d92f 1010 break;\r
1011\r
1012 //\r
187cb3dd 1013 // Memory Channel (Type 37)\r
5d73d92f 1014 //\r
1015 case 37:\r
1016 {\r
187cb3dd
SZ
1017 UINT8 Count;\r
1018 MEMORY_DEVICE *Ptr;\r
a1d4bfcc 1019 DisplayMemoryChannelType (Struct->Type37->ChannelType, Option);\r
1020 PRINT_STRUCT_VALUE_H (Struct, Type37, MaximumChannelLoad);\r
1021 PRINT_STRUCT_VALUE_H (Struct, Type37, MemoryDeviceCount);\r
5d73d92f 1022\r
a1d4bfcc 1023 Count = Struct->Type37->MemoryDeviceCount;\r
1024 Ptr = Struct->Type37->MemoryDevice;\r
5d73d92f 1025 for (Index = 0; Index < Count; Index++) {\r
1026 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE), gShellDebug1HiiHandle, Index + 1);\r
187cb3dd
SZ
1027 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD), gShellDebug1HiiHandle, Ptr[Index].DeviceLoad);\r
1028 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE), gShellDebug1HiiHandle, Ptr[Index].DeviceHandle);\r
5d73d92f 1029 }\r
1030 }\r
1031 break;\r
1032\r
1033 //\r
187cb3dd 1034 // IPMI Device Information (Type 38)\r
5d73d92f 1035 //\r
1036 case 38:\r
a1d4bfcc 1037 DisplayIPMIDIBMCInterfaceType (Struct->Type38->InterfaceType, Option);\r
1038 PRINT_STRUCT_VALUE_H (Struct, Type38, IPMISpecificationRevision);\r
1039 PRINT_STRUCT_VALUE_H (Struct, Type38, I2CSlaveAddress);\r
1040 PRINT_STRUCT_VALUE_H (Struct, Type38, NVStorageDeviceAddress);\r
187cb3dd 1041 PRINT_STRUCT_VALUE_LH (Struct, Type38, BaseAddress);\r
5d73d92f 1042 break;\r
1043\r
1044 //\r
1045 // System Power Supply (Type 39)\r
1046 //\r
1047 case 39:\r
a1d4bfcc 1048 PRINT_STRUCT_VALUE_H (Struct, Type39, PowerUnitGroup);\r
1049 PRINT_PENDING_STRING (Struct, Type39, Location);\r
1050 PRINT_PENDING_STRING (Struct, Type39, DeviceName);\r
1051 PRINT_PENDING_STRING (Struct, Type39, Manufacturer);\r
1052 PRINT_PENDING_STRING (Struct, Type39, SerialNumber);\r
1053 PRINT_PENDING_STRING (Struct, Type39, AssetTagNumber);\r
1054 PRINT_PENDING_STRING (Struct, Type39, ModelPartNumber);\r
1055 PRINT_PENDING_STRING (Struct, Type39, RevisionLevel);\r
1056 PRINT_STRUCT_VALUE_H (Struct, Type39, MaxPowerCapacity);\r
5d73d92f 1057 DisplaySPSCharacteristics (\r
187cb3dd 1058 *(UINT16 *) &(Struct->Type39->PowerSupplyCharacteristics),\r
5d73d92f 1059 Option\r
1060 );\r
a1d4bfcc 1061 PRINT_STRUCT_VALUE_H (Struct, Type39, InputVoltageProbeHandle);\r
1062 PRINT_STRUCT_VALUE_H (Struct, Type39, CoolingDeviceHandle);\r
1063 PRINT_STRUCT_VALUE_H (Struct, Type39, InputCurrentProbeHandle);\r
5d73d92f 1064 break;\r
1065\r
1066 //\r
1067 // Additional Information (Type 40)\r
1068 //\r
1069 case 40:\r
1070 {\r
1071 UINT8 NumberOfEntries;\r
1072 UINT8 EntryLength;\r
1073 ADDITIONAL_INFORMATION_ENTRY *Entries;\r
1074\r
1075 EntryLength = 0;\r
a1d4bfcc 1076 Entries = Struct->Type40->AdditionalInfoEntries;\r
1077 NumberOfEntries = Struct->Type40->NumberOfAdditionalInformationEntries;\r
5d73d92f 1078\r
a1d4bfcc 1079 PRINT_STRUCT_VALUE_H (Struct, Type40, NumberOfAdditionalInformationEntries);\r
5d73d92f 1080\r
1081 for (Index = 0; Index < NumberOfEntries; Index++) {\r
1082 EntryLength = Entries->EntryLength;\r
1083 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN), gShellDebug1HiiHandle, EntryLength);\r
1084 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE), gShellDebug1HiiHandle, Entries->ReferencedHandle);\r
1085 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET), gShellDebug1HiiHandle, Entries->ReferencedOffset);\r
a1d4bfcc 1086 PRINT_SMBIOS_STRING (Struct, Entries->EntryString, String);\r
1087 PRINT_SMBIOS_BIT_FIELD (Struct, Entries->Value, Value, EntryLength - 5);\r
5d73d92f 1088 Entries = (ADDITIONAL_INFORMATION_ENTRY *) ((UINT8 *)Entries + EntryLength);\r
1089 }\r
1090 }\r
1091 break;\r
1092\r
1093 //\r
1094 // Onboard Devices Extended Information (Type 41)\r
1095 //\r
1096 case 41:\r
a1d4bfcc 1097 PRINT_PENDING_STRING (Struct, Type41, ReferenceDesignation);\r
187cb3dd
SZ
1098 ShellPrintEx(-1,-1,(((Struct->Type41->DeviceType) & 0x80) != 0) ? L"Device Enabled\n": L"Device Disabled\n");\r
1099 DisplayOnboardDeviceTypes ((Struct->Type41->DeviceType) & 0x7F, Option);\r
a1d4bfcc 1100 PRINT_STRUCT_VALUE_H (Struct, Type41, DeviceTypeInstance);\r
1101 PRINT_STRUCT_VALUE_H (Struct, Type41, SegmentGroupNum);\r
1102 PRINT_STRUCT_VALUE_H (Struct, Type41, BusNum);\r
1103 PRINT_STRUCT_VALUE_H (Struct, Type41, DevFuncNum);\r
5d73d92f 1104 break;\r
1105\r
187cb3dd
SZ
1106 //\r
1107 // Management Controller Host Interface (Type 42)\r
1108 //\r
1109 case 42:\r
5734d486 1110 DisplayMCHostInterfaceType (Struct->Type42->InterfaceType, Option);\r
187cb3dd
SZ
1111 break;\r
1112\r
e9f0be02
LA
1113 //\r
1114 // TPM Device (Type 43)\r
1115 //\r
1116 case 43:\r
1117 PRINT_BIT_FIELD (Struct, Type43, VendorID, 4);\r
1118 PRINT_STRUCT_VALUE_H (Struct, Type43, MajorSpecVersion);\r
1119 PRINT_STRUCT_VALUE_H (Struct, Type43, MinorSpecVersion);\r
1120 PRINT_STRUCT_VALUE_H (Struct, Type43, FirmwareVersion1);\r
1121 PRINT_STRUCT_VALUE_H (Struct, Type43, FirmwareVersion2);\r
1122 PRINT_PENDING_STRING (Struct, Type43, Description);\r
1123 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64 *) (UINTN) &(Struct->Type43->Characteristics)), Option);\r
1124 PRINT_STRUCT_VALUE_H (Struct, Type43, OemDefined);\r
1125 break;\r
1126\r
187cb3dd
SZ
1127 //\r
1128 // Inactive (Type 126)\r
1129 //\r
5d73d92f 1130 case 126:\r
1131 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT), gShellDebug1HiiHandle);\r
1132 break;\r
1133\r
187cb3dd
SZ
1134 //\r
1135 // End-of-Table (Type 127)\r
1136 //\r
5d73d92f 1137 case 127:\r
1138 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE), gShellDebug1HiiHandle);\r
1139 break;\r
1140\r
1141 default:\r
1142 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED), gShellDebug1HiiHandle);\r
1143 break;\r
1144 }\r
1145\r
1146 return EFI_SUCCESS;\r
1147}\r
1148\r
a1d4bfcc 1149/**\r
1150 Display BIOS Information (Type 0) information.\r
1151\r
1152 @param[in] Chara The information bits.\r
1153 @param[in] Option The optional information.\r
1154**/\r
5d73d92f 1155VOID\r
1156DisplayBiosCharacteristics (\r
a1d4bfcc 1157 IN UINT64 Chara,\r
1158 IN UINT8 Option\r
5d73d92f 1159 )\r
1160{\r
1161 //\r
1162 // Print header\r
1163 //\r
1164 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR), gShellDebug1HiiHandle);\r
1165 //\r
1166 // print option\r
1167 //\r
a1d4bfcc 1168 PRINT_INFO_OPTION (Chara, Option);\r
5d73d92f 1169\r
1170 //\r
1171 // Check all the bits and print information\r
1172 // This function does not use Table because table of bits\r
1173 // are designed not to deal with UINT64\r
1174 //\r
a1d4bfcc 1175 if (BIT (Chara, 0) != 0) {\r
5d73d92f 1176 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gShellDebug1HiiHandle);\r
1177 }\r
1178\r
a1d4bfcc 1179 if (BIT (Chara, 1) != 0) {\r
5d73d92f 1180 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gShellDebug1HiiHandle);\r
1181 }\r
1182\r
a1d4bfcc 1183 if (BIT (Chara, 2) != 0) {\r
5d73d92f 1184 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT), gShellDebug1HiiHandle);\r
1185 }\r
1186\r
a1d4bfcc 1187 if (BIT (Chara, 3) != 0) {\r
5d73d92f 1188 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED), gShellDebug1HiiHandle);\r
1189 }\r
1190\r
a1d4bfcc 1191 if (BIT (Chara, 4) != 0) {\r
5d73d92f 1192 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED), gShellDebug1HiiHandle);\r
1193 }\r
1194\r
a1d4bfcc 1195 if (BIT (Chara, 5) != 0) {\r
5d73d92f 1196 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED), gShellDebug1HiiHandle);\r
1197 }\r
1198\r
a1d4bfcc 1199 if (BIT (Chara, 6) != 0) {\r
5d73d92f 1200 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED), gShellDebug1HiiHandle);\r
1201 }\r
1202\r
a1d4bfcc 1203 if (BIT (Chara, 7) != 0) {\r
5d73d92f 1204 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED), gShellDebug1HiiHandle);\r
1205 }\r
1206\r
a1d4bfcc 1207 if (BIT (Chara, 8) != 0) {\r
5d73d92f 1208 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED), gShellDebug1HiiHandle);\r
1209 }\r
1210\r
a1d4bfcc 1211 if (BIT (Chara, 9) != 0) {\r
5d73d92f 1212 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED), gShellDebug1HiiHandle);\r
1213 }\r
1214\r
a1d4bfcc 1215 if (BIT (Chara, 10) != 0) {\r
5d73d92f 1216 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED), gShellDebug1HiiHandle);\r
1217 }\r
1218\r
a1d4bfcc 1219 if (BIT (Chara, 11) != 0) {\r
5d73d92f 1220 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE), gShellDebug1HiiHandle);\r
1221 }\r
1222\r
a1d4bfcc 1223 if (BIT (Chara, 12) != 0) {\r
5d73d92f 1224 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING), gShellDebug1HiiHandle);\r
1225 }\r
1226\r
a1d4bfcc 1227 if (BIT (Chara, 13) != 0) {\r
5d73d92f 1228 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED), gShellDebug1HiiHandle);\r
1229 }\r
1230\r
a1d4bfcc 1231 if (BIT (Chara, 14) != 0) {\r
5d73d92f 1232 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT), gShellDebug1HiiHandle);\r
1233 }\r
1234\r
a1d4bfcc 1235 if (BIT (Chara, 15) != 0) {\r
5d73d92f 1236 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED), gShellDebug1HiiHandle);\r
1237 }\r
1238\r
a1d4bfcc 1239 if (BIT (Chara, 16) != 0) {\r
5d73d92f 1240 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED), gShellDebug1HiiHandle);\r
1241 }\r
1242\r
a1d4bfcc 1243 if (BIT (Chara, 17) != 0) {\r
5d73d92f 1244 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED), gShellDebug1HiiHandle);\r
1245 }\r
1246\r
a1d4bfcc 1247 if (BIT (Chara, 18) != 0) {\r
5d73d92f 1248 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD), gShellDebug1HiiHandle);\r
1249 }\r
1250\r
a1d4bfcc 1251 if (BIT (Chara, 19) != 0) {\r
5d73d92f 1252 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER), gShellDebug1HiiHandle);\r
1253 }\r
1254\r
a1d4bfcc 1255 if (BIT (Chara, 20) != 0) {\r
5d73d92f 1256 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC), gShellDebug1HiiHandle);\r
1257 }\r
1258\r
a1d4bfcc 1259 if (BIT (Chara, 21) != 0) {\r
5d73d92f 1260 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA), gShellDebug1HiiHandle);\r
1261 }\r
1262\r
a1d4bfcc 1263 if (BIT (Chara, 22) != 0) {\r
5d73d92f 1264 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED), gShellDebug1HiiHandle);\r
1265 }\r
1266\r
a1d4bfcc 1267 if (BIT (Chara, 23) != 0) {\r
5d73d92f 1268 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB), gShellDebug1HiiHandle);\r
1269 }\r
1270\r
a1d4bfcc 1271 if (BIT (Chara, 24) != 0) {\r
5d73d92f 1272 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB), gShellDebug1HiiHandle);\r
1273 }\r
1274\r
a1d4bfcc 1275 if (BIT (Chara, 25) != 0) {\r
5d73d92f 1276 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB), gShellDebug1HiiHandle);\r
1277 }\r
1278\r
a1d4bfcc 1279 if (BIT (Chara, 26) != 0) {\r
5d73d92f 1280 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT), gShellDebug1HiiHandle);\r
1281 }\r
1282\r
a1d4bfcc 1283 if (BIT (Chara, 27) != 0) {\r
5d73d92f 1284 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT), gShellDebug1HiiHandle);\r
1285 }\r
1286\r
a1d4bfcc 1287 if (BIT (Chara, 28) != 0) {\r
5d73d92f 1288 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT), gShellDebug1HiiHandle);\r
1289 }\r
1290\r
a1d4bfcc 1291 if (BIT (Chara, 29) != 0) {\r
5d73d92f 1292 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT), gShellDebug1HiiHandle);\r
1293 }\r
1294\r
a1d4bfcc 1295 if (BIT (Chara, 30) != 0) {\r
5d73d92f 1296 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT), gShellDebug1HiiHandle);\r
1297 }\r
1298\r
a1d4bfcc 1299 if (BIT (Chara, 31) != 0) {\r
5d73d92f 1300 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98), gShellDebug1HiiHandle);\r
1301 }\r
1302 //\r
a1d4bfcc 1303 // Just print the Reserved\r
5d73d92f 1304 //\r
1305 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47), gShellDebug1HiiHandle);\r
1306 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64), gShellDebug1HiiHandle);\r
1307}\r
1308\r
a1d4bfcc 1309/**\r
1310 Display Bios Characteristice extensions1 information.\r
1311\r
1312 @param[in] Byte1 The information.\r
1313 @param[in] Option The optional information.\r
1314**/\r
5d73d92f 1315VOID\r
1316DisplayBiosCharacteristicsExt1 (\r
a1d4bfcc 1317 IN UINT8 Byte1,\r
1318 IN UINT8 Option\r
5d73d92f 1319 )\r
1320{\r
1321 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION), gShellDebug1HiiHandle);\r
1322 //\r
1323 // Print option\r
1324 //\r
a1d4bfcc 1325 PRINT_INFO_OPTION (Byte1, Option);\r
5d73d92f 1326\r
1327 //\r
1328 // check bit and print\r
1329 //\r
a1d4bfcc 1330 if (BIT (Byte1, 0) != 0) {\r
5d73d92f 1331 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED), gShellDebug1HiiHandle);\r
1332 }\r
1333\r
a1d4bfcc 1334 if (BIT (Byte1, 1) != 0) {\r
5d73d92f 1335 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED), gShellDebug1HiiHandle);\r
1336 }\r
1337\r
a1d4bfcc 1338 if (BIT (Byte1, 2) != 0) {\r
5d73d92f 1339 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED), gShellDebug1HiiHandle);\r
1340 }\r
1341\r
a1d4bfcc 1342 if (BIT (Byte1, 3) != 0) {\r
5d73d92f 1343 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED), gShellDebug1HiiHandle);\r
1344 }\r
1345\r
a1d4bfcc 1346 if (BIT (Byte1, 4) != 0) {\r
5d73d92f 1347 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED), gShellDebug1HiiHandle);\r
1348 }\r
1349\r
a1d4bfcc 1350 if (BIT (Byte1, 5) != 0) {\r
5d73d92f 1351 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE), gShellDebug1HiiHandle);\r
1352 }\r
1353\r
a1d4bfcc 1354 if (BIT (Byte1, 6) != 0) {\r
5d73d92f 1355 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED), gShellDebug1HiiHandle);\r
1356 }\r
1357\r
a1d4bfcc 1358 if (BIT (Byte1, 7) != 0) {\r
5d73d92f 1359 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED), gShellDebug1HiiHandle);\r
1360 }\r
1361}\r
1362\r
a1d4bfcc 1363/**\r
1364 Display Bios Characteristice extensions2 information.\r
1365\r
1366 @param[in] byte2 The information.\r
1367 @param[in] Option The optional information.\r
1368**/\r
5d73d92f 1369VOID\r
1370DisplayBiosCharacteristicsExt2 (\r
a1d4bfcc 1371 IN UINT8 byte2,\r
1372 IN UINT8 Option\r
5d73d92f 1373 )\r
1374{\r
1375 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2), gShellDebug1HiiHandle);\r
1376 //\r
1377 // Print option\r
1378 //\r
1379 PRINT_INFO_OPTION (byte2, Option);\r
1380\r
1381 if (BIT (byte2, 0) != 0) {\r
1382 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP), gShellDebug1HiiHandle);\r
1383 }\r
1384\r
1385 if (BIT (byte2, 1) != 0) {\r
1386 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT), gShellDebug1HiiHandle);\r
1387 }\r
1388\r
187cb3dd
SZ
1389 if (AE_SMBIOS_VERSION (0x2, 0x4)) {\r
1390 if (BIT (byte2, 2) != 0) {\r
1391 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST), gShellDebug1HiiHandle);\r
1392 }\r
1393 if (AE_SMBIOS_VERSION (0x2, 0x7)) {\r
1394 if (BIT (byte2, 3) != 0) {\r
1395 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT), gShellDebug1HiiHandle);\r
1396 }\r
1397 if (BIT (byte2, 4) != 0) {\r
1398 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE), gShellDebug1HiiHandle);\r
1399 }\r
1400 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE), gShellDebug1HiiHandle, 5);\r
1401 } else {\r
1402 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE), gShellDebug1HiiHandle, 3);\r
1403 }\r
1404 } else {\r
1405 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE), gShellDebug1HiiHandle, 2);\r
1406 }\r
5d73d92f 1407}\r
1408\r
a1d4bfcc 1409/**\r
1410 Display Processor Information (Type 4) information.\r
1411\r
1412 @param[in] Family The family value.\r
1413 @param[in] Option The option value.\r
1414**/\r
5d73d92f 1415VOID\r
1416DisplayProcessorFamily (\r
1417 UINT8 Family,\r
1418 UINT8 Option\r
1419 )\r
1420{\r
1421 //\r
1422 // Print prompt message\r
1423 //\r
1424 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY), gShellDebug1HiiHandle);\r
1425 //\r
1426 // Print option\r
1427 //\r
1428 PRINT_INFO_OPTION (Family, Option);\r
1429\r
1430 //\r
1431 // Use switch to check\r
1432 //\r
1433 switch (Family) {\r
1434 case 0x01:\r
1435 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER), gShellDebug1HiiHandle);\r
1436 break;\r
1437\r
1438 case 0x02:\r
1439 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
1440 break;\r
1441\r
1442 case 0x03:\r
1443 Print (L"8086\n");\r
1444 break;\r
1445\r
1446 case 0x04:\r
1447 Print (L"80286\n");\r
1448 break;\r
1449\r
1450 case 0x05:\r
1451 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR), gShellDebug1HiiHandle);\r
1452 break;\r
1453\r
1454 case 0x06:\r
1455 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR), gShellDebug1HiiHandle);\r
1456 break;\r
1457\r
1458 case 0x07:\r
1459 Print (L"8087\n");\r
1460 break;\r
1461\r
1462 case 0x08:\r
1463 Print (L"80287\n");\r
1464 break;\r
1465\r
1466 case 0x09:\r
1467 Print (L"80387\n");\r
1468 break;\r
1469\r
1470 case 0x0A:\r
1471 Print (L"80487\n");\r
1472 break;\r
1473\r
1474 case 0x0B:\r
1475 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY), gShellDebug1HiiHandle);\r
1476 break;\r
1477\r
1478 case 0x0C:\r
1479 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC), gShellDebug1HiiHandle);\r
1480 break;\r
1481\r
1482 case 0x0D:\r
1483 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC), gShellDebug1HiiHandle);\r
1484 break;\r
1485\r
1486 case 0x0E:\r
1487 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX), gShellDebug1HiiHandle);\r
1488 break;\r
1489\r
1490 case 0x0F:\r
1491 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC), gShellDebug1HiiHandle);\r
1492 break;\r
1493\r
1494 case 0x10:\r
1495 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC), gShellDebug1HiiHandle);\r
1496 break;\r
1497\r
1498 case 0x11:\r
1499 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC), gShellDebug1HiiHandle);\r
1500 break;\r
1501\r
1502 case 0x12:\r
1503 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY), gShellDebug1HiiHandle);\r
1504 break;\r
1505\r
187cb3dd
SZ
1506 case 0x13:\r
1507 Print (L"M2 Family\n");\r
1508 break;\r
1509\r
1510 case 0x14:\r
1511 Print (L"Intel Celeron M\n");\r
1512 break;\r
1513\r
1514 case 0x15:\r
1515 Print (L"Intel Pentium 4 HT\n");\r
1516 break;\r
1517\r
5d73d92f 1518 case 0x18:\r
1519 Print (L"AMD Duron\n");\r
1520 break;\r
1521\r
1522 case 0x19:\r
1523 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY), gShellDebug1HiiHandle);\r
1524 break;\r
1525\r
187cb3dd
SZ
1526 case 0x1A:\r
1527 Print (L"K6 Family\n");\r
1528 break;\r
1529\r
1530 case 0x1B:\r
1531 Print (L"K6-2\n");\r
1532 break;\r
1533\r
1534 case 0x1C:\r
1535 Print (L"K6-3\n");\r
1536 break;\r
1537\r
1538 case 0x1D:\r
1539 Print (L"AMD Althon Processor Family\n");\r
1540 break;\r
1541\r
1542 case 0x1E:\r
1543 Print (L"AMD 29000 Family\n");\r
1544 break;\r
1545\r
1546 case 0x1F:\r
1547 Print (L"K6-2+\n");\r
1548 break;\r
1549\r
5d73d92f 1550 case 0x20:\r
1551 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY), gShellDebug1HiiHandle);\r
1552 break;\r
1553\r
1554 case 0x21:\r
1555 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601), gShellDebug1HiiHandle);\r
1556 break;\r
1557\r
1558 case 0x22:\r
1559 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603), gShellDebug1HiiHandle);\r
1560 break;\r
1561\r
1562 case 0x23:\r
1563 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS), gShellDebug1HiiHandle);\r
1564 break;\r
1565\r
1566 case 0x24:\r
1567 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604), gShellDebug1HiiHandle);\r
1568 break;\r
1569\r
1570 case 0x25:\r
1571 Print (L"Power PC 620\n");\r
1572 break;\r
1573\r
1574 case 0x26:\r
1575 Print (L"Power PC 704\n");\r
1576 break;\r
1577\r
1578 case 0x27:\r
1579 Print (L"Power PC 750\n");\r
1580 break;\r
1581\r
1582 case 0x28:\r
1583 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO), gShellDebug1HiiHandle);\r
1584 break;\r
1585\r
1586 case 0x29:\r
1587 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE), gShellDebug1HiiHandle);\r
1588 break;\r
1589\r
1590 case 0x2A:\r
1591 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE), gShellDebug1HiiHandle);\r
1592 break;\r
1593\r
1594 case 0x2B:\r
1595 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM), gShellDebug1HiiHandle);\r
1596 break;\r
1597\r
c326e078
SZ
1598 case 0x2C:\r
1599 Print (L"Intel(R) Core(TM) M processor\n");\r
1600 break;\r
1601\r
44175ee7
SZ
1602 case 0x2D:\r
1603 Print (L"Intel(R) Core(TM) m3 processor\n");\r
1604 break;\r
1605\r
1606 case 0x2E:\r
1607 Print (L"Intel(R) Core(TM) m5 processor\n");\r
1608 break;\r
1609\r
1610 case 0x2F:\r
1611 Print (L"Intel(R) Core(TM) m7 processor\n");\r
1612 break;\r
1613\r
5d73d92f 1614 case 0x30:\r
1615 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2), gShellDebug1HiiHandle);\r
1616 break;\r
1617\r
1618 case 0x31:\r
1619 Print (L"Alpha 21064\n");\r
1620 break;\r
1621\r
1622 case 0x32:\r
1623 Print (L"Alpha 21066\n");\r
1624 break;\r
1625\r
1626 case 0x33:\r
1627 Print (L"Alpha 21164\n");\r
1628 break;\r
1629\r
1630 case 0x34:\r
1631 Print (L"Alpha 21164PC\n");\r
1632 break;\r
1633\r
1634 case 0x35:\r
1635 Print (L"Alpha 21164a\n");\r
1636 break;\r
1637\r
1638 case 0x36:\r
1639 Print (L"Alpha 21264\n");\r
1640 break;\r
1641\r
1642 case 0x37:\r
1643 Print (L"Alpha 21364\n");\r
1644 break;\r
1645\r
187cb3dd
SZ
1646 case 0x38:\r
1647 Print (L"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");\r
1648 break;\r
1649\r
1650 case 0x39:\r
1651 Print (L"AMD Turion II Dual-Core Mobile M Processor Family\n");\r
1652 break;\r
1653\r
1654 case 0x3A:\r
1655 Print (L"AMD Althon II Dual-Core M Processor Family\n");\r
1656 break;\r
1657\r
1658 case 0x3B:\r
1659 Print (L"AMD Opteron 6100 Series Processor\n");\r
1660 break;\r
1661\r
1662 case 0x3C:\r
1663 Print (L"AMD Opteron 4100 Series Processor\n");\r
1664 break;\r
1665\r
1666 case 0x3D:\r
1667 Print (L"AMD Opteron 6200 Series Processor\n");\r
1668 break;\r
1669\r
1670 case 0x3E:\r
1671 Print (L"AMD Opteron 4200 Series Processor\n");\r
1672 break;\r
1673\r
073fe587
SEHM
1674 case 0x3F:\r
1675 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES), gShellDebug1HiiHandle);\r
1676 break;\r
1677\r
5d73d92f 1678 case 0x40:\r
1679 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY), gShellDebug1HiiHandle);\r
1680 break;\r
1681\r
1682 case 0x41:\r
1683 Print (L"MIPS R4000\n");\r
1684 break;\r
1685\r
1686 case 0x42:\r
1687 Print (L"MIPS R4200\n");\r
1688 break;\r
1689\r
1690 case 0x43:\r
1691 Print (L"MIPS R4400\n");\r
1692 break;\r
1693\r
1694 case 0x44:\r
1695 Print (L"MIPS R4600\n");\r
1696 break;\r
1697\r
1698 case 0x45:\r
1699 Print (L"MIPS R10000\n");\r
1700 break;\r
1701\r
187cb3dd
SZ
1702 case 0x46:\r
1703 Print (L"AMD C-Series Processor\n");\r
1704 break;\r
1705\r
1706 case 0x47:\r
1707 Print (L"AMD E-Series Processor\n");\r
1708 break;\r
1709\r
1710 case 0x48:\r
073fe587 1711 Print (L"AMD A-Series Processor\n");\r
187cb3dd
SZ
1712 break;\r
1713\r
1714 case 0x49:\r
1715 Print (L"AMD G-Series Processor\n");\r
1716 break;\r
1717\r
073fe587
SEHM
1718 case 0x4A:\r
1719 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES), gShellDebug1HiiHandle);\r
1720 break;\r
1721\r
1722 case 0x4B:\r
1723 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES), gShellDebug1HiiHandle);\r
1724 break;\r
1725\r
1726 case 0x4C:\r
1727 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES), gShellDebug1HiiHandle);\r
1728 break;\r
1729\r
1730 case 0x4D:\r
1731 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES), gShellDebug1HiiHandle);\r
1732 break;\r
1733\r
1734 case 0x4E:\r
1735 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES), gShellDebug1HiiHandle);\r
1736 break;\r
1737\r
1738 case 0x4F:\r
1739 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES), gShellDebug1HiiHandle);\r
1740 break;\r
1741\r
5d73d92f 1742 case 0x50:\r
1743 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY), gShellDebug1HiiHandle);\r
1744 break;\r
1745\r
1746 case 0x51:\r
1747 Print (L"SuperSparc\n");\r
1748 break;\r
1749\r
1750 case 0x52:\r
1751 Print (L"microSparc II\n");\r
1752 break;\r
1753\r
1754 case 0x53:\r
1755 Print (L"microSparc IIep\n");\r
1756 break;\r
1757\r
1758 case 0x54:\r
1759 Print (L"UltraSparc\n");\r
1760 break;\r
1761\r
1762 case 0x55:\r
1763 Print (L"UltraSparc II\n");\r
1764 break;\r
1765\r
1766 case 0x56:\r
1767 Print (L"UltraSparcIIi\n");\r
1768 break;\r
1769\r
1770 case 0x57:\r
1771 Print (L"UltraSparcIII\n");\r
1772 break;\r
1773\r
1774 case 0x58:\r
1775 Print (L"UltraSparcIIIi\n");\r
1776 break;\r
1777\r
1778 case 0x60:\r
1779 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY), gShellDebug1HiiHandle);\r
1780 break;\r
1781\r
1782 case 0x61:\r
1783 Print (L"68xx\n");\r
1784 break;\r
1785\r
1786 case 0x62:\r
1787 Print (L"68000\n");\r
1788 break;\r
1789\r
1790 case 0x63:\r
1791 Print (L"68010\n");\r
1792 break;\r
1793\r
1794 case 0x64:\r
1795 Print (L"68020\n");\r
1796 break;\r
1797\r
1798 case 0x65:\r
1799 Print (L"68030\n");\r
1800 break;\r
1801\r
c326e078
SZ
1802 case 0x66:\r
1803 Print (L"AMD Athlon(TM) X4 Quad-Core Processor Family\n");\r
1804 break;\r
1805\r
1806 case 0x67:\r
1807 Print (L"AMD Opteron(TM) X1000 Series Processor\n");\r
1808 break;\r
1809\r
1810 case 0x68:\r
1811 Print (L"AMD Opteron(TM) X2000 Series APU\n");\r
1812 break;\r
1813\r
44175ee7
SZ
1814 case 0x69:\r
1815 Print (L"AMD Opteron(TM) A-Series Processor\n");\r
1816 break;\r
1817\r
1818 case 0x6A:\r
1819 Print (L"AMD Opteron(TM) X3000 Series APU\n");\r
1820 break;\r
1821\r
5734d486
SZ
1822 case 0x6B:\r
1823 Print (L"AMD Zen Processor Family\n");\r
1824 break;\r
1825\r
5d73d92f 1826 case 0x70:\r
1827 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY), gShellDebug1HiiHandle);\r
1828 break;\r
1829\r
1830 case 0x78:\r
1831 Print (L"Crusoe TM5000\n");\r
1832 break;\r
1833\r
1834 case 0x79:\r
1835 Print (L"Crusoe TM3000\n");\r
1836 break;\r
1837\r
1838 case 0x7A:\r
1839 Print (L"Efficeon TM8000\n");\r
1840 break;\r
1841\r
1842 case 0x80:\r
1843 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK), gShellDebug1HiiHandle);\r
1844 break;\r
1845\r
1846 case 0x82:\r
1847 Print (L"Itanium\n");\r
1848 break;\r
1849\r
1850 case 0x83:\r
1851 Print (L"AMD Athlon64\n");\r
1852 break;\r
1853\r
1854 case 0x84:\r
1855 Print (L"AMD Opteron\n");\r
1856 break;\r
1857\r
1858 case 0x85:\r
1859 Print (L"AMD Sempron\n");\r
1860 break;\r
1861\r
1862 case 0x86:\r
1863 Print (L"AMD Turion64 Mobile\n");\r
1864 break;\r
1865\r
1866 case 0x87:\r
1867 Print (L"Dual-Core AMD Opteron\n");\r
1868 break;\r
1869\r
1870 case 0x88:\r
1871 Print (L"AMD Athlon 64X2 DualCore\n");\r
1872 break;\r
1873\r
1874 case 0x89:\r
1875 Print (L"AMD Turion 64X2 Mobile\n");\r
1876 break;\r
1877\r
1878 case 0x8A:\r
1879 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE), gShellDebug1HiiHandle);\r
1880 break;\r
1881\r
1882 case 0x8B:\r
1883 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION), gShellDebug1HiiHandle);\r
1884 break;\r
1885\r
1886 case 0x8C:\r
1887 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE), gShellDebug1HiiHandle);\r
1888 break;\r
1889\r
1890 case 0x8D:\r
1891 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE), gShellDebug1HiiHandle);\r
1892 break;\r
1893\r
1894 case 0x8E:\r
1895 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE), gShellDebug1HiiHandle);\r
1896 break;\r
1897\r
1898 case 0x8F:\r
1899 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE), gShellDebug1HiiHandle);\r
1900 break;\r
1901\r
1902 case 0x90:\r
1903 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY), gShellDebug1HiiHandle);\r
1904 break;\r
1905\r
187cb3dd
SZ
1906 case 0x91:\r
1907 Print (L"PA-RISC 8500\n");\r
1908 break;\r
1909\r
1910 case 0x92:\r
1911 Print (L"PA-RISC 8000\n");\r
1912 break;\r
1913\r
1914 case 0x93:\r
1915 Print (L"PA-RISC 7300LC\n");\r
1916 break;\r
1917\r
1918 case 0x94:\r
1919 Print (L"PA-RISC 7200\n");\r
1920 break;\r
1921\r
1922 case 0x95:\r
1923 Print (L"PA-RISC 7100LC\n");\r
1924 break;\r
1925\r
1926 case 0x96:\r
1927 Print (L"PA-RISC 7100\n");\r
1928 break;\r
1929\r
5d73d92f 1930 case 0xA0:\r
1931 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY), gShellDebug1HiiHandle);\r
1932 break;\r
1933\r
1934 case 0xA1:\r
1935 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1936 break;\r
1937\r
1938 case 0xA2:\r
1939 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1940 break;\r
1941\r
1942 case 0xA3:\r
1943 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1944 break;\r
1945\r
1946 case 0xA4:\r
1947 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1948 break;\r
1949\r
1950 case 0xA5:\r
1951 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1952 break;\r
1953\r
1954 case 0xA6:\r
1955 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE), gShellDebug1HiiHandle);\r
1956 break;\r
1957\r
1958 case 0xA7:\r
1959 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE), gShellDebug1HiiHandle);\r
1960 break;\r
1961\r
1962 case 0xA8:\r
1963 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1964 break;\r
1965\r
1966 case 0xA9:\r
1967 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1968 break;\r
1969\r
1970 case 0xAA:\r
1971 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE), gShellDebug1HiiHandle);\r
1972 break;\r
1973\r
1974 case 0xAB:\r
1975 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1976 break;\r
1977\r
1978 case 0xAC:\r
1979 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1980 break;\r
1981\r
1982 case 0xAD:\r
1983 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1984 break;\r
1985\r
1986 case 0xAE:\r
1987 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1988 break;\r
1989\r
1990 case 0xAF:\r
1991 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE), gShellDebug1HiiHandle);\r
1992 break;\r
1993\r
1994 case 0xB0:\r
1995 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON), gShellDebug1HiiHandle);\r
1996 break;\r
1997\r
187cb3dd
SZ
1998 case 0xB1:\r
1999 Print (L"Pentium III Processorwith Intel SpeedStep Technology\n");\r
2000 break;\r
2001\r
2002 case 0xB2:\r
2003 Print (L"Pentium 4 processor\n");\r
2004 break;\r
2005\r
2006 case 0xB3:\r
2007 Print (L"Intel Xeon Processor\n");\r
2008 break;\r
2009\r
2010 case 0xB4:\r
2011 Print (L"AS400 Family\n");\r
2012 break;\r
2013\r
2014 case 0xB5:\r
2015 Print (L"Intel Xeon processor MP\n");\r
2016 break;\r
2017\r
2018 case 0xB6:\r
2019 Print (L"AMD Althon XP Processor Family\n");\r
2020 break;\r
2021\r
2022 case 0xB7:\r
2023 Print (L"AMD Althon MP Promcessor Family\n");\r
2024 break;\r
2025\r
2026 case 0xB8:\r
2027 Print (L"Intel Itanium 2 processor\n");\r
2028 break;\r
2029\r
2030 case 0xB9:\r
2031 Print (L"Intel Penium M processor\n");\r
2032 break;\r
2033\r
2034 case 0xBA:\r
2035 Print (L"Intel Celeron D processor\n");\r
2036 break;\r
2037\r
2038 case 0xBB:\r
2039 Print (L"Intel Pentium D processor\n");\r
2040 break;\r
2041\r
2042 case 0xBC:\r
2043 Print (L"Intel Pentium Processor Extreme Edition\n");\r
2044 break;\r
2045\r
2046 case 0xBD:\r
2047 Print (L"Intel Core Solo Processor\n");\r
2048 break;\r
2049\r
2050 case 0xBF:\r
2051 Print (L"Intel Core 2 Duo Processor\n");\r
2052 break;\r
2053\r
5d73d92f 2054 case 0xC0:\r
2055 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO), gShellDebug1HiiHandle);\r
2056 break;\r
2057\r
2058 case 0xC1:\r
2059 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME), gShellDebug1HiiHandle);\r
2060 break;\r
2061\r
2062 case 0xC2:\r
2063 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD), gShellDebug1HiiHandle);\r
2064 break;\r
2065\r
2066 case 0xC3:\r
2067 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME), gShellDebug1HiiHandle);\r
2068 break;\r
2069\r
2070 case 0xC4:\r
2071 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE), gShellDebug1HiiHandle);\r
2072 break;\r
2073\r
2074 case 0xC5:\r
2075 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE), gShellDebug1HiiHandle);\r
2076 break;\r
2077\r
2078 case 0xC6:\r
2079 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7), gShellDebug1HiiHandle);\r
2080 break;\r
2081\r
2082 case 0xC7:\r
2083 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE), gShellDebug1HiiHandle);\r
2084 break;\r
2085\r
2086 case 0xC8:\r
2087 Print (L"IBM 390\n");\r
2088 break;\r
2089\r
2090 case 0xC9:\r
2091 Print (L"G4\n");\r
2092 break;\r
2093\r
2094 case 0xCA:\r
2095 Print (L"G5\n");\r
2096 break;\r
2097\r
2098 case 0xCB:\r
2099 Print (L"G6\n");\r
2100 break;\r
2101\r
2102 case 0xCC:\r
073fe587 2103 Print (L"zArchitecture\n");\r
5d73d92f 2104 break;\r
2105\r
187cb3dd
SZ
2106 case 0xCD:\r
2107 Print (L"Intel Core i5 processor\n");\r
2108 break;\r
2109\r
2110 case 0xCE:\r
2111 Print (L"Intel Core i3 processor\n");\r
2112 break;\r
2113\r
5d73d92f 2114 case 0xD2:\r
2115 Print (L"ViaC7M\n");\r
2116 break;\r
2117\r
2118 case 0xD3:\r
2119 Print (L"ViaC7D\n");\r
2120 break;\r
2121\r
2122 case 0xD4:\r
2123 Print (L"ViaC7\n");\r
2124 break;\r
2125\r
2126 case 0xD5:\r
2127 Print (L"Eden\n");\r
2128 break;\r
2129\r
2130 case 0xD6:\r
2131 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE), gShellDebug1HiiHandle);\r
2132 break;\r
2133\r
2134 case 0xD7:\r
2135 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
2136 break;\r
2137\r
2138 case 0xD8:\r
2139 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
2140 break;\r
2141\r
2142 case 0xDA:\r
2143 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
2144 break;\r
2145\r
2146 case 0xDB:\r
2147 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
2148 break;\r
2149\r
2150 case 0xDD:\r
2151 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
2152 break;\r
2153\r
2154 case 0xDE:\r
2155 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
2156 break;\r
2157\r
2158 case 0xDF:\r
2159 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE), gShellDebug1HiiHandle);\r
2160 break;\r
2161\r
187cb3dd
SZ
2162 case 0xE0:\r
2163 Print (L"Multi-Core Intel Xeon processor 3400 Series\n");\r
2164 break;\r
2165\r
073fe587
SEHM
2166 case 0xE4:\r
2167 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES), gShellDebug1HiiHandle);\r
2168 break;\r
2169\r
2170 case 0xE5:\r
2171 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II), gShellDebug1HiiHandle);\r
2172 break;\r
2173\r
2174\r
5d73d92f 2175 case 0xE6:\r
2176 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE), gShellDebug1HiiHandle);\r
2177 break;\r
2178\r
2179 case 0xE7:\r
2180 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE), gShellDebug1HiiHandle);\r
2181 break;\r
2182\r
2183 case 0xE8:\r
2184 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE), gShellDebug1HiiHandle);\r
2185 break;\r
2186\r
2187 case 0xE9:\r
2188 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE), gShellDebug1HiiHandle);\r
2189 break;\r
2190\r
2191 case 0xEA:\r
2192 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE), gShellDebug1HiiHandle);\r
2193 break;\r
2194\r
2195 case 0xEB:\r
2196 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI), gShellDebug1HiiHandle);\r
2197 break;\r
2198\r
187cb3dd
SZ
2199 case 0xEC:\r
2200 Print (L"AMD Phenom II Processor Family\n");\r
2201 break;\r
2202\r
2203 case 0xED:\r
2204 Print (L"AMD Althon II Processor Family\n");\r
2205 break;\r
2206\r
2207 case 0xEE:\r
2208 Print (L"Six-Core AMD Opteron Processor Family\n");\r
2209 break;\r
2210\r
2211 case 0xEF:\r
2212 Print (L"AMD Sempron M Processor Family\n");\r
2213 break;\r
2214\r
5d73d92f 2215 case 0xFA:\r
2216 Print (L"i860\n");\r
2217 break;\r
2218\r
2219 case 0xFB:\r
2220 Print (L"i960\n");\r
2221 break;\r
2222\r
2223 default:\r
187cb3dd 2224 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), gShellDebug1HiiHandle);\r
5d73d92f 2225 }\r
2226 //\r
2227 // end switch\r
2228 //\r
2229}\r
2230\r
a1d4bfcc 2231/**\r
2232 Display processor family information.\r
2233\r
2234 @param[in] Family2 The family value.\r
2235 @param[in] Option The option value.\r
2236**/\r
5d73d92f 2237VOID\r
2238DisplayProcessorFamily2 (\r
a1d4bfcc 2239 IN UINT16 Family2,\r
2240 IN UINT8 Option\r
5d73d92f 2241 )\r
2242{\r
2243 //\r
2244 // Print prompt message\r
2245 //\r
2246 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY), gShellDebug1HiiHandle);\r
2247\r
2248 //\r
2249 // Print option\r
2250 //\r
2251 PRINT_INFO_OPTION (Family2, Option);\r
2252\r
2253 //\r
2254 // Use switch to check\r
2255 //\r
2256 switch (Family2) {\r
44175ee7
SZ
2257 case 0x100:\r
2258 Print (L"ARMv7\n");\r
2259 break;\r
2260\r
2261 case 0x101:\r
2262 Print (L"ARMv8\n");\r
2263 break;\r
2264\r
5d73d92f 2265 case 0x104:\r
2266 Print (L"SH-3\n");\r
2267 break;\r
2268\r
2269 case 0x105:\r
2270 Print (L"SH-4\n");\r
2271 break;\r
2272\r
2273 case 0x118:\r
2274 Print (L"ARM\n");\r
2275 break;\r
2276\r
2277 case 0x119:\r
2278 Print (L"StrongARM\n");\r
2279 break;\r
2280\r
2281 case 0x12C:\r
2282 Print (L"6x86\n");\r
2283 break;\r
2284\r
2285 case 0x12D:\r
2286 Print (L"MediaGX\n");\r
2287 break;\r
2288\r
2289 case 0x12E:\r
2290 Print (L"MII\n");\r
2291 break;\r
2292\r
2293 case 0x140:\r
2294 Print (L"WinChip\n");\r
2295 break;\r
2296\r
2297 case 0x15E:\r
2298 Print (L"DSP\n");\r
2299 break;\r
2300\r
2301 case 0x1F4:\r
2302 Print (L"Video Processor\n");\r
2303 break;\r
2304\r
2305 default:\r
2306 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), gShellDebug1HiiHandle);\r
2307 }\r
2308\r
2309}\r
2310\r
a1d4bfcc 2311/**\r
2312 Display processor voltage information.\r
2313\r
2314 @param[in] Voltage The Voltage.\r
e0c2cc6f 2315 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage\r
2316 Bits 6:4 Reserved, must be zero\r
2317 Bits 3:0 Voltage Capability.\r
2318 A Set bit indicates that the voltage is supported.\r
2319 Bit 0 - 5V\r
2320 Bit 1 - 3.3V\r
2321 Bit 2 - 2.9V\r
2322 Bit 3 - Reserved, must be zero.\r
2323\r
2324 Note:\r
2325 Setting of multiple bits indicates the socket is configurable\r
2326 If bit 7 is set to 1, the remaining seven bits of the field are set to\r
2327 contain the processor's current voltage times 10.\r
2328 For example, the field value for a processor voltage of 1.8 volts would be\r
2329 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.\r
a1d4bfcc 2330\r
2331 @param[in] Option The option.\r
2332**/\r
5d73d92f 2333VOID\r
2334DisplayProcessorVoltage (\r
a1d4bfcc 2335 IN UINT8 Voltage,\r
2336 IN UINT8 Option\r
5d73d92f 2337 )\r
5d73d92f 2338{\r
2339 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO), gShellDebug1HiiHandle);\r
2340 //\r
2341 // Print option\r
2342 //\r
2343 PRINT_INFO_OPTION (Voltage, Option);\r
2344\r
2345 if (BIT (Voltage, 7) != 0) {\r
2346 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE), gShellDebug1HiiHandle, (Voltage - 0x80));\r
2347 } else {\r
2348 if (BIT (Voltage, 0) != 0) {\r
2349 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED), gShellDebug1HiiHandle);\r
2350 }\r
2351\r
2352 if (BIT (Voltage, 1) != 0) {\r
2353 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED), gShellDebug1HiiHandle);\r
2354 }\r
2355\r
2356 if (BIT (Voltage, 2) != 0) {\r
2357 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED), gShellDebug1HiiHandle);\r
2358 }\r
2359 //\r
2360 // check the reserved zero bits:\r
2361 //\r
2362 if (BIT (Voltage, 3) != 0) {\r
2363 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO), gShellDebug1HiiHandle);\r
2364 }\r
2365\r
2366 if (BIT (Voltage, 4) != 0) {\r
2367 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO), gShellDebug1HiiHandle);\r
2368 }\r
2369\r
2370 if (BIT (Voltage, 5) != 0) {\r
2371 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO), gShellDebug1HiiHandle);\r
2372 }\r
2373\r
2374 if (BIT (Voltage, 6) != 0) {\r
2375 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO), gShellDebug1HiiHandle);\r
2376 }\r
2377 }\r
2378}\r
2379\r
a1d4bfcc 2380/**\r
2381 Display processor information.\r
2382\r
2383 @param[in] Status The status.\r
e0c2cc6f 2384Bit 7 Reserved, must be 0\r
187cb3dd
SZ
2385Bit 6 CPU Socket Populated\r
2386 1 - CPU Socket Populated\r
2387 0 - CPU Socket Unpopulated\r
2388Bits 5:3 Reserved, must be zero\r
2389Bits 2:0 CPU Status\r
e0c2cc6f 2390 0h - Unknown\r
2391 1h - CPU Enabled\r
2392 2h - CPU Disabled by User via BIOS Setup\r
2393 3h - CPU Disabled By BIOS (POST Error)\r
2394 4h - CPU is Idle, waiting to be enabled.\r
2395 5-6h - Reserved\r
2396 7h - Other\r
a1d4bfcc 2397\r
2398 @param[in] Option The option\r
2399**/\r
5d73d92f 2400VOID\r
2401DisplayProcessorStatus (\r
a1d4bfcc 2402 IN UINT8 Status,\r
2403 IN UINT8 Option\r
5d73d92f 2404 )\r
5d73d92f 2405{\r
2406 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS), gShellDebug1HiiHandle);\r
2407 PRINT_INFO_OPTION (Status, Option);\r
2408\r
2409 if (BIT (Status, 7) != 0) {\r
187cb3dd 2410 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO), gShellDebug1HiiHandle);\r
5d73d92f 2411 } else if (BIT (Status, 5) != 0) {\r
187cb3dd 2412 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO), gShellDebug1HiiHandle);\r
5d73d92f 2413 } else if (BIT (Status, 4) != 0) {\r
187cb3dd 2414 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO), gShellDebug1HiiHandle);\r
5d73d92f 2415 } else if (BIT (Status, 3) != 0) {\r
187cb3dd 2416 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO), gShellDebug1HiiHandle);\r
5d73d92f 2417 }\r
2418 //\r
2419 // Check BIT 6\r
2420 //\r
2421 if (BIT (Status, 6) != 0) {\r
2422 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED), gShellDebug1HiiHandle);\r
2423 } else {\r
2424 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED), gShellDebug1HiiHandle);\r
2425 }\r
2426 //\r
2427 // Check BITs 2:0\r
2428 //\r
2429 switch (Status & 0x07) {\r
2430 case 0:\r
2431 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2432 break;\r
2433\r
2434 case 1:\r
2435 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED), gShellDebug1HiiHandle);\r
2436 break;\r
2437\r
2438 case 2:\r
2439 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER), gShellDebug1HiiHandle);\r
2440 break;\r
2441\r
2442 case 3:\r
2443 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS), gShellDebug1HiiHandle);\r
2444 break;\r
2445\r
2446 case 4:\r
2447 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE), gShellDebug1HiiHandle);\r
2448 break;\r
2449\r
2450 case 7:\r
2451 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS), gShellDebug1HiiHandle);\r
2452 break;\r
2453\r
2454 default:\r
2455 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gShellDebug1HiiHandle);\r
2456 }\r
2457}\r
2458\r
a1d4bfcc 2459/**\r
2460 Display information about Memory Controller Information (Type 5).\r
2461\r
2462 @param[in] Size Memory size.\r
2463 @param[in] SlotNum Which slot is this about.\r
2464 @param[in] Option Option for the level of detail output required.\r
2465**/\r
5d73d92f 2466VOID\r
2467DisplayMaxMemoryModuleSize (\r
a1d4bfcc 2468 IN UINT8 Size,\r
2469 IN UINT8 SlotNum,\r
2470 IN UINT8 Option\r
5d73d92f 2471 )\r
2472{\r
2473 UINTN MaxSize;\r
2474 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM), gShellDebug1HiiHandle);\r
2475 //\r
2476 // MaxSize is determined by follow formula\r
2477 //\r
2478 MaxSize = (UINTN) 1 << Size;\r
2479 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), gShellDebug1HiiHandle, MaxSize);\r
2480\r
2481 if (Option >= SHOW_DETAIL) {\r
2482 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM), gShellDebug1HiiHandle);\r
2483 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), gShellDebug1HiiHandle, MaxSize, SlotNum, MaxSize * SlotNum);\r
2484 }\r
2485}\r
2486\r
a1d4bfcc 2487/**\r
2488 Display information about memory configuration handles.\r
2489\r
2490 @param[in] Handles The buffer of handles to output info on.\r
2491 @param[in] SlotNum The number of handles in the above buffer.\r
2492 @param[in] Option Option for the level of detail output required.\r
2493**/\r
5d73d92f 2494VOID\r
2495DisplayMemoryModuleConfigHandles (\r
a1d4bfcc 2496 IN UINT16 *Handles,\r
2497 IN UINT8 SlotNum,\r
2498 IN UINT8 Option\r
5d73d92f 2499 )\r
2500{\r
2501 UINT8 Index;\r
2502 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED), gShellDebug1HiiHandle, SlotNum);\r
2503\r
2504 if (Option >= SHOW_DETAIL) {\r
2505 //\r
2506 // No handle, Handles is INVALID.\r
2507 //\r
2508 if (SlotNum == 0) {\r
2509 return ;\r
2510 }\r
2511\r
2512 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED), gShellDebug1HiiHandle);\r
2513 for (Index = 0; Index < SlotNum; Index++) {\r
2514 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE), gShellDebug1HiiHandle, Index + 1, Handles[Index]);\r
2515 }\r
2516 }\r
2517}\r
a1d4bfcc 2518\r
2519/**\r
2520 Display Memory Module Information (Type 6).\r
2521\r
2522 @param[in] BankConnections\r
2523 @param[in] Option\r
2524**/\r
5d73d92f 2525VOID\r
2526DisplayMmBankConnections (\r
a1d4bfcc 2527 IN UINT8 BankConnections,\r
2528 IN UINT8 Option\r
5d73d92f 2529 )\r
2530{\r
2531 UINT8 High;\r
2532 UINT8 Low;\r
2533\r
2534 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS), gShellDebug1HiiHandle);\r
2535 //\r
2536 // Print option\r
2537 //\r
2538 PRINT_INFO_OPTION (BankConnections, Option);\r
2539\r
2540 //\r
2541 // Divide it to high and low\r
2542 //\r
2543 High = (UINT8) (BankConnections & 0xF0);\r
2544 Low = (UINT8) (BankConnections & 0x0F);\r
2545 if (High != 0xF) {\r
2546 if (Low != 0xF) {\r
2547 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS), gShellDebug1HiiHandle, High, Low, High, Low);\r
2548 } else {\r
2549 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2), gShellDebug1HiiHandle, High, High);\r
2550 }\r
2551 } else {\r
2552 if (Low != 0xF) {\r
2553 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2), gShellDebug1HiiHandle, Low, Low);\r
2554 } else {\r
2555 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED), gShellDebug1HiiHandle);\r
2556 }\r
2557 }\r
2558}\r
2559\r
a1d4bfcc 2560/**\r
2561 Display memory informcation.\r
2562\r
5d73d92f 2563 Bits 0:6 Size (n),\r
2564 where 2**n is the size in MB with three special-case values:\r
2565 7Dh Not determinable (Installed Size only)\r
2566 7Eh Module is installed, but no memory has been enabled\r
2567 7Fh Not installed\r
2568 Bit 7 Defines whether the memory module has a single- (0)\r
2569 or double-bank (1) connection.\r
2570\r
a1d4bfcc 2571 @param[in] Size - The size\r
2572 @param[in] Option - The option\r
5d73d92f 2573**/\r
a1d4bfcc 2574VOID\r
2575DisplayMmMemorySize (\r
2576 IN UINT8 Size,\r
2577 IN UINT8 Option\r
2578 )\r
5d73d92f 2579{\r
2580 UINT8 Value;\r
2581 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE), gShellDebug1HiiHandle);\r
2582 //\r
2583 // Print option\r
2584 //\r
2585 PRINT_INFO_OPTION (Size, Option);\r
2586\r
2587 //\r
2588 // Get the low bits(0-6 bit)\r
2589 //\r
2590 Value = (UINT8) (Size & 0x7F);\r
2591 if (Value == 0x7D) {\r
2592 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE), gShellDebug1HiiHandle);\r
2593 } else if (Value == 0x7E) {\r
2594 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED), gShellDebug1HiiHandle);\r
2595 } else if (Value == 0x7F) {\r
2596 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED), gShellDebug1HiiHandle);\r
2597 } else {\r
2598 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE), gShellDebug1HiiHandle, 1 << Value);\r
2599 }\r
2600\r
2601 if (BIT (Size, 7) != 0) {\r
2602 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK), gShellDebug1HiiHandle);\r
2603 } else {\r
2604 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK), gShellDebug1HiiHandle);\r
2605 }\r
2606}\r
2607\r
187cb3dd
SZ
2608/**\r
2609 Display Cache Configuration.\r
2610\r
2611 @param[in] CacheConfiguration Cache Configuration.\r
2612Bits 15:10 Reserved, must be 0\r
2613Bits 9:8 Operational Mode\r
2614 0h - Write Through\r
2615 1h - Write Back\r
2616 2h - Varies with Memory Address\r
2617 3h - Unknown\r
2618Bit 7 Enabled/Disabled\r
2619 1 - Enabled\r
2620 0 - Disabled\r
2621Bits 6:5 Location\r
2622 0h - Internal\r
2623 1h - External\r
2624 2h - Reserved\r
2625 3h - Unknown\r
2626Bit 4 Reserved, must be zero\r
2627Bit 3 Cache Socketed\r
2628 1 - Socketed\r
2629 0 - Unsocketed\r
2630Bits 2:0 Cache Level\r
2631 1 through 8 (For example, an L1 cache would\r
2632 use value 000b and an L3 cache would use 010b.)\r
2633\r
2634 @param[in] Option The option\r
2635**/\r
2636VOID\r
2637DisplayCacheConfiguration (\r
2638 IN UINT16 CacheConfiguration,\r
2639 IN UINT8 Option\r
2640 )\r
2641{\r
2642 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION), gShellDebug1HiiHandle);\r
2643 PRINT_INFO_OPTION (CacheConfiguration, Option);\r
2644\r
2645 if (BIT (CacheConfiguration, 15) != 0) {\r
2646 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO), gShellDebug1HiiHandle);\r
2647 } else if (BIT (CacheConfiguration, 14) != 0) {\r
2648 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO), gShellDebug1HiiHandle);\r
2649 } else if (BIT (CacheConfiguration, 13) != 0) {\r
2650 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO), gShellDebug1HiiHandle);\r
2651 } else if (BIT (CacheConfiguration, 12) != 0) {\r
2652 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO), gShellDebug1HiiHandle);\r
2653 } else if (BIT (CacheConfiguration, 11) != 0) {\r
2654 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO), gShellDebug1HiiHandle);\r
2655 } else if (BIT (CacheConfiguration, 10) != 0) {\r
2656 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO), gShellDebug1HiiHandle);\r
2657 } else if (BIT (CacheConfiguration, 4) != 0) {\r
2658 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO), gShellDebug1HiiHandle);\r
2659 }\r
2660\r
2661 //\r
2662 // Check BITs 9:8\r
2663 //\r
2664 switch ((CacheConfiguration & 0x300) >> 8) {\r
2665 case 0:\r
2666 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH), gShellDebug1HiiHandle);\r
2667 break;\r
2668\r
2669 case 1:\r
2670 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK), gShellDebug1HiiHandle);\r
2671 break;\r
2672\r
2673 case 2:\r
2674 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR), gShellDebug1HiiHandle);\r
2675 break;\r
2676\r
2677 case 3:\r
2678 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2679 break;\r
2680 }\r
2681\r
2682 //\r
2683 // Check BIT 7\r
2684 //\r
2685 if (BIT (CacheConfiguration, 7) != 0) {\r
2686 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED), gShellDebug1HiiHandle);\r
2687 } else {\r
2688 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
2689 }\r
2690\r
2691 //\r
2692 // Check BITs 6:5\r
2693 //\r
2694 switch ((CacheConfiguration & 0x60) >> 5) {\r
2695 case 0:\r
2696 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL), gShellDebug1HiiHandle);\r
2697 break;\r
2698\r
2699 case 1:\r
2700 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL), gShellDebug1HiiHandle);\r
2701 break;\r
2702\r
2703 case 2:\r
2704 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gShellDebug1HiiHandle);\r
2705 break;\r
2706\r
2707 case 3:\r
2708 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2709 break;\r
2710 }\r
2711\r
2712 //\r
2713 // Check BIT 3\r
2714 //\r
2715 if (BIT (CacheConfiguration, 3) != 0) {\r
2716 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED), gShellDebug1HiiHandle);\r
2717 } else {\r
2718 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED), gShellDebug1HiiHandle);\r
2719 }\r
2720\r
2721\r
2722 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL), gShellDebug1HiiHandle, (CacheConfiguration & 0x07) + 1);\r
2723}\r
2724\r
a1d4bfcc 2725/**\r
5d73d92f 2726 The Slot ID field of the System Slot structure provides a mechanism to\r
2727 correlate the physical attributes of the slot to its logical access method\r
2728 (which varies based on the Slot Type field).\r
2729\r
a1d4bfcc 2730 @param[in] SlotId - The slot ID\r
2731 @param[in] SlotType - The slot type\r
2732 @param[in] Option - The Option\r
5d73d92f 2733**/\r
a1d4bfcc 2734VOID\r
2735DisplaySystemSlotId (\r
2736 IN UINT16 SlotId,\r
2737 IN UINT8 SlotType,\r
2738 IN UINT8 Option\r
2739 )\r
5d73d92f 2740{\r
2741 //\r
2742 // Display slot type first\r
2743 //\r
2744 DisplaySystemSlotType (SlotType, Option);\r
2745\r
2746 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID), gShellDebug1HiiHandle);\r
2747 //\r
2748 // print option\r
2749 //\r
2750 PRINT_INFO_OPTION (SlotType, Option);\r
2751\r
2752 switch (SlotType) {\r
2753 //\r
2754 // Slot Type: MCA\r
2755 //\r
2756 case 0x04:\r
2757 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN), gShellDebug1HiiHandle);\r
2758 if (SlotId > 0 && SlotId < 15) {\r
2759 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D), gShellDebug1HiiHandle, SlotId);\r
2760 } else {\r
2761 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15), gShellDebug1HiiHandle);\r
2762 }\r
2763 break;\r
2764\r
2765 //\r
2766 // EISA\r
2767 //\r
2768 case 0x05:\r
2769 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM), gShellDebug1HiiHandle);\r
2770 if (SlotId > 0 && SlotId < 15) {\r
2771 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D), gShellDebug1HiiHandle, SlotId);\r
2772 } else {\r
2773 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15), gShellDebug1HiiHandle);\r
2774 }\r
2775 break;\r
2776\r
2777 //\r
2778 // Slot Type: PCI\r
2779 //\r
2780 case 0x06:\r
2781 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gShellDebug1HiiHandle, SlotId);\r
2782 break;\r
2783\r
2784 //\r
2785 // PCMCIA\r
2786 //\r
2787 case 0x07:\r
2788 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM), gShellDebug1HiiHandle, SlotId);\r
2789 break;\r
2790\r
2791 //\r
2792 // Slot Type: PCI-E\r
2793 //\r
2794 case 0xA5:\r
2795 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gShellDebug1HiiHandle, SlotId);\r
2796 break;\r
2797\r
2798 default:\r
187cb3dd 2799 if ((SlotType >= 0x0E && SlotType <= 0x12) || (SlotType >= 0xA6 && SlotType <= 0xB6)){\r
5d73d92f 2800 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gShellDebug1HiiHandle, SlotId);\r
2801 } else {\r
2802 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID), gShellDebug1HiiHandle);\r
2803 }\r
2804 }\r
2805}\r
2806\r
a1d4bfcc 2807/**\r
2808 Display System Boot Information (Type 32) information.\r
2809\r
2810 @param[in] Parameter The parameter.\r
2811 @param[in] Option The options.\r
2812**/\r
5d73d92f 2813VOID\r
2814DisplaySystemBootStatus (\r
a1d4bfcc 2815 IN UINT8 Parameter,\r
2816 IN UINT8 Option\r
5d73d92f 2817 )\r
2818{\r
2819 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS), gShellDebug1HiiHandle);\r
2820 //\r
2821 // Print option\r
2822 //\r
2823 PRINT_INFO_OPTION (Parameter, Option);\r
2824\r
2825 //\r
2826 // Check value and print\r
2827 //\r
2828 if (Parameter == 0) {\r
2829 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED), gShellDebug1HiiHandle);\r
2830 } else if (Parameter == 1) {\r
2831 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA), gShellDebug1HiiHandle);\r
2832 } else if (Parameter == 2) {\r
2833 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM), gShellDebug1HiiHandle);\r
2834 } else if (Parameter == 3) {\r
2835 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED), gShellDebug1HiiHandle);\r
2836 } else if (Parameter == 4) {\r
2837 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM), gShellDebug1HiiHandle);\r
2838 } else if (Parameter == 5) {\r
2839 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT), gShellDebug1HiiHandle);\r
2840 } else if (Parameter == 6) {\r
2841 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION), gShellDebug1HiiHandle);\r
2842 } else if (Parameter == 7) {\r
2843 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE), gShellDebug1HiiHandle);\r
2844 } else if (Parameter == 8) {\r
2845 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER), gShellDebug1HiiHandle);\r
2846 } else if (Parameter >= 9 && Parameter <= 127) {\r
2847 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT), gShellDebug1HiiHandle);\r
2848 } else if (Parameter >= 128 && Parameter <= 191) {\r
2849 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC), gShellDebug1HiiHandle);\r
e0c2cc6f 2850 } else if (Parameter >= 192) {\r
5d73d92f 2851 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION), gShellDebug1HiiHandle);\r
2852 } else {\r
2853 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE), gShellDebug1HiiHandle);\r
2854 }\r
2855}\r
a1d4bfcc 2856\r
2857/**\r
2858 Display Portable Battery (Type 22) information.\r
2859\r
5d73d92f 2860 The date the cell pack was manufactured, in packed format:\r
2861 Bits 15:9 Year, biased by 1980, in the range 0 to 127.\r
2862 Bits 8:5 Month, in the range 1 to 12.\r
2863 Bits 4:0 Date, in the range 1 to 31.\r
2864 For example, 01 February 2000 would be identified as\r
2865 0010 1000 0100 0001b (0x2841).\r
2866\r
a1d4bfcc 2867 @param[in] Date The date\r
2868 @param[in] Option The option\r
5d73d92f 2869**/\r
a1d4bfcc 2870VOID\r
2871DisplaySBDSManufactureDate (\r
2872 IN UINT16 Date,\r
2873 IN UINT8 Option\r
2874 )\r
5d73d92f 2875{\r
2876 UINTN Day;\r
2877 UINTN Month;\r
2878 UINTN Year;\r
2879\r
2880 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE), gShellDebug1HiiHandle);\r
2881 PRINT_INFO_OPTION (Date, Option);\r
2882 //\r
2883 // Print date\r
2884 //\r
2885 Day = Date & 0x001F;\r
187cb3dd
SZ
2886 Month = (Date & 0x01E0) >> 5;\r
2887 Year = ((Date & 0xFE00) >> 9) + 1980;\r
5d73d92f 2888 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR), gShellDebug1HiiHandle, Day, Month, Year);\r
2889\r
2890}\r
a1d4bfcc 2891\r
2892/**\r
187cb3dd 2893 Display System Reset (Type 23) information.\r
a1d4bfcc 2894\r
2895 \r
e0c2cc6f 2896Identifies the system-reset capabilities for the system.\r
2897 Bits 7:6 Reserved for future assignment via this specification, set to 00b.\r
2898 Bit 5 System contains a watchdog timer, either True (1) or False (0).\r
2899 Bits 4:3 Boot Option on Limit.\r
2900 Identifies the system action to be taken when the Reset Limit is reached, one of:\r
2901 00b Reserved, do not use.\r
2902 01b Operating system\r
2903 10b System utilities\r
2904 11b Do not rebootBits\r
2905 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:\r
2906 00b Reserved, do not use.\r
2907 01b Operating system\r
2908 10b System utilities\r
2909 11b Do not reboot\r
2910 Bit 0 Status.\r
2911 1b The system reset is enabled by the user\r
2912 0b The system reset is not enabled by the user\r
a1d4bfcc 2913\r
2914 @param[in] Reset Reset\r
2915 @param[in] Option The option\r
2916**/\r
5d73d92f 2917VOID\r
2918DisplaySystemResetCapabilities (\r
a1d4bfcc 2919 IN UINT8 Reset,\r
2920 IN UINT8 Option\r
5d73d92f 2921 )\r
5d73d92f 2922{\r
2923 UINTN Temp;\r
2924\r
2925 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES), gShellDebug1HiiHandle);\r
2926 PRINT_INFO_OPTION (Reset, Option);\r
2927\r
2928 //\r
2929 // Check reserved bits 7:6\r
2930 //\r
2931 if ((Reset & 0xC0) != 0) {\r
2932 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO), gShellDebug1HiiHandle);\r
2933 }\r
2934 //\r
2935 // Watch dog\r
2936 //\r
2937 if (BIT (Reset, 5) != 0) {\r
2938 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2), gShellDebug1HiiHandle);\r
2939 } else {\r
2940 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER), gShellDebug1HiiHandle);\r
2941 }\r
2942 //\r
2943 // Boot Option on Limit\r
2944 //\r
2945 Temp = (Reset & 0x18) >> 3;\r
2946 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT), gShellDebug1HiiHandle);\r
2947 switch (Temp) {\r
2948 case 0:\r
2949 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gShellDebug1HiiHandle);\r
2950 break;\r
2951\r
2952 case 1:\r
2953 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2), gShellDebug1HiiHandle);\r
2954 break;\r
2955\r
2956 case 2:\r
2957 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL), gShellDebug1HiiHandle);\r
2958 break;\r
2959\r
2960 case 3:\r
2961 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS), gShellDebug1HiiHandle);\r
2962 break;\r
2963 }\r
2964 //\r
2965 // Boot Option\r
2966 //\r
2967 Temp = (Reset & 0x06) >> 1;\r
2968 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION), gShellDebug1HiiHandle);\r
2969 switch (Temp) {\r
2970 case 0:\r
2971 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gShellDebug1HiiHandle);\r
2972 break;\r
2973\r
2974 case 1:\r
2975 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2), gShellDebug1HiiHandle);\r
2976 break;\r
2977\r
2978 case 2:\r
2979 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL), gShellDebug1HiiHandle);\r
2980 break;\r
2981\r
2982 case 3:\r
2983 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT), gShellDebug1HiiHandle);\r
2984 break;\r
2985 }\r
2986 //\r
2987 // Reset enable flag\r
2988 //\r
2989 if ((Reset & 0x01) != 0) {\r
2990 Print (L"The system reset is enabled by the user\n");\r
2991 } else {\r
2992 Print (L"The system reset is disabled by the user\n");\r
2993 }\r
2994}\r
a1d4bfcc 2995\r
2996/**\r
2997 Display Hardware Security (Type 24) information.\r
2998\r
2999 \r
e0c2cc6f 3000Identifies the password and reset status for the system:\r
3001\r
3002Bits 7:6 Power-on Password Status, one of:\r
3003 00b Disabled\r
3004 01b Enabled\r
3005 10b Not Implemented\r
3006 11b Unknown\r
3007Bits 5:4 Keyboard Password Status, one of:\r
3008 00b Disabled\r
3009 01b Enabled\r
3010 10b Not Implemented\r
3011 11b Unknown\r
3012Bits 3:2 Administrator Password Status, one of:\r
3013 00b Disabled\r
3014 01b Enabled\r
3015 10b Not Implemented\r
3016 11b Unknown\r
3017Bits 1:0 Front Panel Reset Status, one of:\r
3018 00b Disabled\r
3019 01b Enabled\r
3020 10b Not Implemented\r
3021 11b Unknown\r
a1d4bfcc 3022\r
3023 @param[in] Settings The device settings.\r
3024 @param[in] Option The device options.\r
3025**/\r
5d73d92f 3026VOID\r
3027DisplayHardwareSecuritySettings (\r
a1d4bfcc 3028 IN UINT8 Settings,\r
3029 IN UINT8 Option\r
5d73d92f 3030 )\r
5d73d92f 3031{\r
3032 UINTN Temp;\r
3033\r
3034 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET), gShellDebug1HiiHandle);\r
3035 PRINT_INFO_OPTION (Settings, Option);\r
3036\r
3037 //\r
3038 // Power-on Password Status\r
3039 //\r
3040 Temp = (Settings & 0xC0) >> 6;\r
3041 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD), gShellDebug1HiiHandle);\r
3042 switch (Temp) {\r
3043 case 0:\r
3044 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
3045 break;\r
3046\r
3047 case 1:\r
3048 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gShellDebug1HiiHandle);\r
3049 break;\r
3050\r
3051 case 2:\r
3052 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gShellDebug1HiiHandle);\r
3053 break;\r
3054\r
3055 case 3:\r
3056 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
3057 break;\r
3058 }\r
3059 //\r
3060 // Keyboard Password Status\r
3061 //\r
3062 Temp = (Settings & 0x30) >> 4;\r
3063 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD), gShellDebug1HiiHandle);\r
3064 switch (Temp) {\r
3065 case 0:\r
3066 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
3067 break;\r
3068\r
3069 case 1:\r
3070 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gShellDebug1HiiHandle);\r
3071 break;\r
3072\r
3073 case 2:\r
3074 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gShellDebug1HiiHandle);\r
3075 break;\r
3076\r
3077 case 3:\r
3078 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
3079 break;\r
3080 }\r
3081 //\r
3082 // Administrator Password Status\r
3083 //\r
3084 Temp = (Settings & 0x0C) >> 2;\r
3085 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS), gShellDebug1HiiHandle);\r
3086 switch (Temp) {\r
3087 case 0:\r
3088 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
3089 break;\r
3090\r
3091 case 1:\r
3092 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gShellDebug1HiiHandle);\r
3093 break;\r
3094\r
3095 case 2:\r
3096 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gShellDebug1HiiHandle);\r
3097 break;\r
3098\r
3099 case 3:\r
3100 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
3101 break;\r
3102 }\r
3103 //\r
3104 // Front Panel Reset Status\r
3105 //\r
3106 Temp = Settings & 0x3;\r
3107 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET), gShellDebug1HiiHandle);\r
3108 switch (Temp) {\r
3109 case 0:\r
3110 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
3111 break;\r
3112\r
3113 case 1:\r
3114 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gShellDebug1HiiHandle);\r
3115 break;\r
3116\r
3117 case 2:\r
3118 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gShellDebug1HiiHandle);\r
3119 break;\r
3120\r
3121 case 3:\r
3122 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
3123 break;\r
3124 }\r
3125}\r
a1d4bfcc 3126\r
3127/**\r
3128 Display Out-of-Band Remote Access (Type 30) information.\r
3129\r
3130 @param[in] Connections The device characteristics.\r
3131 @param[in] Option The device options.\r
3132**/\r
5d73d92f 3133VOID\r
3134DisplayOBRAConnections (\r
a1d4bfcc 3135 IN UINT8 Connections,\r
3136 IN UINT8 Option\r
5d73d92f 3137 )\r
3138{\r
3139 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS), gShellDebug1HiiHandle);\r
3140 PRINT_INFO_OPTION (Connections, Option);\r
3141\r
3142 //\r
3143 // Check reserved bits 7:2\r
3144 //\r
3145 if ((Connections & 0xFC) != 0) {\r
3146 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2), gShellDebug1HiiHandle);\r
3147 }\r
3148 //\r
3149 // Outbound Connection\r
3150 //\r
3151 if (BIT (Connections, 1) != 0) {\r
3152 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED), gShellDebug1HiiHandle);\r
3153 } else {\r
3154 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED), gShellDebug1HiiHandle);\r
3155 }\r
3156 //\r
3157 // Inbound Connection\r
3158 //\r
3159 if (BIT (Connections, 0) != 0) {\r
3160 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED), gShellDebug1HiiHandle);\r
3161 } else {\r
3162 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED), gShellDebug1HiiHandle);\r
3163 }\r
3164}\r
a1d4bfcc 3165\r
3166/**\r
3167 Display System Power Supply (Type 39) information.\r
3168\r
3169 @param[in] Characteristics The device characteristics.\r
3170 @param[in] Option The device options.\r
3171**/\r
5d73d92f 3172VOID\r
3173DisplaySPSCharacteristics (\r
a1d4bfcc 3174 IN UINT16 Characteristics,\r
3175 IN UINT8 Option\r
5d73d92f 3176 )\r
3177{\r
3178 UINTN Temp;\r
3179\r
3180 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR), gShellDebug1HiiHandle);\r
3181 PRINT_INFO_OPTION (Characteristics, Option);\r
3182\r
3183 //\r
3184 // Check reserved bits 15:14\r
3185 //\r
3186 if ((Characteristics & 0xC000) != 0) {\r
3187 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD), gShellDebug1HiiHandle);\r
3188 }\r
3189 //\r
3190 // Bits 13:10 - DMTF Power Supply Type\r
3191 //\r
3192 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE), gShellDebug1HiiHandle);\r
65e58382 3193 Temp = (Characteristics & 0x1C00) >> 10;\r
5d73d92f 3194 switch (Temp) {\r
3195 case 1:\r
3196 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gShellDebug1HiiHandle);\r
3197 break;\r
3198\r
3199 case 2:\r
3200 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
3201 break;\r
3202\r
3203 case 3:\r
3204 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR), gShellDebug1HiiHandle);\r
3205 break;\r
3206\r
3207 case 4:\r
3208 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING), gShellDebug1HiiHandle);\r
3209 break;\r
3210\r
3211 case 5:\r
3212 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY), gShellDebug1HiiHandle);\r
3213 break;\r
3214\r
3215 case 6:\r
3216 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS), gShellDebug1HiiHandle);\r
3217 break;\r
3218\r
3219 case 7:\r
3220 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER), gShellDebug1HiiHandle);\r
3221 break;\r
3222\r
3223 case 8:\r
3224 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR), gShellDebug1HiiHandle);\r
3225 break;\r
3226\r
3227 default:\r
3228 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2), gShellDebug1HiiHandle);\r
3229 }\r
3230 //\r
3231 // Bits 9:7 - Status\r
3232 //\r
3233 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH), gShellDebug1HiiHandle);\r
65e58382 3234 Temp = (Characteristics & 0x380) >> 7;\r
5d73d92f 3235 switch (Temp) {\r
3236 case 1:\r
3237 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gShellDebug1HiiHandle);\r
3238 break;\r
3239\r
3240 case 2:\r
3241 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
3242 break;\r
3243\r
3244 case 3:\r
3245 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK), gShellDebug1HiiHandle);\r
3246 break;\r
3247\r
3248 case 4:\r
3249 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL), gShellDebug1HiiHandle);\r
3250 break;\r
3251\r
3252 case 5:\r
3253 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY), gShellDebug1HiiHandle);\r
3254 break;\r
3255\r
3256 default:\r
3257 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED), gShellDebug1HiiHandle);\r
3258 }\r
3259 //\r
3260 // Bits 6:3 - DMTF Input Voltage Range Switching\r
3261 //\r
3262 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE), gShellDebug1HiiHandle);\r
65e58382 3263 Temp = (Characteristics & 0x78) >> 3;\r
5d73d92f 3264 switch (Temp) {\r
3265 case 1:\r
3266 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gShellDebug1HiiHandle);\r
3267 break;\r
3268\r
3269 case 2:\r
3270 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
3271 break;\r
3272\r
3273 case 3:\r
3274 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL), gShellDebug1HiiHandle);\r
3275 break;\r
3276\r
3277 case 4:\r
3278 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH), gShellDebug1HiiHandle);\r
3279 break;\r
3280\r
3281 case 5:\r
3282 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE), gShellDebug1HiiHandle);\r
3283 break;\r
3284\r
3285 case 6:\r
3286 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE), gShellDebug1HiiHandle);\r
3287 break;\r
3288\r
3289 default:\r
3290 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3), gShellDebug1HiiHandle);\r
3291 break;\r
3292 }\r
3293 //\r
3294 // Power supply is unplugged from the wall\r
3295 //\r
3296 if (BIT (Characteristics, 2) != 0) {\r
3297 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED), gShellDebug1HiiHandle);\r
3298 } else {\r
3299 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED), gShellDebug1HiiHandle);\r
3300 }\r
3301 //\r
3302 // Power supply is present\r
3303 //\r
3304 if (BIT (Characteristics, 1) != 0) {\r
3305 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT), gShellDebug1HiiHandle);\r
3306 } else {\r
3307 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT), gShellDebug1HiiHandle);\r
3308 }\r
3309 //\r
3310 // hot replaceable\r
3311 //\r
3312 if (BIT (Characteristics, 0) != 0) {\r
3313 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE), gShellDebug1HiiHandle);\r
3314 } else {\r
3315 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE), gShellDebug1HiiHandle);\r
3316 }\r
3317}\r
e9f0be02
LA
3318\r
3319/**\r
3320 Display TPM Device (Type 43) Characteristics.\r
3321\r
3322 @param[in] Chara The information bits.\r
3323 @param[in] Option The optional information.\r
3324**/\r
3325VOID\r
3326DisplayTpmDeviceCharacteristics (\r
3327 IN UINT64 Chara,\r
3328 IN UINT8 Option\r
3329 )\r
3330{\r
3331 //\r
3332 // Print header\r
3333 //\r
3334 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR), gShellDebug1HiiHandle);\r
3335 //\r
3336 // print option\r
3337 //\r
3338 PRINT_INFO_OPTION (Chara, Option);\r
3339\r
3340 //\r
3341 // Check all the bits and print information\r
3342 // This function does not use Table because table of bits\r
3343 // are designed not to deal with UINT64\r
3344 //\r
3345 if (BIT (Chara, 0) != 0) {\r
3346 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gShellDebug1HiiHandle);\r
3347 }\r
3348\r
3349 if (BIT (Chara, 1) != 0) {\r
3350 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gShellDebug1HiiHandle);\r
3351 }\r
3352 if (BIT (Chara, 2) != 0) {\r
3353 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED), gShellDebug1HiiHandle);\r
3354 }\r
3355\r
3356 if (BIT (Chara, 3) != 0) {\r
3357 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU), gShellDebug1HiiHandle);\r
3358 }\r
3359\r
3360 if (BIT (Chara, 4) != 0) {\r
3361 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW), gShellDebug1HiiHandle);\r
3362 }\r
3363\r
3364 if (BIT (Chara, 5) != 0) {\r
3365 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM), gShellDebug1HiiHandle);\r
3366 }\r
3367\r
3368 //\r
3369 // Just print the Reserved\r
3370 //\r
3371 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63), gShellDebug1HiiHandle);\r
3372\r
3373}\r