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