]> git.proxmox.com Git - mirror_edk2.git/blame - ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
rename a file.
[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
4 Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.<BR>\r
5 This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#include "../UefiShellDebug1CommandsLib.h"\r
16#include "PrintInfo.h"\r
17#include "LibSmbiosView.h"\r
18#include "QueryTable.h"\r
19#include "EventLogInfo.h"\r
20\r
21\r
22//\r
23// Get the certain bit of 'value'\r
24//\r
25#define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))\r
26\r
27//\r
28//////////////////////////////////////////////////////////\r
29// Macros of print structure element, simplify coding.\r
30//\r
31#define PrintPendingString(pStruct, type, element) \\r
32 do { \\r
33 CHAR8 StringBuf[64]; \\r
34 SetMem (StringBuf, sizeof (StringBuf), 0x00); \\r
35 SmbiosGetPendingString ((pStruct), (pStruct->type->element), StringBuf); \\r
36 ShellPrintEx(-1,-1,L"%a",#element); \\r
37 ShellPrintEx(-1,-1,L": %a\n", StringBuf); \\r
38 } while (0);\r
39\r
40#define PrintSmbiosString(pStruct, stringnumber, element) \\r
41 do { \\r
42 CHAR8 StringBuf[64]; \\r
43 SetMem (StringBuf, sizeof (StringBuf), 0x00); \\r
44 SmbiosGetPendingString ((pStruct), (stringnumber), StringBuf); \\r
45 ShellPrintEx(-1,-1,L"%a",#element); \\r
46 ShellPrintEx(-1,-1,L": %a\n", StringBuf); \\r
47 } while (0);\r
48\r
49#define PrintStructValue(pStruct, type, element) \\r
50 do { \\r
51 ShellPrintEx(-1,-1,L"%a",#element); \\r
52 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \\r
53 } while (0);\r
54\r
55#define PrintStructValueH(pStruct, type, element) \\r
56 do { \\r
57 ShellPrintEx(-1,-1,L"%a",#element); \\r
58 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \\r
59 } while (0);\r
60\r
61#define PrintBitField(pStruct, type, element, size) \\r
62 do { \\r
63 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \\r
64 ShellPrintEx(-1,-1,L"%a",#element); \\r
65 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \\r
66 DumpHex (0, 0, size, &(pStruct->type->element)); \\r
67 } while (0);\r
68\r
69#define PrintSmbiosBitField(pStruct, startaddress, element, size) \\r
70 do { \\r
71 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \\r
72 ShellPrintEx(-1,-1,L"%a",#element); \\r
73 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \\r
74 DumpHex (0, 0, size, startaddress); \\r
75 } while (0);\r
76\r
77//\r
78/////////////////////////////////////////\r
79//\r
80VOID\r
81MemToString (\r
82 IN OUT VOID *Dest,\r
83 IN VOID *Src,\r
84 IN UINTN Length\r
85 )\r
86/*++\r
87\r
88Routine Description:\r
89 Copy Length of Src buffer to Dest buffer,\r
90 add a NULL termination to Dest buffer.\r
91\r
92Arguments:\r
93 Dest - Destination buffer head\r
94 Src - Source buffer head\r
95 Length - Length of buffer to be copied\r
96\r
97Returns:\r
98 None.\r
99\r
100**/\r
101{\r
102 UINT8 *SrcBuffer;\r
103 UINT8 *DestBuffer;\r
104 SrcBuffer = (UINT8 *) Src;\r
105 DestBuffer = (UINT8 *) Dest;\r
106 //\r
107 // copy byte by byte\r
108 //\r
109 while ((Length--)!=0) {\r
110 *DestBuffer++ = *SrcBuffer++;\r
111 }\r
112 //\r
113 // append a NULL terminator\r
114 //\r
115 *DestBuffer = '\0';\r
116}\r
117\r
118//\r
119//////////////////////////////////////////////\r
120//\r
121// Functions below is to show the information\r
122//\r
123VOID\r
124SmbiosPrintEPSInfo (\r
125 IN SMBIOS_STRUCTURE_TABLE *SmbiosTable,\r
126 IN UINT8 Option\r
127 )\r
128/*++\r
129\r
130Routine Description:\r
131 Print the info of EPS(Entry Point Structure)\r
132\r
133Arguments:\r
134 SmbiosTable - Pointer to the SMBIOS table entry point\r
135 Option - Display option\r
136\r
137Returns: None\r
138\r
139**/\r
140{\r
141 UINT8 Anchor[5];\r
142 UINT8 InAnchor[6];\r
143\r
144 if (SmbiosTable == NULL) {\r
145 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL), gShellDebug1HiiHandle);\r
146 return ;\r
147 }\r
148\r
149 if (Option == SHOW_NONE) {\r
150 return ;\r
151 }\r
152\r
153 if (Option >= SHOW_NORMAL) {\r
154 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN), gShellDebug1HiiHandle);\r
155 MemToString (Anchor, SmbiosTable->AnchorString, 4);\r
156 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR), gShellDebug1HiiHandle, Anchor);\r
157 ShellPrintHiiEx(-1,-1,NULL,\r
158 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM),\r
159 gShellDebug1HiiHandle,\r
160 SmbiosTable->EntryPointStructureChecksum\r
161 );\r
162 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN), gShellDebug1HiiHandle, SmbiosTable->EntryPointLength);\r
163 ShellPrintHiiEx(-1,-1,NULL,\r
164 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION),\r
165 gShellDebug1HiiHandle,\r
166 SmbiosTable->MajorVersion,\r
167 SmbiosTable->MinorVersion\r
168 );\r
169 ShellPrintHiiEx(-1,-1,NULL,\r
170 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT),\r
171 gShellDebug1HiiHandle,\r
172 SmbiosTable->NumberOfSmbiosStructures\r
173 );\r
174 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE), gShellDebug1HiiHandle, SmbiosTable->MaxStructureSize);\r
175 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR), gShellDebug1HiiHandle, SmbiosTable->TableAddress);\r
176 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH), gShellDebug1HiiHandle, SmbiosTable->TableLength);\r
177\r
178 }\r
179 //\r
180 // If SHOW_ALL, also print followings.\r
181 //\r
182 if (Option >= SHOW_DETAIL) {\r
183 ShellPrintHiiEx(-1,-1,NULL,\r
184 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION),\r
185 gShellDebug1HiiHandle,\r
186 SmbiosTable->EntryPointRevision\r
187 );\r
188 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION), gShellDebug1HiiHandle, SmbiosTable->SmbiosBcdRevision);\r
189 //\r
190 // Since raw data is not string, add a NULL terminater.\r
191 //\r
192 MemToString (InAnchor, SmbiosTable->IntermediateAnchorString, 5);\r
193 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR), gShellDebug1HiiHandle, InAnchor);\r
194 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM), gShellDebug1HiiHandle, SmbiosTable->IntermediateChecksum);\r
195 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA), gShellDebug1HiiHandle);\r
196 DumpHex (2, 0, 5, SmbiosTable->FormattedArea);\r
197 }\r
198\r
199 Print (L"\n");\r
200}\r
201\r
202EFI_STATUS\r
203SmbiosPrintStructure (\r
204 IN SMBIOS_STRUCTURE_POINTER *pStruct,\r
205 IN UINT8 Option\r
206 )\r
207/*++\r
208\r
209Routine Description:\r
210 This function print the content of the structure pointed by pStruct\r
211\r
212Arguments:\r
213 pStruct - point to the structure to be printed\r
214 Option - print option of information detail\r
215\r
216Returns:\r
217 EFI_SUCCESS - Successfully Printing this function\r
218 EFI_INVALID_PARAMETER - Invalid Structure\r
219 EFI_UNSUPPORTED - Unsupported\r
220\r
221**/\r
222{\r
223 UINT8 Index;\r
224 UINT8 *Buffer;\r
225\r
226 Buffer = (UINT8 *) (UINTN) (pStruct->Raw);\r
227\r
228 if (pStruct == NULL) {\r
229 return EFI_INVALID_PARAMETER;\r
230 }\r
231\r
232 if (Option == SHOW_NONE) {\r
233 return EFI_SUCCESS;\r
234 }\r
235 //\r
236 // Display structure header\r
237 //\r
238 DisplayStructureTypeInfo (pStruct->Hdr->Type, SHOW_DETAIL);\r
239 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN), gShellDebug1HiiHandle, pStruct->Hdr->Length);\r
240 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE), gShellDebug1HiiHandle, pStruct->Hdr->Handle);\r
241\r
242 if (Option == SHOW_OUTLINE) {\r
243 return EFI_SUCCESS;\r
244 }\r
245\r
246 switch (pStruct->Hdr->Type) {\r
247 //\r
248 //\r
249 //\r
250 case 0:\r
251 PrintPendingString (pStruct, Type0, Vendor);\r
252 PrintPendingString (pStruct, Type0, BiosVersion);\r
253 PrintStructValue (pStruct, Type0, BiosSegment);\r
254 PrintPendingString (pStruct, Type0, BiosReleaseDate);\r
255 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE), gShellDebug1HiiHandle, 64 * (pStruct->Type0->BiosSize + 1));\r
256\r
257 if (Option < SHOW_DETAIL) {\r
258 PrintStructValueH (pStruct, Type0, BiosCharacteristics);\r
259 } else {\r
260 DisplayBiosCharacteristics (pStruct->Type0->BiosCharacteristics, Option);\r
261\r
262 //\r
263 // The length of above format part is 0x12 bytes,\r
264 // Ext bytes are following, size = 'len-0x12'.\r
265 // If len-0x12 > 0, then\r
266 // there are extension bytes (byte1, byte2, byte3...)\r
267 // And byte3 not stated in spec, so dump all extension bytes(1, 2, 3..)\r
268 //\r
269 if ((Buffer[1] - (CHAR8) 0x12) > 0) {\r
270 DisplayBiosCharacteristicsExt1 (Buffer[0x12], Option);\r
271 }\r
272\r
273 if ((Buffer[1] - (CHAR8) 0x12) > 1) {\r
274 DisplayBiosCharacteristicsExt2 (Buffer[0x13], Option);\r
275 }\r
276\r
277 if ((Buffer[1] - (CHAR8) 0x12) > 2) {\r
278 PrintBitField (\r
279 pStruct,\r
280 Type0,\r
281 BiosCharacteristics,\r
282 Buffer[1] - (CHAR8) 0x12\r
283 );\r
284 }\r
285 }\r
286 break;\r
287\r
288 //\r
289 // System Information (Type 1)\r
290 //\r
291 case 1:\r
292 PrintPendingString (pStruct, Type1, Manufacturer);\r
293 PrintPendingString (pStruct, Type1, ProductName);\r
294 PrintPendingString (pStruct, Type1, Version);\r
295 PrintPendingString (pStruct, Type1, SerialNumber);\r
296 PrintBitField (pStruct, Type1, Uuid, 16);\r
297 DisplaySystemWakeupType (pStruct->Type1->WakeUpType, Option);\r
298 break;\r
299\r
300 case 2:\r
301 PrintPendingString (pStruct, Type2, Manufacturer);\r
302 PrintPendingString (pStruct, Type2, ProductName);\r
303 PrintPendingString (pStruct, Type2, Version);\r
304 PrintPendingString (pStruct, Type2, SerialNumber);\r
305 break;\r
306\r
307 //\r
308 // System Enclosure (Type 3)\r
309 //\r
310 case 3:\r
311 PrintPendingString (pStruct, Type3, Manufacturer);\r
312 PrintStructValue (pStruct, Type3, Type);\r
313 DisplaySystemEnclosureType (pStruct->Type3->Type, Option);\r
314 PrintPendingString (pStruct, Type3, Version);\r
315 PrintPendingString (pStruct, Type3, SerialNumber);\r
316 PrintPendingString (pStruct, Type3, AssetTag);\r
317 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE), gShellDebug1HiiHandle);\r
318 DisplaySystemEnclosureStatus (pStruct->Type3->BootupState, Option);\r
319 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE), gShellDebug1HiiHandle);\r
320 DisplaySystemEnclosureStatus (pStruct->Type3->PowerSupplyState, Option);\r
321 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE), gShellDebug1HiiHandle);\r
322 DisplaySystemEnclosureStatus (pStruct->Type3->ThermalState, Option);\r
323 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS), gShellDebug1HiiHandle);\r
324 DisplaySESecurityStatus (pStruct->Type3->SecurityStatus, Option);\r
325 PrintBitField (pStruct, Type3, OemDefined, 4);\r
326 break;\r
327\r
328 //\r
329 // Processor Information (Type 4)\r
330 //\r
331 case 4:\r
332 PrintStructValue (pStruct, Type4, Socket);\r
333 DisplayProcessorType (pStruct->Type4->ProcessorType, Option);\r
334 if ((SmbiosMajorVersion > 0x2 || (SmbiosMajorVersion == 0x2 && SmbiosMinorVersion >= 0x6)) &&\r
335 (pStruct->Type4->ProcessorFamily == 0xFE)) {\r
336 //\r
337 // Get family from ProcessorFamily2 field\r
338 //\r
339 DisplayProcessorFamily2 (pStruct->Type4->ProcessorFamily2, Option);\r
340 } else {\r
341 DisplayProcessorFamily (pStruct->Type4->ProcessorFamily, Option);\r
342 }\r
343 PrintPendingString (pStruct, Type4, ProcessorManufacture);\r
344 PrintBitField (pStruct, Type4, ProcessorId, 8);\r
345 PrintPendingString (pStruct, Type4, ProcessorVersion);\r
346 DisplayProcessorVoltage (pStruct->Type4->Voltage, Option);\r
347 PrintStructValue (pStruct, Type4, ExternalClock);\r
348 PrintStructValue (pStruct, Type4, MaxSpeed);\r
349 PrintStructValue (pStruct, Type4, CurrentSpeed);\r
350 DisplayProcessorStatus (pStruct->Type4->Status, Option);\r
351 DisplayProcessorUpgrade (pStruct->Type4->ProcessorUpgrade, Option);\r
352 PrintStructValueH (pStruct, Type4, L1CacheHandle);\r
353 PrintStructValueH (pStruct, Type4, L2CacheHandle);\r
354 PrintStructValueH (pStruct, Type4, L3CacheHandle);\r
355 PrintPendingString (pStruct, Type4, SerialNumber);\r
356 PrintPendingString (pStruct, Type4, AssetTag);\r
357 PrintPendingString (pStruct, Type4, PartNumber);\r
358 if (SmbiosMajorVersion > 0x2 || (SmbiosMajorVersion == 0x2 && SmbiosMinorVersion >= 0x5)) {\r
359 PrintStructValue (pStruct, Type4, CoreCount);\r
360 PrintStructValue (pStruct, Type4, EnabledCoreCount);\r
361 PrintStructValue (pStruct, Type4, ThreadCount);\r
362 PrintStructValueH (pStruct, Type4, ProcessorCharacteristics);\r
363 }\r
364 break;\r
365\r
366 //\r
367 // Memory Controller Information (Type 5)\r
368 //\r
369 case 5:\r
370 {\r
371 UINT8 SlotNum;\r
372 SlotNum = pStruct->Type5->AssociatedMemorySlotNum;\r
373\r
374 DisplayMcErrorDetectMethod (pStruct->Type5->ErrDetectMethod, Option);\r
375 DisplayMcErrorCorrectCapability (pStruct->Type5->ErrCorrectCapability, Option);\r
376 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT), gShellDebug1HiiHandle);\r
377 DisplayMcInterleaveSupport (pStruct->Type5->SupportInterleave, Option);\r
378 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT), gShellDebug1HiiHandle);\r
379 DisplayMcInterleaveSupport (pStruct->Type5->CurrentInterleave, Option);\r
380 DisplayMaxMemoryModuleSize (pStruct->Type5->MaxMemoryModuleSize, SlotNum, Option);\r
381 DisplayMcMemorySpeeds (pStruct->Type5->SupportSpeed, Option);\r
382 DisplayMmMemoryType (pStruct->Type5->SupportMemoryType, Option);\r
383 DisplayMemoryModuleVoltage (pStruct->Type5->MemoryModuleVoltage, Option);\r
384 PrintStructValue (pStruct, Type5, AssociatedMemorySlotNum);\r
385 //\r
386 // According to SMBIOS Specification, offset 0x0F\r
387 //\r
388 DisplayMemoryModuleConfigHandles ((UINT16 *) (&Buffer[0x0F]), SlotNum, Option);\r
389 DisplayMcErrorCorrectCapability (Buffer[0x0F + 2 * SlotNum], Option);\r
390 }\r
391 break;\r
392\r
393 //\r
394 // Memory Module Information (Type 6)\r
395 //\r
396 case 6:\r
397 PrintPendingString (pStruct, Type6, SocketDesignation);\r
398 DisplayMmBankConnections (pStruct->Type6->BankConnections, Option);\r
399 PrintStructValue (pStruct, Type6, CurrentSpeed);\r
400 DisplayMmMemoryType (pStruct->Type6->CurrentMemoryType, Option);\r
401 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED), gShellDebug1HiiHandle);\r
402 DisplayMmMemorySize (pStruct->Type6->InstalledSize, Option);\r
403 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED), gShellDebug1HiiHandle);\r
404 DisplayMmMemorySize (pStruct->Type6->EnabledSize, Option);\r
405 DisplayMmErrorStatus (pStruct->Type6->ErrorStatus, Option);\r
406 break;\r
407\r
408 //\r
409 // Cache Information (Type 7)\r
410 //\r
411 case 7:\r
412 PrintPendingString (pStruct, Type7, SocketDesignation);\r
413 PrintStructValueH (pStruct, Type7, CacheConfiguration);\r
414 PrintStructValueH (pStruct, Type7, MaximumCacheSize);\r
415 PrintStructValueH (pStruct, Type7, InstalledSize);\r
416 PrintStructValueH (pStruct, Type7, SupportedSRAMType);\r
417 PrintStructValueH (pStruct, Type7, CurrentSRAMType);\r
418 DisplayCacheSRAMType (pStruct->Type7->CurrentSRAMType, Option);\r
419 PrintStructValueH (pStruct, Type7, CacheSpeed);\r
420 DisplayCacheErrCorrectingType (pStruct->Type7->ErrorCorrectionType, Option);\r
421 DisplayCacheSystemCacheType (pStruct->Type7->SystemCacheType, Option);\r
422 DisplayCacheAssociativity (pStruct->Type7->Associativity, Option);\r
423 break;\r
424\r
425 //\r
426 // Port Connector Information (Type 8)\r
427 //\r
428 case 8:\r
429 PrintPendingString (pStruct, Type8, InternalReferenceDesignator);\r
430 Print (L"Internal ");\r
431 DisplayPortConnectorType (pStruct->Type8->InternalConnectorType, Option);\r
432 PrintPendingString (pStruct, Type8, ExternalReferenceDesignator);\r
433 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL), gShellDebug1HiiHandle);\r
434 DisplayPortConnectorType (pStruct->Type8->ExternalConnectorType, Option);\r
435 DisplayPortType (pStruct->Type8->PortType, Option);\r
436 break;\r
437\r
438 //\r
439 // System Slots (Type 9)\r
440 //\r
441 case 9:\r
442 PrintPendingString (pStruct, Type9, SlotDesignation);\r
443 DisplaySystemSlotType (pStruct->Type9->SlotType, Option);\r
444 DisplaySystemSlotDataBusWidth (pStruct->Type9->SlotDataBusWidth, Option);\r
445 DisplaySystemSlotCurrentUsage (pStruct->Type9->CurrentUsage, Option);\r
446 DisplaySystemSlotLength (pStruct->Type9->SlotLength, Option);\r
447 DisplaySystemSlotId (\r
448 pStruct->Type9->SlotID,\r
449 pStruct->Type9->SlotType,\r
450 Option\r
451 );\r
452 DisplaySlotCharacteristics1 (pStruct->Type9->SlotCharacteristics1, Option);\r
453 DisplaySlotCharacteristics2 (pStruct->Type9->SlotCharacteristics2, Option);\r
454 if (SmbiosMajorVersion > 0x2 || (SmbiosMajorVersion == 0x2 && SmbiosMinorVersion >= 0x6)) {\r
455 PrintStructValueH (pStruct, Type9, SegmentGroupNum);\r
456 PrintStructValueH (pStruct, Type9, BusNum);\r
457 PrintStructValueH (pStruct, Type9, DevFuncNum);\r
458 }\r
459 break;\r
460\r
461 //\r
462 // On Board Devices Information (Type 10)\r
463 //\r
464 case 10:\r
465 {\r
466 UINTN NumOfDevice;\r
467 NumOfDevice = (pStruct->Type10->Hdr.Length - sizeof (SMBIOS_HEADER)) / (2 * sizeof (UINT8));\r
468 for (Index = 0; Index < NumOfDevice; Index++) {\r
469 DisplayOnboardDeviceTypes (pStruct->Type10->Device[Index].DeviceType, Option);\r
470 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING), gShellDebug1HiiHandle);\r
471 ShellPrintEx(-1,-1,L"%a",LibGetSmbiosString (pStruct, pStruct->Type10->Device[Index].DescriptionString));\r
472 }\r
473 }\r
474 break;\r
475\r
476 case 11:\r
477 PrintStructValue (pStruct, Type11, StringCount);\r
478 for (Index = 1; Index <= pStruct->Type11->StringCount; Index++) {\r
479 ShellPrintEx(-1,-1,L"%a\n", LibGetSmbiosString (pStruct, Index));\r
480 }\r
481 break;\r
482\r
483 case 12:\r
484 PrintStructValue (pStruct, Type12, StringCount);\r
485 for (Index = 1; Index <= pStruct->Type12->StringCount; Index++) {\r
486 ShellPrintEx(-1,-1,L"%a\n", LibGetSmbiosString (pStruct, Index));\r
487 }\r
488 break;\r
489\r
490 case 13:\r
491 PrintStructValue (pStruct, Type13, InstallableLanguages);\r
492 PrintStructValue (pStruct, Type13, Flags);\r
493 PrintBitField (pStruct, Type13, reserved, 15);\r
494 PrintPendingString (pStruct, Type13, CurrentLanguages);\r
495 break;\r
496\r
497 case 14:\r
498 PrintPendingString (pStruct, Type14, GroupName);\r
499 PrintStructValue (pStruct, Type14, ItemType);\r
500 PrintStructValue (pStruct, Type14, ItemHandle);\r
501 break;\r
502\r
503 //\r
504 // System Event Log (Type 15)\r
505 //\r
506 case 15:\r
507 {\r
508 EVENTLOGTYPE *Ptr;\r
509 UINT8 Count;\r
510 UINT8 *AccessMethodAddress;\r
511\r
512 PrintStructValueH (pStruct, Type15, LogAreaLength);\r
513 PrintStructValueH (pStruct, Type15, LogHeaderStartOffset);\r
514 PrintStructValueH (pStruct, Type15, LogDataStartOffset);\r
515 DisplaySELAccessMethod (pStruct->Type15->AccessMethod, Option);\r
516 PrintStructValueH (pStruct, Type15, AccessMethodAddress);\r
517 DisplaySELLogStatus (pStruct->Type15->LogStatus, Option);\r
518 PrintStructValueH (pStruct, Type15, LogChangeToken);\r
519 DisplaySysEventLogHeaderFormat (pStruct->Type15->LogHeaderFormat, Option);\r
520 PrintStructValueH (pStruct, Type15, NumberOfSupportedLogTypeDescriptors);\r
521 PrintStructValueH (pStruct, Type15, LengthOfLogTypeDescriptor);\r
522\r
523 Count = pStruct->Type15->NumberOfSupportedLogTypeDescriptors;\r
524 if (Count > 0) {\r
525 Ptr = pStruct->Type15->EventLogTypeDescriptors;\r
526\r
527 //\r
528 // Display all Event Log type descriptors supported by system\r
529 //\r
530 for (Index = 0; Index < Count; Index++, Ptr++) {\r
531 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT), gShellDebug1HiiHandle, Index + 1);\r
532 DisplaySELTypes (Ptr->LogType, Option);\r
533 DisplaySELVarDataFormatType (Ptr->DataFormatType, Option);\r
534 }\r
535\r
536 if (Option >= SHOW_DETAIL) {\r
537 switch (pStruct->Type15->AccessMethod) {\r
538 case 03:\r
539 AccessMethodAddress = (UINT8 *) (UINTN) (pStruct->Type15->AccessMethodAddress);\r
540 break;\r
541\r
542 case 00:\r
543 case 01:\r
544 case 02:\r
545 case 04:\r
546 default:\r
547 ShellPrintHiiEx(-1,-1,NULL,\r
548 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED),\r
549 gShellDebug1HiiHandle,\r
550 pStruct->Type15->AccessMethod\r
551 );\r
552 return EFI_UNSUPPORTED;\r
553 }\r
554 //\r
555 // Display Event Log Header\r
556 //\r
557 // Starting offset (or index) within the nonvolatile storage\r
558 // of the event-log's header, from the Access Method Address\r
559 //\r
560 DisplaySysEventLogHeader (\r
561 pStruct->Type15->LogHeaderFormat,\r
562 AccessMethodAddress + pStruct->Type15->LogHeaderStartOffset\r
563 );\r
564\r
565 //\r
566 // Display all Event Log data\r
567 //\r
568 // Starting offset (or index) within the nonvolatile storage\r
569 // of the event-log's first data byte, from the Access Method Address(0x14)\r
570 //\r
571 DisplaySysEventLogData (\r
572 AccessMethodAddress + pStruct->Type15->LogDataStartOffset,\r
573 (UINT16)\r
574 (\r
575 pStruct->Type15->LogAreaLength -\r
576 (pStruct->Type15->LogDataStartOffset - pStruct->Type15->LogDataStartOffset)\r
577 )\r
578 );\r
579 }\r
580\r
581 }\r
582 }\r
583 break;\r
584\r
585 //\r
586 // Physical Memory Array (Type 16)\r
587 //\r
588 case 16:\r
589 DisplayPMALocation (pStruct->Type16->Location, Option);\r
590 DisplayPMAUse (pStruct->Type16->Use, Option);\r
591 DisplayPMAErrorCorrectionTypes (\r
592 pStruct->Type16->MemoryErrorCorrection,\r
593 Option\r
594 );\r
595 PrintStructValueH (pStruct, Type16, MaximumCapacity);\r
596 PrintStructValueH (pStruct, Type16, MemoryErrorInformationHandle);\r
597 PrintStructValueH (pStruct, Type16, NumberOfMemoryDevices);\r
598 break;\r
599\r
600 //\r
601 // Memory Device (Type 17)\r
602 //\r
603 case 17:\r
604 PrintStructValueH (pStruct, Type17, MemoryArrayHandle);\r
605 PrintStructValueH (pStruct, Type17, MemoryErrorInformationHandle);\r
606 PrintStructValue (pStruct, Type17, TotalWidth);\r
607 PrintStructValue (pStruct, Type17, DataWidth);\r
608 PrintStructValue (pStruct, Type17, Size);\r
609 DisplayMemoryDeviceFormFactor (pStruct->Type17->FormFactor, Option);\r
610 PrintStructValueH (pStruct, Type17, DeviceSet);\r
611 PrintPendingString (pStruct, Type17, DeviceLocator);\r
612 PrintPendingString (pStruct, Type17, BankLocator);\r
613 DisplayMemoryDeviceType (pStruct->Type17->MemoryType, Option);\r
614 DisplayMemoryDeviceTypeDetail (pStruct->Type17->TypeDetail, Option);\r
615 PrintStructValueH (pStruct, Type17, Speed);\r
616 PrintPendingString (pStruct, Type17, Manufacturer);\r
617 PrintPendingString (pStruct, Type17, SerialNumber);\r
618 PrintPendingString (pStruct, Type17, AssetTag);\r
619 PrintPendingString (pStruct, Type17, PartNumber);\r
620 if (SmbiosMajorVersion > 0x2 || (SmbiosMajorVersion == 0x2 && SmbiosMinorVersion >= 0x6)) {\r
621 PrintStructValueH (pStruct, Type17, Attributes);\r
622 }\r
623 break;\r
624\r
625 //\r
626 // 32-bit Memory Error Information (Type 18)\r
627 //\r
628 case 18:\r
629 DisplayMemoryErrorType (pStruct->Type18->ErrorType, Option);\r
630 DisplayMemoryErrorGranularity (\r
631 pStruct->Type18->ErrorGranularity,\r
632 Option\r
633 );\r
634 DisplayMemoryErrorOperation (pStruct->Type18->ErrorOperation, Option);\r
635 PrintStructValueH (pStruct, Type18, VendorSyndrome);\r
636 PrintStructValueH (pStruct, Type18, MemoryArrayErrorAddress);\r
637 PrintStructValueH (pStruct, Type18, DeviceErrorAddress);\r
638 PrintStructValueH (pStruct, Type18, ErrorResolution);\r
639 break;\r
640\r
641 //\r
642 // Memory Array Mapped Address (Type 19)\r
643 //\r
644 case 19:\r
645 PrintStructValueH (pStruct, Type19, StartingAddress);\r
646 PrintStructValueH (pStruct, Type19, EndingAddress);\r
647 PrintStructValueH (pStruct, Type19, MemoryArrayHandle);\r
648 PrintStructValueH (pStruct, Type19, PartitionWidth);\r
649 break;\r
650\r
651 //\r
652 // Memory Device Mapped Address (Type 20)\r
653 //\r
654 case 20:\r
655 PrintStructValueH (pStruct, Type20, StartingAddress);\r
656 PrintStructValueH (pStruct, Type20, EndingAddress);\r
657 PrintStructValueH (pStruct, Type20, MemoryDeviceHandle);\r
658 PrintStructValueH (pStruct, Type20, MemoryArrayMappedAddressHandle);\r
659 PrintStructValueH (pStruct, Type20, PartitionRowPosition);\r
660 PrintStructValueH (pStruct, Type20, InterleavePosition);\r
661 PrintStructValueH (pStruct, Type20, InterleavedDataDepth);\r
662 break;\r
663\r
664 //\r
665 // Built-in Pointing Device (Type 21)\r
666 //\r
667 case 21:\r
668 DisplayPointingDeviceType (pStruct->Type21->Type, Option);\r
669 DisplayPointingDeviceInterface (pStruct->Type21->Interface, Option);\r
670 PrintStructValue (pStruct, Type21, NumberOfButtons);\r
671 break;\r
672\r
673 //\r
674 // Portable Battery (Type 22)\r
675 //\r
676 case 22:\r
677 PrintPendingString (pStruct, Type22, Location);\r
678 PrintPendingString (pStruct, Type22, Manufacturer);\r
679 PrintPendingString (pStruct, Type22, ManufactureDate);\r
680 PrintPendingString (pStruct, Type22, SerialNumber);\r
681 PrintPendingString (pStruct, Type22, DeviceName);\r
682 DisplayPBDeviceChemistry (\r
683 pStruct->Type22->DeviceChemistry,\r
684 Option\r
685 );\r
686 PrintStructValueH (pStruct, Type22, DeviceCapacity);\r
687 PrintStructValueH (pStruct, Type22, DesignVoltage);\r
688 PrintPendingString (pStruct, Type22, SBDSVersionNumber);\r
689 PrintStructValueH (pStruct, Type22, MaximumErrorInBatteryData);\r
690 PrintStructValueH (pStruct, Type22, SBDSSerialNumber);\r
691 DisplaySBDSManufactureDate (\r
692 pStruct->Type22->SBDSManufactureDate,\r
693 Option\r
694 );\r
695 PrintPendingString (pStruct, Type22, SBDSDeviceChemistry);\r
696 PrintStructValueH (pStruct, Type22, DesignCapacityMultiplier);\r
697 PrintStructValueH (pStruct, Type22, OEMSpecific);\r
698 break;\r
699\r
700 case 23:\r
701 DisplaySystemResetCapabilities (\r
702 pStruct->Type23->Capabilities,\r
703 Option\r
704 );\r
705 PrintStructValueH (pStruct, Type23, ResetCount);\r
706 PrintStructValueH (pStruct, Type23, ResetLimit);\r
707 PrintStructValueH (pStruct, Type23, TimerInterval);\r
708 PrintStructValueH (pStruct, Type23, Timeout);\r
709 break;\r
710\r
711 case 24:\r
712 DisplayHardwareSecuritySettings (\r
713 pStruct->Type24->HardwareSecuritySettings,\r
714 Option\r
715 );\r
716 break;\r
717\r
718 case 25:\r
719 PrintStructValueH (pStruct, Type25, NextScheduledPowerOnMonth);\r
720 PrintStructValueH (pStruct, Type25, NextScheduledPowerOnDayOfMonth);\r
721 PrintStructValueH (pStruct, Type25, NextScheduledPowerOnHour);\r
722 PrintStructValueH (pStruct, Type25, NextScheduledPowerOnMinute);\r
723 PrintStructValueH (pStruct, Type25, NextScheduledPowerOnSecond);\r
724 break;\r
725\r
726 case 26:\r
727 PrintPendingString (pStruct, Type26, Description);\r
728 DisplayVPLocation (pStruct->Type26->LocationAndStatus, Option);\r
729 DisplayVPStatus (pStruct->Type26->LocationAndStatus, Option);\r
730 PrintStructValueH (pStruct, Type26, MaximumValue);\r
731 PrintStructValueH (pStruct, Type26, MinimumValue);\r
732 PrintStructValueH (pStruct, Type26, Resolution);\r
733 PrintStructValueH (pStruct, Type26, Tolerance);\r
734 PrintStructValueH (pStruct, Type26, Accuracy);\r
735 PrintStructValueH (pStruct, Type26, OEMDefined);\r
736 PrintStructValueH (pStruct, Type26, NominalValue);\r
737 break;\r
738\r
739 case 27:\r
740 PrintStructValueH (pStruct, Type27, TemperatureProbeHandle);\r
741 DisplayCoolingDeviceStatus (pStruct->Type27->DeviceTypeAndStatus, Option);\r
742 DisplayCoolingDeviceType (pStruct->Type27->DeviceTypeAndStatus, Option);\r
743 PrintStructValueH (pStruct, Type27, CoolingUnitGroup);\r
744 PrintStructValueH (pStruct, Type27, OEMDefined);\r
745 PrintStructValueH (pStruct, Type27, NominalSpeed);\r
746 break;\r
747\r
748 case 28:\r
749 PrintPendingString (pStruct, Type28, Description);\r
750 DisplayTemperatureProbeStatus (pStruct->Type28->LocationAndStatus, Option);\r
751 DisplayTemperatureProbeLoc (pStruct->Type28->LocationAndStatus, Option);\r
752 PrintStructValueH (pStruct, Type28, MaximumValue);\r
753 PrintStructValueH (pStruct, Type28, MinimumValue);\r
754 PrintStructValueH (pStruct, Type28, Resolution);\r
755 PrintStructValueH (pStruct, Type28, Tolerance);\r
756 PrintStructValueH (pStruct, Type28, Accuracy);\r
757 PrintStructValueH (pStruct, Type28, OEMDefined);\r
758 PrintStructValueH (pStruct, Type28, NominalValue);\r
759 break;\r
760\r
761 case 29:\r
762 PrintPendingString (pStruct, Type29, Description);\r
763 DisplayECPStatus (pStruct->Type29->LocationAndStatus, Option);\r
764 DisplayECPLoc (pStruct->Type29->LocationAndStatus, Option);\r
765 PrintStructValueH (pStruct, Type29, MaximumValue);\r
766 PrintStructValueH (pStruct, Type29, MinimumValue);\r
767 PrintStructValueH (pStruct, Type29, Resolution);\r
768 PrintStructValueH (pStruct, Type29, Tolerance);\r
769 PrintStructValueH (pStruct, Type29, Accuracy);\r
770 PrintStructValueH (pStruct, Type29, OEMDefined);\r
771 PrintStructValueH (pStruct, Type29, NominalValue);\r
772 break;\r
773\r
774 case 30:\r
775 PrintPendingString (pStruct, Type30, ManufacturerName);\r
776 DisplayOBRAConnections (pStruct->Type30->Connections, Option);\r
777 break;\r
778\r
779 case 31:\r
780 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31), gShellDebug1HiiHandle);\r
781 break;\r
782\r
783 case 32:\r
784 PrintBitField (pStruct, Type32, Reserved, 6);\r
785 DisplaySystemBootStatus (pStruct->Type32->BootStatus[0], Option);\r
786 break;\r
787\r
788 case 33:\r
789 DisplayMemoryErrorType (pStruct->Type33->ErrorType, Option);\r
790 DisplayMemoryErrorGranularity (\r
791 pStruct->Type33->ErrorGranularity,\r
792 Option\r
793 );\r
794 DisplayMemoryErrorOperation (pStruct->Type33->ErrorOperation, Option);\r
795 PrintStructValueH (pStruct, Type33, VendorSyndrome);\r
796 PrintStructValueH (pStruct, Type33, MemoryArrayErrorAddress);\r
797 PrintStructValueH (pStruct, Type33, DeviceErrorAddress);\r
798 PrintStructValueH (pStruct, Type33, ErrorResolution);\r
799 break;\r
800\r
801 //\r
802 // Management Device (Type 34)\r
803 //\r
804 case 34:\r
805 PrintPendingString (pStruct, Type34, Description);\r
806 DisplayMDType (pStruct->Type34->Type, Option);\r
807 PrintStructValueH (pStruct, Type34, Address);\r
808 PrintStructValueH (pStruct, Type34, AddressType);\r
809 break;\r
810\r
811 case 35:\r
812 PrintPendingString (pStruct, Type35, Description);\r
813 PrintStructValueH (pStruct, Type35, ManagementDeviceHandle);\r
814 PrintStructValueH (pStruct, Type35, ComponentHandle);\r
815 PrintStructValueH (pStruct, Type35, ThresholdHandle);\r
816 break;\r
817\r
818 case 36:\r
819 PrintStructValueH (pStruct, Type36, LowerThresholdNonCritical);\r
820 PrintStructValueH (pStruct, Type36, UpperThresholdNonCritical);\r
821 PrintStructValueH (pStruct, Type36, LowerThresholdCritical);\r
822 PrintStructValueH (pStruct, Type36, UpperThresholdCritical);\r
823 PrintStructValueH (pStruct, Type36, LowerThresholdNonRecoverable);\r
824 PrintStructValueH (pStruct, Type36, UpperThresholdNonRecoverable);\r
825 break;\r
826\r
827 //\r
828 // Memory Channel (Type 37)\r
829 //\r
830 case 37:\r
831 {\r
832 UINT8 Count;\r
833 MEMORYDEVICE *Ptr;\r
834 DisplayMemoryChannelType (pStruct->Type37->ChannelType, Option);\r
835 PrintStructValueH (pStruct, Type37, MaximumChannelLoad);\r
836 PrintStructValueH (pStruct, Type37, MemoryDeviceCount);\r
837\r
838 Count = pStruct->Type37->MemoryDeviceCount;\r
839 Ptr = pStruct->Type37->MemoryDevice;\r
840 for (Index = 0; Index < Count; Index++) {\r
841 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE), gShellDebug1HiiHandle, Index + 1);\r
842 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD), gShellDebug1HiiHandle, Ptr->DeviceLoad);\r
843 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE), gShellDebug1HiiHandle, Ptr->DeviceHandle);\r
844 }\r
845 }\r
846 break;\r
847\r
848 //\r
849 // IPMI Device Information (Type 38)\r
850 //\r
851 case 38:\r
852 DisplayIPMIDIBMCInterfaceType (pStruct->Type38->InterfaceType, Option);\r
853 PrintStructValueH (pStruct, Type38, IPMISpecificationRevision);\r
854 PrintStructValueH (pStruct, Type38, I2CSlaveAddress);\r
855 PrintStructValueH (pStruct, Type38, NVStorageDeviceAddress);\r
856 PrintStructValueH (pStruct, Type38, BaseAddress);\r
857 break;\r
858\r
859 //\r
860 // System Power Supply (Type 39)\r
861 //\r
862 case 39:\r
863 PrintStructValueH (pStruct, Type39, PowerUnitGroup);\r
864 PrintPendingString (pStruct, Type39, Location);\r
865 PrintPendingString (pStruct, Type39, DeviceName);\r
866 PrintPendingString (pStruct, Type39, Manufacturer);\r
867 PrintPendingString (pStruct, Type39, SerialNumber);\r
868 PrintPendingString (pStruct, Type39, AssetTagNumber);\r
869 PrintPendingString (pStruct, Type39, ModelPartNumber);\r
870 PrintPendingString (pStruct, Type39, RevisionLevel);\r
871 PrintStructValueH (pStruct, Type39, MaxPowerCapacity);\r
872 DisplaySPSCharacteristics (\r
873 pStruct->Type39->PowerSupplyCharacteristics,\r
874 Option\r
875 );\r
876 PrintStructValueH (pStruct, Type39, InputVoltageProbeHandle);\r
877 PrintStructValueH (pStruct, Type39, CoolingDeviceHandle);\r
878 PrintStructValueH (pStruct, Type39, InputCurrentProbeHandle);\r
879 break;\r
880\r
881 //\r
882 // Additional Information (Type 40)\r
883 //\r
884 case 40:\r
885 {\r
886 UINT8 NumberOfEntries;\r
887 UINT8 EntryLength;\r
888 ADDITIONAL_INFORMATION_ENTRY *Entries;\r
889\r
890 EntryLength = 0;\r
891 Entries = pStruct->Type40->AdditionalInfoEntries;\r
892 NumberOfEntries = pStruct->Type40->NumberOfAdditionalInformationEntries;\r
893\r
894 PrintStructValueH (pStruct, Type40, NumberOfAdditionalInformationEntries);\r
895\r
896 for (Index = 0; Index < NumberOfEntries; Index++) {\r
897 EntryLength = Entries->EntryLength;\r
898 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN), gShellDebug1HiiHandle, EntryLength);\r
899 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE), gShellDebug1HiiHandle, Entries->ReferencedHandle);\r
900 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET), gShellDebug1HiiHandle, Entries->ReferencedOffset);\r
901 PrintSmbiosString (pStruct, Entries->EntryString, String);\r
902 PrintSmbiosBitField (pStruct, Entries->Value, Value, EntryLength - 5);\r
903 Entries = (ADDITIONAL_INFORMATION_ENTRY *) ((UINT8 *)Entries + EntryLength);\r
904 }\r
905 }\r
906 break;\r
907\r
908 //\r
909 // Onboard Devices Extended Information (Type 41)\r
910 //\r
911 case 41:\r
912 PrintPendingString (pStruct, Type41, ReferenceDesignation);\r
913 PrintStructValueH (pStruct, Type41, DeviceType);\r
914 PrintStructValueH (pStruct, Type41, DeviceTypeInstance);\r
915 PrintStructValueH (pStruct, Type41, SegmentGroupNum);\r
916 PrintStructValueH (pStruct, Type41, BusNum);\r
917 PrintStructValueH (pStruct, Type41, DevFuncNum);\r
918 break;\r
919\r
920 case 126:\r
921 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT), gShellDebug1HiiHandle);\r
922 break;\r
923\r
924 case 127:\r
925 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE), gShellDebug1HiiHandle);\r
926 break;\r
927\r
928 default:\r
929 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED), gShellDebug1HiiHandle);\r
930 break;\r
931 }\r
932\r
933 return EFI_SUCCESS;\r
934}\r
935\r
936VOID\r
937DisplayBiosCharacteristics (\r
938 UINT64 chara,\r
939 UINT8 Option\r
940 )\r
941{\r
942 //\r
943 // Print header\r
944 //\r
945 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR), gShellDebug1HiiHandle);\r
946 //\r
947 // print option\r
948 //\r
949 PRINT_INFO_OPTION (chara, Option);\r
950\r
951 //\r
952 // Check all the bits and print information\r
953 // This function does not use Table because table of bits\r
954 // are designed not to deal with UINT64\r
955 //\r
956 if (BIT (chara, 0) != 0) {\r
957 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gShellDebug1HiiHandle);\r
958 }\r
959\r
960 if (BIT (chara, 1) != 0) {\r
961 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gShellDebug1HiiHandle);\r
962 }\r
963\r
964 if (BIT (chara, 2) != 0) {\r
965 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT), gShellDebug1HiiHandle);\r
966 }\r
967\r
968 if (BIT (chara, 3) != 0) {\r
969 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED), gShellDebug1HiiHandle);\r
970 }\r
971\r
972 if (BIT (chara, 4) != 0) {\r
973 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED), gShellDebug1HiiHandle);\r
974 }\r
975\r
976 if (BIT (chara, 5) != 0) {\r
977 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED), gShellDebug1HiiHandle);\r
978 }\r
979\r
980 if (BIT (chara, 6) != 0) {\r
981 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED), gShellDebug1HiiHandle);\r
982 }\r
983\r
984 if (BIT (chara, 7) != 0) {\r
985 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED), gShellDebug1HiiHandle);\r
986 }\r
987\r
988 if (BIT (chara, 8) != 0) {\r
989 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED), gShellDebug1HiiHandle);\r
990 }\r
991\r
992 if (BIT (chara, 9) != 0) {\r
993 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED), gShellDebug1HiiHandle);\r
994 }\r
995\r
996 if (BIT (chara, 10) != 0) {\r
997 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED), gShellDebug1HiiHandle);\r
998 }\r
999\r
1000 if (BIT (chara, 11) != 0) {\r
1001 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE), gShellDebug1HiiHandle);\r
1002 }\r
1003\r
1004 if (BIT (chara, 12) != 0) {\r
1005 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING), gShellDebug1HiiHandle);\r
1006 }\r
1007\r
1008 if (BIT (chara, 13) != 0) {\r
1009 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED), gShellDebug1HiiHandle);\r
1010 }\r
1011\r
1012 if (BIT (chara, 14) != 0) {\r
1013 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT), gShellDebug1HiiHandle);\r
1014 }\r
1015\r
1016 if (BIT (chara, 15) != 0) {\r
1017 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED), gShellDebug1HiiHandle);\r
1018 }\r
1019\r
1020 if (BIT (chara, 16) != 0) {\r
1021 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED), gShellDebug1HiiHandle);\r
1022 }\r
1023\r
1024 if (BIT (chara, 17) != 0) {\r
1025 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED), gShellDebug1HiiHandle);\r
1026 }\r
1027\r
1028 if (BIT (chara, 18) != 0) {\r
1029 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD), gShellDebug1HiiHandle);\r
1030 }\r
1031\r
1032 if (BIT (chara, 19) != 0) {\r
1033 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER), gShellDebug1HiiHandle);\r
1034 }\r
1035\r
1036 if (BIT (chara, 20) != 0) {\r
1037 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC), gShellDebug1HiiHandle);\r
1038 }\r
1039\r
1040 if (BIT (chara, 21) != 0) {\r
1041 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA), gShellDebug1HiiHandle);\r
1042 }\r
1043\r
1044 if (BIT (chara, 22) != 0) {\r
1045 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED), gShellDebug1HiiHandle);\r
1046 }\r
1047\r
1048 if (BIT (chara, 23) != 0) {\r
1049 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB), gShellDebug1HiiHandle);\r
1050 }\r
1051\r
1052 if (BIT (chara, 24) != 0) {\r
1053 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB), gShellDebug1HiiHandle);\r
1054 }\r
1055\r
1056 if (BIT (chara, 25) != 0) {\r
1057 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB), gShellDebug1HiiHandle);\r
1058 }\r
1059\r
1060 if (BIT (chara, 26) != 0) {\r
1061 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT), gShellDebug1HiiHandle);\r
1062 }\r
1063\r
1064 if (BIT (chara, 27) != 0) {\r
1065 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT), gShellDebug1HiiHandle);\r
1066 }\r
1067\r
1068 if (BIT (chara, 28) != 0) {\r
1069 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT), gShellDebug1HiiHandle);\r
1070 }\r
1071\r
1072 if (BIT (chara, 29) != 0) {\r
1073 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT), gShellDebug1HiiHandle);\r
1074 }\r
1075\r
1076 if (BIT (chara, 30) != 0) {\r
1077 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT), gShellDebug1HiiHandle);\r
1078 }\r
1079\r
1080 if (BIT (chara, 31) != 0) {\r
1081 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98), gShellDebug1HiiHandle);\r
1082 }\r
1083 //\r
1084 // Just print the reserved\r
1085 //\r
1086 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47), gShellDebug1HiiHandle);\r
1087 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64), gShellDebug1HiiHandle);\r
1088}\r
1089\r
1090VOID\r
1091DisplayBiosCharacteristicsExt1 (\r
1092 UINT8 byte1,\r
1093 UINT8 Option\r
1094 )\r
1095{\r
1096 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION), gShellDebug1HiiHandle);\r
1097 //\r
1098 // Print option\r
1099 //\r
1100 PRINT_INFO_OPTION (byte1, Option);\r
1101\r
1102 //\r
1103 // check bit and print\r
1104 //\r
1105 if (BIT (byte1, 0) != 0) {\r
1106 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED), gShellDebug1HiiHandle);\r
1107 }\r
1108\r
1109 if (BIT (byte1, 1) != 0) {\r
1110 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED), gShellDebug1HiiHandle);\r
1111 }\r
1112\r
1113 if (BIT (byte1, 2) != 0) {\r
1114 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED), gShellDebug1HiiHandle);\r
1115 }\r
1116\r
1117 if (BIT (byte1, 3) != 0) {\r
1118 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED), gShellDebug1HiiHandle);\r
1119 }\r
1120\r
1121 if (BIT (byte1, 4) != 0) {\r
1122 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED), gShellDebug1HiiHandle);\r
1123 }\r
1124\r
1125 if (BIT (byte1, 5) != 0) {\r
1126 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE), gShellDebug1HiiHandle);\r
1127 }\r
1128\r
1129 if (BIT (byte1, 6) != 0) {\r
1130 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED), gShellDebug1HiiHandle);\r
1131 }\r
1132\r
1133 if (BIT (byte1, 7) != 0) {\r
1134 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED), gShellDebug1HiiHandle);\r
1135 }\r
1136}\r
1137\r
1138VOID\r
1139DisplayBiosCharacteristicsExt2 (\r
1140 UINT8 byte2,\r
1141 UINT8 Option\r
1142 )\r
1143{\r
1144 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2), gShellDebug1HiiHandle);\r
1145 //\r
1146 // Print option\r
1147 //\r
1148 PRINT_INFO_OPTION (byte2, Option);\r
1149\r
1150 if (BIT (byte2, 0) != 0) {\r
1151 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP), gShellDebug1HiiHandle);\r
1152 }\r
1153\r
1154 if (BIT (byte2, 1) != 0) {\r
1155 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT), gShellDebug1HiiHandle);\r
1156 }\r
1157\r
1158 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE), gShellDebug1HiiHandle);\r
1159}\r
1160\r
1161VOID\r
1162DisplayProcessorFamily (\r
1163 UINT8 Family,\r
1164 UINT8 Option\r
1165 )\r
1166{\r
1167 //\r
1168 // Print prompt message\r
1169 //\r
1170 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY), gShellDebug1HiiHandle);\r
1171 //\r
1172 // Print option\r
1173 //\r
1174 PRINT_INFO_OPTION (Family, Option);\r
1175\r
1176 //\r
1177 // Use switch to check\r
1178 //\r
1179 switch (Family) {\r
1180 case 0x01:\r
1181 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER), gShellDebug1HiiHandle);\r
1182 break;\r
1183\r
1184 case 0x02:\r
1185 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
1186 break;\r
1187\r
1188 case 0x03:\r
1189 Print (L"8086\n");\r
1190 break;\r
1191\r
1192 case 0x04:\r
1193 Print (L"80286\n");\r
1194 break;\r
1195\r
1196 case 0x05:\r
1197 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR), gShellDebug1HiiHandle);\r
1198 break;\r
1199\r
1200 case 0x06:\r
1201 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR), gShellDebug1HiiHandle);\r
1202 break;\r
1203\r
1204 case 0x07:\r
1205 Print (L"8087\n");\r
1206 break;\r
1207\r
1208 case 0x08:\r
1209 Print (L"80287\n");\r
1210 break;\r
1211\r
1212 case 0x09:\r
1213 Print (L"80387\n");\r
1214 break;\r
1215\r
1216 case 0x0A:\r
1217 Print (L"80487\n");\r
1218 break;\r
1219\r
1220 case 0x0B:\r
1221 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY), gShellDebug1HiiHandle);\r
1222 break;\r
1223\r
1224 case 0x0C:\r
1225 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC), gShellDebug1HiiHandle);\r
1226 break;\r
1227\r
1228 case 0x0D:\r
1229 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC), gShellDebug1HiiHandle);\r
1230 break;\r
1231\r
1232 case 0x0E:\r
1233 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX), gShellDebug1HiiHandle);\r
1234 break;\r
1235\r
1236 case 0x0F:\r
1237 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC), gShellDebug1HiiHandle);\r
1238 break;\r
1239\r
1240 case 0x10:\r
1241 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC), gShellDebug1HiiHandle);\r
1242 break;\r
1243\r
1244 case 0x11:\r
1245 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC), gShellDebug1HiiHandle);\r
1246 break;\r
1247\r
1248 case 0x12:\r
1249 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY), gShellDebug1HiiHandle);\r
1250 break;\r
1251\r
1252 case 0x18:\r
1253 Print (L"AMD Duron\n");\r
1254 break;\r
1255\r
1256 case 0x19:\r
1257 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY), gShellDebug1HiiHandle);\r
1258 break;\r
1259\r
1260 case 0x20:\r
1261 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY), gShellDebug1HiiHandle);\r
1262 break;\r
1263\r
1264 case 0x21:\r
1265 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601), gShellDebug1HiiHandle);\r
1266 break;\r
1267\r
1268 case 0x22:\r
1269 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603), gShellDebug1HiiHandle);\r
1270 break;\r
1271\r
1272 case 0x23:\r
1273 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS), gShellDebug1HiiHandle);\r
1274 break;\r
1275\r
1276 case 0x24:\r
1277 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604), gShellDebug1HiiHandle);\r
1278 break;\r
1279\r
1280 case 0x25:\r
1281 Print (L"Power PC 620\n");\r
1282 break;\r
1283\r
1284 case 0x26:\r
1285 Print (L"Power PC 704\n");\r
1286 break;\r
1287\r
1288 case 0x27:\r
1289 Print (L"Power PC 750\n");\r
1290 break;\r
1291\r
1292 case 0x28:\r
1293 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO), gShellDebug1HiiHandle);\r
1294 break;\r
1295\r
1296 case 0x29:\r
1297 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE), gShellDebug1HiiHandle);\r
1298 break;\r
1299\r
1300 case 0x2A:\r
1301 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE), gShellDebug1HiiHandle);\r
1302 break;\r
1303\r
1304 case 0x2B:\r
1305 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM), gShellDebug1HiiHandle);\r
1306 break;\r
1307\r
1308 case 0x30:\r
1309 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2), gShellDebug1HiiHandle);\r
1310 break;\r
1311\r
1312 case 0x31:\r
1313 Print (L"Alpha 21064\n");\r
1314 break;\r
1315\r
1316 case 0x32:\r
1317 Print (L"Alpha 21066\n");\r
1318 break;\r
1319\r
1320 case 0x33:\r
1321 Print (L"Alpha 21164\n");\r
1322 break;\r
1323\r
1324 case 0x34:\r
1325 Print (L"Alpha 21164PC\n");\r
1326 break;\r
1327\r
1328 case 0x35:\r
1329 Print (L"Alpha 21164a\n");\r
1330 break;\r
1331\r
1332 case 0x36:\r
1333 Print (L"Alpha 21264\n");\r
1334 break;\r
1335\r
1336 case 0x37:\r
1337 Print (L"Alpha 21364\n");\r
1338 break;\r
1339\r
1340 case 0x40:\r
1341 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY), gShellDebug1HiiHandle);\r
1342 break;\r
1343\r
1344 case 0x41:\r
1345 Print (L"MIPS R4000\n");\r
1346 break;\r
1347\r
1348 case 0x42:\r
1349 Print (L"MIPS R4200\n");\r
1350 break;\r
1351\r
1352 case 0x43:\r
1353 Print (L"MIPS R4400\n");\r
1354 break;\r
1355\r
1356 case 0x44:\r
1357 Print (L"MIPS R4600\n");\r
1358 break;\r
1359\r
1360 case 0x45:\r
1361 Print (L"MIPS R10000\n");\r
1362 break;\r
1363\r
1364 case 0x50:\r
1365 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY), gShellDebug1HiiHandle);\r
1366 break;\r
1367\r
1368 case 0x51:\r
1369 Print (L"SuperSparc\n");\r
1370 break;\r
1371\r
1372 case 0x52:\r
1373 Print (L"microSparc II\n");\r
1374 break;\r
1375\r
1376 case 0x53:\r
1377 Print (L"microSparc IIep\n");\r
1378 break;\r
1379\r
1380 case 0x54:\r
1381 Print (L"UltraSparc\n");\r
1382 break;\r
1383\r
1384 case 0x55:\r
1385 Print (L"UltraSparc II\n");\r
1386 break;\r
1387\r
1388 case 0x56:\r
1389 Print (L"UltraSparcIIi\n");\r
1390 break;\r
1391\r
1392 case 0x57:\r
1393 Print (L"UltraSparcIII\n");\r
1394 break;\r
1395\r
1396 case 0x58:\r
1397 Print (L"UltraSparcIIIi\n");\r
1398 break;\r
1399\r
1400 case 0x60:\r
1401 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY), gShellDebug1HiiHandle);\r
1402 break;\r
1403\r
1404 case 0x61:\r
1405 Print (L"68xx\n");\r
1406 break;\r
1407\r
1408 case 0x62:\r
1409 Print (L"68000\n");\r
1410 break;\r
1411\r
1412 case 0x63:\r
1413 Print (L"68010\n");\r
1414 break;\r
1415\r
1416 case 0x64:\r
1417 Print (L"68020\n");\r
1418 break;\r
1419\r
1420 case 0x65:\r
1421 Print (L"68030\n");\r
1422 break;\r
1423\r
1424 case 0x70:\r
1425 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY), gShellDebug1HiiHandle);\r
1426 break;\r
1427\r
1428 case 0x78:\r
1429 Print (L"Crusoe TM5000\n");\r
1430 break;\r
1431\r
1432 case 0x79:\r
1433 Print (L"Crusoe TM3000\n");\r
1434 break;\r
1435\r
1436 case 0x7A:\r
1437 Print (L"Efficeon TM8000\n");\r
1438 break;\r
1439\r
1440 case 0x80:\r
1441 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK), gShellDebug1HiiHandle);\r
1442 break;\r
1443\r
1444 case 0x82:\r
1445 Print (L"Itanium\n");\r
1446 break;\r
1447\r
1448 case 0x83:\r
1449 Print (L"AMD Athlon64\n");\r
1450 break;\r
1451\r
1452 case 0x84:\r
1453 Print (L"AMD Opteron\n");\r
1454 break;\r
1455\r
1456 case 0x85:\r
1457 Print (L"AMD Sempron\n");\r
1458 break;\r
1459\r
1460 case 0x86:\r
1461 Print (L"AMD Turion64 Mobile\n");\r
1462 break;\r
1463\r
1464 case 0x87:\r
1465 Print (L"Dual-Core AMD Opteron\n");\r
1466 break;\r
1467\r
1468 case 0x88:\r
1469 Print (L"AMD Athlon 64X2 DualCore\n");\r
1470 break;\r
1471\r
1472 case 0x89:\r
1473 Print (L"AMD Turion 64X2 Mobile\n");\r
1474 break;\r
1475\r
1476 case 0x8A:\r
1477 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE), gShellDebug1HiiHandle);\r
1478 break;\r
1479\r
1480 case 0x8B:\r
1481 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION), gShellDebug1HiiHandle);\r
1482 break;\r
1483\r
1484 case 0x8C:\r
1485 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE), gShellDebug1HiiHandle);\r
1486 break;\r
1487\r
1488 case 0x8D:\r
1489 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE), gShellDebug1HiiHandle);\r
1490 break;\r
1491\r
1492 case 0x8E:\r
1493 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE), gShellDebug1HiiHandle);\r
1494 break;\r
1495\r
1496 case 0x8F:\r
1497 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE), gShellDebug1HiiHandle);\r
1498 break;\r
1499\r
1500 case 0x90:\r
1501 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY), gShellDebug1HiiHandle);\r
1502 break;\r
1503\r
1504 case 0xA0:\r
1505 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY), gShellDebug1HiiHandle);\r
1506 break;\r
1507\r
1508 case 0xA1:\r
1509 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1510 break;\r
1511\r
1512 case 0xA2:\r
1513 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1514 break;\r
1515\r
1516 case 0xA3:\r
1517 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1518 break;\r
1519\r
1520 case 0xA4:\r
1521 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1522 break;\r
1523\r
1524 case 0xA5:\r
1525 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1526 break;\r
1527\r
1528 case 0xA6:\r
1529 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE), gShellDebug1HiiHandle);\r
1530 break;\r
1531\r
1532 case 0xA7:\r
1533 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE), gShellDebug1HiiHandle);\r
1534 break;\r
1535\r
1536 case 0xA8:\r
1537 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1538 break;\r
1539\r
1540 case 0xA9:\r
1541 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1542 break;\r
1543\r
1544 case 0xAA:\r
1545 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE), gShellDebug1HiiHandle);\r
1546 break;\r
1547\r
1548 case 0xAB:\r
1549 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1550 break;\r
1551\r
1552 case 0xAC:\r
1553 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1554 break;\r
1555\r
1556 case 0xAD:\r
1557 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1558 break;\r
1559\r
1560 case 0xAE:\r
1561 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1562 break;\r
1563\r
1564 case 0xAF:\r
1565 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE), gShellDebug1HiiHandle);\r
1566 break;\r
1567\r
1568 case 0xB0:\r
1569 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON), gShellDebug1HiiHandle);\r
1570 break;\r
1571\r
1572 case 0xC0:\r
1573 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO), gShellDebug1HiiHandle);\r
1574 break;\r
1575\r
1576 case 0xC1:\r
1577 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME), gShellDebug1HiiHandle);\r
1578 break;\r
1579\r
1580 case 0xC2:\r
1581 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD), gShellDebug1HiiHandle);\r
1582 break;\r
1583\r
1584 case 0xC3:\r
1585 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME), gShellDebug1HiiHandle);\r
1586 break;\r
1587\r
1588 case 0xC4:\r
1589 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE), gShellDebug1HiiHandle);\r
1590 break;\r
1591\r
1592 case 0xC5:\r
1593 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE), gShellDebug1HiiHandle);\r
1594 break;\r
1595\r
1596 case 0xC6:\r
1597 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7), gShellDebug1HiiHandle);\r
1598 break;\r
1599\r
1600 case 0xC7:\r
1601 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE), gShellDebug1HiiHandle);\r
1602 break;\r
1603\r
1604 case 0xC8:\r
1605 Print (L"IBM 390\n");\r
1606 break;\r
1607\r
1608 case 0xC9:\r
1609 Print (L"G4\n");\r
1610 break;\r
1611\r
1612 case 0xCA:\r
1613 Print (L"G5\n");\r
1614 break;\r
1615\r
1616 case 0xCB:\r
1617 Print (L"G6\n");\r
1618 break;\r
1619\r
1620 case 0xCC:\r
1621 Print (L"zArchitectur\n");\r
1622 break;\r
1623\r
1624 case 0xD2:\r
1625 Print (L"ViaC7M\n");\r
1626 break;\r
1627\r
1628 case 0xD3:\r
1629 Print (L"ViaC7D\n");\r
1630 break;\r
1631\r
1632 case 0xD4:\r
1633 Print (L"ViaC7\n");\r
1634 break;\r
1635\r
1636 case 0xD5:\r
1637 Print (L"Eden\n");\r
1638 break;\r
1639\r
1640 case 0xD6:\r
1641 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE), gShellDebug1HiiHandle);\r
1642 break;\r
1643\r
1644 case 0xD7:\r
1645 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1646 break;\r
1647\r
1648 case 0xD8:\r
1649 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1650 break;\r
1651\r
1652 case 0xDA:\r
1653 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1654 break;\r
1655\r
1656 case 0xDB:\r
1657 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1658 break;\r
1659\r
1660 case 0xDD:\r
1661 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE), gShellDebug1HiiHandle);\r
1662 break;\r
1663\r
1664 case 0xDE:\r
1665 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE), gShellDebug1HiiHandle);\r
1666 break;\r
1667\r
1668 case 0xDF:\r
1669 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE), gShellDebug1HiiHandle);\r
1670 break;\r
1671\r
1672 case 0xE6:\r
1673 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE), gShellDebug1HiiHandle);\r
1674 break;\r
1675\r
1676 case 0xE7:\r
1677 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE), gShellDebug1HiiHandle);\r
1678 break;\r
1679\r
1680 case 0xE8:\r
1681 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE), gShellDebug1HiiHandle);\r
1682 break;\r
1683\r
1684 case 0xE9:\r
1685 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE), gShellDebug1HiiHandle);\r
1686 break;\r
1687\r
1688 case 0xEA:\r
1689 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE), gShellDebug1HiiHandle);\r
1690 break;\r
1691\r
1692 case 0xEB:\r
1693 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI), gShellDebug1HiiHandle);\r
1694 break;\r
1695\r
1696 case 0xFA:\r
1697 Print (L"i860\n");\r
1698 break;\r
1699\r
1700 case 0xFB:\r
1701 Print (L"i960\n");\r
1702 break;\r
1703\r
1704 default:\r
1705 //\r
1706 // In order to reduce code quality notice of\r
1707 // case & break not pair, so\r
1708 // move multiple case into the else part and\r
1709 // use if/else to check value.\r
1710 //\r
1711 if (Family >= 0x13 && Family <= 0x17) {\r
1712 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_M1), gShellDebug1HiiHandle);\r
1713 } else if (Family >= 0x1A && Family <= 0x1F) {\r
1714 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_K5), gShellDebug1HiiHandle);\r
1715 } else if (Family >= 0xB1 && Family <= 0xBF) {\r
1716 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_PENTIUM), gShellDebug1HiiHandle);\r
1717 } else {\r
1718 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), gShellDebug1HiiHandle);\r
1719 }\r
1720 }\r
1721 //\r
1722 // end switch\r
1723 //\r
1724}\r
1725\r
1726VOID\r
1727DisplayProcessorFamily2 (\r
1728 UINT16 Family2,\r
1729 UINT8 Option\r
1730 )\r
1731{\r
1732 //\r
1733 // Print prompt message\r
1734 //\r
1735 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY), gShellDebug1HiiHandle);\r
1736\r
1737 //\r
1738 // Print option\r
1739 //\r
1740 PRINT_INFO_OPTION (Family2, Option);\r
1741\r
1742 //\r
1743 // Use switch to check\r
1744 //\r
1745 switch (Family2) {\r
1746 case 0x104:\r
1747 Print (L"SH-3\n");\r
1748 break;\r
1749\r
1750 case 0x105:\r
1751 Print (L"SH-4\n");\r
1752 break;\r
1753\r
1754 case 0x118:\r
1755 Print (L"ARM\n");\r
1756 break;\r
1757\r
1758 case 0x119:\r
1759 Print (L"StrongARM\n");\r
1760 break;\r
1761\r
1762 case 0x12C:\r
1763 Print (L"6x86\n");\r
1764 break;\r
1765\r
1766 case 0x12D:\r
1767 Print (L"MediaGX\n");\r
1768 break;\r
1769\r
1770 case 0x12E:\r
1771 Print (L"MII\n");\r
1772 break;\r
1773\r
1774 case 0x140:\r
1775 Print (L"WinChip\n");\r
1776 break;\r
1777\r
1778 case 0x15E:\r
1779 Print (L"DSP\n");\r
1780 break;\r
1781\r
1782 case 0x1F4:\r
1783 Print (L"Video Processor\n");\r
1784 break;\r
1785\r
1786 default:\r
1787 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), gShellDebug1HiiHandle);\r
1788 }\r
1789\r
1790}\r
1791\r
1792VOID\r
1793DisplayProcessorVoltage (\r
1794 UINT8 Voltage,\r
1795 UINT8 Option\r
1796 )\r
1797/*++\r
1798Routine Description:\r
1799 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage\r
1800 Bits 6:4 Reserved, must be zero\r
1801 Bits 3:0 Voltage Capability.\r
1802 A Set bit indicates that the voltage is supported.\r
1803 Bit 0 - 5V\r
1804 Bit 1 - 3.3V\r
1805 Bit 2 - 2.9V\r
1806 Bit 3 - Reserved, must be zero.\r
1807\r
1808 Note:\r
1809 Setting of multiple bits indicates the socket is configurable\r
1810 If bit 7 is set to 1, the remaining seven bits of the field are set to\r
1811 contain the processor's current voltage times 10.\r
1812 For example, the field value for a processor voltage of 1.8 volts would be\r
1813 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.\r
1814\r
1815Arguments:\r
1816 Voltage - The Voltage\r
1817 Option - The option\r
1818\r
1819Returns:\r
1820\r
1821**/\r
1822{\r
1823 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO), gShellDebug1HiiHandle);\r
1824 //\r
1825 // Print option\r
1826 //\r
1827 PRINT_INFO_OPTION (Voltage, Option);\r
1828\r
1829 if (BIT (Voltage, 7) != 0) {\r
1830 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE), gShellDebug1HiiHandle, (Voltage - 0x80));\r
1831 } else {\r
1832 if (BIT (Voltage, 0) != 0) {\r
1833 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED), gShellDebug1HiiHandle);\r
1834 }\r
1835\r
1836 if (BIT (Voltage, 1) != 0) {\r
1837 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED), gShellDebug1HiiHandle);\r
1838 }\r
1839\r
1840 if (BIT (Voltage, 2) != 0) {\r
1841 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED), gShellDebug1HiiHandle);\r
1842 }\r
1843 //\r
1844 // check the reserved zero bits:\r
1845 //\r
1846 if (BIT (Voltage, 3) != 0) {\r
1847 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO), gShellDebug1HiiHandle);\r
1848 }\r
1849\r
1850 if (BIT (Voltage, 4) != 0) {\r
1851 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO), gShellDebug1HiiHandle);\r
1852 }\r
1853\r
1854 if (BIT (Voltage, 5) != 0) {\r
1855 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO), gShellDebug1HiiHandle);\r
1856 }\r
1857\r
1858 if (BIT (Voltage, 6) != 0) {\r
1859 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO), gShellDebug1HiiHandle);\r
1860 }\r
1861 }\r
1862}\r
1863\r
1864VOID\r
1865DisplayProcessorStatus (\r
1866 UINT8 Status,\r
1867 UINT8 Option\r
1868 )\r
1869/*++\r
1870Routine Description:\r
1871\r
1872Bit 7 Reserved, must be 0\r
1873Bit 6 CPU Socket Populated\r
1874 1 - CPU Socket Populated\r
1875 0 - CPU Socket UnpopulatedBits\r
1876 5:3 Reserved, must be zero\r
1877 Bits 2:0 CPU Status\r
1878 0h - Unknown\r
1879 1h - CPU Enabled\r
1880 2h - CPU Disabled by User via BIOS Setup\r
1881 3h - CPU Disabled By BIOS (POST Error)\r
1882 4h - CPU is Idle, waiting to be enabled.\r
1883 5-6h - Reserved\r
1884 7h - Other\r
1885\r
1886Arguments:\r
1887 Status - The status\r
1888 Option - The option\r
1889\r
1890Returns:\r
1891\r
1892**/\r
1893{\r
1894 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS), gShellDebug1HiiHandle);\r
1895 PRINT_INFO_OPTION (Status, Option);\r
1896\r
1897 if (BIT (Status, 7) != 0) {\r
1898 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT7), gShellDebug1HiiHandle);\r
1899 } else if (BIT (Status, 5) != 0) {\r
1900 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT5), gShellDebug1HiiHandle);\r
1901 } else if (BIT (Status, 4) != 0) {\r
1902 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT4), gShellDebug1HiiHandle);\r
1903 } else if (BIT (Status, 3) != 0) {\r
1904 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT3), gShellDebug1HiiHandle);\r
1905 }\r
1906 //\r
1907 // Check BIT 6\r
1908 //\r
1909 if (BIT (Status, 6) != 0) {\r
1910 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED), gShellDebug1HiiHandle);\r
1911 } else {\r
1912 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED), gShellDebug1HiiHandle);\r
1913 }\r
1914 //\r
1915 // Check BITs 2:0\r
1916 //\r
1917 switch (Status & 0x07) {\r
1918 case 0:\r
1919 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
1920 break;\r
1921\r
1922 case 1:\r
1923 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED), gShellDebug1HiiHandle);\r
1924 break;\r
1925\r
1926 case 2:\r
1927 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER), gShellDebug1HiiHandle);\r
1928 break;\r
1929\r
1930 case 3:\r
1931 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS), gShellDebug1HiiHandle);\r
1932 break;\r
1933\r
1934 case 4:\r
1935 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE), gShellDebug1HiiHandle);\r
1936 break;\r
1937\r
1938 case 7:\r
1939 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS), gShellDebug1HiiHandle);\r
1940 break;\r
1941\r
1942 default:\r
1943 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gShellDebug1HiiHandle);\r
1944 }\r
1945}\r
1946\r
1947VOID\r
1948DisplayMaxMemoryModuleSize (\r
1949 UINT8 Size,\r
1950 UINT8 SlotNum,\r
1951 UINT8 Option\r
1952 )\r
1953{\r
1954 UINTN MaxSize;\r
1955 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM), gShellDebug1HiiHandle);\r
1956 //\r
1957 // MaxSize is determined by follow formula\r
1958 //\r
1959 MaxSize = (UINTN) 1 << Size;\r
1960 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), gShellDebug1HiiHandle, MaxSize);\r
1961\r
1962 if (Option >= SHOW_DETAIL) {\r
1963 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM), gShellDebug1HiiHandle);\r
1964 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), gShellDebug1HiiHandle, MaxSize, SlotNum, MaxSize * SlotNum);\r
1965 }\r
1966}\r
1967\r
1968VOID\r
1969DisplayMemoryModuleConfigHandles (\r
1970 UINT16 *Handles,\r
1971 UINT8 SlotNum,\r
1972 UINT8 Option\r
1973 )\r
1974{\r
1975 UINT8 Index;\r
1976 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED), gShellDebug1HiiHandle, SlotNum);\r
1977\r
1978 if (Option >= SHOW_DETAIL) {\r
1979 //\r
1980 // No handle, Handles is INVALID.\r
1981 //\r
1982 if (SlotNum == 0) {\r
1983 return ;\r
1984 }\r
1985\r
1986 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED), gShellDebug1HiiHandle);\r
1987 for (Index = 0; Index < SlotNum; Index++) {\r
1988 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE), gShellDebug1HiiHandle, Index + 1, Handles[Index]);\r
1989 }\r
1990 }\r
1991}\r
1992//\r
1993// Memory Module Information (Type 6)\r
1994//\r
1995VOID\r
1996DisplayMmBankConnections (\r
1997 UINT8 BankConnections,\r
1998 UINT8 Option\r
1999 )\r
2000{\r
2001 UINT8 High;\r
2002 UINT8 Low;\r
2003\r
2004 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS), gShellDebug1HiiHandle);\r
2005 //\r
2006 // Print option\r
2007 //\r
2008 PRINT_INFO_OPTION (BankConnections, Option);\r
2009\r
2010 //\r
2011 // Divide it to high and low\r
2012 //\r
2013 High = (UINT8) (BankConnections & 0xF0);\r
2014 Low = (UINT8) (BankConnections & 0x0F);\r
2015 if (High != 0xF) {\r
2016 if (Low != 0xF) {\r
2017 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS), gShellDebug1HiiHandle, High, Low, High, Low);\r
2018 } else {\r
2019 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2), gShellDebug1HiiHandle, High, High);\r
2020 }\r
2021 } else {\r
2022 if (Low != 0xF) {\r
2023 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2), gShellDebug1HiiHandle, Low, Low);\r
2024 } else {\r
2025 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED), gShellDebug1HiiHandle);\r
2026 }\r
2027 }\r
2028}\r
2029\r
2030VOID\r
2031DisplayMmMemorySize (\r
2032 UINT8 Size,\r
2033 UINT8 Option\r
2034 )\r
2035/*++\r
2036Routine Description:\r
2037 Bits 0:6 Size (n),\r
2038 where 2**n is the size in MB with three special-case values:\r
2039 7Dh Not determinable (Installed Size only)\r
2040 7Eh Module is installed, but no memory has been enabled\r
2041 7Fh Not installed\r
2042 Bit 7 Defines whether the memory module has a single- (0)\r
2043 or double-bank (1) connection.\r
2044\r
2045Arguments:\r
2046 Size - The size\r
2047 Option - The option\r
2048\r
2049Returns:\r
2050\r
2051**/\r
2052{\r
2053 UINT8 Value;\r
2054 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE), gShellDebug1HiiHandle);\r
2055 //\r
2056 // Print option\r
2057 //\r
2058 PRINT_INFO_OPTION (Size, Option);\r
2059\r
2060 //\r
2061 // Get the low bits(0-6 bit)\r
2062 //\r
2063 Value = (UINT8) (Size & 0x7F);\r
2064 if (Value == 0x7D) {\r
2065 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE), gShellDebug1HiiHandle);\r
2066 } else if (Value == 0x7E) {\r
2067 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED), gShellDebug1HiiHandle);\r
2068 } else if (Value == 0x7F) {\r
2069 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED), gShellDebug1HiiHandle);\r
2070 } else {\r
2071 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE), gShellDebug1HiiHandle, 1 << Value);\r
2072 }\r
2073\r
2074 if (BIT (Size, 7) != 0) {\r
2075 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK), gShellDebug1HiiHandle);\r
2076 } else {\r
2077 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK), gShellDebug1HiiHandle);\r
2078 }\r
2079}\r
2080\r
2081VOID\r
2082DisplaySystemSlotId (\r
2083 UINT16 SlotId,\r
2084 UINT8 SlotType,\r
2085 UINT8 Option\r
2086 )\r
2087/*++\r
2088Routine Description:\r
2089\r
2090 The Slot ID field of the System Slot structure provides a mechanism to\r
2091 correlate the physical attributes of the slot to its logical access method\r
2092 (which varies based on the Slot Type field).\r
2093\r
2094Arguments:\r
2095\r
2096 SlotId - The slot ID\r
2097 SlotType - The slot type\r
2098 Option - The Option\r
2099\r
2100Returns:\r
2101\r
2102**/\r
2103{\r
2104 //\r
2105 // Display slot type first\r
2106 //\r
2107 DisplaySystemSlotType (SlotType, Option);\r
2108\r
2109 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID), gShellDebug1HiiHandle);\r
2110 //\r
2111 // print option\r
2112 //\r
2113 PRINT_INFO_OPTION (SlotType, Option);\r
2114\r
2115 switch (SlotType) {\r
2116 //\r
2117 // Slot Type: MCA\r
2118 //\r
2119 case 0x04:\r
2120 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN), gShellDebug1HiiHandle);\r
2121 if (SlotId > 0 && SlotId < 15) {\r
2122 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D), gShellDebug1HiiHandle, SlotId);\r
2123 } else {\r
2124 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15), gShellDebug1HiiHandle);\r
2125 }\r
2126 break;\r
2127\r
2128 //\r
2129 // EISA\r
2130 //\r
2131 case 0x05:\r
2132 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM), gShellDebug1HiiHandle);\r
2133 if (SlotId > 0 && SlotId < 15) {\r
2134 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D), gShellDebug1HiiHandle, SlotId);\r
2135 } else {\r
2136 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15), gShellDebug1HiiHandle);\r
2137 }\r
2138 break;\r
2139\r
2140 //\r
2141 // Slot Type: PCI\r
2142 //\r
2143 case 0x06:\r
2144 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gShellDebug1HiiHandle, SlotId);\r
2145 break;\r
2146\r
2147 //\r
2148 // PCMCIA\r
2149 //\r
2150 case 0x07:\r
2151 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM), gShellDebug1HiiHandle, SlotId);\r
2152 break;\r
2153\r
2154 //\r
2155 // Slot Type: PCI-E\r
2156 //\r
2157 case 0xA5:\r
2158 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gShellDebug1HiiHandle, SlotId);\r
2159 break;\r
2160\r
2161 default:\r
2162 if (SlotType >= 0x0E && SlotType <= 0x12) {\r
2163 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gShellDebug1HiiHandle, SlotId);\r
2164 } else {\r
2165 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID), gShellDebug1HiiHandle);\r
2166 }\r
2167 }\r
2168}\r
2169\r
2170VOID\r
2171DisplaySystemBootStatus (\r
2172 UINT8 Parameter,\r
2173 UINT8 Option\r
2174 )\r
2175{\r
2176 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS), gShellDebug1HiiHandle);\r
2177 //\r
2178 // Print option\r
2179 //\r
2180 PRINT_INFO_OPTION (Parameter, Option);\r
2181\r
2182 //\r
2183 // Check value and print\r
2184 //\r
2185 if (Parameter == 0) {\r
2186 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED), gShellDebug1HiiHandle);\r
2187 } else if (Parameter == 1) {\r
2188 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA), gShellDebug1HiiHandle);\r
2189 } else if (Parameter == 2) {\r
2190 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM), gShellDebug1HiiHandle);\r
2191 } else if (Parameter == 3) {\r
2192 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED), gShellDebug1HiiHandle);\r
2193 } else if (Parameter == 4) {\r
2194 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM), gShellDebug1HiiHandle);\r
2195 } else if (Parameter == 5) {\r
2196 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT), gShellDebug1HiiHandle);\r
2197 } else if (Parameter == 6) {\r
2198 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION), gShellDebug1HiiHandle);\r
2199 } else if (Parameter == 7) {\r
2200 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE), gShellDebug1HiiHandle);\r
2201 } else if (Parameter == 8) {\r
2202 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER), gShellDebug1HiiHandle);\r
2203 } else if (Parameter >= 9 && Parameter <= 127) {\r
2204 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT), gShellDebug1HiiHandle);\r
2205 } else if (Parameter >= 128 && Parameter <= 191) {\r
2206 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC), gShellDebug1HiiHandle);\r
2207 } else if (Parameter >= 192 && Parameter <= 255) {\r
2208 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION), gShellDebug1HiiHandle);\r
2209 } else {\r
2210 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE), gShellDebug1HiiHandle);\r
2211 }\r
2212}\r
2213//\r
2214// Portable Battery (Type 22)\r
2215//\r
2216VOID\r
2217DisplaySBDSManufactureDate (\r
2218 UINT16 Date,\r
2219 UINT8 Option\r
2220 )\r
2221/*++\r
2222Routine Description:\r
2223 The date the cell pack was manufactured, in packed format:\r
2224 Bits 15:9 Year, biased by 1980, in the range 0 to 127.\r
2225 Bits 8:5 Month, in the range 1 to 12.\r
2226 Bits 4:0 Date, in the range 1 to 31.\r
2227 For example, 01 February 2000 would be identified as\r
2228 0010 1000 0100 0001b (0x2841).\r
2229\r
2230Arguments:\r
2231 Date - The date\r
2232 Option - The option\r
2233\r
2234Returns:\r
2235\r
2236**/\r
2237{\r
2238 UINTN Day;\r
2239 UINTN Month;\r
2240 UINTN Year;\r
2241\r
2242 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE), gShellDebug1HiiHandle);\r
2243 PRINT_INFO_OPTION (Date, Option);\r
2244 //\r
2245 // Print date\r
2246 //\r
2247 Day = Date & 0x001F;\r
2248 Month = (Date & 0x00E0) >> 5;\r
2249 Year = ((Date & 0xFF00) >> 8) + 1980;\r
2250 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR), gShellDebug1HiiHandle, Day, Month, Year);\r
2251\r
2252}\r
2253//\r
2254// System Reset (Type 23)\r
2255//\r
2256VOID\r
2257DisplaySystemResetCapabilities (\r
2258 UINT8 Reset,\r
2259 UINT8 Option\r
2260 )\r
2261/*++\r
2262Routine Description:\r
2263Identifies the system-reset capabilities for the system.\r
2264 Bits 7:6 Reserved for future assignment via this specification, set to 00b.\r
2265 Bit 5 System contains a watchdog timer, either True (1) or False (0).\r
2266 Bits 4:3 Boot Option on Limit.\r
2267 Identifies the system action to be taken when the Reset Limit is reached, one of:\r
2268 00b Reserved, do not use.\r
2269 01b Operating system\r
2270 10b System utilities\r
2271 11b Do not rebootBits\r
2272 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:\r
2273 00b Reserved, do not use.\r
2274 01b Operating system\r
2275 10b System utilities\r
2276 11b Do not reboot\r
2277 Bit 0 Status.\r
2278 1b The system reset is enabled by the user\r
2279 0b The system reset is not enabled by the user\r
2280\r
2281Arguments:\r
2282 Reset - Reset\r
2283 Option - The option\r
2284\r
2285Returns:\r
2286\r
2287**/\r
2288{\r
2289 UINTN Temp;\r
2290\r
2291 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES), gShellDebug1HiiHandle);\r
2292 PRINT_INFO_OPTION (Reset, Option);\r
2293\r
2294 //\r
2295 // Check reserved bits 7:6\r
2296 //\r
2297 if ((Reset & 0xC0) != 0) {\r
2298 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO), gShellDebug1HiiHandle);\r
2299 }\r
2300 //\r
2301 // Watch dog\r
2302 //\r
2303 if (BIT (Reset, 5) != 0) {\r
2304 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2), gShellDebug1HiiHandle);\r
2305 } else {\r
2306 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER), gShellDebug1HiiHandle);\r
2307 }\r
2308 //\r
2309 // Boot Option on Limit\r
2310 //\r
2311 Temp = (Reset & 0x18) >> 3;\r
2312 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT), gShellDebug1HiiHandle);\r
2313 switch (Temp) {\r
2314 case 0:\r
2315 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gShellDebug1HiiHandle);\r
2316 break;\r
2317\r
2318 case 1:\r
2319 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2), gShellDebug1HiiHandle);\r
2320 break;\r
2321\r
2322 case 2:\r
2323 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL), gShellDebug1HiiHandle);\r
2324 break;\r
2325\r
2326 case 3:\r
2327 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS), gShellDebug1HiiHandle);\r
2328 break;\r
2329 }\r
2330 //\r
2331 // Boot Option\r
2332 //\r
2333 Temp = (Reset & 0x06) >> 1;\r
2334 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION), gShellDebug1HiiHandle);\r
2335 switch (Temp) {\r
2336 case 0:\r
2337 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gShellDebug1HiiHandle);\r
2338 break;\r
2339\r
2340 case 1:\r
2341 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2), gShellDebug1HiiHandle);\r
2342 break;\r
2343\r
2344 case 2:\r
2345 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL), gShellDebug1HiiHandle);\r
2346 break;\r
2347\r
2348 case 3:\r
2349 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT), gShellDebug1HiiHandle);\r
2350 break;\r
2351 }\r
2352 //\r
2353 // Reset enable flag\r
2354 //\r
2355 if ((Reset & 0x01) != 0) {\r
2356 Print (L"The system reset is enabled by the user\n");\r
2357 } else {\r
2358 Print (L"The system reset is disabled by the user\n");\r
2359 }\r
2360}\r
2361//\r
2362// Hardware Security (Type 24)\r
2363//\r
2364VOID\r
2365DisplayHardwareSecuritySettings (\r
2366 UINT8 Settings,\r
2367 UINT8 Option\r
2368 )\r
2369/*++\r
2370Routine Description:\r
2371Identifies the password and reset status for the system:\r
2372\r
2373Bits 7:6 Power-on Password Status, one of:\r
2374 00b Disabled\r
2375 01b Enabled\r
2376 10b Not Implemented\r
2377 11b Unknown\r
2378Bits 5:4 Keyboard Password Status, one of:\r
2379 00b Disabled\r
2380 01b Enabled\r
2381 10b Not Implemented\r
2382 11b Unknown\r
2383Bits 3:2 Administrator Password Status, one of:\r
2384 00b Disabled\r
2385 01b Enabled\r
2386 10b Not Implemented\r
2387 11b Unknown\r
2388Bits 1:0 Front Panel Reset Status, one of:\r
2389 00b Disabled\r
2390 01b Enabled\r
2391 10b Not Implemented\r
2392 11b Unknown\r
2393\r
2394Arguments:\r
2395 Settings - The settings\r
2396 Option - the option\r
2397\r
2398Returns:\r
2399\r
2400**/\r
2401{\r
2402 UINTN Temp;\r
2403\r
2404 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET), gShellDebug1HiiHandle);\r
2405 PRINT_INFO_OPTION (Settings, Option);\r
2406\r
2407 //\r
2408 // Power-on Password Status\r
2409 //\r
2410 Temp = (Settings & 0xC0) >> 6;\r
2411 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD), gShellDebug1HiiHandle);\r
2412 switch (Temp) {\r
2413 case 0:\r
2414 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
2415 break;\r
2416\r
2417 case 1:\r
2418 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gShellDebug1HiiHandle);\r
2419 break;\r
2420\r
2421 case 2:\r
2422 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gShellDebug1HiiHandle);\r
2423 break;\r
2424\r
2425 case 3:\r
2426 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2427 break;\r
2428 }\r
2429 //\r
2430 // Keyboard Password Status\r
2431 //\r
2432 Temp = (Settings & 0x30) >> 4;\r
2433 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD), gShellDebug1HiiHandle);\r
2434 switch (Temp) {\r
2435 case 0:\r
2436 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
2437 break;\r
2438\r
2439 case 1:\r
2440 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gShellDebug1HiiHandle);\r
2441 break;\r
2442\r
2443 case 2:\r
2444 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gShellDebug1HiiHandle);\r
2445 break;\r
2446\r
2447 case 3:\r
2448 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2449 break;\r
2450 }\r
2451 //\r
2452 // Administrator Password Status\r
2453 //\r
2454 Temp = (Settings & 0x0C) >> 2;\r
2455 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS), gShellDebug1HiiHandle);\r
2456 switch (Temp) {\r
2457 case 0:\r
2458 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
2459 break;\r
2460\r
2461 case 1:\r
2462 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gShellDebug1HiiHandle);\r
2463 break;\r
2464\r
2465 case 2:\r
2466 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gShellDebug1HiiHandle);\r
2467 break;\r
2468\r
2469 case 3:\r
2470 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2471 break;\r
2472 }\r
2473 //\r
2474 // Front Panel Reset Status\r
2475 //\r
2476 Temp = Settings & 0x3;\r
2477 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET), gShellDebug1HiiHandle);\r
2478 switch (Temp) {\r
2479 case 0:\r
2480 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
2481 break;\r
2482\r
2483 case 1:\r
2484 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gShellDebug1HiiHandle);\r
2485 break;\r
2486\r
2487 case 2:\r
2488 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gShellDebug1HiiHandle);\r
2489 break;\r
2490\r
2491 case 3:\r
2492 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2493 break;\r
2494 }\r
2495}\r
2496//\r
2497// Out-of-Band Remote Access (Type 30)\r
2498//\r
2499VOID\r
2500DisplayOBRAConnections (\r
2501 UINT8 Connections,\r
2502 UINT8 Option\r
2503 )\r
2504{\r
2505 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS), gShellDebug1HiiHandle);\r
2506 PRINT_INFO_OPTION (Connections, Option);\r
2507\r
2508 //\r
2509 // Check reserved bits 7:2\r
2510 //\r
2511 if ((Connections & 0xFC) != 0) {\r
2512 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2), gShellDebug1HiiHandle);\r
2513 }\r
2514 //\r
2515 // Outbound Connection\r
2516 //\r
2517 if (BIT (Connections, 1) != 0) {\r
2518 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED), gShellDebug1HiiHandle);\r
2519 } else {\r
2520 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED), gShellDebug1HiiHandle);\r
2521 }\r
2522 //\r
2523 // Inbound Connection\r
2524 //\r
2525 if (BIT (Connections, 0) != 0) {\r
2526 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED), gShellDebug1HiiHandle);\r
2527 } else {\r
2528 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED), gShellDebug1HiiHandle);\r
2529 }\r
2530}\r
2531//\r
2532// System Power Supply (Type 39)\r
2533//\r
2534VOID\r
2535DisplaySPSCharacteristics (\r
2536 UINT16 Characteristics,\r
2537 UINT8 Option\r
2538 )\r
2539{\r
2540 UINTN Temp;\r
2541\r
2542 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR), gShellDebug1HiiHandle);\r
2543 PRINT_INFO_OPTION (Characteristics, Option);\r
2544\r
2545 //\r
2546 // Check reserved bits 15:14\r
2547 //\r
2548 if ((Characteristics & 0xC000) != 0) {\r
2549 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD), gShellDebug1HiiHandle);\r
2550 }\r
2551 //\r
2552 // Bits 13:10 - DMTF Power Supply Type\r
2553 //\r
2554 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE), gShellDebug1HiiHandle);\r
2555 Temp = (Characteristics & 0x1C00) << 10;\r
2556 switch (Temp) {\r
2557 case 1:\r
2558 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gShellDebug1HiiHandle);\r
2559 break;\r
2560\r
2561 case 2:\r
2562 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2563 break;\r
2564\r
2565 case 3:\r
2566 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR), gShellDebug1HiiHandle);\r
2567 break;\r
2568\r
2569 case 4:\r
2570 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING), gShellDebug1HiiHandle);\r
2571 break;\r
2572\r
2573 case 5:\r
2574 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY), gShellDebug1HiiHandle);\r
2575 break;\r
2576\r
2577 case 6:\r
2578 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS), gShellDebug1HiiHandle);\r
2579 break;\r
2580\r
2581 case 7:\r
2582 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER), gShellDebug1HiiHandle);\r
2583 break;\r
2584\r
2585 case 8:\r
2586 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR), gShellDebug1HiiHandle);\r
2587 break;\r
2588\r
2589 default:\r
2590 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2), gShellDebug1HiiHandle);\r
2591 }\r
2592 //\r
2593 // Bits 9:7 - Status\r
2594 //\r
2595 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH), gShellDebug1HiiHandle);\r
2596 Temp = (Characteristics & 0x380) << 7;\r
2597 switch (Temp) {\r
2598 case 1:\r
2599 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gShellDebug1HiiHandle);\r
2600 break;\r
2601\r
2602 case 2:\r
2603 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2604 break;\r
2605\r
2606 case 3:\r
2607 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK), gShellDebug1HiiHandle);\r
2608 break;\r
2609\r
2610 case 4:\r
2611 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL), gShellDebug1HiiHandle);\r
2612 break;\r
2613\r
2614 case 5:\r
2615 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY), gShellDebug1HiiHandle);\r
2616 break;\r
2617\r
2618 default:\r
2619 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED), gShellDebug1HiiHandle);\r
2620 }\r
2621 //\r
2622 // Bits 6:3 - DMTF Input Voltage Range Switching\r
2623 //\r
2624 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE), gShellDebug1HiiHandle);\r
2625 Temp = (Characteristics & 0x78) << 3;\r
2626 switch (Temp) {\r
2627 case 1:\r
2628 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gShellDebug1HiiHandle);\r
2629 break;\r
2630\r
2631 case 2:\r
2632 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
2633 break;\r
2634\r
2635 case 3:\r
2636 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL), gShellDebug1HiiHandle);\r
2637 break;\r
2638\r
2639 case 4:\r
2640 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH), gShellDebug1HiiHandle);\r
2641 break;\r
2642\r
2643 case 5:\r
2644 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE), gShellDebug1HiiHandle);\r
2645 break;\r
2646\r
2647 case 6:\r
2648 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE), gShellDebug1HiiHandle);\r
2649 break;\r
2650\r
2651 default:\r
2652 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3), gShellDebug1HiiHandle);\r
2653 break;\r
2654 }\r
2655 //\r
2656 // Power supply is unplugged from the wall\r
2657 //\r
2658 if (BIT (Characteristics, 2) != 0) {\r
2659 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED), gShellDebug1HiiHandle);\r
2660 } else {\r
2661 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED), gShellDebug1HiiHandle);\r
2662 }\r
2663 //\r
2664 // Power supply is present\r
2665 //\r
2666 if (BIT (Characteristics, 1) != 0) {\r
2667 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT), gShellDebug1HiiHandle);\r
2668 } else {\r
2669 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT), gShellDebug1HiiHandle);\r
2670 }\r
2671 //\r
2672 // hot replaceable\r
2673 //\r
2674 if (BIT (Characteristics, 0) != 0) {\r
2675 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE), gShellDebug1HiiHandle);\r
2676 } else {\r
2677 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE), gShellDebug1HiiHandle);\r
2678 }\r
2679}\r