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