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