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 (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 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
574 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
575 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
581 // Oem Strings (Type 11)
584 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
585 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
586 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
591 // System Configuration Options (Type 12)
594 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
595 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
596 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
601 // BIOS Language Information (Type 13)
604 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
605 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
606 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
607 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
611 // Group Associations (Type 14)
616 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
617 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
618 for (Index
= 0; Index
< NumOfItem
; Index
++) {
619 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
620 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
626 // System Event Log (Type 15)
632 UINT8
*AccessMethodAddress
;
634 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
635 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
636 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
637 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
638 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
639 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
640 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
641 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
642 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
643 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
645 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
647 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
650 // Display all Event Log type descriptors supported by system
652 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
653 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
654 DisplaySELTypes (Ptr
->LogType
, Option
);
655 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
658 if (Option
>= SHOW_DETAIL
) {
659 switch (Struct
->Type15
->AccessMethod
) {
661 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
669 ShellPrintHiiEx(-1,-1,NULL
,
670 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
671 gShellDebug1HiiHandle
,
672 Struct
->Type15
->AccessMethod
674 return EFI_UNSUPPORTED
;
677 // Display Event Log Header
679 // Starting offset (or index) within the nonvolatile storage
680 // of the event-log's header, from the Access Method Address
682 DisplaySysEventLogHeader (
683 Struct
->Type15
->LogHeaderFormat
,
684 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
688 // Display all Event Log data
690 // Starting offset (or index) within the nonvolatile storage
691 // of the event-log's first data byte, from the Access Method Address(0x14)
693 DisplaySysEventLogData (
694 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
697 Struct
->Type15
->LogAreaLength
-
698 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
708 // Physical Memory Array (Type 16)
711 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
712 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
713 DisplayPMAErrorCorrectionTypes (
714 Struct
->Type16
->MemoryErrorCorrection
,
717 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
718 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
719 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
720 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
721 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
726 // Memory Device (Type 17)
729 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
730 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
731 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
732 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
733 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
734 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
735 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
736 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
737 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
738 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
739 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
740 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
741 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
742 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
743 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
744 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
745 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
746 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
748 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
749 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
750 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
752 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
753 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
754 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
755 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
760 // 32-bit Memory Error Information (Type 18)
763 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
764 DisplayMemoryErrorGranularity (
765 Struct
->Type18
->ErrorGranularity
,
768 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
769 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
770 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
771 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
772 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
776 // Memory Array Mapped Address (Type 19)
779 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
780 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
783 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
784 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
785 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
790 // Memory Device Mapped Address (Type 20)
793 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
794 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
795 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
796 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
797 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
798 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
799 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
800 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
801 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
802 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
807 // Built-in Pointing Device (Type 21)
810 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
811 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
812 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
816 // Portable Battery (Type 22)
819 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
820 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
821 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
822 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
823 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
824 DisplayPBDeviceChemistry (
825 Struct
->Type22
->DeviceChemistry
,
828 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
829 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
830 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
831 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
832 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
833 DisplaySBDSManufactureDate (
834 Struct
->Type22
->SBDSManufactureDate
,
837 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
839 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
843 // System Reset (Type 23)
846 DisplaySystemResetCapabilities (
847 Struct
->Type23
->Capabilities
,
850 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
851 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
852 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
853 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
857 // Hardware Security (Type 24)
860 DisplayHardwareSecuritySettings (
861 Struct
->Type24
->HardwareSecuritySettings
,
867 // System Power Controls (Type 25)
870 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
871 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
872 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
873 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
874 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
878 // Voltage Probe (Type 26)
881 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
882 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
883 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
884 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
885 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
886 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
887 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
889 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
890 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
894 // Cooling Device (Type 27)
897 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
898 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
899 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
900 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
901 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
902 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
903 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
904 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
909 // Temperature Probe (Type 28)
912 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
913 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
914 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
915 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
916 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
917 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
918 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
919 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
920 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
921 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
925 // Electrical Current Probe (Type 29)
928 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
929 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
930 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
931 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
932 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
933 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
934 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
935 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
936 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
937 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
941 // Out-of-Band Remote Access (Type 30)
944 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
945 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
949 // Boot Integrity Services (BIS) Entry Point (Type 31)
952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
956 // System Boot Information (Type 32)
959 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
960 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
964 // 64-Bit Memory Error Information (Type 33)
967 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
968 DisplayMemoryErrorGranularity (
969 Struct
->Type33
->ErrorGranularity
,
972 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
973 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
974 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
975 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
976 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
980 // Management Device (Type 34)
983 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
984 DisplayMDType (Struct
->Type34
->Type
, Option
);
985 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
986 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
990 // Management Device Component (Type 35)
993 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
994 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
995 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
996 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
1000 // Management Device Threshold Data (Type 36)
1003 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
1004 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
1005 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
1006 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
1007 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
1008 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
1012 // Memory Channel (Type 37)
1018 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1019 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1020 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1022 Count
= Struct
->Type37
->MemoryDeviceCount
;
1023 Ptr
= Struct
->Type37
->MemoryDevice
;
1024 for (Index
= 0; Index
< Count
; Index
++) {
1025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1026 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1033 // IPMI Device Information (Type 38)
1036 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1037 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1038 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1039 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1040 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1044 // System Power Supply (Type 39)
1047 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1048 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1049 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1050 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1051 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1052 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1053 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1054 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1055 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1056 DisplaySPSCharacteristics (
1057 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1060 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1061 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1062 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1066 // Additional Information (Type 40)
1070 UINT8 NumberOfEntries
;
1072 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1075 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1076 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1078 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1080 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1081 EntryLength
= Entries
->EntryLength
;
1082 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1084 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1085 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1086 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1087 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1093 // Onboard Devices Extended Information (Type 41)
1096 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1097 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1098 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1099 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1100 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1101 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1102 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1106 // Management Controller Host Interface (Type 42)
1109 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceType
);
1113 // TPM Device (Type 43)
1116 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1117 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1118 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1119 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1120 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1121 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1122 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type43
->Characteristics
)), Option
);
1123 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1127 // Inactive (Type 126)
1130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1134 // End-of-Table (Type 127)
1137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1149 Display BIOS Information (Type 0) information.
1151 @param[in] Chara The information bits.
1152 @param[in] Option The optional information.
1155 DisplayBiosCharacteristics (
1163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1167 PRINT_INFO_OPTION (Chara
, Option
);
1170 // Check all the bits and print information
1171 // This function does not use Table because table of bits
1172 // are designed not to deal with UINT64
1174 if (BIT (Chara
, 0) != 0) {
1175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1178 if (BIT (Chara
, 1) != 0) {
1179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1182 if (BIT (Chara
, 2) != 0) {
1183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1186 if (BIT (Chara
, 3) != 0) {
1187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1190 if (BIT (Chara
, 4) != 0) {
1191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1194 if (BIT (Chara
, 5) != 0) {
1195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1198 if (BIT (Chara
, 6) != 0) {
1199 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1202 if (BIT (Chara
, 7) != 0) {
1203 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1206 if (BIT (Chara
, 8) != 0) {
1207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1210 if (BIT (Chara
, 9) != 0) {
1211 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1214 if (BIT (Chara
, 10) != 0) {
1215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1218 if (BIT (Chara
, 11) != 0) {
1219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1222 if (BIT (Chara
, 12) != 0) {
1223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1226 if (BIT (Chara
, 13) != 0) {
1227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1230 if (BIT (Chara
, 14) != 0) {
1231 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1234 if (BIT (Chara
, 15) != 0) {
1235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1238 if (BIT (Chara
, 16) != 0) {
1239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1242 if (BIT (Chara
, 17) != 0) {
1243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1246 if (BIT (Chara
, 18) != 0) {
1247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1250 if (BIT (Chara
, 19) != 0) {
1251 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1254 if (BIT (Chara
, 20) != 0) {
1255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1258 if (BIT (Chara
, 21) != 0) {
1259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1262 if (BIT (Chara
, 22) != 0) {
1263 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1266 if (BIT (Chara
, 23) != 0) {
1267 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1270 if (BIT (Chara
, 24) != 0) {
1271 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1274 if (BIT (Chara
, 25) != 0) {
1275 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1278 if (BIT (Chara
, 26) != 0) {
1279 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1282 if (BIT (Chara
, 27) != 0) {
1283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1286 if (BIT (Chara
, 28) != 0) {
1287 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1290 if (BIT (Chara
, 29) != 0) {
1291 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1294 if (BIT (Chara
, 30) != 0) {
1295 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1298 if (BIT (Chara
, 31) != 0) {
1299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1302 // Just print the Reserved
1304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1309 Display Bios Characteristice extensions1 information.
1311 @param[in] Byte1 The information.
1312 @param[in] Option The optional information.
1315 DisplayBiosCharacteristicsExt1 (
1320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1324 PRINT_INFO_OPTION (Byte1
, Option
);
1327 // check bit and print
1329 if (BIT (Byte1
, 0) != 0) {
1330 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1333 if (BIT (Byte1
, 1) != 0) {
1334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1337 if (BIT (Byte1
, 2) != 0) {
1338 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1341 if (BIT (Byte1
, 3) != 0) {
1342 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1345 if (BIT (Byte1
, 4) != 0) {
1346 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1349 if (BIT (Byte1
, 5) != 0) {
1350 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1353 if (BIT (Byte1
, 6) != 0) {
1354 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1357 if (BIT (Byte1
, 7) != 0) {
1358 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1363 Display Bios Characteristice extensions2 information.
1365 @param[in] byte2 The information.
1366 @param[in] Option The optional information.
1369 DisplayBiosCharacteristicsExt2 (
1374 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1378 PRINT_INFO_OPTION (byte2
, Option
);
1380 if (BIT (byte2
, 0) != 0) {
1381 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1384 if (BIT (byte2
, 1) != 0) {
1385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1388 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1389 if (BIT (byte2
, 2) != 0) {
1390 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1392 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1393 if (BIT (byte2
, 3) != 0) {
1394 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1396 if (BIT (byte2
, 4) != 0) {
1397 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1399 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1404 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1409 Display Processor Information (Type 4) information.
1411 @param[in] Family The family value.
1412 @param[in] Option The option value.
1415 DisplayProcessorFamily (
1421 // Print prompt message
1423 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1427 PRINT_INFO_OPTION (Family
, Option
);
1430 // Use switch to check
1434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1450 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1454 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1474 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1482 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1486 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1490 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1494 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1498 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1502 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1506 Print (L
"M2 Family\n");
1510 Print (L
"Intel Celeron M\n");
1514 Print (L
"Intel Pentium 4 HT\n");
1518 Print (L
"AMD Duron\n");
1522 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1526 Print (L
"K6 Family\n");
1538 Print (L
"AMD Althon Processor Family\n");
1542 Print (L
"AMD 29000 Family\n");
1550 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1554 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1558 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1562 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1566 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1570 Print (L
"Power PC 620\n");
1574 Print (L
"Power PC 704\n");
1578 Print (L
"Power PC 750\n");
1582 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1586 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1590 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1594 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1598 Print (L
"Intel(R) Core(TM) M processor\n");
1602 Print (L
"Intel(R) Core(TM) m3 processor\n");
1606 Print (L
"Intel(R) Core(TM) m5 processor\n");
1610 Print (L
"Intel(R) Core(TM) m7 processor\n");
1614 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1618 Print (L
"Alpha 21064\n");
1622 Print (L
"Alpha 21066\n");
1626 Print (L
"Alpha 21164\n");
1630 Print (L
"Alpha 21164PC\n");
1634 Print (L
"Alpha 21164a\n");
1638 Print (L
"Alpha 21264\n");
1642 Print (L
"Alpha 21364\n");
1646 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1650 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1654 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1658 Print (L
"AMD Opteron 6100 Series Processor\n");
1662 Print (L
"AMD Opteron 4100 Series Processor\n");
1666 Print (L
"AMD Opteron 6200 Series Processor\n");
1670 Print (L
"AMD Opteron 4200 Series Processor\n");
1674 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1678 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1682 Print (L
"MIPS R4000\n");
1686 Print (L
"MIPS R4200\n");
1690 Print (L
"MIPS R4400\n");
1694 Print (L
"MIPS R4600\n");
1698 Print (L
"MIPS R10000\n");
1702 Print (L
"AMD C-Series Processor\n");
1706 Print (L
"AMD E-Series Processor\n");
1710 Print (L
"AMD A-Series Processor\n");
1714 Print (L
"AMD G-Series Processor\n");
1718 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1722 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1726 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1730 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1734 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1738 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1742 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1746 Print (L
"SuperSparc\n");
1750 Print (L
"microSparc II\n");
1754 Print (L
"microSparc IIep\n");
1758 Print (L
"UltraSparc\n");
1762 Print (L
"UltraSparc II\n");
1766 Print (L
"UltraSparcIIi\n");
1770 Print (L
"UltraSparcIII\n");
1774 Print (L
"UltraSparcIIIi\n");
1778 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1802 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1806 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1810 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1814 Print (L
"AMD Opteron(TM) A-Series Processor\n");
1818 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
1822 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1826 Print (L
"Crusoe TM5000\n");
1830 Print (L
"Crusoe TM3000\n");
1834 Print (L
"Efficeon TM8000\n");
1838 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1842 Print (L
"Itanium\n");
1846 Print (L
"AMD Athlon64\n");
1850 Print (L
"AMD Opteron\n");
1854 Print (L
"AMD Sempron\n");
1858 Print (L
"AMD Turion64 Mobile\n");
1862 Print (L
"Dual-Core AMD Opteron\n");
1866 Print (L
"AMD Athlon 64X2 DualCore\n");
1870 Print (L
"AMD Turion 64X2 Mobile\n");
1874 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1878 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1882 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1886 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1890 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1894 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1902 Print (L
"PA-RISC 8500\n");
1906 Print (L
"PA-RISC 8000\n");
1910 Print (L
"PA-RISC 7300LC\n");
1914 Print (L
"PA-RISC 7200\n");
1918 Print (L
"PA-RISC 7100LC\n");
1922 Print (L
"PA-RISC 7100\n");
1926 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1930 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1934 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1942 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1946 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1950 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1954 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1958 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1962 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1966 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1970 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1978 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1982 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1990 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1994 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1998 Print (L
"Pentium 4 processor\n");
2002 Print (L
"Intel Xeon Processor\n");
2006 Print (L
"AS400 Family\n");
2010 Print (L
"Intel Xeon processor MP\n");
2014 Print (L
"AMD Althon XP Processor Family\n");
2018 Print (L
"AMD Althon MP Promcessor Family\n");
2022 Print (L
"Intel Itanium 2 processor\n");
2026 Print (L
"Intel Penium M processor\n");
2030 Print (L
"Intel Celeron D processor\n");
2034 Print (L
"Intel Pentium D processor\n");
2038 Print (L
"Intel Pentium Processor Extreme Edition\n");
2042 Print (L
"Intel Core Solo Processor\n");
2046 Print (L
"Intel Core 2 Duo Processor\n");
2050 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2054 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2058 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2066 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2074 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2078 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2082 Print (L
"IBM 390\n");
2098 Print (L
"zArchitecture\n");
2102 Print (L
"Intel Core i5 processor\n");
2106 Print (L
"Intel Core i3 processor\n");
2110 Print (L
"ViaC7M\n");
2114 Print (L
"ViaC7D\n");
2126 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2138 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2142 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2150 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2158 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2162 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2166 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2171 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2195 Print (L
"AMD Phenom II Processor Family\n");
2199 Print (L
"AMD Althon II Processor Family\n");
2203 Print (L
"Six-Core AMD Opteron Processor Family\n");
2207 Print (L
"AMD Sempron M Processor Family\n");
2219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2227 Display processor family information.
2229 @param[in] Family2 The family value.
2230 @param[in] Option The option value.
2233 DisplayProcessorFamily2 (
2239 // Print prompt message
2241 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2246 PRINT_INFO_OPTION (Family2
, Option
);
2249 // Use switch to check
2273 Print (L
"StrongARM\n");
2281 Print (L
"MediaGX\n");
2289 Print (L
"WinChip\n");
2297 Print (L
"Video Processor\n");
2301 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2307 Display processor voltage information.
2309 @param[in] Voltage The Voltage.
2310 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2311 Bits 6:4 Reserved, must be zero
2312 Bits 3:0 Voltage Capability.
2313 A Set bit indicates that the voltage is supported.
2317 Bit 3 - Reserved, must be zero.
2320 Setting of multiple bits indicates the socket is configurable
2321 If bit 7 is set to 1, the remaining seven bits of the field are set to
2322 contain the processor's current voltage times 10.
2323 For example, the field value for a processor voltage of 1.8 volts would be
2324 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2326 @param[in] Option The option.
2329 DisplayProcessorVoltage (
2334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2338 PRINT_INFO_OPTION (Voltage
, Option
);
2340 if (BIT (Voltage
, 7) != 0) {
2341 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2343 if (BIT (Voltage
, 0) != 0) {
2344 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2347 if (BIT (Voltage
, 1) != 0) {
2348 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2351 if (BIT (Voltage
, 2) != 0) {
2352 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2355 // check the reserved zero bits:
2357 if (BIT (Voltage
, 3) != 0) {
2358 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2361 if (BIT (Voltage
, 4) != 0) {
2362 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2365 if (BIT (Voltage
, 5) != 0) {
2366 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2369 if (BIT (Voltage
, 6) != 0) {
2370 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2376 Display processor information.
2378 @param[in] Status The status.
2379 Bit 7 Reserved, must be 0
2380 Bit 6 CPU Socket Populated
2381 1 - CPU Socket Populated
2382 0 - CPU Socket Unpopulated
2383 Bits 5:3 Reserved, must be zero
2387 2h - CPU Disabled by User via BIOS Setup
2388 3h - CPU Disabled By BIOS (POST Error)
2389 4h - CPU is Idle, waiting to be enabled.
2393 @param[in] Option The option
2396 DisplayProcessorStatus (
2401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2402 PRINT_INFO_OPTION (Status
, Option
);
2404 if (BIT (Status
, 7) != 0) {
2405 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2406 } else if (BIT (Status
, 5) != 0) {
2407 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2408 } else if (BIT (Status
, 4) != 0) {
2409 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2410 } else if (BIT (Status
, 3) != 0) {
2411 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2416 if (BIT (Status
, 6) != 0) {
2417 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2419 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2424 switch (Status
& 0x07) {
2426 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2430 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2442 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2446 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2450 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2455 Display information about Memory Controller Information (Type 5).
2457 @param[in] Size Memory size.
2458 @param[in] SlotNum Which slot is this about.
2459 @param[in] Option Option for the level of detail output required.
2462 DisplayMaxMemoryModuleSize (
2469 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2471 // MaxSize is determined by follow formula
2473 MaxSize
= (UINTN
) 1 << Size
;
2474 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2476 if (Option
>= SHOW_DETAIL
) {
2477 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2483 Display information about memory configuration handles.
2485 @param[in] Handles The buffer of handles to output info on.
2486 @param[in] SlotNum The number of handles in the above buffer.
2487 @param[in] Option Option for the level of detail output required.
2490 DisplayMemoryModuleConfigHandles (
2497 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2499 if (Option
>= SHOW_DETAIL
) {
2501 // No handle, Handles is INVALID.
2507 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2508 for (Index
= 0; Index
< SlotNum
; Index
++) {
2509 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2515 Display Memory Module Information (Type 6).
2517 @param[in] BankConnections
2521 DisplayMmBankConnections (
2522 IN UINT8 BankConnections
,
2529 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2533 PRINT_INFO_OPTION (BankConnections
, Option
);
2536 // Divide it to high and low
2538 High
= (UINT8
) (BankConnections
& 0xF0);
2539 Low
= (UINT8
) (BankConnections
& 0x0F);
2542 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2544 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2548 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2550 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2556 Display memory informcation.
2559 where 2**n is the size in MB with three special-case values:
2560 7Dh Not determinable (Installed Size only)
2561 7Eh Module is installed, but no memory has been enabled
2563 Bit 7 Defines whether the memory module has a single- (0)
2564 or double-bank (1) connection.
2566 @param[in] Size - The size
2567 @param[in] Option - The option
2570 DisplayMmMemorySize (
2576 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2580 PRINT_INFO_OPTION (Size
, Option
);
2583 // Get the low bits(0-6 bit)
2585 Value
= (UINT8
) (Size
& 0x7F);
2586 if (Value
== 0x7D) {
2587 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2588 } else if (Value
== 0x7E) {
2589 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2590 } else if (Value
== 0x7F) {
2591 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2593 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2596 if (BIT (Size
, 7) != 0) {
2597 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2599 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2604 Display Cache Configuration.
2606 @param[in] CacheConfiguration Cache Configuration.
2607 Bits 15:10 Reserved, must be 0
2608 Bits 9:8 Operational Mode
2611 2h - Varies with Memory Address
2613 Bit 7 Enabled/Disabled
2621 Bit 4 Reserved, must be zero
2622 Bit 3 Cache Socketed
2625 Bits 2:0 Cache Level
2626 1 through 8 (For example, an L1 cache would
2627 use value 000b and an L3 cache would use 010b.)
2629 @param[in] Option The option
2632 DisplayCacheConfiguration (
2633 IN UINT16 CacheConfiguration
,
2637 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2638 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2640 if (BIT (CacheConfiguration
, 15) != 0) {
2641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2642 } else if (BIT (CacheConfiguration
, 14) != 0) {
2643 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2644 } else if (BIT (CacheConfiguration
, 13) != 0) {
2645 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2646 } else if (BIT (CacheConfiguration
, 12) != 0) {
2647 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2648 } else if (BIT (CacheConfiguration
, 11) != 0) {
2649 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2650 } else if (BIT (CacheConfiguration
, 10) != 0) {
2651 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2652 } else if (BIT (CacheConfiguration
, 4) != 0) {
2653 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2659 switch ((CacheConfiguration
& 0x300) >> 8) {
2661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2673 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2680 if (BIT (CacheConfiguration
, 7) != 0) {
2681 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2683 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2689 switch ((CacheConfiguration
& 0x60) >> 5) {
2691 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2695 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2699 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2703 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2710 if (BIT (CacheConfiguration
, 3) != 0) {
2711 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2713 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2717 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2721 The Slot ID field of the System Slot structure provides a mechanism to
2722 correlate the physical attributes of the slot to its logical access method
2723 (which varies based on the Slot Type field).
2725 @param[in] SlotId - The slot ID
2726 @param[in] SlotType - The slot type
2727 @param[in] Option - The Option
2730 DisplaySystemSlotId (
2737 // Display slot type first
2739 DisplaySystemSlotType (SlotType
, Option
);
2741 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2745 PRINT_INFO_OPTION (SlotType
, Option
);
2752 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2753 if (SlotId
> 0 && SlotId
< 15) {
2754 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2756 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2764 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2765 if (SlotId
> 0 && SlotId
< 15) {
2766 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2768 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2776 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2783 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2790 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2794 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2795 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2797 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2803 Display System Boot Information (Type 32) information.
2805 @param[in] Parameter The parameter.
2806 @param[in] Option The options.
2809 DisplaySystemBootStatus (
2814 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2818 PRINT_INFO_OPTION (Parameter
, Option
);
2821 // Check value and print
2823 if (Parameter
== 0) {
2824 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2825 } else if (Parameter
== 1) {
2826 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2827 } else if (Parameter
== 2) {
2828 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2829 } else if (Parameter
== 3) {
2830 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2831 } else if (Parameter
== 4) {
2832 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2833 } else if (Parameter
== 5) {
2834 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2835 } else if (Parameter
== 6) {
2836 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2837 } else if (Parameter
== 7) {
2838 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2839 } else if (Parameter
== 8) {
2840 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2841 } else if (Parameter
>= 9 && Parameter
<= 127) {
2842 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2843 } else if (Parameter
>= 128 && Parameter
<= 191) {
2844 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2845 } else if (Parameter
>= 192) {
2846 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2853 Display Portable Battery (Type 22) information.
2855 The date the cell pack was manufactured, in packed format:
2856 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2857 Bits 8:5 Month, in the range 1 to 12.
2858 Bits 4:0 Date, in the range 1 to 31.
2859 For example, 01 February 2000 would be identified as
2860 0010 1000 0100 0001b (0x2841).
2862 @param[in] Date The date
2863 @param[in] Option The option
2866 DisplaySBDSManufactureDate (
2875 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2876 PRINT_INFO_OPTION (Date
, Option
);
2880 Day
= Date
& 0x001F;
2881 Month
= (Date
& 0x01E0) >> 5;
2882 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2888 Display System Reset (Type 23) information.
2891 Identifies the system-reset capabilities for the system.
2892 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2893 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2894 Bits 4:3 Boot Option on Limit.
2895 Identifies the system action to be taken when the Reset Limit is reached, one of:
2896 00b Reserved, do not use.
2897 01b Operating system
2898 10b System utilities
2899 11b Do not rebootBits
2900 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2901 00b Reserved, do not use.
2902 01b Operating system
2903 10b System utilities
2906 1b The system reset is enabled by the user
2907 0b The system reset is not enabled by the user
2909 @param[in] Reset Reset
2910 @param[in] Option The option
2913 DisplaySystemResetCapabilities (
2920 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2921 PRINT_INFO_OPTION (Reset
, Option
);
2924 // Check reserved bits 7:6
2926 if ((Reset
& 0xC0) != 0) {
2927 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2932 if (BIT (Reset
, 5) != 0) {
2933 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2935 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2938 // Boot Option on Limit
2940 Temp
= (Reset
& 0x18) >> 3;
2941 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2944 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2948 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2956 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2962 Temp
= (Reset
& 0x06) >> 1;
2963 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2966 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2970 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2978 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2982 // Reset enable flag
2984 if ((Reset
& 0x01) != 0) {
2985 Print (L
"The system reset is enabled by the user\n");
2987 Print (L
"The system reset is disabled by the user\n");
2992 Display Hardware Security (Type 24) information.
2995 Identifies the password and reset status for the system:
2997 Bits 7:6 Power-on Password Status, one of:
3002 Bits 5:4 Keyboard Password Status, one of:
3007 Bits 3:2 Administrator Password Status, one of:
3012 Bits 1:0 Front Panel Reset Status, one of:
3018 @param[in] Settings The device settings.
3019 @param[in] Option The device options.
3022 DisplayHardwareSecuritySettings (
3029 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3030 PRINT_INFO_OPTION (Settings
, Option
);
3033 // Power-on Password Status
3035 Temp
= (Settings
& 0xC0) >> 6;
3036 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3039 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3043 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3047 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3051 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3055 // Keyboard Password Status
3057 Temp
= (Settings
& 0x30) >> 4;
3058 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3061 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3065 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3073 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3077 // Administrator Password Status
3079 Temp
= (Settings
& 0x0C) >> 2;
3080 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3087 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3091 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3095 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3099 // Front Panel Reset Status
3101 Temp
= Settings
& 0x3;
3102 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3105 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3109 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3113 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3117 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3123 Display Out-of-Band Remote Access (Type 30) information.
3125 @param[in] Connections The device characteristics.
3126 @param[in] Option The device options.
3129 DisplayOBRAConnections (
3130 IN UINT8 Connections
,
3134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3135 PRINT_INFO_OPTION (Connections
, Option
);
3138 // Check reserved bits 7:2
3140 if ((Connections
& 0xFC) != 0) {
3141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3144 // Outbound Connection
3146 if (BIT (Connections
, 1) != 0) {
3147 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3152 // Inbound Connection
3154 if (BIT (Connections
, 0) != 0) {
3155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3162 Display System Power Supply (Type 39) information.
3164 @param[in] Characteristics The device characteristics.
3165 @param[in] Option The device options.
3168 DisplaySPSCharacteristics (
3169 IN UINT16 Characteristics
,
3175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3176 PRINT_INFO_OPTION (Characteristics
, Option
);
3179 // Check reserved bits 15:14
3181 if ((Characteristics
& 0xC000) != 0) {
3182 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3185 // Bits 13:10 - DMTF Power Supply Type
3187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3188 Temp
= (Characteristics
& 0x1C00) >> 10;
3191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3199 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3203 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3211 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3226 // Bits 9:7 - Status
3228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3229 Temp
= (Characteristics
& 0x380) >> 7;
3232 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3248 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3255 // Bits 6:3 - DMTF Input Voltage Range Switching
3257 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3258 Temp
= (Characteristics
& 0x78) >> 3;
3261 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3265 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3281 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3285 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3289 // Power supply is unplugged from the wall
3291 if (BIT (Characteristics
, 2) != 0) {
3292 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3294 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3297 // Power supply is present
3299 if (BIT (Characteristics
, 1) != 0) {
3300 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3302 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3307 if (BIT (Characteristics
, 0) != 0) {
3308 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3310 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3315 Display TPM Device (Type 43) Characteristics.
3317 @param[in] Chara The information bits.
3318 @param[in] Option The optional information.
3321 DisplayTpmDeviceCharacteristics (
3329 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3333 PRINT_INFO_OPTION (Chara
, Option
);
3336 // Check all the bits and print information
3337 // This function does not use Table because table of bits
3338 // are designed not to deal with UINT64
3340 if (BIT (Chara
, 0) != 0) {
3341 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3344 if (BIT (Chara
, 1) != 0) {
3345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3347 if (BIT (Chara
, 2) != 0) {
3348 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3351 if (BIT (Chara
, 3) != 0) {
3352 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3355 if (BIT (Chara
, 4) != 0) {
3356 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3359 if (BIT (Chara
, 5) != 0) {
3360 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3364 // Just print the Reserved
3366 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);