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