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 // Since PeerGroups has a variable number of entries, new fields added after PeerGroups are defined in
642 // a extended structure. Those fields can be referenced using SMBIOS_TABLE_TYPE9_EXTENDED structure.
643 Type9ExtendedStruct
= (SMBIOS_TABLE_TYPE9_EXTENDED
*)((UINT8
*)PeerGroupPtr
+ (PeerGroupCount
* sizeof (MISC_SLOT_PEER_GROUP
)));
644 DisplaySystemSlotHeight (Type9ExtendedStruct
->SlotHeight
, Option
);
645 DisplaySystemSlotPhysicalWidth (Type9ExtendedStruct
->SlotPhysicalWidth
, Option
);
646 DisplaySystemSlotInformation (Type9ExtendedStruct
->SlotInformation
, Option
);
654 // On Board Devices Information (Type 10)
659 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
660 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
661 ShellPrintEx (-1, -1, (((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n" : L
"Device Disabled\n");
662 DisplayOnboardDeviceTypes ((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x7F, Option
);
663 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
664 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
671 // Oem Strings (Type 11)
674 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
675 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
676 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Index
));
682 // System Configuration Options (Type 12)
685 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
686 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
687 ShellPrintEx (-1, -1, L
"%a\n", LibGetSmbiosString (Struct
, Index
));
693 // BIOS Language Information (Type 13)
696 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
697 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
698 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
699 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
703 // Group Associations (Type 14)
708 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
709 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
710 for (Index
= 0; Index
< NumOfItem
; Index
++) {
711 ShellPrintEx (-1, -1, L
"ItemType %u: %u\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
712 ShellPrintEx (-1, -1, L
"ItemHandle %u: %u\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
719 // System Event Log (Type 15)
725 UINT8
*AccessMethodAddress
;
727 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
728 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
729 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
730 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
731 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
732 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
733 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
734 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
735 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
736 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
738 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
740 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
743 // Display all Event Log type descriptors supported by system
745 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
746 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
747 DisplaySELTypes (Ptr
->LogType
, Option
);
748 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
751 if (Option
>= SHOW_DETAIL
) {
752 switch (Struct
->Type15
->AccessMethod
) {
754 AccessMethodAddress
= (UINT8
*)(UINTN
)(Struct
->Type15
->AccessMethodAddress
);
766 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
767 gShellDebug1HiiHandle
,
768 Struct
->Type15
->AccessMethod
770 return EFI_UNSUPPORTED
;
774 // Display Event Log Header
776 // Starting offset (or index) within the nonvolatile storage
777 // of the event-log's header, from the Access Method Address
779 DisplaySysEventLogHeader (
780 Struct
->Type15
->LogHeaderFormat
,
781 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
785 // Display all Event Log data
787 // Starting offset (or index) within the nonvolatile storage
788 // of the event-log's first data byte, from the Access Method Address(0x14)
790 DisplaySysEventLogData (
791 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
794 Struct
->Type15
->LogAreaLength
-
795 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
805 // Physical Memory Array (Type 16)
808 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
809 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
810 DisplayPMAErrorCorrectionTypes (
811 Struct
->Type16
->MemoryErrorCorrection
,
814 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
815 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
816 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
817 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
818 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
824 // Memory Device (Type 17)
827 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
828 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
829 PRINT_STRUCT_VALUE_H (Struct
, Type17
, TotalWidth
);
830 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DataWidth
);
831 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
832 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
833 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
834 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
835 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
836 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
837 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*)(UINTN
)&(Struct
->Type17
->TypeDetail
)), Option
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
839 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
840 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
841 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
842 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
843 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
844 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
847 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
848 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
849 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
852 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
853 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
854 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
855 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
858 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
859 if (Struct
->Hdr
->Length
> 0x28) {
860 DisplayMemoryDeviceMemoryTechnology (Struct
->Type17
->MemoryTechnology
, Option
);
861 DisplayMemoryDeviceMemoryOperatingModeCapability (Struct
->Type17
->MemoryOperatingModeCapability
.Uint16
, Option
);
862 PRINT_PENDING_STRING (Struct
, Type17
, FirmwareVersion
);
863 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleManufacturerID
);
864 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleProductID
);
865 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerManufacturerID
);
866 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerProductID
);
869 if (Struct
->Hdr
->Length
> 0x34) {
870 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, NonVolatileSize
);
873 if (Struct
->Hdr
->Length
> 0x3C) {
874 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, VolatileSize
);
877 if (Struct
->Hdr
->Length
> 0x44) {
878 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, CacheSize
);
881 if (Struct
->Hdr
->Length
> 0x4C) {
882 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, LogicalSize
);
886 if (AE_SMBIOS_VERSION (0x3, 0x3) && (Struct
->Hdr
->Length
> 0x54)) {
887 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ExtendedSpeed
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ExtendedConfiguredMemorySpeed
);
894 // 32-bit Memory Error Information (Type 18)
897 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
898 DisplayMemoryErrorGranularity (
899 Struct
->Type18
->ErrorGranularity
,
902 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
903 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
904 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
905 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
906 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
910 // Memory Array Mapped Address (Type 19)
913 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
914 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
915 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
916 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
917 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
918 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
919 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
925 // Memory Device Mapped Address (Type 20)
928 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
929 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
930 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
931 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
932 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
933 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
934 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
935 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
936 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
937 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
943 // Built-in Pointing Device (Type 21)
946 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
947 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
948 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
952 // Portable Battery (Type 22)
955 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
956 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
957 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
958 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
959 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
960 DisplayPBDeviceChemistry (
961 Struct
->Type22
->DeviceChemistry
,
964 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
965 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
966 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
967 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
968 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
969 DisplaySBDSManufactureDate (
970 Struct
->Type22
->SBDSManufactureDate
,
973 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
974 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
975 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
979 // System Reset (Type 23)
982 DisplaySystemResetCapabilities (
983 Struct
->Type23
->Capabilities
,
986 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
987 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
988 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
989 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
993 // Hardware Security (Type 24)
996 DisplayHardwareSecuritySettings (
997 Struct
->Type24
->HardwareSecuritySettings
,
1003 // System Power Controls (Type 25)
1006 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
1007 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
1008 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
1009 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
1010 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
1014 // Voltage Probe (Type 26)
1017 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
1018 DisplayVPLocation (*(UINT8
*)&(Struct
->Type26
->LocationAndStatus
), Option
);
1019 DisplayVPStatus (*(UINT8
*)&(Struct
->Type26
->LocationAndStatus
), Option
);
1020 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
1021 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
1022 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
1023 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
1024 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
1025 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
1026 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
1030 // Cooling Device (Type 27)
1033 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
1034 DisplayCoolingDeviceStatus (*(UINT8
*)&(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
1035 DisplayCoolingDeviceType (*(UINT8
*)&(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
1036 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
1037 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
1038 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
1039 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
1040 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
1046 // Temperature Probe (Type 28)
1049 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
1050 DisplayTemperatureProbeStatus (*(UINT8
*)&(Struct
->Type28
->LocationAndStatus
), Option
);
1051 DisplayTemperatureProbeLoc (*(UINT8
*)&(Struct
->Type28
->LocationAndStatus
), Option
);
1052 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
1053 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
1054 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
1055 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
1056 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
1057 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
1058 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
1062 // Electrical Current Probe (Type 29)
1065 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
1066 DisplayECPStatus (*(UINT8
*)&(Struct
->Type29
->LocationAndStatus
), Option
);
1067 DisplayECPLoc (*(UINT8
*)&(Struct
->Type29
->LocationAndStatus
), Option
);
1068 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
1069 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
1070 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
1071 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
1072 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
1073 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
1074 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
1078 // Out-of-Band Remote Access (Type 30)
1081 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
1082 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
1086 // Boot Integrity Services (BIS) Entry Point (Type 31)
1089 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
1093 // System Boot Information (Type 32)
1096 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
1097 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
1101 // 64-Bit Memory Error Information (Type 33)
1104 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
1105 DisplayMemoryErrorGranularity (
1106 Struct
->Type33
->ErrorGranularity
,
1109 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
1110 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
1111 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
1112 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
1113 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
1117 // Management Device (Type 34)
1120 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
1121 DisplayMDType (Struct
->Type34
->Type
, Option
);
1122 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
1123 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
1127 // Management Device Component (Type 35)
1130 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
1131 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
1132 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
1133 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
1137 // Management Device Threshold Data (Type 36)
1140 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
1141 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
1142 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
1143 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
1144 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
1145 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
1149 // Memory Channel (Type 37)
1155 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1156 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1157 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1159 Count
= Struct
->Type37
->MemoryDeviceCount
;
1160 Ptr
= Struct
->Type37
->MemoryDevice
;
1161 for (Index
= 0; Index
< Count
; Index
++) {
1162 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1163 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1164 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1171 // IPMI Device Information (Type 38)
1174 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1175 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1176 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1177 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1178 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1182 // System Power Supply (Type 39)
1185 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1186 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1187 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1188 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1189 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1190 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1191 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1192 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1193 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1194 DisplaySPSCharacteristics (
1195 *(UINT16
*)&(Struct
->Type39
->PowerSupplyCharacteristics
),
1198 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1199 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1200 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1204 // Additional Information (Type 40)
1208 UINT8 NumberOfEntries
;
1210 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1213 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1214 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1216 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1218 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1219 EntryLength
= Entries
->EntryLength
;
1220 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1221 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1222 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1223 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1224 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1225 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*)((UINT8
*)Entries
+ EntryLength
);
1232 // Onboard Devices Extended Information (Type 41)
1235 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1236 ShellPrintEx (-1, -1, (((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n" : L
"Device Disabled\n");
1237 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1238 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1239 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1240 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1241 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1245 // Management Controller Host Interface (Type 42)
1248 DisplayMCHostInterfaceType (Struct
->Type42
->InterfaceType
, Option
);
1249 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
1250 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceTypeSpecificDataLength
);
1251 PRINT_BIT_FIELD (Struct
, Type42
, InterfaceTypeSpecificData
, Struct
->Type42
->InterfaceTypeSpecificDataLength
);
1257 // TPM Device (Type 43)
1260 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1261 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1262 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1263 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1264 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1265 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1266 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*)(UINTN
)&(Struct
->Type43
->Characteristics
)), Option
);
1267 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1271 // Processor Additional Information (Type 44)
1274 DisplayProcessorArchitectureType (Struct
->Type44
->ProcessorSpecificBlock
.ProcessorArchType
, Option
);
1278 // Inactive (Type 126)
1281 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1285 // End-of-Table (Type 127)
1288 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1292 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1300 Display BIOS Information (Type 0) information.
1302 @param[in] Chara The information bits.
1303 @param[in] Option The optional information.
1306 DisplayBiosCharacteristics (
1314 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1318 PRINT_INFO_OPTION (Chara
, Option
);
1321 // Check all the bits and print information
1322 // This function does not use Table because table of bits
1323 // are designed not to deal with UINT64
1325 if (BIT (Chara
, 0) != 0) {
1326 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1329 if (BIT (Chara
, 1) != 0) {
1330 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1333 if (BIT (Chara
, 2) != 0) {
1334 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1337 if (BIT (Chara
, 3) != 0) {
1338 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1341 if (BIT (Chara
, 4) != 0) {
1342 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1345 if (BIT (Chara
, 5) != 0) {
1346 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1349 if (BIT (Chara
, 6) != 0) {
1350 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1353 if (BIT (Chara
, 7) != 0) {
1354 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1357 if (BIT (Chara
, 8) != 0) {
1358 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1361 if (BIT (Chara
, 9) != 0) {
1362 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1365 if (BIT (Chara
, 10) != 0) {
1366 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1369 if (BIT (Chara
, 11) != 0) {
1370 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1373 if (BIT (Chara
, 12) != 0) {
1374 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1377 if (BIT (Chara
, 13) != 0) {
1378 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1381 if (BIT (Chara
, 14) != 0) {
1382 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1385 if (BIT (Chara
, 15) != 0) {
1386 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1389 if (BIT (Chara
, 16) != 0) {
1390 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1393 if (BIT (Chara
, 17) != 0) {
1394 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1397 if (BIT (Chara
, 18) != 0) {
1398 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1401 if (BIT (Chara
, 19) != 0) {
1402 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1405 if (BIT (Chara
, 20) != 0) {
1406 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1409 if (BIT (Chara
, 21) != 0) {
1410 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1413 if (BIT (Chara
, 22) != 0) {
1414 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1417 if (BIT (Chara
, 23) != 0) {
1418 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1421 if (BIT (Chara
, 24) != 0) {
1422 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1425 if (BIT (Chara
, 25) != 0) {
1426 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1429 if (BIT (Chara
, 26) != 0) {
1430 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1433 if (BIT (Chara
, 27) != 0) {
1434 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1437 if (BIT (Chara
, 28) != 0) {
1438 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1441 if (BIT (Chara
, 29) != 0) {
1442 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1445 if (BIT (Chara
, 30) != 0) {
1446 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1449 if (BIT (Chara
, 31) != 0) {
1450 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1454 // Just print the Reserved
1456 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1457 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1461 Display Bios Characteristice extensions1 information.
1463 @param[in] Byte1 The information.
1464 @param[in] Option The optional information.
1467 DisplayBiosCharacteristicsExt1 (
1472 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1476 PRINT_INFO_OPTION (Byte1
, Option
);
1479 // check bit and print
1481 if (BIT (Byte1
, 0) != 0) {
1482 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1485 if (BIT (Byte1
, 1) != 0) {
1486 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1489 if (BIT (Byte1
, 2) != 0) {
1490 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1493 if (BIT (Byte1
, 3) != 0) {
1494 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1497 if (BIT (Byte1
, 4) != 0) {
1498 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1501 if (BIT (Byte1
, 5) != 0) {
1502 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1505 if (BIT (Byte1
, 6) != 0) {
1506 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1509 if (BIT (Byte1
, 7) != 0) {
1510 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1515 Display Bios Characteristice extensions2 information.
1517 @param[in] byte2 The information.
1518 @param[in] Option The optional information.
1521 DisplayBiosCharacteristicsExt2 (
1526 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1530 PRINT_INFO_OPTION (byte2
, Option
);
1532 if (BIT (byte2
, 0) != 0) {
1533 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1536 if (BIT (byte2
, 1) != 0) {
1537 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1540 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1541 if (BIT (byte2
, 2) != 0) {
1542 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1545 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1546 if (BIT (byte2
, 3) != 0) {
1547 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1550 if (BIT (byte2
, 4) != 0) {
1551 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1554 if (BIT (byte2
, 5) != 0) {
1555 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MCFG_SUPPORTED
), gShellDebug1HiiHandle
);
1558 if (BIT (byte2
, 6) != 0) {
1559 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MCFG_ENABLED
), gShellDebug1HiiHandle
);
1562 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1564 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1567 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1572 Display Processor Information (Type 4) information.
1574 @param[in] Family The family value.
1575 @param[in] Option The option value.
1578 DisplayProcessorFamily (
1584 // Print prompt message
1586 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1590 PRINT_INFO_OPTION (Family
, Option
);
1593 // Use switch to check
1597 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1601 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1613 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1617 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1637 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1641 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1645 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1649 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1653 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1657 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1661 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1665 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1669 Print (L
"M2 Family\n");
1673 Print (L
"Intel Celeron M\n");
1677 Print (L
"Intel Pentium 4 HT\n");
1681 Print (L
"AMD Duron\n");
1685 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1689 Print (L
"K6 Family\n");
1701 Print (L
"AMD Althon Processor Family\n");
1705 Print (L
"AMD 29000 Family\n");
1713 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1717 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1721 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1725 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1729 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1733 Print (L
"Power PC 620\n");
1737 Print (L
"Power PC 704\n");
1741 Print (L
"Power PC 750\n");
1745 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1749 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1753 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1757 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1761 Print (L
"Intel(R) Core(TM) M processor\n");
1765 Print (L
"Intel(R) Core(TM) m3 processor\n");
1769 Print (L
"Intel(R) Core(TM) m5 processor\n");
1773 Print (L
"Intel(R) Core(TM) m7 processor\n");
1777 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1781 Print (L
"Alpha 21064\n");
1785 Print (L
"Alpha 21066\n");
1789 Print (L
"Alpha 21164\n");
1793 Print (L
"Alpha 21164PC\n");
1797 Print (L
"Alpha 21164a\n");
1801 Print (L
"Alpha 21264\n");
1805 Print (L
"Alpha 21364\n");
1809 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1813 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1817 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1821 Print (L
"AMD Opteron 6100 Series Processor\n");
1825 Print (L
"AMD Opteron 4100 Series Processor\n");
1829 Print (L
"AMD Opteron 6200 Series Processor\n");
1833 Print (L
"AMD Opteron 4200 Series Processor\n");
1837 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1841 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1845 Print (L
"MIPS R4000\n");
1849 Print (L
"MIPS R4200\n");
1853 Print (L
"MIPS R4400\n");
1857 Print (L
"MIPS R4600\n");
1861 Print (L
"MIPS R10000\n");
1865 Print (L
"AMD C-Series Processor\n");
1869 Print (L
"AMD E-Series Processor\n");
1873 Print (L
"AMD A-Series Processor\n");
1877 Print (L
"AMD G-Series Processor\n");
1881 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1885 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1889 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1893 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1897 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1901 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1905 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1909 Print (L
"SuperSparc\n");
1913 Print (L
"microSparc II\n");
1917 Print (L
"microSparc IIep\n");
1921 Print (L
"UltraSparc\n");
1925 Print (L
"UltraSparc II\n");
1929 Print (L
"UltraSparcIIi\n");
1933 Print (L
"UltraSparcIII\n");
1937 Print (L
"UltraSparcIIIi\n");
1941 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1965 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1969 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1973 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1977 Print (L
"AMD Opteron(TM) A-Series Processor\n");
1981 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
1985 Print (L
"AMD Zen Processor Family\n");
1989 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1993 Print (L
"Crusoe TM5000\n");
1997 Print (L
"Crusoe TM3000\n");
2001 Print (L
"Efficeon TM8000\n");
2005 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
2009 Print (L
"Itanium\n");
2013 Print (L
"AMD Athlon64\n");
2017 Print (L
"AMD Opteron\n");
2021 Print (L
"AMD Sempron\n");
2025 Print (L
"AMD Turion64 Mobile\n");
2029 Print (L
"Dual-Core AMD Opteron\n");
2033 Print (L
"AMD Athlon 64X2 DualCore\n");
2037 Print (L
"AMD Turion 64X2 Mobile\n");
2041 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2045 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
2049 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
2053 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
2057 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
2061 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
2065 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
2069 Print (L
"PA-RISC 8500\n");
2073 Print (L
"PA-RISC 8000\n");
2077 Print (L
"PA-RISC 7300LC\n");
2081 Print (L
"PA-RISC 7200\n");
2085 Print (L
"PA-RISC 7100LC\n");
2089 Print (L
"PA-RISC 7100\n");
2093 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
2097 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2101 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2105 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2109 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2113 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2117 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
2121 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
2125 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2129 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2133 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
2137 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2141 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2145 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2149 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2153 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2157 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
2161 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2165 Print (L
"Pentium 4 processor\n");
2169 Print (L
"Intel Xeon Processor\n");
2173 Print (L
"AS400 Family\n");
2177 Print (L
"Intel Xeon processor MP\n");
2181 Print (L
"AMD Althon XP Processor Family\n");
2185 Print (L
"AMD Althon MP Promcessor Family\n");
2189 Print (L
"Intel Itanium 2 processor\n");
2193 Print (L
"Intel Penium M processor\n");
2197 Print (L
"Intel Celeron D processor\n");
2201 Print (L
"Intel Pentium D processor\n");
2205 Print (L
"Intel Pentium Processor Extreme Edition\n");
2209 Print (L
"Intel Core Solo Processor\n");
2213 Print (L
"Intel Core 2 Duo Processor\n");
2217 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2221 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2225 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2229 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2233 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2237 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2241 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2245 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2249 Print (L
"IBM 390\n");
2265 Print (L
"zArchitecture\n");
2269 Print (L
"Intel Core i5 processor\n");
2273 Print (L
"Intel Core i3 processor\n");
2277 Print (L
"Intel Core i9 processor\n");
2281 Print (L
"ViaC7M\n");
2285 Print (L
"ViaC7D\n");
2297 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2301 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2305 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2309 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2313 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2317 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2321 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2325 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2329 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2333 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2337 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2341 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2345 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2349 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2353 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2357 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2361 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2365 Print (L
"AMD Phenom II Processor Family\n");
2369 Print (L
"AMD Althon II Processor Family\n");
2373 Print (L
"Six-Core AMD Opteron Processor Family\n");
2377 Print (L
"AMD Sempron M Processor Family\n");
2389 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2398 Display processor family information.
2400 @param[in] Family2 The family value.
2401 @param[in] Option The option value.
2404 DisplayProcessorFamily2 (
2410 // Print prompt message
2412 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2417 PRINT_INFO_OPTION (Family2
, Option
);
2420 // Use switch to check
2444 Print (L
"StrongARM\n");
2452 Print (L
"MediaGX\n");
2460 Print (L
"WinChip\n");
2468 Print (L
"Video Processor\n");
2472 Print (L
"RISC-V RV32\n");
2476 Print (L
"RISC-V RV64\n");
2480 Print (L
"RISC-V RV128\n");
2484 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2489 Display processor voltage information.
2491 @param[in] Voltage The Voltage.
2492 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2493 Bits 6:4 Reserved, must be zero
2494 Bits 3:0 Voltage Capability.
2495 A Set bit indicates that the voltage is supported.
2499 Bit 3 - Reserved, must be zero.
2502 Setting of multiple bits indicates the socket is configurable
2503 If bit 7 is set to 1, the remaining seven bits of the field are set to
2504 contain the processor's current voltage times 10.
2505 For example, the field value for a processor voltage of 1.8 volts would be
2506 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2508 @param[in] Option The option.
2511 DisplayProcessorVoltage (
2516 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2520 PRINT_INFO_OPTION (Voltage
, Option
);
2522 if (BIT (Voltage
, 7) != 0) {
2523 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2525 if (BIT (Voltage
, 0) != 0) {
2526 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2529 if (BIT (Voltage
, 1) != 0) {
2530 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2533 if (BIT (Voltage
, 2) != 0) {
2534 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2538 // check the reserved zero bits:
2540 if (BIT (Voltage
, 3) != 0) {
2541 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2544 if (BIT (Voltage
, 4) != 0) {
2545 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2548 if (BIT (Voltage
, 5) != 0) {
2549 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2552 if (BIT (Voltage
, 6) != 0) {
2553 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2559 Display processor information.
2561 @param[in] Status The status.
2562 Bit 7 Reserved, must be 0
2563 Bit 6 CPU Socket Populated
2564 1 - CPU Socket Populated
2565 0 - CPU Socket Unpopulated
2566 Bits 5:3 Reserved, must be zero
2570 2h - CPU Disabled by User via BIOS Setup
2571 3h - CPU Disabled By BIOS (POST Error)
2572 4h - CPU is Idle, waiting to be enabled.
2576 @param[in] Option The option
2579 DisplayProcessorStatus (
2584 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2585 PRINT_INFO_OPTION (Status
, Option
);
2587 if (BIT (Status
, 7) != 0) {
2588 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2589 } else if (BIT (Status
, 5) != 0) {
2590 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2591 } else if (BIT (Status
, 4) != 0) {
2592 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2593 } else if (BIT (Status
, 3) != 0) {
2594 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2600 if (BIT (Status
, 6) != 0) {
2601 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2603 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2609 switch (Status
& 0x07) {
2611 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2615 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2619 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2623 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2627 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2631 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2635 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2640 Display information about Memory Controller Information (Type 5).
2642 @param[in] Size Memory size.
2643 @param[in] SlotNum Which slot is this about.
2644 @param[in] Option Option for the level of detail output required.
2647 DisplayMaxMemoryModuleSize (
2655 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2657 // MaxSize is determined by follow formula
2659 MaxSize
= (UINTN
)1 << Size
;
2660 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2662 if (Option
>= SHOW_DETAIL
) {
2663 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2664 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2669 Display information about memory configuration handles.
2671 @param[in] Handles The buffer of handles to output info on.
2672 @param[in] SlotNum The number of handles in the above buffer.
2673 @param[in] Option Option for the level of detail output required.
2676 DisplayMemoryModuleConfigHandles (
2684 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2686 if (Option
>= SHOW_DETAIL
) {
2688 // No handle, Handles is INVALID.
2694 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2695 for (Index
= 0; Index
< SlotNum
; Index
++) {
2696 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2702 Display Memory Module Information (Type 6).
2704 @param[in] BankConnections
2708 DisplayMmBankConnections (
2709 IN UINT8 BankConnections
,
2716 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2720 PRINT_INFO_OPTION (BankConnections
, Option
);
2723 // Divide it to high and low
2725 High
= (UINT8
)(BankConnections
& 0xF0);
2726 Low
= (UINT8
)(BankConnections
& 0x0F);
2729 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2731 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2735 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2737 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2743 Display memory informcation.
2746 where 2**n is the size in MB with three special-case values:
2747 7Dh Not determinable (Installed Size only)
2748 7Eh Module is installed, but no memory has been enabled
2750 Bit 7 Defines whether the memory module has a single- (0)
2751 or double-bank (1) connection.
2753 @param[in] Size - The size
2754 @param[in] Option - The option
2757 DisplayMmMemorySize (
2764 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2768 PRINT_INFO_OPTION (Size
, Option
);
2771 // Get the low bits(0-6 bit)
2773 Value
= (UINT8
)(Size
& 0x7F);
2774 if (Value
== 0x7D) {
2775 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2776 } else if (Value
== 0x7E) {
2777 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2778 } else if (Value
== 0x7F) {
2779 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2781 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2784 if (BIT (Size
, 7) != 0) {
2785 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2787 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2792 Display Cache Configuration.
2794 @param[in] CacheConfiguration Cache Configuration.
2795 Bits 15:10 Reserved, must be 0
2796 Bits 9:8 Operational Mode
2799 2h - Varies with Memory Address
2801 Bit 7 Enabled/Disabled
2809 Bit 4 Reserved, must be zero
2810 Bit 3 Cache Socketed
2813 Bits 2:0 Cache Level
2814 1 through 8 (For example, an L1 cache would
2815 use value 000b and an L3 cache would use 010b.)
2817 @param[in] Option The option
2820 DisplayCacheConfiguration (
2821 IN UINT16 CacheConfiguration
,
2825 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2826 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2828 if (BIT (CacheConfiguration
, 15) != 0) {
2829 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2830 } else if (BIT (CacheConfiguration
, 14) != 0) {
2831 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2832 } else if (BIT (CacheConfiguration
, 13) != 0) {
2833 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2834 } else if (BIT (CacheConfiguration
, 12) != 0) {
2835 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2836 } else if (BIT (CacheConfiguration
, 11) != 0) {
2837 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2838 } else if (BIT (CacheConfiguration
, 10) != 0) {
2839 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2840 } else if (BIT (CacheConfiguration
, 4) != 0) {
2841 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2847 switch ((CacheConfiguration
& 0x300) >> 8) {
2849 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2853 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2857 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2861 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2868 if (BIT (CacheConfiguration
, 7) != 0) {
2869 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2871 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2877 switch ((CacheConfiguration
& 0x60) >> 5) {
2879 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2883 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2887 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2891 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2898 if (BIT (CacheConfiguration
, 3) != 0) {
2899 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2901 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2904 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2908 The Slot ID field of the System Slot structure provides a mechanism to
2909 correlate the physical attributes of the slot to its logical access method
2910 (which varies based on the Slot Type field).
2912 @param[in] SlotId - The slot ID
2913 @param[in] SlotType - The slot type
2914 @param[in] Option - The Option
2917 DisplaySystemSlotId (
2923 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2927 PRINT_INFO_OPTION (SlotType
, Option
);
2934 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2935 if ((SlotId
> 0) && (SlotId
< 15)) {
2936 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2938 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2947 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2948 if ((SlotId
> 0) && (SlotId
< 15)) {
2949 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2951 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2960 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2967 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2974 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2978 if (((SlotType
>= 0x0E) && (SlotType
<= 0x12)) || ((SlotType
>= 0xA6) && (SlotType
<= 0xB6))) {
2979 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2981 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2987 Display System Boot Information (Type 32) information.
2989 @param[in] Parameter The parameter.
2990 @param[in] Option The options.
2993 DisplaySystemBootStatus (
2998 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
3002 PRINT_INFO_OPTION (Parameter
, Option
);
3005 // Check value and print
3007 if (Parameter
== 0) {
3008 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
3009 } else if (Parameter
== 1) {
3010 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
3011 } else if (Parameter
== 2) {
3012 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
3013 } else if (Parameter
== 3) {
3014 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
3015 } else if (Parameter
== 4) {
3016 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
3017 } else if (Parameter
== 5) {
3018 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
3019 } else if (Parameter
== 6) {
3020 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
3021 } else if (Parameter
== 7) {
3022 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
3023 } else if (Parameter
== 8) {
3024 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
3025 } else if ((Parameter
>= 9) && (Parameter
<= 127)) {
3026 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
3027 } else if ((Parameter
>= 128) && (Parameter
<= 191)) {
3028 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
3029 } else if (Parameter
>= 192) {
3030 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
3032 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
3037 Display Portable Battery (Type 22) information.
3039 The date the cell pack was manufactured, in packed format:
3040 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
3041 Bits 8:5 Month, in the range 1 to 12.
3042 Bits 4:0 Date, in the range 1 to 31.
3043 For example, 01 February 2000 would be identified as
3044 0010 1000 0100 0001b (0x2841).
3046 @param[in] Date The date
3047 @param[in] Option The option
3050 DisplaySBDSManufactureDate (
3059 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
3060 PRINT_INFO_OPTION (Date
, Option
);
3064 Day
= Date
& 0x001F;
3065 Month
= (Date
& 0x01E0) >> 5;
3066 Year
= ((Date
& 0xFE00) >> 9) + 1980;
3067 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
3071 Display System Reset (Type 23) information.
3074 Identifies the system-reset capabilities for the system.
3075 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
3076 Bit 5 System contains a watchdog timer, either True (1) or False (0).
3077 Bits 4:3 Boot Option on Limit.
3078 Identifies the system action to be taken when the Reset Limit is reached, one of:
3079 00b Reserved, do not use.
3080 01b Operating system
3081 10b System utilities
3082 11b Do not rebootBits
3083 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
3084 00b Reserved, do not use.
3085 01b Operating system
3086 10b System utilities
3089 1b The system reset is enabled by the user
3090 0b The system reset is not enabled by the user
3092 @param[in] Reset Reset
3093 @param[in] Option The option
3096 DisplaySystemResetCapabilities (
3103 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
3104 PRINT_INFO_OPTION (Reset
, Option
);
3107 // Check reserved bits 7:6
3109 if ((Reset
& 0xC0) != 0) {
3110 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
3116 if (BIT (Reset
, 5) != 0) {
3117 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
3119 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
3123 // Boot Option on Limit
3125 Temp
= (Reset
& 0x18) >> 3;
3126 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
3129 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3133 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3137 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3141 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3148 Temp
= (Reset
& 0x06) >> 1;
3149 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
3152 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3156 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3160 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3164 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3169 // Reset enable flag
3171 if ((Reset
& 0x01) != 0) {
3172 Print (L
"The system reset is enabled by the user\n");
3174 Print (L
"The system reset is disabled by the user\n");
3179 Display Hardware Security (Type 24) information.
3182 Identifies the password and reset status for the system:
3184 Bits 7:6 Power-on Password Status, one of:
3189 Bits 5:4 Keyboard Password Status, one of:
3194 Bits 3:2 Administrator Password Status, one of:
3199 Bits 1:0 Front Panel Reset Status, one of:
3205 @param[in] Settings The device settings.
3206 @param[in] Option The device options.
3209 DisplayHardwareSecuritySettings (
3216 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3217 PRINT_INFO_OPTION (Settings
, Option
);
3220 // Power-on Password Status
3222 Temp
= (Settings
& 0xC0) >> 6;
3223 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3226 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3230 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3234 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3238 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3243 // Keyboard Password Status
3245 Temp
= (Settings
& 0x30) >> 4;
3246 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3249 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3253 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3257 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3261 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3266 // Administrator Password Status
3268 Temp
= (Settings
& 0x0C) >> 2;
3269 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3272 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3276 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3280 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3284 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3289 // Front Panel Reset Status
3291 Temp
= Settings
& 0x3;
3292 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3295 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3299 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3303 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3307 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3313 Display Out-of-Band Remote Access (Type 30) information.
3315 @param[in] Connections The device characteristics.
3316 @param[in] Option The device options.
3319 DisplayOBRAConnections (
3320 IN UINT8 Connections
,
3324 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3325 PRINT_INFO_OPTION (Connections
, Option
);
3328 // Check reserved bits 7:2
3330 if ((Connections
& 0xFC) != 0) {
3331 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3335 // Outbound Connection
3337 if (BIT (Connections
, 1) != 0) {
3338 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3340 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3344 // Inbound Connection
3346 if (BIT (Connections
, 0) != 0) {
3347 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3349 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3354 Display System Power Supply (Type 39) information.
3356 @param[in] Characteristics The device characteristics.
3357 @param[in] Option The device options.
3360 DisplaySPSCharacteristics (
3361 IN UINT16 Characteristics
,
3367 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3368 PRINT_INFO_OPTION (Characteristics
, Option
);
3371 // Check reserved bits 15:14
3373 if ((Characteristics
& 0xC000) != 0) {
3374 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3378 // Bits 13:10 - DMTF Power Supply Type
3380 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3381 Temp
= (Characteristics
& 0x1C00) >> 10;
3384 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3388 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3392 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3396 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3400 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3404 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3408 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3412 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3416 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3420 // Bits 9:7 - Status
3422 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3423 Temp
= (Characteristics
& 0x380) >> 7;
3426 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3430 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3434 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3438 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3442 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3446 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3450 // Bits 6:3 - DMTF Input Voltage Range Switching
3452 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3453 Temp
= (Characteristics
& 0x78) >> 3;
3456 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3460 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3464 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3468 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3472 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3476 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3480 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3485 // Power supply is unplugged from the wall
3487 if (BIT (Characteristics
, 2) != 0) {
3488 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3490 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3494 // Power supply is present
3496 if (BIT (Characteristics
, 1) != 0) {
3497 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3499 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3505 if (BIT (Characteristics
, 0) != 0) {
3506 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3508 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3513 Display TPM Device (Type 43) Characteristics.
3515 @param[in] Chara The information bits.
3516 @param[in] Option The optional information.
3519 DisplayTpmDeviceCharacteristics (
3527 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3531 PRINT_INFO_OPTION (Chara
, Option
);
3534 // Check all the bits and print information
3535 // This function does not use Table because table of bits
3536 // are designed not to deal with UINT64
3538 if (BIT (Chara
, 0) != 0) {
3539 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3542 if (BIT (Chara
, 1) != 0) {
3543 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3546 if (BIT (Chara
, 2) != 0) {
3547 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3550 if (BIT (Chara
, 3) != 0) {
3551 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3554 if (BIT (Chara
, 4) != 0) {
3555 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3558 if (BIT (Chara
, 5) != 0) {
3559 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3563 // Just print the Reserved
3565 ShellPrintHiiEx (-1, -1, NULL
, STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);