2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
5 Copyright (c) 1985 - 2022, American Megatrends International LLC.<BR>
6 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
7 (C) Copyright 2015-2019 Hewlett Packard Enterprise Development LP<BR>
8 SPDX-License-Identifier: BSD-2-Clause-Patent
12 #include "UefiShellDebug1CommandsLib.h"
13 #include "PrintInfo.h"
14 #include "LibSmbiosView.h"
15 #include "QueryTable.h"
16 #include "EventLogInfo.h"
19 // Get the certain bit of 'value'
21 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
24 // Check if above or equal to version
26 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
27 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
30 //////////////////////////////////////////////////////////
31 // Macros of print structure element, simplify coding.
33 #define PRINT_PENDING_STRING(pStruct, type, element) \
36 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
37 ShellPrintEx(-1,-1,L"%a",#element); \
38 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
41 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
44 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
45 ShellPrintEx(-1,-1,L"%a",#element); \
46 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
49 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
51 ShellPrintEx(-1,-1,L"%a",#element); \
52 ShellPrintEx(-1,-1,L": %u\n", (pStruct->type->element)); \
55 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
57 ShellPrintEx(-1,-1,L"%a",#element); \
58 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
61 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
63 ShellPrintEx(-1,-1,L"%a",#element); \
64 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
67 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
69 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
70 ShellPrintEx(-1,-1,L"%a",#element); \
71 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
72 DumpHex (0, 0, size, &(pStruct->type->element)); \
75 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
77 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
78 ShellPrintEx(-1,-1,L"%a",#element); \
79 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
80 DumpHex (0, 0, size, startaddress); \
84 /////////////////////////////////////////
88 Copy Length of Src buffer to Dest buffer,
89 add a NULL termination to Dest buffer.
91 @param[in, out] Dest Destination buffer head.
92 @param[in] Src Source buffer head.
93 @param[in] Length Length of buffer to be copied.
105 SrcBuffer
= (UINT8
*)Src
;
106 DestBuffer
= (UINT8
*)Dest
;
110 while ((Length
--) != 0) {
111 *DestBuffer
++ = *SrcBuffer
++;
115 // append a NULL terminator
121 //////////////////////////////////////////////
123 // Functions below is to show the information
127 Print the info of EPS(Entry Point Structure).
129 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
130 @param[in] Option Display option.
134 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
141 if (SmbiosTable
== NULL
) {
142 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
146 if (Option
== SHOW_NONE
) {
150 if (Option
>= SHOW_NORMAL
) {
151 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
152 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
153 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
158 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
159 gShellDebug1HiiHandle
,
160 SmbiosTable
->EntryPointStructureChecksum
162 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
167 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
168 gShellDebug1HiiHandle
,
169 SmbiosTable
->MajorVersion
,
170 SmbiosTable
->MinorVersion
176 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
177 gShellDebug1HiiHandle
,
178 SmbiosTable
->NumberOfSmbiosStructures
180 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
181 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
182 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
186 // If SHOW_ALL, also print followings.
188 if (Option
>= SHOW_DETAIL
) {
193 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
194 gShellDebug1HiiHandle
,
195 SmbiosTable
->EntryPointRevision
197 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
199 // Since raw data is not string, add a NULL terminater.
201 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
202 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
203 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
204 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
205 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
212 Print the info of 64-bit EPS(Entry Point Structure).
214 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
215 @param[in] Option Display option.
218 Smbios64BitPrintEPSInfo (
219 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
225 if (SmbiosTable
== NULL
) {
226 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
230 if (Option
== SHOW_NONE
) {
234 if (Option
>= SHOW_NORMAL
) {
235 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
237 MemToString (Anchor
, SmbiosTable
->AnchorString
, 5);
238 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
244 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
245 gShellDebug1HiiHandle
,
246 SmbiosTable
->EntryPointStructureChecksum
249 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
255 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
256 gShellDebug1HiiHandle
,
257 SmbiosTable
->MajorVersion
,
258 SmbiosTable
->MinorVersion
265 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV
),
266 gShellDebug1HiiHandle
,
270 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->TableMaximumSize
);
272 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
276 // If SHOW_ALL, also print followings.
278 if (Option
>= SHOW_DETAIL
) {
283 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
284 gShellDebug1HiiHandle
,
285 SmbiosTable
->EntryPointRevision
293 This function print the content of the structure pointed by Struct.
295 @param[in] Struct Point to the structure to be printed.
296 @param[in] Option Print option of information detail.
298 @retval EFI_SUCCESS Successfully Printing this function.
299 @retval EFI_INVALID_PARAMETER Invalid Structure.
300 @retval EFI_UNSUPPORTED Unsupported.
303 SmbiosPrintStructure (
304 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
312 if (Struct
== NULL
) {
313 return EFI_INVALID_PARAMETER
;
316 if (Option
== SHOW_NONE
) {
320 Buffer
= (UINT8
*)(UINTN
)(Struct
->Raw
);
323 // Display structure header
325 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
326 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
327 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
329 if (Option
== SHOW_OUTLINE
) {
333 switch (Struct
->Hdr
->Type
) {
335 // BIOS Information (Type 0)
338 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
339 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
340 PRINT_STRUCT_VALUE_H (Struct
, Type0
, BiosSegment
);
341 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
342 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
344 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*)(UINTN
)&(Struct
->Type0
->BiosCharacteristics
)), Option
);
346 if (Struct
->Hdr
->Length
> 0x12) {
347 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
350 if (Struct
->Hdr
->Length
> 0x13) {
351 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
354 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
355 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
356 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
357 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
358 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
361 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x18)) {
366 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTENDED_BIOS_SIZE
),
367 gShellDebug1HiiHandle
,
368 Struct
->Type0
->ExtendedBiosSize
.Size
,
369 (Struct
->Type0
->ExtendedBiosSize
.Unit
== 0x0) ? L
"MB" : L
"GB"
376 // System Information (Type 1)
379 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
380 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
381 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
382 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
383 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
384 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
385 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
386 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
387 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
393 // Baseboard Information (Type 2)
396 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
397 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
398 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
399 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
400 if (Struct
->Hdr
->Length
> 0x8) {
401 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
402 DisplayBaseBoardFeatureFlags (*(UINT8
*)&Struct
->Type2
->FeatureFlag
, Option
);
403 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
404 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
405 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
411 // System Enclosure (Type 3)
414 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
415 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
416 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
417 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
418 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
419 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
420 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
421 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
422 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
423 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
424 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
425 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
426 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
427 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
428 if (AE_SMBIOS_VERSION (0x2, 0x3)) {
429 if (Struct
->Hdr
->Length
> 0xD) {
430 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
433 if (Struct
->Hdr
->Length
> 0x11) {
434 PRINT_STRUCT_VALUE (Struct
, Type3
, Height
);
437 if (Struct
->Hdr
->Length
> 0x12) {
438 PRINT_STRUCT_VALUE (Struct
, Type3
, NumberofPowerCords
);
441 if (Struct
->Hdr
->Length
> 0x13) {
442 PRINT_STRUCT_VALUE (Struct
, Type3
, ContainedElementCount
);
445 if (Struct
->Hdr
->Length
> 0x14) {
446 PRINT_STRUCT_VALUE (Struct
, Type3
, ContainedElementRecordLength
);
449 if (Struct
->Hdr
->Length
> 0x15) {
450 for (Index
= 0; Index
< Struct
->Type3
->ContainedElementCount
; Index
++) {
451 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONTAINED_ELEMENT
), gShellDebug1HiiHandle
, Index
+1);
452 for (Index2
= 0; Index2
< Struct
->Type3
->ContainedElementRecordLength
; Index2
++) {
453 Print (L
"%02X ", Buffer
[0x15 + (Index
* Struct
->Type3
->ContainedElementRecordLength
) + Index2
]);
461 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
462 if (Struct
->Hdr
->Length
> (0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
))) {
463 PRINT_SMBIOS_STRING (Struct
, Buffer
[0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
)], SKUNumber
);
470 // Processor Information (Type 4)
473 PRINT_SMBIOS_STRING (Struct
, Struct
->Type4
->Socket
, SocketDesignation
)
474 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
475 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
476 (Struct
->Type4
->ProcessorFamily
== 0xFE))
479 // Get family from ProcessorFamily2 field
481 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
483 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
486 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacturer
);
487 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
488 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
489 DisplayProcessorVoltage (*(UINT8
*)&(Struct
->Type4
->Voltage
), Option
);
490 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
491 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
492 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
493 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
494 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
495 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
496 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
497 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
498 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
499 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
500 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
501 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
504 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
505 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
506 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
507 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
508 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
511 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
512 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
513 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
514 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
520 // Memory Controller Information (Type 5)
525 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
527 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
528 DisplayMcErrorCorrectCapability (*(UINT8
*)&(Struct
->Type5
->ErrCorrectCapability
), Option
);
529 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
530 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
531 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
532 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
533 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
534 DisplayMcMemorySpeeds (*(UINT16
*)&(Struct
->Type5
->SupportSpeed
), Option
);
535 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
536 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
537 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
539 // According to SMBIOS Specification, offset 0x0F
541 DisplayMemoryModuleConfigHandles ((UINT16
*)(&Buffer
[0x0F]), SlotNum
, Option
);
542 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
547 // Memory Module Information (Type 6)
550 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
551 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
552 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
553 DisplayMmMemoryType (*(UINT16
*)&(Struct
->Type6
->CurrentMemoryType
), Option
);
554 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
555 DisplayMmMemorySize (*(UINT8
*)&(Struct
->Type6
->InstalledSize
), Option
);
556 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
557 DisplayMmMemorySize (*(UINT8
*)&(Struct
->Type6
->EnabledSize
), Option
);
558 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
562 // Cache Information (Type 7)
565 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
566 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
567 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
568 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
569 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
570 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
571 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*)(UINTN
)&(Struct
->Type7
->CurrentSRAMType
)), Option
);
572 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
573 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
574 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
575 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
576 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x13)) {
577 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize2
);
578 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize2
);
584 // Port Connector Information (Type 8)
587 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
588 Print (L
"Internal ");
589 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
590 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
591 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
592 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
593 DisplayPortType (Struct
->Type8
->PortType
, Option
);
597 // System Slots (Type 9)
601 MISC_SLOT_PEER_GROUP
*PeerGroupPtr
;
602 SMBIOS_TABLE_TYPE9_EXTENDED
*Type9ExtendedStruct
;
603 UINT8 PeerGroupCount
;
605 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
606 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
607 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
608 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
609 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
610 DisplaySystemSlotId (
611 Struct
->Type9
->SlotID
,
612 Struct
->Type9
->SlotType
,
615 DisplaySlotCharacteristics1 (*(UINT8
*)&(Struct
->Type9
->SlotCharacteristics1
), Option
);
616 DisplaySlotCharacteristics2 (*(UINT8
*)&(Struct
->Type9
->SlotCharacteristics2
), Option
);
617 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
618 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
619 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
620 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
623 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
624 if (Struct
->Hdr
->Length
> 0x11) {
625 PRINT_STRUCT_VALUE (Struct
, Type9
, DataBusWidth
);
628 if (Struct
->Hdr
->Length
> 0x12) {
629 PRINT_STRUCT_VALUE (Struct
, Type9
, PeerGroupingCount
);
631 PeerGroupCount
= Struct
->Type9
->PeerGroupingCount
;
632 PeerGroupPtr
= Struct
->Type9
->PeerGroups
;
633 for (Index
= 0; Index
< PeerGroupCount
; Index
++) {
634 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_PEER_GROUPS
), gShellDebug1HiiHandle
, Index
+ 1);
635 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SEGMENT_GROUP_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].SegmentGroupNum
);
636 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BUS_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].BusNum
);
637 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_FUNC_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].DevFuncNum
);
638 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DATA_BUS_WIDTH
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].DataBusWidth
);
641 if (AE_SMBIOS_VERSION (0x3, 0x4)) {
642 // Since PeerGroups has a variable number of entries, new fields added after PeerGroups are defined in
643 // a extended structure. Those fields can be referenced using SMBIOS_TABLE_TYPE9_EXTENDED structure.
644 Type9ExtendedStruct
= (SMBIOS_TABLE_TYPE9_EXTENDED
*)((UINT8
*)PeerGroupPtr
+ (PeerGroupCount
* sizeof (MISC_SLOT_PEER_GROUP
)));
645 DisplaySystemSlotInformation (Type9ExtendedStruct
->SlotInformation
, Option
);
646 DisplaySystemSlotPhysicalWidth (Type9ExtendedStruct
->SlotPhysicalWidth
, Option
);
647 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_PITCH
), gShellDebug1HiiHandle
, Type9ExtendedStruct
->SlotPitch
);
648 if (AE_SMBIOS_VERSION (0x3, 0x5)) {
649 DisplaySystemSlotHeight (Type9ExtendedStruct
->SlotHeight
, Option
);
659 // On Board Devices Information (Type 10)
664 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
665 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
666 ShellPrintEx (-1, -1, (((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n" : L
"Device Disabled\n");
667 DisplayOnboardDeviceTypes ((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x7F, Option
);
668 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
669 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
676 // Oem Strings (Type 11)
679 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
680 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
681 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Index
));
687 // System Configuration Options (Type 12)
690 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
691 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
692 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Index
));
698 // BIOS Language Information (Type 13)
701 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
702 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
703 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
704 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
708 // Group Associations (Type 14)
713 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
714 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
715 for (Index
= 0; Index
< NumOfItem
; Index
++) {
716 ShellPrintEx (-1, -1, L
"ItemType %u: %u\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
717 ShellPrintEx (-1, -1, L
"ItemHandle %u: %u\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
724 // System Event Log (Type 15)
730 UINT8
*AccessMethodAddress
;
732 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
733 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
734 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
735 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
736 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
737 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
738 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
739 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
740 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
741 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
743 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
745 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
748 // Display all Event Log type descriptors supported by system
750 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
751 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
752 DisplaySELTypes (Ptr
->LogType
, Option
);
753 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
756 if (Option
>= SHOW_DETAIL
) {
757 switch (Struct
->Type15
->AccessMethod
) {
759 AccessMethodAddress
= (UINT8
*)(UINTN
)(Struct
->Type15
->AccessMethodAddress
);
771 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
772 gShellDebug1HiiHandle
,
773 Struct
->Type15
->AccessMethod
775 return EFI_UNSUPPORTED
;
779 // Display Event Log Header
781 // Starting offset (or index) within the nonvolatile storage
782 // of the event-log's header, from the Access Method Address
784 DisplaySysEventLogHeader (
785 Struct
->Type15
->LogHeaderFormat
,
786 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
790 // Display all Event Log data
792 // Starting offset (or index) within the nonvolatile storage
793 // of the event-log's first data byte, from the Access Method Address(0x14)
795 DisplaySysEventLogData (
796 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
799 Struct
->Type15
->LogAreaLength
-
800 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
810 // Physical Memory Array (Type 16)
813 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
814 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
815 DisplayPMAErrorCorrectionTypes (
816 Struct
->Type16
->MemoryErrorCorrection
,
819 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
820 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
821 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
822 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
823 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
829 // Memory Device (Type 17)
832 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
833 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
834 PRINT_STRUCT_VALUE_H (Struct
, Type17
, TotalWidth
);
835 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DataWidth
);
836 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
837 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
839 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
840 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
841 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
842 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*)(UINTN
)&(Struct
->Type17
->TypeDetail
)), Option
);
843 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
844 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
845 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
846 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
847 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
848 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
849 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
852 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
853 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
854 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
857 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
858 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
859 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
860 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
863 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
864 if (Struct
->Hdr
->Length
> 0x28) {
865 DisplayMemoryDeviceMemoryTechnology (Struct
->Type17
->MemoryTechnology
, Option
);
866 DisplayMemoryDeviceMemoryOperatingModeCapability (Struct
->Type17
->MemoryOperatingModeCapability
.Uint16
, Option
);
867 PRINT_PENDING_STRING (Struct
, Type17
, FirmwareVersion
);
868 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleManufacturerID
);
869 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleProductID
);
870 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerManufacturerID
);
871 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerProductID
);
874 if (Struct
->Hdr
->Length
> 0x34) {
875 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, NonVolatileSize
);
878 if (Struct
->Hdr
->Length
> 0x3C) {
879 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, VolatileSize
);
882 if (Struct
->Hdr
->Length
> 0x44) {
883 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, CacheSize
);
886 if (Struct
->Hdr
->Length
> 0x4C) {
887 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, LogicalSize
);
891 if (AE_SMBIOS_VERSION (0x3, 0x3) && (Struct
->Hdr
->Length
> 0x54)) {
892 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ExtendedSpeed
);
893 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ExtendedConfiguredMemorySpeed
);
899 // 32-bit Memory Error Information (Type 18)
902 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
903 DisplayMemoryErrorGranularity (
904 Struct
->Type18
->ErrorGranularity
,
907 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
908 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
909 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
910 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
911 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
915 // Memory Array Mapped Address (Type 19)
918 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
919 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
920 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
921 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
922 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
923 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
924 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
930 // Memory Device Mapped Address (Type 20)
933 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
934 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
935 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
936 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
937 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
938 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
939 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
940 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
941 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
942 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
948 // Built-in Pointing Device (Type 21)
951 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
952 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
953 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
957 // Portable Battery (Type 22)
960 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
961 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
962 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
963 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
964 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
965 DisplayPBDeviceChemistry (
966 Struct
->Type22
->DeviceChemistry
,
969 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
970 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
971 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
972 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
973 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
974 DisplaySBDSManufactureDate (
975 Struct
->Type22
->SBDSManufactureDate
,
978 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
979 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
980 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
984 // System Reset (Type 23)
987 DisplaySystemResetCapabilities (
988 Struct
->Type23
->Capabilities
,
991 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
992 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
993 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
994 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
998 // Hardware Security (Type 24)
1001 DisplayHardwareSecuritySettings (
1002 Struct
->Type24
->HardwareSecuritySettings
,
1008 // System Power Controls (Type 25)
1011 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
1012 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
1013 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
1014 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
1015 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
1019 // Voltage Probe (Type 26)
1022 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
1023 DisplayVPLocation (*(UINT8
*)&(Struct
->Type26
->LocationAndStatus
), Option
);
1024 DisplayVPStatus (*(UINT8
*)&(Struct
->Type26
->LocationAndStatus
), Option
);
1025 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
1026 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
1027 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
1028 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
1029 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
1030 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
1031 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
1035 // Cooling Device (Type 27)
1038 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
1039 DisplayCoolingDeviceStatus (*(UINT8
*)&(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
1040 DisplayCoolingDeviceType (*(UINT8
*)&(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
1041 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
1042 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
1043 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
1044 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
1045 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
1051 // Temperature Probe (Type 28)
1054 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
1055 DisplayTemperatureProbeStatus (*(UINT8
*)&(Struct
->Type28
->LocationAndStatus
), Option
);
1056 DisplayTemperatureProbeLoc (*(UINT8
*)&(Struct
->Type28
->LocationAndStatus
), Option
);
1057 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
1058 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
1059 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
1060 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
1061 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
1062 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
1063 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
1067 // Electrical Current Probe (Type 29)
1070 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
1071 DisplayECPStatus (*(UINT8
*)&(Struct
->Type29
->LocationAndStatus
), Option
);
1072 DisplayECPLoc (*(UINT8
*)&(Struct
->Type29
->LocationAndStatus
), Option
);
1073 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
1074 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
1075 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
1076 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
1077 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
1078 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
1079 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
1083 // Out-of-Band Remote Access (Type 30)
1086 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
1087 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
1091 // Boot Integrity Services (BIS) Entry Point (Type 31)
1094 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
1098 // System Boot Information (Type 32)
1101 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
1102 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
1106 // 64-Bit Memory Error Information (Type 33)
1109 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
1110 DisplayMemoryErrorGranularity (
1111 Struct
->Type33
->ErrorGranularity
,
1114 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
1115 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
1116 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
1117 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
1118 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
1122 // Management Device (Type 34)
1125 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
1126 DisplayMDType (Struct
->Type34
->Type
, Option
);
1127 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
1128 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
1132 // Management Device Component (Type 35)
1135 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
1136 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
1137 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
1138 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
1142 // Management Device Threshold Data (Type 36)
1145 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
1146 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
1147 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
1148 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
1149 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
1150 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
1154 // Memory Channel (Type 37)
1160 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1161 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1162 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1164 Count
= Struct
->Type37
->MemoryDeviceCount
;
1165 Ptr
= Struct
->Type37
->MemoryDevice
;
1166 for (Index
= 0; Index
< Count
; Index
++) {
1167 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1168 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1169 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1176 // IPMI Device Information (Type 38)
1179 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1185 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IPMI_SPECIFICATION_REVISION
),
1186 gShellDebug1HiiHandle
,
1187 RShiftU64 ((UINT64
)Struct
->Type38
->IPMISpecificationRevision
, 4), \
1188 Struct
->Type38
->IPMISpecificationRevision
& 0x0F
1191 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1193 if (Struct
->Type38
->NVStorageDeviceAddress
== 0xFF) {
1194 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NV_STORAGE_DEVICE_NOT_PRESENT
), gShellDebug1HiiHandle
);
1196 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1199 if (Struct
->Type38
->InterfaceType
== IPMIDeviceInfoInterfaceTypeSSIF
) {
1200 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BASE_ADDRESS
), gShellDebug1HiiHandle
, RShiftU64 ((UINT64
)Struct
->Type38
->BaseAddress
, 1));
1202 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1208 // System Power Supply (Type 39)
1211 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1212 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1213 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1214 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1215 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1216 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1217 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1218 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1219 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1220 DisplaySPSCharacteristics (
1221 *(UINT16
*)&(Struct
->Type39
->PowerSupplyCharacteristics
),
1224 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1225 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1226 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1230 // Additional Information (Type 40)
1234 UINT8 NumberOfEntries
;
1236 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1239 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1240 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1242 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1244 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1245 EntryLength
= Entries
->EntryLength
;
1246 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1247 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1248 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1249 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1250 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1251 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*)((UINT8
*)Entries
+ EntryLength
);
1258 // Onboard Devices Extended Information (Type 41)
1261 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1262 ShellPrintEx (-1, -1, (((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n" : L
"Device Disabled\n");
1263 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1264 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1265 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1266 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1267 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1271 // Management Controller Host Interface (Type 42)
1274 DisplayMCHostInterfaceType (Struct
->Type42
->InterfaceType
, Option
);
1275 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
1276 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceTypeSpecificDataLength
);
1277 PRINT_BIT_FIELD (Struct
, Type42
, InterfaceTypeSpecificData
, Struct
->Type42
->InterfaceTypeSpecificDataLength
);
1283 // TPM Device (Type 43)
1286 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1287 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1288 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1289 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1290 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1291 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1292 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*)(UINTN
)&(Struct
->Type43
->Characteristics
)), Option
);
1293 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1297 // Processor Additional Information (Type 44)
1300 DisplayProcessorArchitectureType (Struct
->Type44
->ProcessorSpecificBlock
.ProcessorArchType
, Option
);
1304 // Inactive (Type 126)
1307 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1311 // End-of-Table (Type 127)
1314 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1318 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1326 Display BIOS Information (Type 0) information.
1328 @param[in] Chara The information bits.
1329 @param[in] Option The optional information.
1332 DisplayBiosCharacteristics (
1340 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1344 PRINT_INFO_OPTION (Chara
, Option
);
1347 // Check all the bits and print information
1348 // This function does not use Table because table of bits
1349 // are designed not to deal with UINT64
1351 if (BIT (Chara
, 0) != 0) {
1352 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1355 if (BIT (Chara
, 1) != 0) {
1356 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1359 if (BIT (Chara
, 2) != 0) {
1360 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1363 if (BIT (Chara
, 3) != 0) {
1364 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1367 if (BIT (Chara
, 4) != 0) {
1368 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1371 if (BIT (Chara
, 5) != 0) {
1372 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1375 if (BIT (Chara
, 6) != 0) {
1376 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1379 if (BIT (Chara
, 7) != 0) {
1380 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1383 if (BIT (Chara
, 8) != 0) {
1384 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1387 if (BIT (Chara
, 9) != 0) {
1388 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1391 if (BIT (Chara
, 10) != 0) {
1392 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1395 if (BIT (Chara
, 11) != 0) {
1396 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1399 if (BIT (Chara
, 12) != 0) {
1400 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1403 if (BIT (Chara
, 13) != 0) {
1404 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1407 if (BIT (Chara
, 14) != 0) {
1408 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1411 if (BIT (Chara
, 15) != 0) {
1412 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1415 if (BIT (Chara
, 16) != 0) {
1416 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1419 if (BIT (Chara
, 17) != 0) {
1420 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1423 if (BIT (Chara
, 18) != 0) {
1424 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1427 if (BIT (Chara
, 19) != 0) {
1428 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1431 if (BIT (Chara
, 20) != 0) {
1432 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1435 if (BIT (Chara
, 21) != 0) {
1436 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1439 if (BIT (Chara
, 22) != 0) {
1440 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1443 if (BIT (Chara
, 23) != 0) {
1444 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1447 if (BIT (Chara
, 24) != 0) {
1448 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1451 if (BIT (Chara
, 25) != 0) {
1452 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1455 if (BIT (Chara
, 26) != 0) {
1456 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1459 if (BIT (Chara
, 27) != 0) {
1460 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1463 if (BIT (Chara
, 28) != 0) {
1464 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1467 if (BIT (Chara
, 29) != 0) {
1468 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1471 if (BIT (Chara
, 30) != 0) {
1472 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1475 if (BIT (Chara
, 31) != 0) {
1476 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1480 // Just print the Reserved
1482 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1483 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1487 Display Bios Characteristice extensions1 information.
1489 @param[in] Byte1 The information.
1490 @param[in] Option The optional information.
1493 DisplayBiosCharacteristicsExt1 (
1498 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1502 PRINT_INFO_OPTION (Byte1
, Option
);
1505 // check bit and print
1507 if (BIT (Byte1
, 0) != 0) {
1508 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1511 if (BIT (Byte1
, 1) != 0) {
1512 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1515 if (BIT (Byte1
, 2) != 0) {
1516 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1519 if (BIT (Byte1
, 3) != 0) {
1520 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1523 if (BIT (Byte1
, 4) != 0) {
1524 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1527 if (BIT (Byte1
, 5) != 0) {
1528 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1531 if (BIT (Byte1
, 6) != 0) {
1532 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1535 if (BIT (Byte1
, 7) != 0) {
1536 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1541 Display Bios Characteristice extensions2 information.
1543 @param[in] byte2 The information.
1544 @param[in] Option The optional information.
1547 DisplayBiosCharacteristicsExt2 (
1552 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1556 PRINT_INFO_OPTION (byte2
, Option
);
1558 if (BIT (byte2
, 0) != 0) {
1559 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1562 if (BIT (byte2
, 1) != 0) {
1563 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1566 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1567 if (BIT (byte2
, 2) != 0) {
1568 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1571 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1572 if (BIT (byte2
, 3) != 0) {
1573 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1576 if (BIT (byte2
, 4) != 0) {
1577 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1580 if (BIT (byte2
, 5) != 0) {
1581 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MCFG_SUPPORTED
), gShellDebug1HiiHandle
);
1584 if (BIT (byte2
, 6) != 0) {
1585 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MCFG_ENABLED
), gShellDebug1HiiHandle
);
1588 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1590 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1593 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1598 Display Processor Information (Type 4) information.
1600 @param[in] Family The family value.
1601 @param[in] Option The option value.
1604 DisplayProcessorFamily (
1610 // Print prompt message
1612 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1616 PRINT_INFO_OPTION (Family
, Option
);
1619 // Use switch to check
1623 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1627 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1639 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1643 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1663 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1667 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1671 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1675 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1679 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1683 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1687 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1691 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1695 Print (L
"M2 Family\n");
1699 Print (L
"Intel Celeron M\n");
1703 Print (L
"Intel Pentium 4 HT\n");
1707 Print (L
"AMD Duron\n");
1711 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1715 Print (L
"K6 Family\n");
1727 Print (L
"AMD Althon Processor Family\n");
1731 Print (L
"AMD 29000 Family\n");
1739 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1743 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1747 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1751 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1755 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1759 Print (L
"Power PC 620\n");
1763 Print (L
"Power PC 704\n");
1767 Print (L
"Power PC 750\n");
1771 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1775 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1779 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1783 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1787 Print (L
"Intel(R) Core(TM) M processor\n");
1791 Print (L
"Intel(R) Core(TM) m3 processor\n");
1795 Print (L
"Intel(R) Core(TM) m5 processor\n");
1799 Print (L
"Intel(R) Core(TM) m7 processor\n");
1803 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1807 Print (L
"Alpha 21064\n");
1811 Print (L
"Alpha 21066\n");
1815 Print (L
"Alpha 21164\n");
1819 Print (L
"Alpha 21164PC\n");
1823 Print (L
"Alpha 21164a\n");
1827 Print (L
"Alpha 21264\n");
1831 Print (L
"Alpha 21364\n");
1835 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1839 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1843 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1847 Print (L
"AMD Opteron 6100 Series Processor\n");
1851 Print (L
"AMD Opteron 4100 Series Processor\n");
1855 Print (L
"AMD Opteron 6200 Series Processor\n");
1859 Print (L
"AMD Opteron 4200 Series Processor\n");
1863 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1867 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1871 Print (L
"MIPS R4000\n");
1875 Print (L
"MIPS R4200\n");
1879 Print (L
"MIPS R4400\n");
1883 Print (L
"MIPS R4600\n");
1887 Print (L
"MIPS R10000\n");
1891 Print (L
"AMD C-Series Processor\n");
1895 Print (L
"AMD E-Series Processor\n");
1899 Print (L
"AMD A-Series Processor\n");
1903 Print (L
"AMD G-Series Processor\n");
1907 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1911 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1915 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1919 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1923 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1927 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1931 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1935 Print (L
"SuperSparc\n");
1939 Print (L
"microSparc II\n");
1943 Print (L
"microSparc IIep\n");
1947 Print (L
"UltraSparc\n");
1951 Print (L
"UltraSparc II\n");
1955 Print (L
"UltraSparcIIi\n");
1959 Print (L
"UltraSparcIII\n");
1963 Print (L
"UltraSparcIIIi\n");
1967 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1991 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1995 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1999 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
2003 Print (L
"AMD Opteron(TM) A-Series Processor\n");
2007 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
2011 Print (L
"AMD Zen Processor Family\n");
2015 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
2019 Print (L
"Crusoe TM5000\n");
2023 Print (L
"Crusoe TM3000\n");
2027 Print (L
"Efficeon TM8000\n");
2031 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
2035 Print (L
"Itanium\n");
2039 Print (L
"AMD Athlon64\n");
2043 Print (L
"AMD Opteron\n");
2047 Print (L
"AMD Sempron\n");
2051 Print (L
"AMD Turion64 Mobile\n");
2055 Print (L
"Dual-Core AMD Opteron\n");
2059 Print (L
"AMD Athlon 64X2 DualCore\n");
2063 Print (L
"AMD Turion 64X2 Mobile\n");
2067 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2071 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
2075 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
2079 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
2083 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
2087 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
2091 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
2095 Print (L
"PA-RISC 8500\n");
2099 Print (L
"PA-RISC 8000\n");
2103 Print (L
"PA-RISC 7300LC\n");
2107 Print (L
"PA-RISC 7200\n");
2111 Print (L
"PA-RISC 7100LC\n");
2115 Print (L
"PA-RISC 7100\n");
2119 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
2123 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2127 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2131 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2135 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2139 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2143 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
2147 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
2151 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2155 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2159 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
2163 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2167 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2171 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2175 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2179 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2183 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
2187 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2191 Print (L
"Pentium 4 processor\n");
2195 Print (L
"Intel Xeon Processor\n");
2199 Print (L
"AS400 Family\n");
2203 Print (L
"Intel Xeon processor MP\n");
2207 Print (L
"AMD Althon XP Processor Family\n");
2211 Print (L
"AMD Althon MP Promcessor Family\n");
2215 Print (L
"Intel Itanium 2 processor\n");
2219 Print (L
"Intel Penium M processor\n");
2223 Print (L
"Intel Celeron D processor\n");
2227 Print (L
"Intel Pentium D processor\n");
2231 Print (L
"Intel Pentium Processor Extreme Edition\n");
2235 Print (L
"Intel Core Solo Processor\n");
2239 Print (L
"Intel Core 2 Duo Processor\n");
2243 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2247 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2251 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2255 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2259 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2263 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2267 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2271 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2275 Print (L
"IBM 390\n");
2291 Print (L
"zArchitecture\n");
2295 Print (L
"Intel Core i5 processor\n");
2299 Print (L
"Intel Core i3 processor\n");
2303 Print (L
"Intel Core i9 processor\n");
2307 Print (L
"ViaC7M\n");
2311 Print (L
"ViaC7D\n");
2323 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2327 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2331 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2335 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2339 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2343 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2347 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2351 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2355 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2359 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2363 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2367 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2371 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2375 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2379 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2383 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2387 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2391 Print (L
"AMD Phenom II Processor Family\n");
2395 Print (L
"AMD Althon II Processor Family\n");
2399 Print (L
"Six-Core AMD Opteron Processor Family\n");
2403 Print (L
"AMD Sempron M Processor Family\n");
2415 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2424 Display processor family information.
2426 @param[in] Family2 The family value.
2427 @param[in] Option The option value.
2430 DisplayProcessorFamily2 (
2436 // Print prompt message
2438 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2443 PRINT_INFO_OPTION (Family2
, Option
);
2446 // Use switch to check
2470 Print (L
"StrongARM\n");
2478 Print (L
"MediaGX\n");
2486 Print (L
"WinChip\n");
2494 Print (L
"Video Processor\n");
2498 Print (L
"RISC-V RV32\n");
2502 Print (L
"RISC-V RV64\n");
2506 Print (L
"RISC-V RV128\n");
2510 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2515 Display processor voltage information.
2517 @param[in] Voltage The Voltage.
2518 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2519 Bits 6:4 Reserved, must be zero
2520 Bits 3:0 Voltage Capability.
2521 A Set bit indicates that the voltage is supported.
2525 Bit 3 - Reserved, must be zero.
2528 Setting of multiple bits indicates the socket is configurable
2529 If bit 7 is set to 1, the remaining seven bits of the field are set to
2530 contain the processor's current voltage times 10.
2531 For example, the field value for a processor voltage of 1.8 volts would be
2532 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2534 @param[in] Option The option.
2537 DisplayProcessorVoltage (
2542 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2546 PRINT_INFO_OPTION (Voltage
, Option
);
2548 if (BIT (Voltage
, 7) != 0) {
2549 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2551 if (BIT (Voltage
, 0) != 0) {
2552 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2555 if (BIT (Voltage
, 1) != 0) {
2556 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2559 if (BIT (Voltage
, 2) != 0) {
2560 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2564 // check the reserved zero bits:
2566 if (BIT (Voltage
, 3) != 0) {
2567 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2570 if (BIT (Voltage
, 4) != 0) {
2571 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2574 if (BIT (Voltage
, 5) != 0) {
2575 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2578 if (BIT (Voltage
, 6) != 0) {
2579 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2585 Display processor information.
2587 @param[in] Status The status.
2588 Bit 7 Reserved, must be 0
2589 Bit 6 CPU Socket Populated
2590 1 - CPU Socket Populated
2591 0 - CPU Socket Unpopulated
2592 Bits 5:3 Reserved, must be zero
2596 2h - CPU Disabled by User via BIOS Setup
2597 3h - CPU Disabled By BIOS (POST Error)
2598 4h - CPU is Idle, waiting to be enabled.
2602 @param[in] Option The option
2605 DisplayProcessorStatus (
2610 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2611 PRINT_INFO_OPTION (Status
, Option
);
2613 if (BIT (Status
, 7) != 0) {
2614 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2615 } else if (BIT (Status
, 5) != 0) {
2616 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2617 } else if (BIT (Status
, 4) != 0) {
2618 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2619 } else if (BIT (Status
, 3) != 0) {
2620 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2626 if (BIT (Status
, 6) != 0) {
2627 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2629 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2635 switch (Status
& 0x07) {
2637 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2641 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2645 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2649 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2653 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2657 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2661 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2666 Display information about Memory Controller Information (Type 5).
2668 @param[in] Size Memory size.
2669 @param[in] SlotNum Which slot is this about.
2670 @param[in] Option Option for the level of detail output required.
2673 DisplayMaxMemoryModuleSize (
2681 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2683 // MaxSize is determined by follow formula
2685 MaxSize
= (UINTN
)1 << Size
;
2686 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2688 if (Option
>= SHOW_DETAIL
) {
2689 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2690 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2695 Display information about memory configuration handles.
2697 @param[in] Handles The buffer of handles to output info on.
2698 @param[in] SlotNum The number of handles in the above buffer.
2699 @param[in] Option Option for the level of detail output required.
2702 DisplayMemoryModuleConfigHandles (
2710 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2712 if (Option
>= SHOW_DETAIL
) {
2714 // No handle, Handles is INVALID.
2720 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2721 for (Index
= 0; Index
< SlotNum
; Index
++) {
2722 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2728 Display Memory Module Information (Type 6).
2730 @param[in] BankConnections
2734 DisplayMmBankConnections (
2735 IN UINT8 BankConnections
,
2742 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2746 PRINT_INFO_OPTION (BankConnections
, Option
);
2749 // Divide it to high and low
2751 High
= (UINT8
)(BankConnections
& 0xF0);
2752 Low
= (UINT8
)(BankConnections
& 0x0F);
2755 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2757 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2761 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2763 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2769 Display memory informcation.
2772 where 2**n is the size in MB with three special-case values:
2773 7Dh Not determinable (Installed Size only)
2774 7Eh Module is installed, but no memory has been enabled
2776 Bit 7 Defines whether the memory module has a single- (0)
2777 or double-bank (1) connection.
2779 @param[in] Size - The size
2780 @param[in] Option - The option
2783 DisplayMmMemorySize (
2790 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2794 PRINT_INFO_OPTION (Size
, Option
);
2797 // Get the low bits(0-6 bit)
2799 Value
= (UINT8
)(Size
& 0x7F);
2800 if (Value
== 0x7D) {
2801 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2802 } else if (Value
== 0x7E) {
2803 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2804 } else if (Value
== 0x7F) {
2805 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2807 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2810 if (BIT (Size
, 7) != 0) {
2811 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2813 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2818 Display Cache Configuration.
2820 @param[in] CacheConfiguration Cache Configuration.
2821 Bits 15:10 Reserved, must be 0
2822 Bits 9:8 Operational Mode
2825 2h - Varies with Memory Address
2827 Bit 7 Enabled/Disabled
2835 Bit 4 Reserved, must be zero
2836 Bit 3 Cache Socketed
2839 Bits 2:0 Cache Level
2840 1 through 8 (For example, an L1 cache would
2841 use value 000b and an L3 cache would use 010b.)
2843 @param[in] Option The option
2846 DisplayCacheConfiguration (
2847 IN UINT16 CacheConfiguration
,
2851 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2852 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2854 if (BIT (CacheConfiguration
, 15) != 0) {
2855 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2856 } else if (BIT (CacheConfiguration
, 14) != 0) {
2857 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2858 } else if (BIT (CacheConfiguration
, 13) != 0) {
2859 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2860 } else if (BIT (CacheConfiguration
, 12) != 0) {
2861 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2862 } else if (BIT (CacheConfiguration
, 11) != 0) {
2863 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2864 } else if (BIT (CacheConfiguration
, 10) != 0) {
2865 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2866 } else if (BIT (CacheConfiguration
, 4) != 0) {
2867 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2873 switch ((CacheConfiguration
& 0x300) >> 8) {
2875 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2879 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2883 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2887 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2894 if (BIT (CacheConfiguration
, 7) != 0) {
2895 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2897 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2903 switch ((CacheConfiguration
& 0x60) >> 5) {
2905 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2909 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2913 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2917 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2924 if (BIT (CacheConfiguration
, 3) != 0) {
2925 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2927 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2930 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2934 The Slot ID field of the System Slot structure provides a mechanism to
2935 correlate the physical attributes of the slot to its logical access method
2936 (which varies based on the Slot Type field).
2938 @param[in] SlotId - The slot ID
2939 @param[in] SlotType - The slot type
2940 @param[in] Option - The Option
2943 DisplaySystemSlotId (
2949 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2953 PRINT_INFO_OPTION (SlotType
, Option
);
2960 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2961 if ((SlotId
> 0) && (SlotId
< 15)) {
2962 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2964 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2973 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2974 if ((SlotId
> 0) && (SlotId
< 15)) {
2975 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2977 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2986 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2993 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
3000 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
3004 if (((SlotType
>= 0x0E) && (SlotType
<= 0x12)) || ((SlotType
>= 0xA6) && (SlotType
<= 0xB6))) {
3005 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
3007 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
3013 Display System Boot Information (Type 32) information.
3015 @param[in] Parameter The parameter.
3016 @param[in] Option The options.
3019 DisplaySystemBootStatus (
3024 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
3028 PRINT_INFO_OPTION (Parameter
, Option
);
3031 // Check value and print
3033 if (Parameter
== 0) {
3034 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
3035 } else if (Parameter
== 1) {
3036 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
3037 } else if (Parameter
== 2) {
3038 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
3039 } else if (Parameter
== 3) {
3040 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
3041 } else if (Parameter
== 4) {
3042 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
3043 } else if (Parameter
== 5) {
3044 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
3045 } else if (Parameter
== 6) {
3046 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
3047 } else if (Parameter
== 7) {
3048 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
3049 } else if (Parameter
== 8) {
3050 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
3051 } else if ((Parameter
>= 9) && (Parameter
<= 127)) {
3052 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
3053 } else if ((Parameter
>= 128) && (Parameter
<= 191)) {
3054 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
3055 } else if (Parameter
>= 192) {
3056 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
3058 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
3063 Display Portable Battery (Type 22) information.
3065 The date the cell pack was manufactured, in packed format:
3066 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
3067 Bits 8:5 Month, in the range 1 to 12.
3068 Bits 4:0 Date, in the range 1 to 31.
3069 For example, 01 February 2000 would be identified as
3070 0010 1000 0100 0001b (0x2841).
3072 @param[in] Date The date
3073 @param[in] Option The option
3076 DisplaySBDSManufactureDate (
3085 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
3086 PRINT_INFO_OPTION (Date
, Option
);
3090 Day
= Date
& 0x001F;
3091 Month
= (Date
& 0x01E0) >> 5;
3092 Year
= ((Date
& 0xFE00) >> 9) + 1980;
3093 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
3097 Display System Reset (Type 23) information.
3100 Identifies the system-reset capabilities for the system.
3101 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
3102 Bit 5 System contains a watchdog timer, either True (1) or False (0).
3103 Bits 4:3 Boot Option on Limit.
3104 Identifies the system action to be taken when the Reset Limit is reached, one of:
3105 00b Reserved, do not use.
3106 01b Operating system
3107 10b System utilities
3108 11b Do not rebootBits
3109 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
3110 00b Reserved, do not use.
3111 01b Operating system
3112 10b System utilities
3115 1b The system reset is enabled by the user
3116 0b The system reset is not enabled by the user
3118 @param[in] Reset Reset
3119 @param[in] Option The option
3122 DisplaySystemResetCapabilities (
3129 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
3130 PRINT_INFO_OPTION (Reset
, Option
);
3133 // Check reserved bits 7:6
3135 if ((Reset
& 0xC0) != 0) {
3136 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
3142 if (BIT (Reset
, 5) != 0) {
3143 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
3145 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
3149 // Boot Option on Limit
3151 Temp
= (Reset
& 0x18) >> 3;
3152 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
3155 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3159 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3163 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3167 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3174 Temp
= (Reset
& 0x06) >> 1;
3175 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
3178 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3182 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3186 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3190 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3195 // Reset enable flag
3197 if ((Reset
& 0x01) != 0) {
3198 Print (L
"The system reset is enabled by the user\n");
3200 Print (L
"The system reset is disabled by the user\n");
3205 Display Hardware Security (Type 24) information.
3208 Identifies the password and reset status for the system:
3210 Bits 7:6 Power-on Password Status, one of:
3215 Bits 5:4 Keyboard Password Status, one of:
3220 Bits 3:2 Administrator Password Status, one of:
3225 Bits 1:0 Front Panel Reset Status, one of:
3231 @param[in] Settings The device settings.
3232 @param[in] Option The device options.
3235 DisplayHardwareSecuritySettings (
3242 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3243 PRINT_INFO_OPTION (Settings
, Option
);
3246 // Power-on Password Status
3248 Temp
= (Settings
& 0xC0) >> 6;
3249 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3252 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3256 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3260 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3264 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3269 // Keyboard Password Status
3271 Temp
= (Settings
& 0x30) >> 4;
3272 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3275 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3279 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3283 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3287 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3292 // Administrator Password Status
3294 Temp
= (Settings
& 0x0C) >> 2;
3295 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3298 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3302 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3306 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3310 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3315 // Front Panel Reset Status
3317 Temp
= Settings
& 0x3;
3318 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3321 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3325 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3329 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3333 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3339 Display Out-of-Band Remote Access (Type 30) information.
3341 @param[in] Connections The device characteristics.
3342 @param[in] Option The device options.
3345 DisplayOBRAConnections (
3346 IN UINT8 Connections
,
3350 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3351 PRINT_INFO_OPTION (Connections
, Option
);
3354 // Check reserved bits 7:2
3356 if ((Connections
& 0xFC) != 0) {
3357 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3361 // Outbound Connection
3363 if (BIT (Connections
, 1) != 0) {
3364 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3366 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3370 // Inbound Connection
3372 if (BIT (Connections
, 0) != 0) {
3373 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3375 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3380 Display System Power Supply (Type 39) information.
3382 @param[in] Characteristics The device characteristics.
3383 @param[in] Option The device options.
3386 DisplaySPSCharacteristics (
3387 IN UINT16 Characteristics
,
3393 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3394 PRINT_INFO_OPTION (Characteristics
, Option
);
3397 // Check reserved bits 15:14
3399 if ((Characteristics
& 0xC000) != 0) {
3400 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3404 // Bits 13:10 - DMTF Power Supply Type
3406 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3407 Temp
= (Characteristics
& 0x1C00) >> 10;
3410 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3414 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3418 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3422 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3426 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3430 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3434 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3438 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3442 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3446 // Bits 9:7 - Status
3448 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3449 Temp
= (Characteristics
& 0x380) >> 7;
3452 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3456 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3460 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3464 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3468 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3472 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3476 // Bits 6:3 - DMTF Input Voltage Range Switching
3478 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3479 Temp
= (Characteristics
& 0x78) >> 3;
3482 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3486 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3490 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3494 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3498 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3502 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3506 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3511 // Power supply is unplugged from the wall
3513 if (BIT (Characteristics
, 2) != 0) {
3514 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3516 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3520 // Power supply is present
3522 if (BIT (Characteristics
, 1) != 0) {
3523 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3525 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3531 if (BIT (Characteristics
, 0) != 0) {
3532 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3534 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3539 Display TPM Device (Type 43) Characteristics.
3541 @param[in] Chara The information bits.
3542 @param[in] Option The optional information.
3545 DisplayTpmDeviceCharacteristics (
3553 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3557 PRINT_INFO_OPTION (Chara
, Option
);
3560 // Check all the bits and print information
3561 // This function does not use Table because table of bits
3562 // are designed not to deal with UINT64
3564 if (BIT (Chara
, 0) != 0) {
3565 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3568 if (BIT (Chara
, 1) != 0) {
3569 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3572 if (BIT (Chara
, 2) != 0) {
3573 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3576 if (BIT (Chara
, 3) != 0) {
3577 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3580 if (BIT (Chara
, 4) != 0) {
3581 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3584 if (BIT (Chara
, 5) != 0) {
3585 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3589 // Just print the Reserved
3591 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);