2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
11 #include "UefiShellDebug1CommandsLib.h"
12 #include "PrintInfo.h"
13 #include "LibSmbiosView.h"
14 #include "QueryTable.h"
15 #include "EventLogInfo.h"
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": %d\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.
104 SrcBuffer
= (UINT8
*) Src
;
105 DestBuffer
= (UINT8
*) Dest
;
109 while ((Length
--)!=0) {
110 *DestBuffer
++ = *SrcBuffer
++;
113 // append a NULL terminator
119 //////////////////////////////////////////////
121 // Functions below is to show the information
125 Print the info of EPS(Entry Point Structure).
127 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
128 @param[in] Option Display option.
132 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
139 if (SmbiosTable
== NULL
) {
140 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
144 if (Option
== SHOW_NONE
) {
148 if (Option
>= SHOW_NORMAL
) {
149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
150 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
152 ShellPrintHiiEx(-1,-1,NULL
,
153 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
154 gShellDebug1HiiHandle
,
155 SmbiosTable
->EntryPointStructureChecksum
157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
158 ShellPrintHiiEx(-1,-1,NULL
,
159 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
160 gShellDebug1HiiHandle
,
161 SmbiosTable
->MajorVersion
,
162 SmbiosTable
->MinorVersion
164 ShellPrintHiiEx(-1,-1,NULL
,
165 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
166 gShellDebug1HiiHandle
,
167 SmbiosTable
->NumberOfSmbiosStructures
169 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
170 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
171 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
175 // If SHOW_ALL, also print followings.
177 if (Option
>= SHOW_DETAIL
) {
178 ShellPrintHiiEx(-1,-1,NULL
,
179 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
180 gShellDebug1HiiHandle
,
181 SmbiosTable
->EntryPointRevision
183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
185 // Since raw data is not string, add a NULL terminater.
187 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
190 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
191 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
198 Print the info of 64-bit EPS(Entry Point Structure).
200 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
201 @param[in] Option Display option.
204 Smbios64BitPrintEPSInfo (
205 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
211 if (SmbiosTable
== NULL
) {
212 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
216 if (Option
== SHOW_NONE
) {
220 if (Option
>= SHOW_NORMAL
) {
221 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
223 MemToString (Anchor
, SmbiosTable
->AnchorString
, 5);
224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
226 ShellPrintHiiEx(-1,-1,NULL
,
227 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
228 gShellDebug1HiiHandle
,
229 SmbiosTable
->EntryPointStructureChecksum
232 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
234 ShellPrintHiiEx(-1,-1,NULL
,
235 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
236 gShellDebug1HiiHandle
,
237 SmbiosTable
->MajorVersion
,
238 SmbiosTable
->MinorVersion
241 ShellPrintHiiEx(-1,-1,NULL
,
242 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV
),
243 gShellDebug1HiiHandle
,
247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->TableMaximumSize
);
249 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
253 // If SHOW_ALL, also print followings.
255 if (Option
>= SHOW_DETAIL
) {
256 ShellPrintHiiEx(-1,-1,NULL
,
257 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
258 gShellDebug1HiiHandle
,
259 SmbiosTable
->EntryPointRevision
267 This function print the content of the structure pointed by Struct.
269 @param[in] Struct Point to the structure to be printed.
270 @param[in] Option Print option of information detail.
272 @retval EFI_SUCCESS Successfully Printing this function.
273 @retval EFI_INVALID_PARAMETER Invalid Structure.
274 @retval EFI_UNSUPPORTED Unsupported.
277 SmbiosPrintStructure (
278 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
285 if (Struct
== NULL
) {
286 return EFI_INVALID_PARAMETER
;
289 if (Option
== SHOW_NONE
) {
293 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
296 // Display structure header
298 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
300 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
302 if (Option
== SHOW_OUTLINE
) {
306 switch (Struct
->Hdr
->Type
) {
308 // BIOS Information (Type 0)
311 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
312 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
313 PRINT_STRUCT_VALUE_H (Struct
, Type0
, BiosSegment
);
314 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
315 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
317 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type0
->BiosCharacteristics
)), Option
);
319 if (Struct
->Hdr
->Length
> 0x12) {
320 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
322 if (Struct
->Hdr
->Length
> 0x13) {
323 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
326 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
327 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
328 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
329 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
330 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
332 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x18)) {
337 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTENDED_BIOS_SIZE
),
338 gShellDebug1HiiHandle
,
339 Struct
->Type0
->ExtendedBiosSize
.Size
,
340 (Struct
->Type0
->ExtendedBiosSize
.Unit
== 0x0) ? L
"MB": L
"GB"
346 // System Information (Type 1)
349 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
350 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
351 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
352 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
353 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
354 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
355 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
356 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
357 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
363 // Baseboard Information (Type 2)
366 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
367 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
368 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
369 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
370 if (Struct
->Hdr
->Length
> 0x8) {
371 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
372 DisplayBaseBoardFeatureFlags (*(UINT8
*) &Struct
->Type2
->FeatureFlag
, Option
);
373 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
374 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
375 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
380 // System Enclosure (Type 3)
383 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
384 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
385 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
386 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
387 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
388 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
389 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
390 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
391 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
392 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
393 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
394 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
395 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
396 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
397 if (AE_SMBIOS_VERSION (0x2, 0x3)) {
398 if (Struct
->Hdr
->Length
> 0xD) {
399 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
401 if (Struct
->Hdr
->Length
> 0x11) {
402 PRINT_STRUCT_VALUE (Struct
, Type3
, Height
);
404 if (Struct
->Hdr
->Length
> 0x12) {
405 PRINT_STRUCT_VALUE (Struct
, Type3
, NumberofPowerCords
);
408 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
409 if (Struct
->Hdr
->Length
> (0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
))) {
410 PRINT_SMBIOS_STRING (Struct
, Buffer
[0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
)], SKUNumber
);
416 // Processor Information (Type 4)
419 PRINT_SMBIOS_STRING (Struct
, Struct
->Type4
->Socket
, SocketDesignation
)
420 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
421 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
422 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
424 // Get family from ProcessorFamily2 field
426 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
428 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
430 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
431 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
432 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
433 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
434 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
435 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
436 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
437 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
438 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
439 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
440 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
441 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
442 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
443 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
444 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
445 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
447 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
448 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
449 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
450 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
451 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
453 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
454 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
455 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
456 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
461 // Memory Controller Information (Type 5)
466 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
468 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
469 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
471 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
472 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
473 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
474 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
475 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
476 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
477 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
478 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
480 // According to SMBIOS Specification, offset 0x0F
482 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
483 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
488 // Memory Module Information (Type 6)
491 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
492 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
493 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
494 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
495 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
496 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
497 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
498 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
499 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
503 // Cache Information (Type 7)
506 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
507 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
508 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
509 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
510 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
511 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
512 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
513 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
514 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
515 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
516 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
517 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x13)) {
518 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize2
);
519 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize2
);
524 // Port Connector Information (Type 8)
527 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
528 Print (L
"Internal ");
529 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
530 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
531 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
532 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
533 DisplayPortType (Struct
->Type8
->PortType
, Option
);
537 // System Slots (Type 9)
541 MISC_SLOT_PEER_GROUP
*PeerGroupPtr
;
542 UINT8 PeerGroupCount
;
544 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
545 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
546 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
547 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
548 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
549 DisplaySystemSlotId (
550 Struct
->Type9
->SlotID
,
551 Struct
->Type9
->SlotType
,
554 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
555 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
556 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
557 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
558 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
559 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
561 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
562 if (Struct
->Hdr
->Length
> 0x11) {
563 PRINT_STRUCT_VALUE (Struct
, Type9
, DataBusWidth
);
565 if (Struct
->Hdr
->Length
> 0x12) {
566 PRINT_STRUCT_VALUE (Struct
, Type9
, PeerGroupingCount
);
568 PeerGroupCount
= Struct
->Type9
->PeerGroupingCount
;
569 PeerGroupPtr
= Struct
->Type9
->PeerGroups
;
570 for (Index
= 0; Index
< PeerGroupCount
; Index
++) {
571 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_PEER_GROUPS
), gShellDebug1HiiHandle
, Index
+ 1);
572 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SEGMENT_GROUP_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].SegmentGroupNum
);
573 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BUS_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].BusNum
);
574 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_FUNC_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].DevFuncNum
);
575 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DATA_BUS_WIDTH
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].DataBusWidth
);
583 // On Board Devices Information (Type 10)
588 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
589 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
590 ShellPrintEx(-1,-1,(((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
591 DisplayOnboardDeviceTypes ((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x7F, Option
);
592 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
593 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
599 // Oem Strings (Type 11)
602 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
603 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
604 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
609 // System Configuration Options (Type 12)
612 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
613 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
614 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
619 // BIOS Language Information (Type 13)
622 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
623 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
624 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
625 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
629 // Group Associations (Type 14)
634 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
635 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
636 for (Index
= 0; Index
< NumOfItem
; Index
++) {
637 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
638 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
644 // System Event Log (Type 15)
650 UINT8
*AccessMethodAddress
;
652 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
653 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
654 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
655 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
656 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
657 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
658 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
659 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
660 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
661 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
663 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
665 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
668 // Display all Event Log type descriptors supported by system
670 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
671 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
672 DisplaySELTypes (Ptr
->LogType
, Option
);
673 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
676 if (Option
>= SHOW_DETAIL
) {
677 switch (Struct
->Type15
->AccessMethod
) {
679 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
687 ShellPrintHiiEx(-1,-1,NULL
,
688 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
689 gShellDebug1HiiHandle
,
690 Struct
->Type15
->AccessMethod
692 return EFI_UNSUPPORTED
;
695 // Display Event Log Header
697 // Starting offset (or index) within the nonvolatile storage
698 // of the event-log's header, from the Access Method Address
700 DisplaySysEventLogHeader (
701 Struct
->Type15
->LogHeaderFormat
,
702 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
706 // Display all Event Log data
708 // Starting offset (or index) within the nonvolatile storage
709 // of the event-log's first data byte, from the Access Method Address(0x14)
711 DisplaySysEventLogData (
712 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
715 Struct
->Type15
->LogAreaLength
-
716 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
726 // Physical Memory Array (Type 16)
729 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
730 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
731 DisplayPMAErrorCorrectionTypes (
732 Struct
->Type16
->MemoryErrorCorrection
,
735 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
736 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
737 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
738 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
739 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
744 // Memory Device (Type 17)
747 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
748 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
749 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
750 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
751 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
752 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
753 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
754 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
755 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
756 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
757 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
758 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
759 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
760 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
761 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
762 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
763 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
764 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
766 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
767 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
768 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
770 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
771 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
772 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
773 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
775 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
776 if (Struct
->Hdr
->Length
> 0x28) {
777 DisplayMemoryDeviceMemoryTechnology (Struct
->Type17
->MemoryTechnology
, Option
);
778 DisplayMemoryDeviceMemoryOperatingModeCapability (Struct
->Type17
->MemoryOperatingModeCapability
.Uint16
, Option
);
779 PRINT_PENDING_STRING (Struct
, Type17
, FirwareVersion
);
780 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleManufacturerID
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleProductID
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerManufacturerID
);
783 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerProductID
);
785 if (Struct
->Hdr
->Length
> 0x34) {
786 PRINT_STRUCT_VALUE_H (Struct
, Type17
, NonVolatileSize
);
788 if (Struct
->Hdr
->Length
> 0x3C) {
789 PRINT_STRUCT_VALUE_H (Struct
, Type17
, VolatileSize
);
791 if (Struct
->Hdr
->Length
> 0x44) {
792 PRINT_STRUCT_VALUE_H (Struct
, Type17
, CacheSize
);
794 if (Struct
->Hdr
->Length
> 0x4C) {
795 PRINT_STRUCT_VALUE_H (Struct
, Type17
, LogicalSize
);
801 // 32-bit Memory Error Information (Type 18)
804 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
805 DisplayMemoryErrorGranularity (
806 Struct
->Type18
->ErrorGranularity
,
809 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
810 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
811 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
812 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
813 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
817 // Memory Array Mapped Address (Type 19)
820 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
821 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
822 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
823 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
824 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
825 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
826 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
831 // Memory Device Mapped Address (Type 20)
834 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
835 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
836 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
837 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
839 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
840 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
841 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
842 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
843 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
848 // Built-in Pointing Device (Type 21)
851 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
852 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
853 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
857 // Portable Battery (Type 22)
860 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
861 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
862 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
863 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
864 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
865 DisplayPBDeviceChemistry (
866 Struct
->Type22
->DeviceChemistry
,
869 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
870 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
871 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
872 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
873 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
874 DisplaySBDSManufactureDate (
875 Struct
->Type22
->SBDSManufactureDate
,
878 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
879 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
880 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
884 // System Reset (Type 23)
887 DisplaySystemResetCapabilities (
888 Struct
->Type23
->Capabilities
,
891 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
892 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
893 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
894 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
898 // Hardware Security (Type 24)
901 DisplayHardwareSecuritySettings (
902 Struct
->Type24
->HardwareSecuritySettings
,
908 // System Power Controls (Type 25)
911 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
912 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
913 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
914 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
915 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
919 // Voltage Probe (Type 26)
922 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
923 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
924 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
925 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
926 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
927 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
928 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
929 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
930 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
931 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
935 // Cooling Device (Type 27)
938 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
939 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
940 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
941 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
942 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
943 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
944 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
945 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
950 // Temperature Probe (Type 28)
953 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
954 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
955 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
956 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
957 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
958 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
959 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
960 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
961 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
962 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
966 // Electrical Current Probe (Type 29)
969 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
970 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
971 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
972 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
973 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
974 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
975 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
976 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
977 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
978 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
982 // Out-of-Band Remote Access (Type 30)
985 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
986 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
990 // Boot Integrity Services (BIS) Entry Point (Type 31)
993 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
997 // System Boot Information (Type 32)
1000 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
1001 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
1005 // 64-Bit Memory Error Information (Type 33)
1008 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
1009 DisplayMemoryErrorGranularity (
1010 Struct
->Type33
->ErrorGranularity
,
1013 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
1014 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
1015 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
1016 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
1017 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
1021 // Management Device (Type 34)
1024 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
1025 DisplayMDType (Struct
->Type34
->Type
, Option
);
1026 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
1027 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
1031 // Management Device Component (Type 35)
1034 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
1035 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
1036 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
1037 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
1041 // Management Device Threshold Data (Type 36)
1044 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
1045 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
1046 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
1047 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
1048 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
1049 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
1053 // Memory Channel (Type 37)
1059 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1060 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1061 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1063 Count
= Struct
->Type37
->MemoryDeviceCount
;
1064 Ptr
= Struct
->Type37
->MemoryDevice
;
1065 for (Index
= 0; Index
< Count
; Index
++) {
1066 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1068 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1074 // IPMI Device Information (Type 38)
1077 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1078 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1079 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1080 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1081 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1085 // System Power Supply (Type 39)
1088 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1089 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1090 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1091 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1092 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1093 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1094 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1095 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1096 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1097 DisplaySPSCharacteristics (
1098 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1101 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1102 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1103 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1107 // Additional Information (Type 40)
1111 UINT8 NumberOfEntries
;
1113 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1116 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1117 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1119 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1121 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1122 EntryLength
= Entries
->EntryLength
;
1123 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1124 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1125 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1126 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1127 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1128 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1134 // Onboard Devices Extended Information (Type 41)
1137 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1138 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1139 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1140 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1141 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1142 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1143 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1147 // Management Controller Host Interface (Type 42)
1150 DisplayMCHostInterfaceType (Struct
->Type42
->InterfaceType
, Option
);
1151 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
1152 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceTypeSpecificDataLength
);
1153 PRINT_BIT_FIELD (Struct
, Type42
, InterfaceTypeSpecificData
, Struct
->Type42
->InterfaceTypeSpecificDataLength
);
1158 // TPM Device (Type 43)
1161 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1162 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1163 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1164 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1165 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1166 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1167 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type43
->Characteristics
)), Option
);
1168 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1172 // Inactive (Type 126)
1175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1179 // End-of-Table (Type 127)
1182 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1186 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1194 Display BIOS Information (Type 0) information.
1196 @param[in] Chara The information bits.
1197 @param[in] Option The optional information.
1200 DisplayBiosCharacteristics (
1208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1212 PRINT_INFO_OPTION (Chara
, Option
);
1215 // Check all the bits and print information
1216 // This function does not use Table because table of bits
1217 // are designed not to deal with UINT64
1219 if (BIT (Chara
, 0) != 0) {
1220 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1223 if (BIT (Chara
, 1) != 0) {
1224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1227 if (BIT (Chara
, 2) != 0) {
1228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1231 if (BIT (Chara
, 3) != 0) {
1232 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1235 if (BIT (Chara
, 4) != 0) {
1236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1239 if (BIT (Chara
, 5) != 0) {
1240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1243 if (BIT (Chara
, 6) != 0) {
1244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1247 if (BIT (Chara
, 7) != 0) {
1248 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1251 if (BIT (Chara
, 8) != 0) {
1252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1255 if (BIT (Chara
, 9) != 0) {
1256 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1259 if (BIT (Chara
, 10) != 0) {
1260 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1263 if (BIT (Chara
, 11) != 0) {
1264 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1267 if (BIT (Chara
, 12) != 0) {
1268 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1271 if (BIT (Chara
, 13) != 0) {
1272 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1275 if (BIT (Chara
, 14) != 0) {
1276 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1279 if (BIT (Chara
, 15) != 0) {
1280 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1283 if (BIT (Chara
, 16) != 0) {
1284 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1287 if (BIT (Chara
, 17) != 0) {
1288 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1291 if (BIT (Chara
, 18) != 0) {
1292 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1295 if (BIT (Chara
, 19) != 0) {
1296 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1299 if (BIT (Chara
, 20) != 0) {
1300 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1303 if (BIT (Chara
, 21) != 0) {
1304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1307 if (BIT (Chara
, 22) != 0) {
1308 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1311 if (BIT (Chara
, 23) != 0) {
1312 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1315 if (BIT (Chara
, 24) != 0) {
1316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1319 if (BIT (Chara
, 25) != 0) {
1320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1323 if (BIT (Chara
, 26) != 0) {
1324 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1327 if (BIT (Chara
, 27) != 0) {
1328 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1331 if (BIT (Chara
, 28) != 0) {
1332 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1335 if (BIT (Chara
, 29) != 0) {
1336 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1339 if (BIT (Chara
, 30) != 0) {
1340 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1343 if (BIT (Chara
, 31) != 0) {
1344 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1347 // Just print the Reserved
1349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1350 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1354 Display Bios Characteristice extensions1 information.
1356 @param[in] Byte1 The information.
1357 @param[in] Option The optional information.
1360 DisplayBiosCharacteristicsExt1 (
1365 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1369 PRINT_INFO_OPTION (Byte1
, Option
);
1372 // check bit and print
1374 if (BIT (Byte1
, 0) != 0) {
1375 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1378 if (BIT (Byte1
, 1) != 0) {
1379 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1382 if (BIT (Byte1
, 2) != 0) {
1383 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1386 if (BIT (Byte1
, 3) != 0) {
1387 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1390 if (BIT (Byte1
, 4) != 0) {
1391 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1394 if (BIT (Byte1
, 5) != 0) {
1395 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1398 if (BIT (Byte1
, 6) != 0) {
1399 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1402 if (BIT (Byte1
, 7) != 0) {
1403 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1408 Display Bios Characteristice extensions2 information.
1410 @param[in] byte2 The information.
1411 @param[in] Option The optional information.
1414 DisplayBiosCharacteristicsExt2 (
1419 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1423 PRINT_INFO_OPTION (byte2
, Option
);
1425 if (BIT (byte2
, 0) != 0) {
1426 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1429 if (BIT (byte2
, 1) != 0) {
1430 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1433 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1434 if (BIT (byte2
, 2) != 0) {
1435 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1437 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1438 if (BIT (byte2
, 3) != 0) {
1439 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1441 if (BIT (byte2
, 4) != 0) {
1442 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1444 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1446 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1449 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1454 Display Processor Information (Type 4) information.
1456 @param[in] Family The family value.
1457 @param[in] Option The option value.
1460 DisplayProcessorFamily (
1466 // Print prompt message
1468 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1472 PRINT_INFO_OPTION (Family
, Option
);
1475 // Use switch to check
1479 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1483 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1495 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1499 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1519 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1523 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1527 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1531 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1535 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1539 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1543 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1547 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1551 Print (L
"M2 Family\n");
1555 Print (L
"Intel Celeron M\n");
1559 Print (L
"Intel Pentium 4 HT\n");
1563 Print (L
"AMD Duron\n");
1567 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1571 Print (L
"K6 Family\n");
1583 Print (L
"AMD Althon Processor Family\n");
1587 Print (L
"AMD 29000 Family\n");
1595 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1599 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1603 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1607 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1615 Print (L
"Power PC 620\n");
1619 Print (L
"Power PC 704\n");
1623 Print (L
"Power PC 750\n");
1627 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1631 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1635 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1639 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1643 Print (L
"Intel(R) Core(TM) M processor\n");
1647 Print (L
"Intel(R) Core(TM) m3 processor\n");
1651 Print (L
"Intel(R) Core(TM) m5 processor\n");
1655 Print (L
"Intel(R) Core(TM) m7 processor\n");
1659 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1663 Print (L
"Alpha 21064\n");
1667 Print (L
"Alpha 21066\n");
1671 Print (L
"Alpha 21164\n");
1675 Print (L
"Alpha 21164PC\n");
1679 Print (L
"Alpha 21164a\n");
1683 Print (L
"Alpha 21264\n");
1687 Print (L
"Alpha 21364\n");
1691 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1695 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1699 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1703 Print (L
"AMD Opteron 6100 Series Processor\n");
1707 Print (L
"AMD Opteron 4100 Series Processor\n");
1711 Print (L
"AMD Opteron 6200 Series Processor\n");
1715 Print (L
"AMD Opteron 4200 Series Processor\n");
1719 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1723 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1727 Print (L
"MIPS R4000\n");
1731 Print (L
"MIPS R4200\n");
1735 Print (L
"MIPS R4400\n");
1739 Print (L
"MIPS R4600\n");
1743 Print (L
"MIPS R10000\n");
1747 Print (L
"AMD C-Series Processor\n");
1751 Print (L
"AMD E-Series Processor\n");
1755 Print (L
"AMD A-Series Processor\n");
1759 Print (L
"AMD G-Series Processor\n");
1763 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1767 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1771 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1775 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1779 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1783 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1787 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1791 Print (L
"SuperSparc\n");
1795 Print (L
"microSparc II\n");
1799 Print (L
"microSparc IIep\n");
1803 Print (L
"UltraSparc\n");
1807 Print (L
"UltraSparc II\n");
1811 Print (L
"UltraSparcIIi\n");
1815 Print (L
"UltraSparcIII\n");
1819 Print (L
"UltraSparcIIIi\n");
1823 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1847 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1851 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1855 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1859 Print (L
"AMD Opteron(TM) A-Series Processor\n");
1863 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
1867 Print (L
"AMD Zen Processor Family\n");
1871 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1875 Print (L
"Crusoe TM5000\n");
1879 Print (L
"Crusoe TM3000\n");
1883 Print (L
"Efficeon TM8000\n");
1887 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1891 Print (L
"Itanium\n");
1895 Print (L
"AMD Athlon64\n");
1899 Print (L
"AMD Opteron\n");
1903 Print (L
"AMD Sempron\n");
1907 Print (L
"AMD Turion64 Mobile\n");
1911 Print (L
"Dual-Core AMD Opteron\n");
1915 Print (L
"AMD Athlon 64X2 DualCore\n");
1919 Print (L
"AMD Turion 64X2 Mobile\n");
1923 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1927 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1931 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1935 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1939 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1943 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1947 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1951 Print (L
"PA-RISC 8500\n");
1955 Print (L
"PA-RISC 8000\n");
1959 Print (L
"PA-RISC 7300LC\n");
1963 Print (L
"PA-RISC 7200\n");
1967 Print (L
"PA-RISC 7100LC\n");
1971 Print (L
"PA-RISC 7100\n");
1975 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1979 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1983 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1987 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1991 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1995 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1999 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
2003 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
2007 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2011 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2015 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
2019 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2023 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2031 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2035 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2039 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
2043 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2047 Print (L
"Pentium 4 processor\n");
2051 Print (L
"Intel Xeon Processor\n");
2055 Print (L
"AS400 Family\n");
2059 Print (L
"Intel Xeon processor MP\n");
2063 Print (L
"AMD Althon XP Processor Family\n");
2067 Print (L
"AMD Althon MP Promcessor Family\n");
2071 Print (L
"Intel Itanium 2 processor\n");
2075 Print (L
"Intel Penium M processor\n");
2079 Print (L
"Intel Celeron D processor\n");
2083 Print (L
"Intel Pentium D processor\n");
2087 Print (L
"Intel Pentium Processor Extreme Edition\n");
2091 Print (L
"Intel Core Solo Processor\n");
2095 Print (L
"Intel Core 2 Duo Processor\n");
2099 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2103 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2107 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2111 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2115 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2119 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2123 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2127 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2131 Print (L
"IBM 390\n");
2147 Print (L
"zArchitecture\n");
2151 Print (L
"Intel Core i5 processor\n");
2155 Print (L
"Intel Core i3 processor\n");
2159 Print (L
"Intel Core i9 processor\n");
2163 Print (L
"ViaC7M\n");
2167 Print (L
"ViaC7D\n");
2179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2199 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2203 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2211 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2232 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2248 Print (L
"AMD Phenom II Processor Family\n");
2252 Print (L
"AMD Althon II Processor Family\n");
2256 Print (L
"Six-Core AMD Opteron Processor Family\n");
2260 Print (L
"AMD Sempron M Processor Family\n");
2272 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2280 Display processor family information.
2282 @param[in] Family2 The family value.
2283 @param[in] Option The option value.
2286 DisplayProcessorFamily2 (
2292 // Print prompt message
2294 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2299 PRINT_INFO_OPTION (Family2
, Option
);
2302 // Use switch to check
2326 Print (L
"StrongARM\n");
2334 Print (L
"MediaGX\n");
2342 Print (L
"WinChip\n");
2350 Print (L
"Video Processor\n");
2354 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2360 Display processor voltage information.
2362 @param[in] Voltage The Voltage.
2363 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2364 Bits 6:4 Reserved, must be zero
2365 Bits 3:0 Voltage Capability.
2366 A Set bit indicates that the voltage is supported.
2370 Bit 3 - Reserved, must be zero.
2373 Setting of multiple bits indicates the socket is configurable
2374 If bit 7 is set to 1, the remaining seven bits of the field are set to
2375 contain the processor's current voltage times 10.
2376 For example, the field value for a processor voltage of 1.8 volts would be
2377 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2379 @param[in] Option The option.
2382 DisplayProcessorVoltage (
2387 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2391 PRINT_INFO_OPTION (Voltage
, Option
);
2393 if (BIT (Voltage
, 7) != 0) {
2394 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2396 if (BIT (Voltage
, 0) != 0) {
2397 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2400 if (BIT (Voltage
, 1) != 0) {
2401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2404 if (BIT (Voltage
, 2) != 0) {
2405 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2408 // check the reserved zero bits:
2410 if (BIT (Voltage
, 3) != 0) {
2411 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2414 if (BIT (Voltage
, 4) != 0) {
2415 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2418 if (BIT (Voltage
, 5) != 0) {
2419 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2422 if (BIT (Voltage
, 6) != 0) {
2423 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2429 Display processor information.
2431 @param[in] Status The status.
2432 Bit 7 Reserved, must be 0
2433 Bit 6 CPU Socket Populated
2434 1 - CPU Socket Populated
2435 0 - CPU Socket Unpopulated
2436 Bits 5:3 Reserved, must be zero
2440 2h - CPU Disabled by User via BIOS Setup
2441 3h - CPU Disabled By BIOS (POST Error)
2442 4h - CPU is Idle, waiting to be enabled.
2446 @param[in] Option The option
2449 DisplayProcessorStatus (
2454 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2455 PRINT_INFO_OPTION (Status
, Option
);
2457 if (BIT (Status
, 7) != 0) {
2458 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2459 } else if (BIT (Status
, 5) != 0) {
2460 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2461 } else if (BIT (Status
, 4) != 0) {
2462 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2463 } else if (BIT (Status
, 3) != 0) {
2464 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2469 if (BIT (Status
, 6) != 0) {
2470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2472 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2477 switch (Status
& 0x07) {
2479 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2483 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2487 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2491 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2495 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2499 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2503 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2508 Display information about Memory Controller Information (Type 5).
2510 @param[in] Size Memory size.
2511 @param[in] SlotNum Which slot is this about.
2512 @param[in] Option Option for the level of detail output required.
2515 DisplayMaxMemoryModuleSize (
2522 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2524 // MaxSize is determined by follow formula
2526 MaxSize
= (UINTN
) 1 << Size
;
2527 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2529 if (Option
>= SHOW_DETAIL
) {
2530 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2531 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2536 Display information about memory configuration handles.
2538 @param[in] Handles The buffer of handles to output info on.
2539 @param[in] SlotNum The number of handles in the above buffer.
2540 @param[in] Option Option for the level of detail output required.
2543 DisplayMemoryModuleConfigHandles (
2550 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2552 if (Option
>= SHOW_DETAIL
) {
2554 // No handle, Handles is INVALID.
2560 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2561 for (Index
= 0; Index
< SlotNum
; Index
++) {
2562 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2568 Display Memory Module Information (Type 6).
2570 @param[in] BankConnections
2574 DisplayMmBankConnections (
2575 IN UINT8 BankConnections
,
2582 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2586 PRINT_INFO_OPTION (BankConnections
, Option
);
2589 // Divide it to high and low
2591 High
= (UINT8
) (BankConnections
& 0xF0);
2592 Low
= (UINT8
) (BankConnections
& 0x0F);
2595 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2597 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2603 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2609 Display memory informcation.
2612 where 2**n is the size in MB with three special-case values:
2613 7Dh Not determinable (Installed Size only)
2614 7Eh Module is installed, but no memory has been enabled
2616 Bit 7 Defines whether the memory module has a single- (0)
2617 or double-bank (1) connection.
2619 @param[in] Size - The size
2620 @param[in] Option - The option
2623 DisplayMmMemorySize (
2629 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2633 PRINT_INFO_OPTION (Size
, Option
);
2636 // Get the low bits(0-6 bit)
2638 Value
= (UINT8
) (Size
& 0x7F);
2639 if (Value
== 0x7D) {
2640 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2641 } else if (Value
== 0x7E) {
2642 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2643 } else if (Value
== 0x7F) {
2644 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2646 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2649 if (BIT (Size
, 7) != 0) {
2650 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2652 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2657 Display Cache Configuration.
2659 @param[in] CacheConfiguration Cache Configuration.
2660 Bits 15:10 Reserved, must be 0
2661 Bits 9:8 Operational Mode
2664 2h - Varies with Memory Address
2666 Bit 7 Enabled/Disabled
2674 Bit 4 Reserved, must be zero
2675 Bit 3 Cache Socketed
2678 Bits 2:0 Cache Level
2679 1 through 8 (For example, an L1 cache would
2680 use value 000b and an L3 cache would use 010b.)
2682 @param[in] Option The option
2685 DisplayCacheConfiguration (
2686 IN UINT16 CacheConfiguration
,
2690 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2691 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2693 if (BIT (CacheConfiguration
, 15) != 0) {
2694 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2695 } else if (BIT (CacheConfiguration
, 14) != 0) {
2696 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2697 } else if (BIT (CacheConfiguration
, 13) != 0) {
2698 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2699 } else if (BIT (CacheConfiguration
, 12) != 0) {
2700 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2701 } else if (BIT (CacheConfiguration
, 11) != 0) {
2702 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2703 } else if (BIT (CacheConfiguration
, 10) != 0) {
2704 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2705 } else if (BIT (CacheConfiguration
, 4) != 0) {
2706 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2712 switch ((CacheConfiguration
& 0x300) >> 8) {
2714 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2718 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2722 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2726 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2733 if (BIT (CacheConfiguration
, 7) != 0) {
2734 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2736 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2742 switch ((CacheConfiguration
& 0x60) >> 5) {
2744 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2748 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2752 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2756 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2763 if (BIT (CacheConfiguration
, 3) != 0) {
2764 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2766 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2770 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2774 The Slot ID field of the System Slot structure provides a mechanism to
2775 correlate the physical attributes of the slot to its logical access method
2776 (which varies based on the Slot Type field).
2778 @param[in] SlotId - The slot ID
2779 @param[in] SlotType - The slot type
2780 @param[in] Option - The Option
2783 DisplaySystemSlotId (
2790 // Display slot type first
2792 DisplaySystemSlotType (SlotType
, Option
);
2794 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2798 PRINT_INFO_OPTION (SlotType
, Option
);
2805 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2806 if (SlotId
> 0 && SlotId
< 15) {
2807 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2809 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2817 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2818 if (SlotId
> 0 && SlotId
< 15) {
2819 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2821 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2829 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2836 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2843 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2847 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2850 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2856 Display System Boot Information (Type 32) information.
2858 @param[in] Parameter The parameter.
2859 @param[in] Option The options.
2862 DisplaySystemBootStatus (
2867 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2871 PRINT_INFO_OPTION (Parameter
, Option
);
2874 // Check value and print
2876 if (Parameter
== 0) {
2877 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2878 } else if (Parameter
== 1) {
2879 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2880 } else if (Parameter
== 2) {
2881 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2882 } else if (Parameter
== 3) {
2883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2884 } else if (Parameter
== 4) {
2885 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2886 } else if (Parameter
== 5) {
2887 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2888 } else if (Parameter
== 6) {
2889 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2890 } else if (Parameter
== 7) {
2891 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2892 } else if (Parameter
== 8) {
2893 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2894 } else if (Parameter
>= 9 && Parameter
<= 127) {
2895 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2896 } else if (Parameter
>= 128 && Parameter
<= 191) {
2897 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2898 } else if (Parameter
>= 192) {
2899 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2901 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2906 Display Portable Battery (Type 22) information.
2908 The date the cell pack was manufactured, in packed format:
2909 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2910 Bits 8:5 Month, in the range 1 to 12.
2911 Bits 4:0 Date, in the range 1 to 31.
2912 For example, 01 February 2000 would be identified as
2913 0010 1000 0100 0001b (0x2841).
2915 @param[in] Date The date
2916 @param[in] Option The option
2919 DisplaySBDSManufactureDate (
2928 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2929 PRINT_INFO_OPTION (Date
, Option
);
2933 Day
= Date
& 0x001F;
2934 Month
= (Date
& 0x01E0) >> 5;
2935 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2936 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2941 Display System Reset (Type 23) information.
2944 Identifies the system-reset capabilities for the system.
2945 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2946 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2947 Bits 4:3 Boot Option on Limit.
2948 Identifies the system action to be taken when the Reset Limit is reached, one of:
2949 00b Reserved, do not use.
2950 01b Operating system
2951 10b System utilities
2952 11b Do not rebootBits
2953 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2954 00b Reserved, do not use.
2955 01b Operating system
2956 10b System utilities
2959 1b The system reset is enabled by the user
2960 0b The system reset is not enabled by the user
2962 @param[in] Reset Reset
2963 @param[in] Option The option
2966 DisplaySystemResetCapabilities (
2973 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2974 PRINT_INFO_OPTION (Reset
, Option
);
2977 // Check reserved bits 7:6
2979 if ((Reset
& 0xC0) != 0) {
2980 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2985 if (BIT (Reset
, 5) != 0) {
2986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2988 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2991 // Boot Option on Limit
2993 Temp
= (Reset
& 0x18) >> 3;
2994 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3001 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3005 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3009 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
3015 Temp
= (Reset
& 0x06) >> 1;
3016 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
3019 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3023 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3031 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3035 // Reset enable flag
3037 if ((Reset
& 0x01) != 0) {
3038 Print (L
"The system reset is enabled by the user\n");
3040 Print (L
"The system reset is disabled by the user\n");
3045 Display Hardware Security (Type 24) information.
3048 Identifies the password and reset status for the system:
3050 Bits 7:6 Power-on Password Status, one of:
3055 Bits 5:4 Keyboard Password Status, one of:
3060 Bits 3:2 Administrator Password Status, one of:
3065 Bits 1:0 Front Panel Reset Status, one of:
3071 @param[in] Settings The device settings.
3072 @param[in] Option The device options.
3075 DisplayHardwareSecuritySettings (
3082 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3083 PRINT_INFO_OPTION (Settings
, Option
);
3086 // Power-on Password Status
3088 Temp
= (Settings
& 0xC0) >> 6;
3089 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3100 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3104 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3108 // Keyboard Password Status
3110 Temp
= (Settings
& 0x30) >> 4;
3111 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3114 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3118 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3126 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3130 // Administrator Password Status
3132 Temp
= (Settings
& 0x0C) >> 2;
3133 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3136 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3140 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3144 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3148 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3152 // Front Panel Reset Status
3154 Temp
= Settings
& 0x3;
3155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3158 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3162 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3166 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3170 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3176 Display Out-of-Band Remote Access (Type 30) information.
3178 @param[in] Connections The device characteristics.
3179 @param[in] Option The device options.
3182 DisplayOBRAConnections (
3183 IN UINT8 Connections
,
3187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3188 PRINT_INFO_OPTION (Connections
, Option
);
3191 // Check reserved bits 7:2
3193 if ((Connections
& 0xFC) != 0) {
3194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3197 // Outbound Connection
3199 if (BIT (Connections
, 1) != 0) {
3200 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3202 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3205 // Inbound Connection
3207 if (BIT (Connections
, 0) != 0) {
3208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3210 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3215 Display System Power Supply (Type 39) information.
3217 @param[in] Characteristics The device characteristics.
3218 @param[in] Option The device options.
3221 DisplaySPSCharacteristics (
3222 IN UINT16 Characteristics
,
3228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3229 PRINT_INFO_OPTION (Characteristics
, Option
);
3232 // Check reserved bits 15:14
3234 if ((Characteristics
& 0xC000) != 0) {
3235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3238 // Bits 13:10 - DMTF Power Supply Type
3240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3241 Temp
= (Characteristics
& 0x1C00) >> 10;
3244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3248 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3256 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3260 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3264 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3268 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3272 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3276 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3279 // Bits 9:7 - Status
3281 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3282 Temp
= (Characteristics
& 0x380) >> 7;
3285 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3289 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3293 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3297 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3301 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3308 // Bits 6:3 - DMTF Input Voltage Range Switching
3310 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3311 Temp
= (Characteristics
& 0x78) >> 3;
3314 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3322 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3326 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3330 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3338 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3342 // Power supply is unplugged from the wall
3344 if (BIT (Characteristics
, 2) != 0) {
3345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3350 // Power supply is present
3352 if (BIT (Characteristics
, 1) != 0) {
3353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3355 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3360 if (BIT (Characteristics
, 0) != 0) {
3361 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3363 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3368 Display TPM Device (Type 43) Characteristics.
3370 @param[in] Chara The information bits.
3371 @param[in] Option The optional information.
3374 DisplayTpmDeviceCharacteristics (
3382 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3386 PRINT_INFO_OPTION (Chara
, Option
);
3389 // Check all the bits and print information
3390 // This function does not use Table because table of bits
3391 // are designed not to deal with UINT64
3393 if (BIT (Chara
, 0) != 0) {
3394 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3397 if (BIT (Chara
, 1) != 0) {
3398 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3400 if (BIT (Chara
, 2) != 0) {
3401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3404 if (BIT (Chara
, 3) != 0) {
3405 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3408 if (BIT (Chara
, 4) != 0) {
3409 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3412 if (BIT (Chara
, 5) != 0) {
3413 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3417 // Just print the Reserved
3419 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);