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