2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2017, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
7 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #include "UefiShellDebug1CommandsLib.h"
18 #include "PrintInfo.h"
19 #include "LibSmbiosView.h"
20 #include "QueryTable.h"
21 #include "EventLogInfo.h"
25 // Get the certain bit of 'value'
27 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
30 // Check if above or equal to version
32 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
33 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
36 //////////////////////////////////////////////////////////
37 // Macros of print structure element, simplify coding.
39 #define PRINT_PENDING_STRING(pStruct, type, element) \
42 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
43 ShellPrintEx(-1,-1,L"%a",#element); \
44 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
47 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
50 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
51 ShellPrintEx(-1,-1,L"%a",#element); \
52 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
55 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
57 ShellPrintEx(-1,-1,L"%a",#element); \
58 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
61 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
63 ShellPrintEx(-1,-1,L"%a",#element); \
64 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
67 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
69 ShellPrintEx(-1,-1,L"%a",#element); \
70 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
73 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
75 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
76 ShellPrintEx(-1,-1,L"%a",#element); \
77 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
78 DumpHex (0, 0, size, &(pStruct->type->element)); \
81 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
83 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
84 ShellPrintEx(-1,-1,L"%a",#element); \
85 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
86 DumpHex (0, 0, size, startaddress); \
90 /////////////////////////////////////////
94 Copy Length of Src buffer to Dest buffer,
95 add a NULL termination to Dest buffer.
97 @param[in, out] Dest Destination buffer head.
98 @param[in] Src Source buffer head.
99 @param[in] Length Length of buffer to be copied.
110 SrcBuffer
= (UINT8
*) Src
;
111 DestBuffer
= (UINT8
*) Dest
;
115 while ((Length
--)!=0) {
116 *DestBuffer
++ = *SrcBuffer
++;
119 // append a NULL terminator
125 //////////////////////////////////////////////
127 // Functions below is to show the information
131 Print the info of EPS(Entry Point Structure).
133 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
134 @param[in] Option Display option.
138 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
145 if (SmbiosTable
== NULL
) {
146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
150 if (Option
== SHOW_NONE
) {
154 if (Option
>= SHOW_NORMAL
) {
155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
156 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
158 ShellPrintHiiEx(-1,-1,NULL
,
159 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
160 gShellDebug1HiiHandle
,
161 SmbiosTable
->EntryPointStructureChecksum
163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
164 ShellPrintHiiEx(-1,-1,NULL
,
165 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
166 gShellDebug1HiiHandle
,
167 SmbiosTable
->MajorVersion
,
168 SmbiosTable
->MinorVersion
170 ShellPrintHiiEx(-1,-1,NULL
,
171 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
172 gShellDebug1HiiHandle
,
173 SmbiosTable
->NumberOfSmbiosStructures
175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
181 // If SHOW_ALL, also print followings.
183 if (Option
>= SHOW_DETAIL
) {
184 ShellPrintHiiEx(-1,-1,NULL
,
185 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
186 gShellDebug1HiiHandle
,
187 SmbiosTable
->EntryPointRevision
189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
191 // Since raw data is not string, add a NULL terminater.
193 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
197 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
204 Print the info of 64-bit EPS(Entry Point Structure).
206 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
207 @param[in] Option Display option.
210 Smbios64BitPrintEPSInfo (
211 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
217 if (SmbiosTable
== NULL
) {
218 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
222 if (Option
== SHOW_NONE
) {
226 if (Option
>= SHOW_NORMAL
) {
227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
229 MemToString (Anchor
, SmbiosTable
->AnchorString
, 5);
230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
232 ShellPrintHiiEx(-1,-1,NULL
,
233 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
234 gShellDebug1HiiHandle
,
235 SmbiosTable
->EntryPointStructureChecksum
238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
240 ShellPrintHiiEx(-1,-1,NULL
,
241 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
242 gShellDebug1HiiHandle
,
243 SmbiosTable
->MajorVersion
,
244 SmbiosTable
->MinorVersion
247 ShellPrintHiiEx(-1,-1,NULL
,
248 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV
),
249 gShellDebug1HiiHandle
,
253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->TableMaximumSize
);
255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
259 // If SHOW_ALL, also print followings.
261 if (Option
>= SHOW_DETAIL
) {
262 ShellPrintHiiEx(-1,-1,NULL
,
263 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
264 gShellDebug1HiiHandle
,
265 SmbiosTable
->EntryPointRevision
273 This function print the content of the structure pointed by Struct.
275 @param[in] Struct Point to the structure to be printed.
276 @param[in] Option Print option of information detail.
278 @retval EFI_SUCCESS Successfully Printing this function.
279 @retval EFI_INVALID_PARAMETER Invalid Structure.
280 @retval EFI_UNSUPPORTED Unsupported.
283 SmbiosPrintStructure (
284 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
291 if (Struct
== NULL
) {
292 return EFI_INVALID_PARAMETER
;
295 if (Option
== SHOW_NONE
) {
299 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
302 // Display structure header
304 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
308 if (Option
== SHOW_OUTLINE
) {
312 switch (Struct
->Hdr
->Type
) {
314 // BIOS Information (Type 0)
317 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
318 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
319 PRINT_STRUCT_VALUE_H (Struct
, Type0
, BiosSegment
);
320 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
321 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
323 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type0
->BiosCharacteristics
)), Option
);
325 if (Struct
->Hdr
->Length
> 0x12) {
326 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
328 if (Struct
->Hdr
->Length
> 0x13) {
329 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
332 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
333 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
334 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
335 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
336 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
338 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x18)) {
343 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTENDED_BIOS_SIZE
),
344 gShellDebug1HiiHandle
,
345 Struct
->Type0
->ExtendedBiosSize
.Size
,
346 (Struct
->Type0
->ExtendedBiosSize
.Unit
== 0x0) ? L
"MB": L
"GB"
352 // System Information (Type 1)
355 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
356 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
357 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
358 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
359 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
360 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
361 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
362 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
363 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
369 // Baseboard Information (Type 2)
372 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
373 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
374 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
375 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
376 if (Struct
->Hdr
->Length
> 0x8) {
377 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
378 DisplayBaseBoardFeatureFlags (*(UINT8
*) &Struct
->Type2
->FeatureFlag
, Option
);
379 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
380 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
381 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
386 // System Enclosure (Type 3)
389 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
390 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
391 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
392 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
393 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
394 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
395 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
396 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
397 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
398 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
399 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
400 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
402 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
403 if (AE_SMBIOS_VERSION (0x2, 0x3)) {
404 if (Struct
->Hdr
->Length
> 0xD) {
405 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
407 if (Struct
->Hdr
->Length
> 0x11) {
408 PRINT_STRUCT_VALUE (Struct
, Type3
, Height
);
410 if (Struct
->Hdr
->Length
> 0x12) {
411 PRINT_STRUCT_VALUE (Struct
, Type3
, NumberofPowerCords
);
414 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
415 if (Struct
->Hdr
->Length
> (0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
))) {
416 PRINT_SMBIOS_STRING (Struct
, Buffer
[0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
)], SKUNumber
);
422 // Processor Information (Type 4)
425 PRINT_SMBIOS_STRING (Struct
, Struct
->Type4
->Socket
, SocketDesignation
)
426 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
427 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
428 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
430 // Get family from ProcessorFamily2 field
432 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
434 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
436 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
437 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
438 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
439 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
440 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
441 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
442 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
443 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
444 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
445 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
446 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
447 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
448 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
449 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
450 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
451 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
453 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
454 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
455 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
456 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
457 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
459 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
460 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
461 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
462 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
467 // Memory Controller Information (Type 5)
472 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
474 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
475 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
476 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
477 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
479 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
480 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
481 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
482 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
483 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
484 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
486 // According to SMBIOS Specification, offset 0x0F
488 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
489 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
494 // Memory Module Information (Type 6)
497 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
498 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
499 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
500 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
501 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
502 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
503 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
504 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
505 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
509 // Cache Information (Type 7)
512 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
513 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
514 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
515 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
516 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
517 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
518 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
519 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
520 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
521 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
522 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
523 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x13)) {
524 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize2
);
525 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize2
);
530 // Port Connector Information (Type 8)
533 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
534 Print (L
"Internal ");
535 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
536 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
537 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
538 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
539 DisplayPortType (Struct
->Type8
->PortType
, Option
);
543 // System Slots (Type 9)
546 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
547 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
548 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
549 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
550 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
551 DisplaySystemSlotId (
552 Struct
->Type9
->SlotID
,
553 Struct
->Type9
->SlotType
,
556 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
557 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
558 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
559 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
560 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
561 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
566 // On Board Devices Information (Type 10)
571 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
572 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
573 ShellPrintEx(-1,-1,(((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
574 DisplayOnboardDeviceTypes ((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x7F, Option
);
575 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
576 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
582 // Oem Strings (Type 11)
585 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
586 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
587 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
592 // System Configuration Options (Type 12)
595 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
596 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
597 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
602 // BIOS Language Information (Type 13)
605 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
606 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
607 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
608 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
612 // Group Associations (Type 14)
617 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
618 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
619 for (Index
= 0; Index
< NumOfItem
; Index
++) {
620 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
621 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
627 // System Event Log (Type 15)
633 UINT8
*AccessMethodAddress
;
635 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
636 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
637 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
638 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
639 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
640 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
641 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
642 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
643 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
644 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
646 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
648 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
651 // Display all Event Log type descriptors supported by system
653 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
654 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
655 DisplaySELTypes (Ptr
->LogType
, Option
);
656 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
659 if (Option
>= SHOW_DETAIL
) {
660 switch (Struct
->Type15
->AccessMethod
) {
662 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
670 ShellPrintHiiEx(-1,-1,NULL
,
671 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
672 gShellDebug1HiiHandle
,
673 Struct
->Type15
->AccessMethod
675 return EFI_UNSUPPORTED
;
678 // Display Event Log Header
680 // Starting offset (or index) within the nonvolatile storage
681 // of the event-log's header, from the Access Method Address
683 DisplaySysEventLogHeader (
684 Struct
->Type15
->LogHeaderFormat
,
685 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
689 // Display all Event Log data
691 // Starting offset (or index) within the nonvolatile storage
692 // of the event-log's first data byte, from the Access Method Address(0x14)
694 DisplaySysEventLogData (
695 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
698 Struct
->Type15
->LogAreaLength
-
699 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
709 // Physical Memory Array (Type 16)
712 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
713 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
714 DisplayPMAErrorCorrectionTypes (
715 Struct
->Type16
->MemoryErrorCorrection
,
718 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
719 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
720 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
721 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
722 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
727 // Memory Device (Type 17)
730 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
731 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
732 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
733 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
734 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
735 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
736 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
737 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
738 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
739 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
740 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
741 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
742 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
743 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
744 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
745 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
746 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
747 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
749 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
750 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
751 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
753 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
754 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
755 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
756 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
761 // 32-bit Memory Error Information (Type 18)
764 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
765 DisplayMemoryErrorGranularity (
766 Struct
->Type18
->ErrorGranularity
,
769 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
770 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
771 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
772 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
773 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
777 // Memory Array Mapped Address (Type 19)
780 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
783 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
784 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
785 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
786 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
791 // Memory Device Mapped Address (Type 20)
794 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
795 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
796 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
797 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
798 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
799 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
800 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
801 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
802 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
803 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
808 // Built-in Pointing Device (Type 21)
811 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
812 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
813 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
817 // Portable Battery (Type 22)
820 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
821 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
822 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
823 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
824 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
825 DisplayPBDeviceChemistry (
826 Struct
->Type22
->DeviceChemistry
,
829 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
830 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
831 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
832 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
833 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
834 DisplaySBDSManufactureDate (
835 Struct
->Type22
->SBDSManufactureDate
,
838 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
839 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
840 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
844 // System Reset (Type 23)
847 DisplaySystemResetCapabilities (
848 Struct
->Type23
->Capabilities
,
851 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
852 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
853 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
854 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
858 // Hardware Security (Type 24)
861 DisplayHardwareSecuritySettings (
862 Struct
->Type24
->HardwareSecuritySettings
,
868 // System Power Controls (Type 25)
871 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
872 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
873 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
874 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
875 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
879 // Voltage Probe (Type 26)
882 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
883 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
884 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
885 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
886 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
887 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
889 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
890 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
891 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
895 // Cooling Device (Type 27)
898 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
899 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
900 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
901 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
902 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
903 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
904 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
905 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
910 // Temperature Probe (Type 28)
913 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
914 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
915 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
916 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
917 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
918 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
919 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
920 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
921 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
922 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
926 // Electrical Current Probe (Type 29)
929 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
930 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
931 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
932 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
933 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
934 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
935 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
936 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
937 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
938 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
942 // Out-of-Band Remote Access (Type 30)
945 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
946 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
950 // Boot Integrity Services (BIS) Entry Point (Type 31)
953 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
957 // System Boot Information (Type 32)
960 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
961 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
965 // 64-Bit Memory Error Information (Type 33)
968 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
969 DisplayMemoryErrorGranularity (
970 Struct
->Type33
->ErrorGranularity
,
973 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
974 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
975 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
976 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
977 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
981 // Management Device (Type 34)
984 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
985 DisplayMDType (Struct
->Type34
->Type
, Option
);
986 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
987 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
991 // Management Device Component (Type 35)
994 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
995 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
996 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
997 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
1001 // Management Device Threshold Data (Type 36)
1004 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
1005 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
1006 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
1007 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
1008 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
1009 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
1013 // Memory Channel (Type 37)
1019 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1020 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1021 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1023 Count
= Struct
->Type37
->MemoryDeviceCount
;
1024 Ptr
= Struct
->Type37
->MemoryDevice
;
1025 for (Index
= 0; Index
< Count
; Index
++) {
1026 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1028 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1034 // IPMI Device Information (Type 38)
1037 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1038 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1039 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1040 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1041 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1045 // System Power Supply (Type 39)
1048 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1049 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1050 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1051 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1052 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1053 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1054 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1055 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1056 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1057 DisplaySPSCharacteristics (
1058 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1061 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1062 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1063 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1067 // Additional Information (Type 40)
1071 UINT8 NumberOfEntries
;
1073 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1076 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1077 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1079 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1081 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1082 EntryLength
= Entries
->EntryLength
;
1083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1084 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1085 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1086 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1087 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1088 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1094 // Onboard Devices Extended Information (Type 41)
1097 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1098 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1099 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1100 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1101 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1102 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1103 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1107 // Management Controller Host Interface (Type 42)
1110 DisplayMCHostInterfaceType (Struct
->Type42
->InterfaceType
, Option
);
1114 // TPM Device (Type 43)
1117 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1118 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1119 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1120 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1121 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1122 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1123 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type43
->Characteristics
)), Option
);
1124 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1128 // Inactive (Type 126)
1131 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1135 // End-of-Table (Type 127)
1138 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1142 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1150 Display BIOS Information (Type 0) information.
1152 @param[in] Chara The information bits.
1153 @param[in] Option The optional information.
1156 DisplayBiosCharacteristics (
1164 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1168 PRINT_INFO_OPTION (Chara
, Option
);
1171 // Check all the bits and print information
1172 // This function does not use Table because table of bits
1173 // are designed not to deal with UINT64
1175 if (BIT (Chara
, 0) != 0) {
1176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1179 if (BIT (Chara
, 1) != 0) {
1180 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1183 if (BIT (Chara
, 2) != 0) {
1184 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1187 if (BIT (Chara
, 3) != 0) {
1188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1191 if (BIT (Chara
, 4) != 0) {
1192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1195 if (BIT (Chara
, 5) != 0) {
1196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1199 if (BIT (Chara
, 6) != 0) {
1200 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1203 if (BIT (Chara
, 7) != 0) {
1204 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1207 if (BIT (Chara
, 8) != 0) {
1208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1211 if (BIT (Chara
, 9) != 0) {
1212 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1215 if (BIT (Chara
, 10) != 0) {
1216 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1219 if (BIT (Chara
, 11) != 0) {
1220 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1223 if (BIT (Chara
, 12) != 0) {
1224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1227 if (BIT (Chara
, 13) != 0) {
1228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1231 if (BIT (Chara
, 14) != 0) {
1232 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1235 if (BIT (Chara
, 15) != 0) {
1236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1239 if (BIT (Chara
, 16) != 0) {
1240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1243 if (BIT (Chara
, 17) != 0) {
1244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1247 if (BIT (Chara
, 18) != 0) {
1248 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1251 if (BIT (Chara
, 19) != 0) {
1252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1255 if (BIT (Chara
, 20) != 0) {
1256 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1259 if (BIT (Chara
, 21) != 0) {
1260 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1263 if (BIT (Chara
, 22) != 0) {
1264 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1267 if (BIT (Chara
, 23) != 0) {
1268 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1271 if (BIT (Chara
, 24) != 0) {
1272 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1275 if (BIT (Chara
, 25) != 0) {
1276 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1279 if (BIT (Chara
, 26) != 0) {
1280 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1283 if (BIT (Chara
, 27) != 0) {
1284 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1287 if (BIT (Chara
, 28) != 0) {
1288 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1291 if (BIT (Chara
, 29) != 0) {
1292 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1295 if (BIT (Chara
, 30) != 0) {
1296 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1299 if (BIT (Chara
, 31) != 0) {
1300 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1303 // Just print the Reserved
1305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1310 Display Bios Characteristice extensions1 information.
1312 @param[in] Byte1 The information.
1313 @param[in] Option The optional information.
1316 DisplayBiosCharacteristicsExt1 (
1321 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1325 PRINT_INFO_OPTION (Byte1
, Option
);
1328 // check bit and print
1330 if (BIT (Byte1
, 0) != 0) {
1331 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1334 if (BIT (Byte1
, 1) != 0) {
1335 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1338 if (BIT (Byte1
, 2) != 0) {
1339 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1342 if (BIT (Byte1
, 3) != 0) {
1343 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1346 if (BIT (Byte1
, 4) != 0) {
1347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1350 if (BIT (Byte1
, 5) != 0) {
1351 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1354 if (BIT (Byte1
, 6) != 0) {
1355 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1358 if (BIT (Byte1
, 7) != 0) {
1359 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1364 Display Bios Characteristice extensions2 information.
1366 @param[in] byte2 The information.
1367 @param[in] Option The optional information.
1370 DisplayBiosCharacteristicsExt2 (
1375 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1379 PRINT_INFO_OPTION (byte2
, Option
);
1381 if (BIT (byte2
, 0) != 0) {
1382 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1385 if (BIT (byte2
, 1) != 0) {
1386 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1389 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1390 if (BIT (byte2
, 2) != 0) {
1391 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1393 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1394 if (BIT (byte2
, 3) != 0) {
1395 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1397 if (BIT (byte2
, 4) != 0) {
1398 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1400 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1402 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1405 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1410 Display Processor Information (Type 4) information.
1412 @param[in] Family The family value.
1413 @param[in] Option The option value.
1416 DisplayProcessorFamily (
1422 // Print prompt message
1424 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1428 PRINT_INFO_OPTION (Family
, Option
);
1431 // Use switch to check
1435 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1439 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1451 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1455 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1475 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1479 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1483 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1487 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1491 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1495 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1499 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1503 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1507 Print (L
"M2 Family\n");
1511 Print (L
"Intel Celeron M\n");
1515 Print (L
"Intel Pentium 4 HT\n");
1519 Print (L
"AMD Duron\n");
1523 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1527 Print (L
"K6 Family\n");
1539 Print (L
"AMD Althon Processor Family\n");
1543 Print (L
"AMD 29000 Family\n");
1551 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1555 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1559 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1563 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1567 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1571 Print (L
"Power PC 620\n");
1575 Print (L
"Power PC 704\n");
1579 Print (L
"Power PC 750\n");
1583 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1587 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1591 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1595 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1599 Print (L
"Intel(R) Core(TM) M processor\n");
1603 Print (L
"Intel(R) Core(TM) m3 processor\n");
1607 Print (L
"Intel(R) Core(TM) m5 processor\n");
1611 Print (L
"Intel(R) Core(TM) m7 processor\n");
1615 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1619 Print (L
"Alpha 21064\n");
1623 Print (L
"Alpha 21066\n");
1627 Print (L
"Alpha 21164\n");
1631 Print (L
"Alpha 21164PC\n");
1635 Print (L
"Alpha 21164a\n");
1639 Print (L
"Alpha 21264\n");
1643 Print (L
"Alpha 21364\n");
1647 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1651 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1655 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1659 Print (L
"AMD Opteron 6100 Series Processor\n");
1663 Print (L
"AMD Opteron 4100 Series Processor\n");
1667 Print (L
"AMD Opteron 6200 Series Processor\n");
1671 Print (L
"AMD Opteron 4200 Series Processor\n");
1675 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1679 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1683 Print (L
"MIPS R4000\n");
1687 Print (L
"MIPS R4200\n");
1691 Print (L
"MIPS R4400\n");
1695 Print (L
"MIPS R4600\n");
1699 Print (L
"MIPS R10000\n");
1703 Print (L
"AMD C-Series Processor\n");
1707 Print (L
"AMD E-Series Processor\n");
1711 Print (L
"AMD A-Series Processor\n");
1715 Print (L
"AMD G-Series Processor\n");
1719 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1723 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1727 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1731 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1735 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1739 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1743 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1747 Print (L
"SuperSparc\n");
1751 Print (L
"microSparc II\n");
1755 Print (L
"microSparc IIep\n");
1759 Print (L
"UltraSparc\n");
1763 Print (L
"UltraSparc II\n");
1767 Print (L
"UltraSparcIIi\n");
1771 Print (L
"UltraSparcIII\n");
1775 Print (L
"UltraSparcIIIi\n");
1779 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1803 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1807 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1811 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1815 Print (L
"AMD Opteron(TM) A-Series Processor\n");
1819 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
1823 Print (L
"AMD Zen Processor Family\n");
1827 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1831 Print (L
"Crusoe TM5000\n");
1835 Print (L
"Crusoe TM3000\n");
1839 Print (L
"Efficeon TM8000\n");
1843 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1847 Print (L
"Itanium\n");
1851 Print (L
"AMD Athlon64\n");
1855 Print (L
"AMD Opteron\n");
1859 Print (L
"AMD Sempron\n");
1863 Print (L
"AMD Turion64 Mobile\n");
1867 Print (L
"Dual-Core AMD Opteron\n");
1871 Print (L
"AMD Athlon 64X2 DualCore\n");
1875 Print (L
"AMD Turion 64X2 Mobile\n");
1879 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1887 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1891 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1895 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1899 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1903 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1907 Print (L
"PA-RISC 8500\n");
1911 Print (L
"PA-RISC 8000\n");
1915 Print (L
"PA-RISC 7300LC\n");
1919 Print (L
"PA-RISC 7200\n");
1923 Print (L
"PA-RISC 7100LC\n");
1927 Print (L
"PA-RISC 7100\n");
1931 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1935 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1939 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1943 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1947 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1951 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1955 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1959 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1963 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1967 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1971 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1975 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1979 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1983 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1987 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1991 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1995 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1999 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2003 Print (L
"Pentium 4 processor\n");
2007 Print (L
"Intel Xeon Processor\n");
2011 Print (L
"AS400 Family\n");
2015 Print (L
"Intel Xeon processor MP\n");
2019 Print (L
"AMD Althon XP Processor Family\n");
2023 Print (L
"AMD Althon MP Promcessor Family\n");
2027 Print (L
"Intel Itanium 2 processor\n");
2031 Print (L
"Intel Penium M processor\n");
2035 Print (L
"Intel Celeron D processor\n");
2039 Print (L
"Intel Pentium D processor\n");
2043 Print (L
"Intel Pentium Processor Extreme Edition\n");
2047 Print (L
"Intel Core Solo Processor\n");
2051 Print (L
"Intel Core 2 Duo Processor\n");
2055 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2059 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2063 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2071 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2075 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2079 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2087 Print (L
"IBM 390\n");
2103 Print (L
"zArchitecture\n");
2107 Print (L
"Intel Core i5 processor\n");
2111 Print (L
"Intel Core i3 processor\n");
2115 Print (L
"ViaC7M\n");
2119 Print (L
"ViaC7D\n");
2131 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2135 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2139 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2143 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2147 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2159 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2163 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2167 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2171 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2180 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2184 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2200 Print (L
"AMD Phenom II Processor Family\n");
2204 Print (L
"AMD Althon II Processor Family\n");
2208 Print (L
"Six-Core AMD Opteron Processor Family\n");
2212 Print (L
"AMD Sempron M Processor Family\n");
2224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2232 Display processor family information.
2234 @param[in] Family2 The family value.
2235 @param[in] Option The option value.
2238 DisplayProcessorFamily2 (
2244 // Print prompt message
2246 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2251 PRINT_INFO_OPTION (Family2
, Option
);
2254 // Use switch to check
2278 Print (L
"StrongARM\n");
2286 Print (L
"MediaGX\n");
2294 Print (L
"WinChip\n");
2302 Print (L
"Video Processor\n");
2306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2312 Display processor voltage information.
2314 @param[in] Voltage The Voltage.
2315 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2316 Bits 6:4 Reserved, must be zero
2317 Bits 3:0 Voltage Capability.
2318 A Set bit indicates that the voltage is supported.
2322 Bit 3 - Reserved, must be zero.
2325 Setting of multiple bits indicates the socket is configurable
2326 If bit 7 is set to 1, the remaining seven bits of the field are set to
2327 contain the processor's current voltage times 10.
2328 For example, the field value for a processor voltage of 1.8 volts would be
2329 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2331 @param[in] Option The option.
2334 DisplayProcessorVoltage (
2339 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2343 PRINT_INFO_OPTION (Voltage
, Option
);
2345 if (BIT (Voltage
, 7) != 0) {
2346 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2348 if (BIT (Voltage
, 0) != 0) {
2349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2352 if (BIT (Voltage
, 1) != 0) {
2353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2356 if (BIT (Voltage
, 2) != 0) {
2357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2360 // check the reserved zero bits:
2362 if (BIT (Voltage
, 3) != 0) {
2363 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2366 if (BIT (Voltage
, 4) != 0) {
2367 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2370 if (BIT (Voltage
, 5) != 0) {
2371 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2374 if (BIT (Voltage
, 6) != 0) {
2375 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2381 Display processor information.
2383 @param[in] Status The status.
2384 Bit 7 Reserved, must be 0
2385 Bit 6 CPU Socket Populated
2386 1 - CPU Socket Populated
2387 0 - CPU Socket Unpopulated
2388 Bits 5:3 Reserved, must be zero
2392 2h - CPU Disabled by User via BIOS Setup
2393 3h - CPU Disabled By BIOS (POST Error)
2394 4h - CPU is Idle, waiting to be enabled.
2398 @param[in] Option The option
2401 DisplayProcessorStatus (
2406 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2407 PRINT_INFO_OPTION (Status
, Option
);
2409 if (BIT (Status
, 7) != 0) {
2410 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2411 } else if (BIT (Status
, 5) != 0) {
2412 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2413 } else if (BIT (Status
, 4) != 0) {
2414 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2415 } else if (BIT (Status
, 3) != 0) {
2416 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2421 if (BIT (Status
, 6) != 0) {
2422 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2424 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2429 switch (Status
& 0x07) {
2431 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2435 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2439 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2443 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2447 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2451 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2455 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2460 Display information about Memory Controller Information (Type 5).
2462 @param[in] Size Memory size.
2463 @param[in] SlotNum Which slot is this about.
2464 @param[in] Option Option for the level of detail output required.
2467 DisplayMaxMemoryModuleSize (
2474 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2476 // MaxSize is determined by follow formula
2478 MaxSize
= (UINTN
) 1 << Size
;
2479 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2481 if (Option
>= SHOW_DETAIL
) {
2482 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2483 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2488 Display information about memory configuration handles.
2490 @param[in] Handles The buffer of handles to output info on.
2491 @param[in] SlotNum The number of handles in the above buffer.
2492 @param[in] Option Option for the level of detail output required.
2495 DisplayMemoryModuleConfigHandles (
2502 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2504 if (Option
>= SHOW_DETAIL
) {
2506 // No handle, Handles is INVALID.
2512 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2513 for (Index
= 0; Index
< SlotNum
; Index
++) {
2514 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2520 Display Memory Module Information (Type 6).
2522 @param[in] BankConnections
2526 DisplayMmBankConnections (
2527 IN UINT8 BankConnections
,
2534 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2538 PRINT_INFO_OPTION (BankConnections
, Option
);
2541 // Divide it to high and low
2543 High
= (UINT8
) (BankConnections
& 0xF0);
2544 Low
= (UINT8
) (BankConnections
& 0x0F);
2547 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2553 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2555 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2561 Display memory informcation.
2564 where 2**n is the size in MB with three special-case values:
2565 7Dh Not determinable (Installed Size only)
2566 7Eh Module is installed, but no memory has been enabled
2568 Bit 7 Defines whether the memory module has a single- (0)
2569 or double-bank (1) connection.
2571 @param[in] Size - The size
2572 @param[in] Option - The option
2575 DisplayMmMemorySize (
2581 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2585 PRINT_INFO_OPTION (Size
, Option
);
2588 // Get the low bits(0-6 bit)
2590 Value
= (UINT8
) (Size
& 0x7F);
2591 if (Value
== 0x7D) {
2592 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2593 } else if (Value
== 0x7E) {
2594 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2595 } else if (Value
== 0x7F) {
2596 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2598 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2601 if (BIT (Size
, 7) != 0) {
2602 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2604 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2609 Display Cache Configuration.
2611 @param[in] CacheConfiguration Cache Configuration.
2612 Bits 15:10 Reserved, must be 0
2613 Bits 9:8 Operational Mode
2616 2h - Varies with Memory Address
2618 Bit 7 Enabled/Disabled
2626 Bit 4 Reserved, must be zero
2627 Bit 3 Cache Socketed
2630 Bits 2:0 Cache Level
2631 1 through 8 (For example, an L1 cache would
2632 use value 000b and an L3 cache would use 010b.)
2634 @param[in] Option The option
2637 DisplayCacheConfiguration (
2638 IN UINT16 CacheConfiguration
,
2642 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2643 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2645 if (BIT (CacheConfiguration
, 15) != 0) {
2646 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2647 } else if (BIT (CacheConfiguration
, 14) != 0) {
2648 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2649 } else if (BIT (CacheConfiguration
, 13) != 0) {
2650 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2651 } else if (BIT (CacheConfiguration
, 12) != 0) {
2652 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2653 } else if (BIT (CacheConfiguration
, 11) != 0) {
2654 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2655 } else if (BIT (CacheConfiguration
, 10) != 0) {
2656 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2657 } else if (BIT (CacheConfiguration
, 4) != 0) {
2658 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2664 switch ((CacheConfiguration
& 0x300) >> 8) {
2666 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2670 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2674 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2678 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2685 if (BIT (CacheConfiguration
, 7) != 0) {
2686 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2688 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2694 switch ((CacheConfiguration
& 0x60) >> 5) {
2696 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2700 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2704 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2708 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2715 if (BIT (CacheConfiguration
, 3) != 0) {
2716 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2718 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2722 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2726 The Slot ID field of the System Slot structure provides a mechanism to
2727 correlate the physical attributes of the slot to its logical access method
2728 (which varies based on the Slot Type field).
2730 @param[in] SlotId - The slot ID
2731 @param[in] SlotType - The slot type
2732 @param[in] Option - The Option
2735 DisplaySystemSlotId (
2742 // Display slot type first
2744 DisplaySystemSlotType (SlotType
, Option
);
2746 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2750 PRINT_INFO_OPTION (SlotType
, Option
);
2757 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2758 if (SlotId
> 0 && SlotId
< 15) {
2759 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2761 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2769 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2770 if (SlotId
> 0 && SlotId
< 15) {
2771 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2773 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2781 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2788 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2795 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2799 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2800 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2802 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2808 Display System Boot Information (Type 32) information.
2810 @param[in] Parameter The parameter.
2811 @param[in] Option The options.
2814 DisplaySystemBootStatus (
2819 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2823 PRINT_INFO_OPTION (Parameter
, Option
);
2826 // Check value and print
2828 if (Parameter
== 0) {
2829 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2830 } else if (Parameter
== 1) {
2831 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2832 } else if (Parameter
== 2) {
2833 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2834 } else if (Parameter
== 3) {
2835 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2836 } else if (Parameter
== 4) {
2837 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2838 } else if (Parameter
== 5) {
2839 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2840 } else if (Parameter
== 6) {
2841 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2842 } else if (Parameter
== 7) {
2843 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2844 } else if (Parameter
== 8) {
2845 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2846 } else if (Parameter
>= 9 && Parameter
<= 127) {
2847 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2848 } else if (Parameter
>= 128 && Parameter
<= 191) {
2849 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2850 } else if (Parameter
>= 192) {
2851 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2853 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2858 Display Portable Battery (Type 22) information.
2860 The date the cell pack was manufactured, in packed format:
2861 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2862 Bits 8:5 Month, in the range 1 to 12.
2863 Bits 4:0 Date, in the range 1 to 31.
2864 For example, 01 February 2000 would be identified as
2865 0010 1000 0100 0001b (0x2841).
2867 @param[in] Date The date
2868 @param[in] Option The option
2871 DisplaySBDSManufactureDate (
2880 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2881 PRINT_INFO_OPTION (Date
, Option
);
2885 Day
= Date
& 0x001F;
2886 Month
= (Date
& 0x01E0) >> 5;
2887 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2888 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2893 Display System Reset (Type 23) information.
2896 Identifies the system-reset capabilities for the system.
2897 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2898 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2899 Bits 4:3 Boot Option on Limit.
2900 Identifies the system action to be taken when the Reset Limit is reached, one of:
2901 00b Reserved, do not use.
2902 01b Operating system
2903 10b System utilities
2904 11b Do not rebootBits
2905 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2906 00b Reserved, do not use.
2907 01b Operating system
2908 10b System utilities
2911 1b The system reset is enabled by the user
2912 0b The system reset is not enabled by the user
2914 @param[in] Reset Reset
2915 @param[in] Option The option
2918 DisplaySystemResetCapabilities (
2925 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2926 PRINT_INFO_OPTION (Reset
, Option
);
2929 // Check reserved bits 7:6
2931 if ((Reset
& 0xC0) != 0) {
2932 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2937 if (BIT (Reset
, 5) != 0) {
2938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2940 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2943 // Boot Option on Limit
2945 Temp
= (Reset
& 0x18) >> 3;
2946 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2949 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2953 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2957 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2961 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2967 Temp
= (Reset
& 0x06) >> 1;
2968 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2971 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2975 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2979 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2983 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2987 // Reset enable flag
2989 if ((Reset
& 0x01) != 0) {
2990 Print (L
"The system reset is enabled by the user\n");
2992 Print (L
"The system reset is disabled by the user\n");
2997 Display Hardware Security (Type 24) information.
3000 Identifies the password and reset status for the system:
3002 Bits 7:6 Power-on Password Status, one of:
3007 Bits 5:4 Keyboard Password Status, one of:
3012 Bits 3:2 Administrator Password Status, one of:
3017 Bits 1:0 Front Panel Reset Status, one of:
3023 @param[in] Settings The device settings.
3024 @param[in] Option The device options.
3027 DisplayHardwareSecuritySettings (
3034 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3035 PRINT_INFO_OPTION (Settings
, Option
);
3038 // Power-on Password Status
3040 Temp
= (Settings
& 0xC0) >> 6;
3041 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3044 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3048 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3052 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3056 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3060 // Keyboard Password Status
3062 Temp
= (Settings
& 0x30) >> 4;
3063 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3066 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3074 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3078 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3082 // Administrator Password Status
3084 Temp
= (Settings
& 0x0C) >> 2;
3085 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3088 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3100 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3104 // Front Panel Reset Status
3106 Temp
= Settings
& 0x3;
3107 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3114 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3118 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3128 Display Out-of-Band Remote Access (Type 30) information.
3130 @param[in] Connections The device characteristics.
3131 @param[in] Option The device options.
3134 DisplayOBRAConnections (
3135 IN UINT8 Connections
,
3139 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3140 PRINT_INFO_OPTION (Connections
, Option
);
3143 // Check reserved bits 7:2
3145 if ((Connections
& 0xFC) != 0) {
3146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3149 // Outbound Connection
3151 if (BIT (Connections
, 1) != 0) {
3152 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3157 // Inbound Connection
3159 if (BIT (Connections
, 0) != 0) {
3160 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3162 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3167 Display System Power Supply (Type 39) information.
3169 @param[in] Characteristics The device characteristics.
3170 @param[in] Option The device options.
3173 DisplaySPSCharacteristics (
3174 IN UINT16 Characteristics
,
3180 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3181 PRINT_INFO_OPTION (Characteristics
, Option
);
3184 // Check reserved bits 15:14
3186 if ((Characteristics
& 0xC000) != 0) {
3187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3190 // Bits 13:10 - DMTF Power Supply Type
3192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3193 Temp
= (Characteristics
& 0x1C00) >> 10;
3196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3200 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3204 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3212 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3216 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3220 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3231 // Bits 9:7 - Status
3233 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3234 Temp
= (Characteristics
& 0x380) >> 7;
3237 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3241 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3245 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3249 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3257 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3260 // Bits 6:3 - DMTF Input Voltage Range Switching
3262 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3263 Temp
= (Characteristics
& 0x78) >> 3;
3266 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3270 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3274 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3278 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3282 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3286 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3290 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3294 // Power supply is unplugged from the wall
3296 if (BIT (Characteristics
, 2) != 0) {
3297 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3302 // Power supply is present
3304 if (BIT (Characteristics
, 1) != 0) {
3305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3307 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3312 if (BIT (Characteristics
, 0) != 0) {
3313 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3315 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3320 Display TPM Device (Type 43) Characteristics.
3322 @param[in] Chara The information bits.
3323 @param[in] Option The optional information.
3326 DisplayTpmDeviceCharacteristics (
3334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3338 PRINT_INFO_OPTION (Chara
, Option
);
3341 // Check all the bits and print information
3342 // This function does not use Table because table of bits
3343 // are designed not to deal with UINT64
3345 if (BIT (Chara
, 0) != 0) {
3346 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3349 if (BIT (Chara
, 1) != 0) {
3350 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3352 if (BIT (Chara
, 2) != 0) {
3353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3356 if (BIT (Chara
, 3) != 0) {
3357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3360 if (BIT (Chara
, 4) != 0) {
3361 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3364 if (BIT (Chara
, 5) != 0) {
3365 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3369 // Just print the Reserved
3371 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);