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