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