2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015-2019 Hewlett Packard Enterprise Development LP<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
11 #include "UefiShellDebug1CommandsLib.h"
12 #include "PrintInfo.h"
13 #include "LibSmbiosView.h"
14 #include "QueryTable.h"
15 #include "EventLogInfo.h"
18 // Get the certain bit of 'value'
20 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
23 // Check if above or equal to version
25 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
26 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
29 //////////////////////////////////////////////////////////
30 // Macros of print structure element, simplify coding.
32 #define PRINT_PENDING_STRING(pStruct, type, element) \
35 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
36 ShellPrintEx(-1,-1,L"%a",#element); \
37 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
40 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
43 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
44 ShellPrintEx(-1,-1,L"%a",#element); \
45 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
48 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
50 ShellPrintEx(-1,-1,L"%a",#element); \
51 ShellPrintEx(-1,-1,L": %u\n", (pStruct->type->element)); \
54 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
56 ShellPrintEx(-1,-1,L"%a",#element); \
57 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
60 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
62 ShellPrintEx(-1,-1,L"%a",#element); \
63 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
66 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
68 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
69 ShellPrintEx(-1,-1,L"%a",#element); \
70 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
71 DumpHex (0, 0, size, &(pStruct->type->element)); \
74 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
76 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
77 ShellPrintEx(-1,-1,L"%a",#element); \
78 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
79 DumpHex (0, 0, size, startaddress); \
83 /////////////////////////////////////////
87 Copy Length of Src buffer to Dest buffer,
88 add a NULL termination to Dest buffer.
90 @param[in, out] Dest Destination buffer head.
91 @param[in] Src Source buffer head.
92 @param[in] Length Length of buffer to be copied.
104 SrcBuffer
= (UINT8
*)Src
;
105 DestBuffer
= (UINT8
*)Dest
;
109 while ((Length
--) != 0) {
110 *DestBuffer
++ = *SrcBuffer
++;
114 // append a NULL terminator
120 //////////////////////////////////////////////
122 // Functions below is to show the information
126 Print the info of EPS(Entry Point Structure).
128 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
129 @param[in] Option Display option.
133 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
140 if (SmbiosTable
== NULL
) {
141 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
145 if (Option
== SHOW_NONE
) {
149 if (Option
>= SHOW_NORMAL
) {
150 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
151 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
152 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
157 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
158 gShellDebug1HiiHandle
,
159 SmbiosTable
->EntryPointStructureChecksum
161 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
166 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
167 gShellDebug1HiiHandle
,
168 SmbiosTable
->MajorVersion
,
169 SmbiosTable
->MinorVersion
175 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
176 gShellDebug1HiiHandle
,
177 SmbiosTable
->NumberOfSmbiosStructures
179 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
180 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
181 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
185 // If SHOW_ALL, also print followings.
187 if (Option
>= SHOW_DETAIL
) {
192 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
193 gShellDebug1HiiHandle
,
194 SmbiosTable
->EntryPointRevision
196 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
198 // Since raw data is not string, add a NULL terminater.
200 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
201 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
202 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
203 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
204 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
211 Print the info of 64-bit EPS(Entry Point Structure).
213 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
214 @param[in] Option Display option.
217 Smbios64BitPrintEPSInfo (
218 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
224 if (SmbiosTable
== NULL
) {
225 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
229 if (Option
== SHOW_NONE
) {
233 if (Option
>= SHOW_NORMAL
) {
234 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
236 MemToString (Anchor
, SmbiosTable
->AnchorString
, 5);
237 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
243 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
244 gShellDebug1HiiHandle
,
245 SmbiosTable
->EntryPointStructureChecksum
248 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
254 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
255 gShellDebug1HiiHandle
,
256 SmbiosTable
->MajorVersion
,
257 SmbiosTable
->MinorVersion
264 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV
),
265 gShellDebug1HiiHandle
,
269 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->TableMaximumSize
);
271 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
275 // If SHOW_ALL, also print followings.
277 if (Option
>= SHOW_DETAIL
) {
282 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
283 gShellDebug1HiiHandle
,
284 SmbiosTable
->EntryPointRevision
292 This function print the content of the structure pointed by Struct.
294 @param[in] Struct Point to the structure to be printed.
295 @param[in] Option Print option of information detail.
297 @retval EFI_SUCCESS Successfully Printing this function.
298 @retval EFI_INVALID_PARAMETER Invalid Structure.
299 @retval EFI_UNSUPPORTED Unsupported.
302 SmbiosPrintStructure (
303 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
311 if (Struct
== NULL
) {
312 return EFI_INVALID_PARAMETER
;
315 if (Option
== SHOW_NONE
) {
319 Buffer
= (UINT8
*)(UINTN
)(Struct
->Raw
);
322 // Display structure header
324 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
325 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
326 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
328 if (Option
== SHOW_OUTLINE
) {
332 switch (Struct
->Hdr
->Type
) {
334 // BIOS Information (Type 0)
337 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
338 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
339 PRINT_STRUCT_VALUE_H (Struct
, Type0
, BiosSegment
);
340 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
341 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
343 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*)(UINTN
)&(Struct
->Type0
->BiosCharacteristics
)), Option
);
345 if (Struct
->Hdr
->Length
> 0x12) {
346 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
349 if (Struct
->Hdr
->Length
> 0x13) {
350 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
353 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
354 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
355 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
356 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
357 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
360 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x18)) {
365 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTENDED_BIOS_SIZE
),
366 gShellDebug1HiiHandle
,
367 Struct
->Type0
->ExtendedBiosSize
.Size
,
368 (Struct
->Type0
->ExtendedBiosSize
.Unit
== 0x0) ? L
"MB" : L
"GB"
375 // System Information (Type 1)
378 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
379 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
380 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
381 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
382 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
383 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
384 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
385 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
386 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
392 // Baseboard Information (Type 2)
395 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
396 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
397 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
398 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
399 if (Struct
->Hdr
->Length
> 0x8) {
400 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
401 DisplayBaseBoardFeatureFlags (*(UINT8
*)&Struct
->Type2
->FeatureFlag
, Option
);
402 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
403 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
404 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
410 // System Enclosure (Type 3)
413 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
414 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
415 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
416 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
417 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
418 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
419 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
420 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
421 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
422 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
423 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
424 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
425 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
426 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
427 if (AE_SMBIOS_VERSION (0x2, 0x3)) {
428 if (Struct
->Hdr
->Length
> 0xD) {
429 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
432 if (Struct
->Hdr
->Length
> 0x11) {
433 PRINT_STRUCT_VALUE (Struct
, Type3
, Height
);
436 if (Struct
->Hdr
->Length
> 0x12) {
437 PRINT_STRUCT_VALUE (Struct
, Type3
, NumberofPowerCords
);
440 if (Struct
->Hdr
->Length
> 0x13) {
441 PRINT_STRUCT_VALUE (Struct
, Type3
, ContainedElementCount
);
444 if (Struct
->Hdr
->Length
> 0x14) {
445 PRINT_STRUCT_VALUE (Struct
, Type3
, ContainedElementRecordLength
);
448 if (Struct
->Hdr
->Length
> 0x15) {
449 for (Index
= 0; Index
< Struct
->Type3
->ContainedElementCount
; Index
++) {
450 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONTAINED_ELEMENT
), gShellDebug1HiiHandle
, Index
+1);
451 for (Index2
= 0; Index2
< Struct
->Type3
->ContainedElementRecordLength
; Index2
++) {
452 Print (L
"%02X ", Buffer
[0x15 + (Index
* Struct
->Type3
->ContainedElementRecordLength
) + Index2
]);
460 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
461 if (Struct
->Hdr
->Length
> (0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
))) {
462 PRINT_SMBIOS_STRING (Struct
, Buffer
[0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
)], SKUNumber
);
469 // Processor Information (Type 4)
472 PRINT_SMBIOS_STRING (Struct
, Struct
->Type4
->Socket
, SocketDesignation
)
473 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
474 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
475 (Struct
->Type4
->ProcessorFamily
== 0xFE))
478 // Get family from ProcessorFamily2 field
480 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
482 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
485 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacturer
);
486 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
487 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
488 DisplayProcessorVoltage (*(UINT8
*)&(Struct
->Type4
->Voltage
), Option
);
489 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
490 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
491 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
492 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
493 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
494 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
495 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
496 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
497 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
498 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
499 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
500 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
503 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
504 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
505 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
506 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
507 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
510 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
511 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
512 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
513 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
519 // Memory Controller Information (Type 5)
524 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
526 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
527 DisplayMcErrorCorrectCapability (*(UINT8
*)&(Struct
->Type5
->ErrCorrectCapability
), Option
);
528 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
529 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
530 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
531 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
532 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
533 DisplayMcMemorySpeeds (*(UINT16
*)&(Struct
->Type5
->SupportSpeed
), Option
);
534 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
535 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
536 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
538 // According to SMBIOS Specification, offset 0x0F
540 DisplayMemoryModuleConfigHandles ((UINT16
*)(&Buffer
[0x0F]), SlotNum
, Option
);
541 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
546 // Memory Module Information (Type 6)
549 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
550 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
551 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
552 DisplayMmMemoryType (*(UINT16
*)&(Struct
->Type6
->CurrentMemoryType
), Option
);
553 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
554 DisplayMmMemorySize (*(UINT8
*)&(Struct
->Type6
->InstalledSize
), Option
);
555 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
556 DisplayMmMemorySize (*(UINT8
*)&(Struct
->Type6
->EnabledSize
), Option
);
557 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
561 // Cache Information (Type 7)
564 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
565 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
566 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
567 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
568 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
569 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
570 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*)(UINTN
)&(Struct
->Type7
->CurrentSRAMType
)), Option
);
571 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
572 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
573 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
574 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
575 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x13)) {
576 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize2
);
577 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize2
);
583 // Port Connector Information (Type 8)
586 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
587 Print (L
"Internal ");
588 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
589 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
590 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
591 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
592 DisplayPortType (Struct
->Type8
->PortType
, Option
);
596 // System Slots (Type 9)
600 MISC_SLOT_PEER_GROUP
*PeerGroupPtr
;
601 UINT8 PeerGroupCount
;
603 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
604 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
605 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
606 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
607 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
608 DisplaySystemSlotId (
609 Struct
->Type9
->SlotID
,
610 Struct
->Type9
->SlotType
,
613 DisplaySlotCharacteristics1 (*(UINT8
*)&(Struct
->Type9
->SlotCharacteristics1
), Option
);
614 DisplaySlotCharacteristics2 (*(UINT8
*)&(Struct
->Type9
->SlotCharacteristics2
), Option
);
615 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
616 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
617 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
618 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
621 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
622 if (Struct
->Hdr
->Length
> 0x11) {
623 PRINT_STRUCT_VALUE (Struct
, Type9
, DataBusWidth
);
626 if (Struct
->Hdr
->Length
> 0x12) {
627 PRINT_STRUCT_VALUE (Struct
, Type9
, PeerGroupingCount
);
629 PeerGroupCount
= Struct
->Type9
->PeerGroupingCount
;
630 PeerGroupPtr
= Struct
->Type9
->PeerGroups
;
631 for (Index
= 0; Index
< PeerGroupCount
; Index
++) {
632 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_PEER_GROUPS
), gShellDebug1HiiHandle
, Index
+ 1);
633 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SEGMENT_GROUP_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].SegmentGroupNum
);
634 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BUS_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].BusNum
);
635 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_FUNC_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].DevFuncNum
);
636 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DATA_BUS_WIDTH
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].DataBusWidth
);
639 DisplaySystemSlotHeight (Struct
->Type9
->SlotHeight
, Option
);
640 DisplaySystemSlotPhysicalWidth (Struct
->Type9
->SlotPhysicalWidth
, Option
);
641 DisplaySystemSlotInformation (Struct
->Type9
->SlotInformation
, Option
);
649 // On Board Devices Information (Type 10)
654 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
655 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
656 ShellPrintEx (-1, -1, (((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n" : L
"Device Disabled\n");
657 DisplayOnboardDeviceTypes ((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x7F, Option
);
658 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
659 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
666 // Oem Strings (Type 11)
669 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
670 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
671 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Index
));
677 // System Configuration Options (Type 12)
680 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
681 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
682 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Index
));
688 // BIOS Language Information (Type 13)
691 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
692 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
693 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
694 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
698 // Group Associations (Type 14)
703 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
704 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
705 for (Index
= 0; Index
< NumOfItem
; Index
++) {
706 ShellPrintEx (-1, -1, L
"ItemType %u: %u\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
707 ShellPrintEx (-1, -1, L
"ItemHandle %u: %u\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
714 // System Event Log (Type 15)
720 UINT8
*AccessMethodAddress
;
722 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
723 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
724 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
725 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
726 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
727 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
728 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
729 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
730 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
731 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
733 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
735 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
738 // Display all Event Log type descriptors supported by system
740 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
741 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
742 DisplaySELTypes (Ptr
->LogType
, Option
);
743 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
746 if (Option
>= SHOW_DETAIL
) {
747 switch (Struct
->Type15
->AccessMethod
) {
749 AccessMethodAddress
= (UINT8
*)(UINTN
)(Struct
->Type15
->AccessMethodAddress
);
761 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
762 gShellDebug1HiiHandle
,
763 Struct
->Type15
->AccessMethod
765 return EFI_UNSUPPORTED
;
769 // Display Event Log Header
771 // Starting offset (or index) within the nonvolatile storage
772 // of the event-log's header, from the Access Method Address
774 DisplaySysEventLogHeader (
775 Struct
->Type15
->LogHeaderFormat
,
776 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
780 // Display all Event Log data
782 // Starting offset (or index) within the nonvolatile storage
783 // of the event-log's first data byte, from the Access Method Address(0x14)
785 DisplaySysEventLogData (
786 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
789 Struct
->Type15
->LogAreaLength
-
790 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
800 // Physical Memory Array (Type 16)
803 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
804 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
805 DisplayPMAErrorCorrectionTypes (
806 Struct
->Type16
->MemoryErrorCorrection
,
809 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
810 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
811 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
812 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
813 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
819 // Memory Device (Type 17)
822 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
823 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
824 PRINT_STRUCT_VALUE_H (Struct
, Type17
, TotalWidth
);
825 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DataWidth
);
826 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
827 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
828 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
829 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
830 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
831 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
832 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*)(UINTN
)&(Struct
->Type17
->TypeDetail
)), Option
);
833 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
834 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
835 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
836 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
837 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
838 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
839 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
842 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
843 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
844 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
847 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
848 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
849 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
850 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
853 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
854 if (Struct
->Hdr
->Length
> 0x28) {
855 DisplayMemoryDeviceMemoryTechnology (Struct
->Type17
->MemoryTechnology
, Option
);
856 DisplayMemoryDeviceMemoryOperatingModeCapability (Struct
->Type17
->MemoryOperatingModeCapability
.Uint16
, Option
);
857 PRINT_PENDING_STRING (Struct
, Type17
, FirmwareVersion
);
858 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleManufacturerID
);
859 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleProductID
);
860 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerManufacturerID
);
861 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerProductID
);
864 if (Struct
->Hdr
->Length
> 0x34) {
865 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, NonVolatileSize
);
868 if (Struct
->Hdr
->Length
> 0x3C) {
869 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, VolatileSize
);
872 if (Struct
->Hdr
->Length
> 0x44) {
873 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, CacheSize
);
876 if (Struct
->Hdr
->Length
> 0x4C) {
877 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, LogicalSize
);
884 // 32-bit Memory Error Information (Type 18)
887 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
888 DisplayMemoryErrorGranularity (
889 Struct
->Type18
->ErrorGranularity
,
892 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
893 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
894 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
895 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
896 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
900 // Memory Array Mapped Address (Type 19)
903 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
904 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
905 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
906 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
907 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
908 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
909 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
915 // Memory Device Mapped Address (Type 20)
918 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
919 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
920 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
921 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
922 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
923 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
924 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
925 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
926 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
927 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
933 // Built-in Pointing Device (Type 21)
936 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
937 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
938 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
942 // Portable Battery (Type 22)
945 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
946 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
947 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
948 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
949 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
950 DisplayPBDeviceChemistry (
951 Struct
->Type22
->DeviceChemistry
,
954 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
955 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
956 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
957 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
958 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
959 DisplaySBDSManufactureDate (
960 Struct
->Type22
->SBDSManufactureDate
,
963 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
964 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
965 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
969 // System Reset (Type 23)
972 DisplaySystemResetCapabilities (
973 Struct
->Type23
->Capabilities
,
976 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
977 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
978 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
979 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
983 // Hardware Security (Type 24)
986 DisplayHardwareSecuritySettings (
987 Struct
->Type24
->HardwareSecuritySettings
,
993 // System Power Controls (Type 25)
996 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
997 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
998 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
999 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
1000 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
1004 // Voltage Probe (Type 26)
1007 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
1008 DisplayVPLocation (*(UINT8
*)&(Struct
->Type26
->LocationAndStatus
), Option
);
1009 DisplayVPStatus (*(UINT8
*)&(Struct
->Type26
->LocationAndStatus
), Option
);
1010 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
1011 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
1012 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
1013 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
1014 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
1015 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
1016 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
1020 // Cooling Device (Type 27)
1023 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
1024 DisplayCoolingDeviceStatus (*(UINT8
*)&(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
1025 DisplayCoolingDeviceType (*(UINT8
*)&(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
1026 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
1027 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
1028 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
1029 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
1030 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
1036 // Temperature Probe (Type 28)
1039 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
1040 DisplayTemperatureProbeStatus (*(UINT8
*)&(Struct
->Type28
->LocationAndStatus
), Option
);
1041 DisplayTemperatureProbeLoc (*(UINT8
*)&(Struct
->Type28
->LocationAndStatus
), Option
);
1042 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
1043 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
1044 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
1045 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
1046 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
1047 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
1048 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
1052 // Electrical Current Probe (Type 29)
1055 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
1056 DisplayECPStatus (*(UINT8
*)&(Struct
->Type29
->LocationAndStatus
), Option
);
1057 DisplayECPLoc (*(UINT8
*)&(Struct
->Type29
->LocationAndStatus
), Option
);
1058 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
1059 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
1060 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
1061 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
1062 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
1063 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
1064 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
1068 // Out-of-Band Remote Access (Type 30)
1071 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
1072 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
1076 // Boot Integrity Services (BIS) Entry Point (Type 31)
1079 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
1083 // System Boot Information (Type 32)
1086 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
1087 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
1091 // 64-Bit Memory Error Information (Type 33)
1094 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
1095 DisplayMemoryErrorGranularity (
1096 Struct
->Type33
->ErrorGranularity
,
1099 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
1100 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
1101 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
1102 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
1103 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
1107 // Management Device (Type 34)
1110 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
1111 DisplayMDType (Struct
->Type34
->Type
, Option
);
1112 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
1113 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
1117 // Management Device Component (Type 35)
1120 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
1121 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
1122 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
1123 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
1127 // Management Device Threshold Data (Type 36)
1130 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
1131 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
1132 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
1133 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
1134 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
1135 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
1139 // Memory Channel (Type 37)
1145 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1146 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1147 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1149 Count
= Struct
->Type37
->MemoryDeviceCount
;
1150 Ptr
= Struct
->Type37
->MemoryDevice
;
1151 for (Index
= 0; Index
< Count
; Index
++) {
1152 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1153 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1154 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1161 // IPMI Device Information (Type 38)
1164 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1165 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1166 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1167 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1168 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1172 // System Power Supply (Type 39)
1175 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1176 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1177 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1178 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1179 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1180 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1181 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1182 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1183 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1184 DisplaySPSCharacteristics (
1185 *(UINT16
*)&(Struct
->Type39
->PowerSupplyCharacteristics
),
1188 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1189 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1190 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1194 // Additional Information (Type 40)
1198 UINT8 NumberOfEntries
;
1200 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1203 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1204 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1206 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1208 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1209 EntryLength
= Entries
->EntryLength
;
1210 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1211 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1212 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1213 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1214 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1215 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*)((UINT8
*)Entries
+ EntryLength
);
1222 // Onboard Devices Extended Information (Type 41)
1225 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1226 ShellPrintEx (-1, -1, (((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n" : L
"Device Disabled\n");
1227 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1228 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1229 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1230 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1231 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1235 // Management Controller Host Interface (Type 42)
1238 DisplayMCHostInterfaceType (Struct
->Type42
->InterfaceType
, Option
);
1239 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
1240 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceTypeSpecificDataLength
);
1241 PRINT_BIT_FIELD (Struct
, Type42
, InterfaceTypeSpecificData
, Struct
->Type42
->InterfaceTypeSpecificDataLength
);
1247 // TPM Device (Type 43)
1250 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1251 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1252 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1253 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1254 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1255 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1256 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*)(UINTN
)&(Struct
->Type43
->Characteristics
)), Option
);
1257 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1261 // Processor Additional Information (Type 44)
1264 DisplayProcessorArchitectureType (Struct
->Type44
->ProcessorSpecificBlock
.ProcessorArchType
, Option
);
1268 // Inactive (Type 126)
1271 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1275 // End-of-Table (Type 127)
1278 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1282 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1290 Display BIOS Information (Type 0) information.
1292 @param[in] Chara The information bits.
1293 @param[in] Option The optional information.
1296 DisplayBiosCharacteristics (
1304 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1308 PRINT_INFO_OPTION (Chara
, Option
);
1311 // Check all the bits and print information
1312 // This function does not use Table because table of bits
1313 // are designed not to deal with UINT64
1315 if (BIT (Chara
, 0) != 0) {
1316 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1319 if (BIT (Chara
, 1) != 0) {
1320 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1323 if (BIT (Chara
, 2) != 0) {
1324 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1327 if (BIT (Chara
, 3) != 0) {
1328 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1331 if (BIT (Chara
, 4) != 0) {
1332 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1335 if (BIT (Chara
, 5) != 0) {
1336 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1339 if (BIT (Chara
, 6) != 0) {
1340 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1343 if (BIT (Chara
, 7) != 0) {
1344 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1347 if (BIT (Chara
, 8) != 0) {
1348 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1351 if (BIT (Chara
, 9) != 0) {
1352 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1355 if (BIT (Chara
, 10) != 0) {
1356 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1359 if (BIT (Chara
, 11) != 0) {
1360 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1363 if (BIT (Chara
, 12) != 0) {
1364 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1367 if (BIT (Chara
, 13) != 0) {
1368 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1371 if (BIT (Chara
, 14) != 0) {
1372 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1375 if (BIT (Chara
, 15) != 0) {
1376 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1379 if (BIT (Chara
, 16) != 0) {
1380 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1383 if (BIT (Chara
, 17) != 0) {
1384 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1387 if (BIT (Chara
, 18) != 0) {
1388 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1391 if (BIT (Chara
, 19) != 0) {
1392 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1395 if (BIT (Chara
, 20) != 0) {
1396 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1399 if (BIT (Chara
, 21) != 0) {
1400 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1403 if (BIT (Chara
, 22) != 0) {
1404 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1407 if (BIT (Chara
, 23) != 0) {
1408 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1411 if (BIT (Chara
, 24) != 0) {
1412 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1415 if (BIT (Chara
, 25) != 0) {
1416 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1419 if (BIT (Chara
, 26) != 0) {
1420 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1423 if (BIT (Chara
, 27) != 0) {
1424 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1427 if (BIT (Chara
, 28) != 0) {
1428 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1431 if (BIT (Chara
, 29) != 0) {
1432 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1435 if (BIT (Chara
, 30) != 0) {
1436 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1439 if (BIT (Chara
, 31) != 0) {
1440 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1444 // Just print the Reserved
1446 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1447 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1451 Display Bios Characteristice extensions1 information.
1453 @param[in] Byte1 The information.
1454 @param[in] Option The optional information.
1457 DisplayBiosCharacteristicsExt1 (
1462 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1466 PRINT_INFO_OPTION (Byte1
, Option
);
1469 // check bit and print
1471 if (BIT (Byte1
, 0) != 0) {
1472 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1475 if (BIT (Byte1
, 1) != 0) {
1476 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1479 if (BIT (Byte1
, 2) != 0) {
1480 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1483 if (BIT (Byte1
, 3) != 0) {
1484 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1487 if (BIT (Byte1
, 4) != 0) {
1488 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1491 if (BIT (Byte1
, 5) != 0) {
1492 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1495 if (BIT (Byte1
, 6) != 0) {
1496 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1499 if (BIT (Byte1
, 7) != 0) {
1500 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1505 Display Bios Characteristice extensions2 information.
1507 @param[in] byte2 The information.
1508 @param[in] Option The optional information.
1511 DisplayBiosCharacteristicsExt2 (
1516 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1520 PRINT_INFO_OPTION (byte2
, Option
);
1522 if (BIT (byte2
, 0) != 0) {
1523 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1526 if (BIT (byte2
, 1) != 0) {
1527 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1530 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1531 if (BIT (byte2
, 2) != 0) {
1532 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1535 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1536 if (BIT (byte2
, 3) != 0) {
1537 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1540 if (BIT (byte2
, 4) != 0) {
1541 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1544 if (BIT (byte2
, 5) != 0) {
1545 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MCFG_SUPPORTED
), gShellDebug1HiiHandle
);
1548 if (BIT (byte2
, 6) != 0) {
1549 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MCFG_ENABLED
), gShellDebug1HiiHandle
);
1552 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1554 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1557 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1562 Display Processor Information (Type 4) information.
1564 @param[in] Family The family value.
1565 @param[in] Option The option value.
1568 DisplayProcessorFamily (
1574 // Print prompt message
1576 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1580 PRINT_INFO_OPTION (Family
, Option
);
1583 // Use switch to check
1587 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1591 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1603 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1607 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1627 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1631 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1635 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1639 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1643 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1647 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1651 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1655 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1659 Print (L
"M2 Family\n");
1663 Print (L
"Intel Celeron M\n");
1667 Print (L
"Intel Pentium 4 HT\n");
1671 Print (L
"AMD Duron\n");
1675 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1679 Print (L
"K6 Family\n");
1691 Print (L
"AMD Althon Processor Family\n");
1695 Print (L
"AMD 29000 Family\n");
1703 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1707 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1711 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1715 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1719 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1723 Print (L
"Power PC 620\n");
1727 Print (L
"Power PC 704\n");
1731 Print (L
"Power PC 750\n");
1735 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1739 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1743 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1747 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1751 Print (L
"Intel(R) Core(TM) M processor\n");
1755 Print (L
"Intel(R) Core(TM) m3 processor\n");
1759 Print (L
"Intel(R) Core(TM) m5 processor\n");
1763 Print (L
"Intel(R) Core(TM) m7 processor\n");
1767 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1771 Print (L
"Alpha 21064\n");
1775 Print (L
"Alpha 21066\n");
1779 Print (L
"Alpha 21164\n");
1783 Print (L
"Alpha 21164PC\n");
1787 Print (L
"Alpha 21164a\n");
1791 Print (L
"Alpha 21264\n");
1795 Print (L
"Alpha 21364\n");
1799 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1803 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1807 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1811 Print (L
"AMD Opteron 6100 Series Processor\n");
1815 Print (L
"AMD Opteron 4100 Series Processor\n");
1819 Print (L
"AMD Opteron 6200 Series Processor\n");
1823 Print (L
"AMD Opteron 4200 Series Processor\n");
1827 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1831 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1835 Print (L
"MIPS R4000\n");
1839 Print (L
"MIPS R4200\n");
1843 Print (L
"MIPS R4400\n");
1847 Print (L
"MIPS R4600\n");
1851 Print (L
"MIPS R10000\n");
1855 Print (L
"AMD C-Series Processor\n");
1859 Print (L
"AMD E-Series Processor\n");
1863 Print (L
"AMD A-Series Processor\n");
1867 Print (L
"AMD G-Series Processor\n");
1871 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1875 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1879 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1883 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1887 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1891 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1895 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1899 Print (L
"SuperSparc\n");
1903 Print (L
"microSparc II\n");
1907 Print (L
"microSparc IIep\n");
1911 Print (L
"UltraSparc\n");
1915 Print (L
"UltraSparc II\n");
1919 Print (L
"UltraSparcIIi\n");
1923 Print (L
"UltraSparcIII\n");
1927 Print (L
"UltraSparcIIIi\n");
1931 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1955 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1959 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1963 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1967 Print (L
"AMD Opteron(TM) A-Series Processor\n");
1971 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
1975 Print (L
"AMD Zen Processor Family\n");
1979 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1983 Print (L
"Crusoe TM5000\n");
1987 Print (L
"Crusoe TM3000\n");
1991 Print (L
"Efficeon TM8000\n");
1995 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1999 Print (L
"Itanium\n");
2003 Print (L
"AMD Athlon64\n");
2007 Print (L
"AMD Opteron\n");
2011 Print (L
"AMD Sempron\n");
2015 Print (L
"AMD Turion64 Mobile\n");
2019 Print (L
"Dual-Core AMD Opteron\n");
2023 Print (L
"AMD Athlon 64X2 DualCore\n");
2027 Print (L
"AMD Turion 64X2 Mobile\n");
2031 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2035 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
2039 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
2043 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
2047 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
2051 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
2055 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
2059 Print (L
"PA-RISC 8500\n");
2063 Print (L
"PA-RISC 8000\n");
2067 Print (L
"PA-RISC 7300LC\n");
2071 Print (L
"PA-RISC 7200\n");
2075 Print (L
"PA-RISC 7100LC\n");
2079 Print (L
"PA-RISC 7100\n");
2083 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
2087 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2091 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2095 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2099 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2103 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2107 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
2111 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
2115 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2119 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2123 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
2127 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2131 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2135 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2139 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2143 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2147 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
2151 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2155 Print (L
"Pentium 4 processor\n");
2159 Print (L
"Intel Xeon Processor\n");
2163 Print (L
"AS400 Family\n");
2167 Print (L
"Intel Xeon processor MP\n");
2171 Print (L
"AMD Althon XP Processor Family\n");
2175 Print (L
"AMD Althon MP Promcessor Family\n");
2179 Print (L
"Intel Itanium 2 processor\n");
2183 Print (L
"Intel Penium M processor\n");
2187 Print (L
"Intel Celeron D processor\n");
2191 Print (L
"Intel Pentium D processor\n");
2195 Print (L
"Intel Pentium Processor Extreme Edition\n");
2199 Print (L
"Intel Core Solo Processor\n");
2203 Print (L
"Intel Core 2 Duo Processor\n");
2207 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2211 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2215 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2219 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2223 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2227 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2231 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2235 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2239 Print (L
"IBM 390\n");
2255 Print (L
"zArchitecture\n");
2259 Print (L
"Intel Core i5 processor\n");
2263 Print (L
"Intel Core i3 processor\n");
2267 Print (L
"Intel Core i9 processor\n");
2271 Print (L
"ViaC7M\n");
2275 Print (L
"ViaC7D\n");
2287 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2291 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2295 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2299 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2303 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2307 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2311 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2315 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2319 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2323 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2327 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2331 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2335 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2339 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2343 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2347 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2351 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2355 Print (L
"AMD Phenom II Processor Family\n");
2359 Print (L
"AMD Althon II Processor Family\n");
2363 Print (L
"Six-Core AMD Opteron Processor Family\n");
2367 Print (L
"AMD Sempron M Processor Family\n");
2379 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2388 Display processor family information.
2390 @param[in] Family2 The family value.
2391 @param[in] Option The option value.
2394 DisplayProcessorFamily2 (
2400 // Print prompt message
2402 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2407 PRINT_INFO_OPTION (Family2
, Option
);
2410 // Use switch to check
2434 Print (L
"StrongARM\n");
2442 Print (L
"MediaGX\n");
2450 Print (L
"WinChip\n");
2458 Print (L
"Video Processor\n");
2462 Print (L
"RISC-V RV32\n");
2466 Print (L
"RISC-V RV64\n");
2470 Print (L
"RISC-V RV128\n");
2474 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2479 Display processor voltage information.
2481 @param[in] Voltage The Voltage.
2482 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2483 Bits 6:4 Reserved, must be zero
2484 Bits 3:0 Voltage Capability.
2485 A Set bit indicates that the voltage is supported.
2489 Bit 3 - Reserved, must be zero.
2492 Setting of multiple bits indicates the socket is configurable
2493 If bit 7 is set to 1, the remaining seven bits of the field are set to
2494 contain the processor's current voltage times 10.
2495 For example, the field value for a processor voltage of 1.8 volts would be
2496 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2498 @param[in] Option The option.
2501 DisplayProcessorVoltage (
2506 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2510 PRINT_INFO_OPTION (Voltage
, Option
);
2512 if (BIT (Voltage
, 7) != 0) {
2513 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2515 if (BIT (Voltage
, 0) != 0) {
2516 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2519 if (BIT (Voltage
, 1) != 0) {
2520 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2523 if (BIT (Voltage
, 2) != 0) {
2524 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2528 // check the reserved zero bits:
2530 if (BIT (Voltage
, 3) != 0) {
2531 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2534 if (BIT (Voltage
, 4) != 0) {
2535 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2538 if (BIT (Voltage
, 5) != 0) {
2539 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2542 if (BIT (Voltage
, 6) != 0) {
2543 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2549 Display processor information.
2551 @param[in] Status The status.
2552 Bit 7 Reserved, must be 0
2553 Bit 6 CPU Socket Populated
2554 1 - CPU Socket Populated
2555 0 - CPU Socket Unpopulated
2556 Bits 5:3 Reserved, must be zero
2560 2h - CPU Disabled by User via BIOS Setup
2561 3h - CPU Disabled By BIOS (POST Error)
2562 4h - CPU is Idle, waiting to be enabled.
2566 @param[in] Option The option
2569 DisplayProcessorStatus (
2574 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2575 PRINT_INFO_OPTION (Status
, Option
);
2577 if (BIT (Status
, 7) != 0) {
2578 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2579 } else if (BIT (Status
, 5) != 0) {
2580 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2581 } else if (BIT (Status
, 4) != 0) {
2582 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2583 } else if (BIT (Status
, 3) != 0) {
2584 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2590 if (BIT (Status
, 6) != 0) {
2591 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2593 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2599 switch (Status
& 0x07) {
2601 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2605 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2609 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2613 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2617 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2621 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2625 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2630 Display information about Memory Controller Information (Type 5).
2632 @param[in] Size Memory size.
2633 @param[in] SlotNum Which slot is this about.
2634 @param[in] Option Option for the level of detail output required.
2637 DisplayMaxMemoryModuleSize (
2645 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2647 // MaxSize is determined by follow formula
2649 MaxSize
= (UINTN
)1 << Size
;
2650 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2652 if (Option
>= SHOW_DETAIL
) {
2653 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2654 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2659 Display information about memory configuration handles.
2661 @param[in] Handles The buffer of handles to output info on.
2662 @param[in] SlotNum The number of handles in the above buffer.
2663 @param[in] Option Option for the level of detail output required.
2666 DisplayMemoryModuleConfigHandles (
2674 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2676 if (Option
>= SHOW_DETAIL
) {
2678 // No handle, Handles is INVALID.
2684 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2685 for (Index
= 0; Index
< SlotNum
; Index
++) {
2686 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2692 Display Memory Module Information (Type 6).
2694 @param[in] BankConnections
2698 DisplayMmBankConnections (
2699 IN UINT8 BankConnections
,
2706 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2710 PRINT_INFO_OPTION (BankConnections
, Option
);
2713 // Divide it to high and low
2715 High
= (UINT8
)(BankConnections
& 0xF0);
2716 Low
= (UINT8
)(BankConnections
& 0x0F);
2719 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2721 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2725 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2727 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2733 Display memory informcation.
2736 where 2**n is the size in MB with three special-case values:
2737 7Dh Not determinable (Installed Size only)
2738 7Eh Module is installed, but no memory has been enabled
2740 Bit 7 Defines whether the memory module has a single- (0)
2741 or double-bank (1) connection.
2743 @param[in] Size - The size
2744 @param[in] Option - The option
2747 DisplayMmMemorySize (
2754 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2758 PRINT_INFO_OPTION (Size
, Option
);
2761 // Get the low bits(0-6 bit)
2763 Value
= (UINT8
)(Size
& 0x7F);
2764 if (Value
== 0x7D) {
2765 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2766 } else if (Value
== 0x7E) {
2767 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2768 } else if (Value
== 0x7F) {
2769 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2771 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2774 if (BIT (Size
, 7) != 0) {
2775 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2777 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2782 Display Cache Configuration.
2784 @param[in] CacheConfiguration Cache Configuration.
2785 Bits 15:10 Reserved, must be 0
2786 Bits 9:8 Operational Mode
2789 2h - Varies with Memory Address
2791 Bit 7 Enabled/Disabled
2799 Bit 4 Reserved, must be zero
2800 Bit 3 Cache Socketed
2803 Bits 2:0 Cache Level
2804 1 through 8 (For example, an L1 cache would
2805 use value 000b and an L3 cache would use 010b.)
2807 @param[in] Option The option
2810 DisplayCacheConfiguration (
2811 IN UINT16 CacheConfiguration
,
2815 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2816 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2818 if (BIT (CacheConfiguration
, 15) != 0) {
2819 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2820 } else if (BIT (CacheConfiguration
, 14) != 0) {
2821 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2822 } else if (BIT (CacheConfiguration
, 13) != 0) {
2823 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2824 } else if (BIT (CacheConfiguration
, 12) != 0) {
2825 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2826 } else if (BIT (CacheConfiguration
, 11) != 0) {
2827 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2828 } else if (BIT (CacheConfiguration
, 10) != 0) {
2829 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2830 } else if (BIT (CacheConfiguration
, 4) != 0) {
2831 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2837 switch ((CacheConfiguration
& 0x300) >> 8) {
2839 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2843 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2847 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2851 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2858 if (BIT (CacheConfiguration
, 7) != 0) {
2859 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2861 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2867 switch ((CacheConfiguration
& 0x60) >> 5) {
2869 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2873 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2877 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2881 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2888 if (BIT (CacheConfiguration
, 3) != 0) {
2889 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2891 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2894 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2898 The Slot ID field of the System Slot structure provides a mechanism to
2899 correlate the physical attributes of the slot to its logical access method
2900 (which varies based on the Slot Type field).
2902 @param[in] SlotId - The slot ID
2903 @param[in] SlotType - The slot type
2904 @param[in] Option - The Option
2907 DisplaySystemSlotId (
2913 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2917 PRINT_INFO_OPTION (SlotType
, Option
);
2924 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2925 if ((SlotId
> 0) && (SlotId
< 15)) {
2926 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2928 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2937 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2938 if ((SlotId
> 0) && (SlotId
< 15)) {
2939 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2941 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2950 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2957 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2964 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2968 if (((SlotType
>= 0x0E) && (SlotType
<= 0x12)) || ((SlotType
>= 0xA6) && (SlotType
<= 0xB6))) {
2969 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2971 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2977 Display System Boot Information (Type 32) information.
2979 @param[in] Parameter The parameter.
2980 @param[in] Option The options.
2983 DisplaySystemBootStatus (
2988 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2992 PRINT_INFO_OPTION (Parameter
, Option
);
2995 // Check value and print
2997 if (Parameter
== 0) {
2998 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2999 } else if (Parameter
== 1) {
3000 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
3001 } else if (Parameter
== 2) {
3002 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
3003 } else if (Parameter
== 3) {
3004 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
3005 } else if (Parameter
== 4) {
3006 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
3007 } else if (Parameter
== 5) {
3008 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
3009 } else if (Parameter
== 6) {
3010 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
3011 } else if (Parameter
== 7) {
3012 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
3013 } else if (Parameter
== 8) {
3014 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
3015 } else if ((Parameter
>= 9) && (Parameter
<= 127)) {
3016 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
3017 } else if ((Parameter
>= 128) && (Parameter
<= 191)) {
3018 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
3019 } else if (Parameter
>= 192) {
3020 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
3022 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
3027 Display Portable Battery (Type 22) information.
3029 The date the cell pack was manufactured, in packed format:
3030 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
3031 Bits 8:5 Month, in the range 1 to 12.
3032 Bits 4:0 Date, in the range 1 to 31.
3033 For example, 01 February 2000 would be identified as
3034 0010 1000 0100 0001b (0x2841).
3036 @param[in] Date The date
3037 @param[in] Option The option
3040 DisplaySBDSManufactureDate (
3049 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
3050 PRINT_INFO_OPTION (Date
, Option
);
3054 Day
= Date
& 0x001F;
3055 Month
= (Date
& 0x01E0) >> 5;
3056 Year
= ((Date
& 0xFE00) >> 9) + 1980;
3057 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
3061 Display System Reset (Type 23) information.
3064 Identifies the system-reset capabilities for the system.
3065 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
3066 Bit 5 System contains a watchdog timer, either True (1) or False (0).
3067 Bits 4:3 Boot Option on Limit.
3068 Identifies the system action to be taken when the Reset Limit is reached, one of:
3069 00b Reserved, do not use.
3070 01b Operating system
3071 10b System utilities
3072 11b Do not rebootBits
3073 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
3074 00b Reserved, do not use.
3075 01b Operating system
3076 10b System utilities
3079 1b The system reset is enabled by the user
3080 0b The system reset is not enabled by the user
3082 @param[in] Reset Reset
3083 @param[in] Option The option
3086 DisplaySystemResetCapabilities (
3093 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
3094 PRINT_INFO_OPTION (Reset
, Option
);
3097 // Check reserved bits 7:6
3099 if ((Reset
& 0xC0) != 0) {
3100 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
3106 if (BIT (Reset
, 5) != 0) {
3107 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
3109 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
3113 // Boot Option on Limit
3115 Temp
= (Reset
& 0x18) >> 3;
3116 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
3119 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3123 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3127 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3131 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3138 Temp
= (Reset
& 0x06) >> 1;
3139 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
3142 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3146 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3150 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3154 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3159 // Reset enable flag
3161 if ((Reset
& 0x01) != 0) {
3162 Print (L
"The system reset is enabled by the user\n");
3164 Print (L
"The system reset is disabled by the user\n");
3169 Display Hardware Security (Type 24) information.
3172 Identifies the password and reset status for the system:
3174 Bits 7:6 Power-on Password Status, one of:
3179 Bits 5:4 Keyboard Password Status, one of:
3184 Bits 3:2 Administrator Password Status, one of:
3189 Bits 1:0 Front Panel Reset Status, one of:
3195 @param[in] Settings The device settings.
3196 @param[in] Option The device options.
3199 DisplayHardwareSecuritySettings (
3206 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3207 PRINT_INFO_OPTION (Settings
, Option
);
3210 // Power-on Password Status
3212 Temp
= (Settings
& 0xC0) >> 6;
3213 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3216 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3220 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3224 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3228 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3233 // Keyboard Password Status
3235 Temp
= (Settings
& 0x30) >> 4;
3236 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3239 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3243 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3247 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3251 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3256 // Administrator Password Status
3258 Temp
= (Settings
& 0x0C) >> 2;
3259 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3262 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3266 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3270 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3274 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3279 // Front Panel Reset Status
3281 Temp
= Settings
& 0x3;
3282 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3285 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3289 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3293 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3297 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3303 Display Out-of-Band Remote Access (Type 30) information.
3305 @param[in] Connections The device characteristics.
3306 @param[in] Option The device options.
3309 DisplayOBRAConnections (
3310 IN UINT8 Connections
,
3314 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3315 PRINT_INFO_OPTION (Connections
, Option
);
3318 // Check reserved bits 7:2
3320 if ((Connections
& 0xFC) != 0) {
3321 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3325 // Outbound Connection
3327 if (BIT (Connections
, 1) != 0) {
3328 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3330 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3334 // Inbound Connection
3336 if (BIT (Connections
, 0) != 0) {
3337 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3339 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3344 Display System Power Supply (Type 39) information.
3346 @param[in] Characteristics The device characteristics.
3347 @param[in] Option The device options.
3350 DisplaySPSCharacteristics (
3351 IN UINT16 Characteristics
,
3357 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3358 PRINT_INFO_OPTION (Characteristics
, Option
);
3361 // Check reserved bits 15:14
3363 if ((Characteristics
& 0xC000) != 0) {
3364 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3368 // Bits 13:10 - DMTF Power Supply Type
3370 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3371 Temp
= (Characteristics
& 0x1C00) >> 10;
3374 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3378 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3382 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3386 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3390 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3394 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3398 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3402 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3406 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3410 // Bits 9:7 - Status
3412 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3413 Temp
= (Characteristics
& 0x380) >> 7;
3416 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3420 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3424 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3428 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3432 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3436 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3440 // Bits 6:3 - DMTF Input Voltage Range Switching
3442 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3443 Temp
= (Characteristics
& 0x78) >> 3;
3446 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3450 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3454 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3458 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3462 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3466 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3470 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3475 // Power supply is unplugged from the wall
3477 if (BIT (Characteristics
, 2) != 0) {
3478 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3480 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3484 // Power supply is present
3486 if (BIT (Characteristics
, 1) != 0) {
3487 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3489 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3495 if (BIT (Characteristics
, 0) != 0) {
3496 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3498 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3503 Display TPM Device (Type 43) Characteristics.
3505 @param[in] Chara The information bits.
3506 @param[in] Option The optional information.
3509 DisplayTpmDeviceCharacteristics (
3517 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3521 PRINT_INFO_OPTION (Chara
, Option
);
3524 // Check all the bits and print information
3525 // This function does not use Table because table of bits
3526 // are designed not to deal with UINT64
3528 if (BIT (Chara
, 0) != 0) {
3529 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3532 if (BIT (Chara
, 1) != 0) {
3533 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3536 if (BIT (Chara
, 2) != 0) {
3537 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3540 if (BIT (Chara
, 3) != 0) {
3541 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3544 if (BIT (Chara
, 4) != 0) {
3545 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3548 if (BIT (Chara
, 5) != 0) {
3549 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3553 // Just print the Reserved
3555 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);