2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015-2019 Hewlett Packard Enterprise Development LP<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
11 #include "UefiShellDebug1CommandsLib.h"
12 #include "PrintInfo.h"
13 #include "LibSmbiosView.h"
14 #include "QueryTable.h"
15 #include "EventLogInfo.h"
19 // Get the certain bit of 'value'
21 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
24 // Check if above or equal to version
26 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
27 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
30 //////////////////////////////////////////////////////////
31 // Macros of print structure element, simplify coding.
33 #define PRINT_PENDING_STRING(pStruct, type, element) \
36 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
37 ShellPrintEx(-1,-1,L"%a",#element); \
38 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
41 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
44 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
45 ShellPrintEx(-1,-1,L"%a",#element); \
46 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
49 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
51 ShellPrintEx(-1,-1,L"%a",#element); \
52 ShellPrintEx(-1,-1,L": %u\n", (pStruct->type->element)); \
55 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
57 ShellPrintEx(-1,-1,L"%a",#element); \
58 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
61 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
63 ShellPrintEx(-1,-1,L"%a",#element); \
64 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
67 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
69 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
70 ShellPrintEx(-1,-1,L"%a",#element); \
71 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
72 DumpHex (0, 0, size, &(pStruct->type->element)); \
75 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
77 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
78 ShellPrintEx(-1,-1,L"%a",#element); \
79 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
80 DumpHex (0, 0, size, startaddress); \
84 /////////////////////////////////////////
88 Copy Length of Src buffer to Dest buffer,
89 add a NULL termination to Dest buffer.
91 @param[in, out] Dest Destination buffer head.
92 @param[in] Src Source buffer head.
93 @param[in] Length Length of buffer to be copied.
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 %u: %u\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
638 ShellPrintEx(-1,-1,L
"ItemHandle %u: %u\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_H (Struct
, Type17
, TotalWidth
);
750 PRINT_STRUCT_VALUE_H (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_H (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_LH (Struct
, Type17
, NonVolatileSize
);
788 if (Struct
->Hdr
->Length
> 0x3C) {
789 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, VolatileSize
);
791 if (Struct
->Hdr
->Length
> 0x44) {
792 PRINT_STRUCT_VALUE_LH (Struct
, Type17
, CacheSize
);
794 if (Struct
->Hdr
->Length
> 0x4C) {
795 PRINT_STRUCT_VALUE_LH (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 // Processor Additional Information (Type 44)
1175 DisplayProcessorArchitectureType (Struct
->Type44
->ProcessorSpecificBlock
.ProcessorArchType
, Option
);
1179 // Inactive (Type 126)
1182 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1186 // End-of-Table (Type 127)
1189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1201 Display BIOS Information (Type 0) information.
1203 @param[in] Chara The information bits.
1204 @param[in] Option The optional information.
1207 DisplayBiosCharacteristics (
1215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1219 PRINT_INFO_OPTION (Chara
, Option
);
1222 // Check all the bits and print information
1223 // This function does not use Table because table of bits
1224 // are designed not to deal with UINT64
1226 if (BIT (Chara
, 0) != 0) {
1227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1230 if (BIT (Chara
, 1) != 0) {
1231 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1234 if (BIT (Chara
, 2) != 0) {
1235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1238 if (BIT (Chara
, 3) != 0) {
1239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1242 if (BIT (Chara
, 4) != 0) {
1243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1246 if (BIT (Chara
, 5) != 0) {
1247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1250 if (BIT (Chara
, 6) != 0) {
1251 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1254 if (BIT (Chara
, 7) != 0) {
1255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1258 if (BIT (Chara
, 8) != 0) {
1259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1262 if (BIT (Chara
, 9) != 0) {
1263 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1266 if (BIT (Chara
, 10) != 0) {
1267 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1270 if (BIT (Chara
, 11) != 0) {
1271 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1274 if (BIT (Chara
, 12) != 0) {
1275 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1278 if (BIT (Chara
, 13) != 0) {
1279 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1282 if (BIT (Chara
, 14) != 0) {
1283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1286 if (BIT (Chara
, 15) != 0) {
1287 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1290 if (BIT (Chara
, 16) != 0) {
1291 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1294 if (BIT (Chara
, 17) != 0) {
1295 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1298 if (BIT (Chara
, 18) != 0) {
1299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1302 if (BIT (Chara
, 19) != 0) {
1303 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1306 if (BIT (Chara
, 20) != 0) {
1307 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1310 if (BIT (Chara
, 21) != 0) {
1311 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1314 if (BIT (Chara
, 22) != 0) {
1315 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1318 if (BIT (Chara
, 23) != 0) {
1319 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1322 if (BIT (Chara
, 24) != 0) {
1323 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1326 if (BIT (Chara
, 25) != 0) {
1327 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1330 if (BIT (Chara
, 26) != 0) {
1331 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1334 if (BIT (Chara
, 27) != 0) {
1335 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1338 if (BIT (Chara
, 28) != 0) {
1339 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1342 if (BIT (Chara
, 29) != 0) {
1343 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1346 if (BIT (Chara
, 30) != 0) {
1347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1350 if (BIT (Chara
, 31) != 0) {
1351 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1354 // Just print the Reserved
1356 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1361 Display Bios Characteristice extensions1 information.
1363 @param[in] Byte1 The information.
1364 @param[in] Option The optional information.
1367 DisplayBiosCharacteristicsExt1 (
1372 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1376 PRINT_INFO_OPTION (Byte1
, Option
);
1379 // check bit and print
1381 if (BIT (Byte1
, 0) != 0) {
1382 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1385 if (BIT (Byte1
, 1) != 0) {
1386 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1389 if (BIT (Byte1
, 2) != 0) {
1390 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1393 if (BIT (Byte1
, 3) != 0) {
1394 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1397 if (BIT (Byte1
, 4) != 0) {
1398 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1401 if (BIT (Byte1
, 5) != 0) {
1402 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1405 if (BIT (Byte1
, 6) != 0) {
1406 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1409 if (BIT (Byte1
, 7) != 0) {
1410 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1415 Display Bios Characteristice extensions2 information.
1417 @param[in] byte2 The information.
1418 @param[in] Option The optional information.
1421 DisplayBiosCharacteristicsExt2 (
1426 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1430 PRINT_INFO_OPTION (byte2
, Option
);
1432 if (BIT (byte2
, 0) != 0) {
1433 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1436 if (BIT (byte2
, 1) != 0) {
1437 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1440 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1441 if (BIT (byte2
, 2) != 0) {
1442 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1444 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1445 if (BIT (byte2
, 3) != 0) {
1446 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1448 if (BIT (byte2
, 4) != 0) {
1449 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1451 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1453 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1456 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1461 Display Processor Information (Type 4) information.
1463 @param[in] Family The family value.
1464 @param[in] Option The option value.
1467 DisplayProcessorFamily (
1473 // Print prompt message
1475 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1479 PRINT_INFO_OPTION (Family
, Option
);
1482 // Use switch to check
1486 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1490 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1502 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1506 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1526 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1530 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1534 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1538 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1542 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1546 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1550 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1554 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1558 Print (L
"M2 Family\n");
1562 Print (L
"Intel Celeron M\n");
1566 Print (L
"Intel Pentium 4 HT\n");
1570 Print (L
"AMD Duron\n");
1574 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1578 Print (L
"K6 Family\n");
1590 Print (L
"AMD Althon Processor Family\n");
1594 Print (L
"AMD 29000 Family\n");
1602 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1606 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1610 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1614 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1618 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1622 Print (L
"Power PC 620\n");
1626 Print (L
"Power PC 704\n");
1630 Print (L
"Power PC 750\n");
1634 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1638 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1642 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1646 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1650 Print (L
"Intel(R) Core(TM) M processor\n");
1654 Print (L
"Intel(R) Core(TM) m3 processor\n");
1658 Print (L
"Intel(R) Core(TM) m5 processor\n");
1662 Print (L
"Intel(R) Core(TM) m7 processor\n");
1666 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1670 Print (L
"Alpha 21064\n");
1674 Print (L
"Alpha 21066\n");
1678 Print (L
"Alpha 21164\n");
1682 Print (L
"Alpha 21164PC\n");
1686 Print (L
"Alpha 21164a\n");
1690 Print (L
"Alpha 21264\n");
1694 Print (L
"Alpha 21364\n");
1698 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1702 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1706 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1710 Print (L
"AMD Opteron 6100 Series Processor\n");
1714 Print (L
"AMD Opteron 4100 Series Processor\n");
1718 Print (L
"AMD Opteron 6200 Series Processor\n");
1722 Print (L
"AMD Opteron 4200 Series Processor\n");
1726 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1730 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1734 Print (L
"MIPS R4000\n");
1738 Print (L
"MIPS R4200\n");
1742 Print (L
"MIPS R4400\n");
1746 Print (L
"MIPS R4600\n");
1750 Print (L
"MIPS R10000\n");
1754 Print (L
"AMD C-Series Processor\n");
1758 Print (L
"AMD E-Series Processor\n");
1762 Print (L
"AMD A-Series Processor\n");
1766 Print (L
"AMD G-Series Processor\n");
1770 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1774 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1778 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1782 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1786 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1790 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1794 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1798 Print (L
"SuperSparc\n");
1802 Print (L
"microSparc II\n");
1806 Print (L
"microSparc IIep\n");
1810 Print (L
"UltraSparc\n");
1814 Print (L
"UltraSparc II\n");
1818 Print (L
"UltraSparcIIi\n");
1822 Print (L
"UltraSparcIII\n");
1826 Print (L
"UltraSparcIIIi\n");
1830 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1854 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1858 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1862 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1866 Print (L
"AMD Opteron(TM) A-Series Processor\n");
1870 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
1874 Print (L
"AMD Zen Processor Family\n");
1878 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1882 Print (L
"Crusoe TM5000\n");
1886 Print (L
"Crusoe TM3000\n");
1890 Print (L
"Efficeon TM8000\n");
1894 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1898 Print (L
"Itanium\n");
1902 Print (L
"AMD Athlon64\n");
1906 Print (L
"AMD Opteron\n");
1910 Print (L
"AMD Sempron\n");
1914 Print (L
"AMD Turion64 Mobile\n");
1918 Print (L
"Dual-Core AMD Opteron\n");
1922 Print (L
"AMD Athlon 64X2 DualCore\n");
1926 Print (L
"AMD Turion 64X2 Mobile\n");
1930 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1934 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1942 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1946 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1950 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1954 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1958 Print (L
"PA-RISC 8500\n");
1962 Print (L
"PA-RISC 8000\n");
1966 Print (L
"PA-RISC 7300LC\n");
1970 Print (L
"PA-RISC 7200\n");
1974 Print (L
"PA-RISC 7100LC\n");
1978 Print (L
"PA-RISC 7100\n");
1982 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1990 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1994 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1998 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2002 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2006 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
2010 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
2014 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2018 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2022 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
2026 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2030 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2034 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2038 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2042 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2046 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
2050 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2054 Print (L
"Pentium 4 processor\n");
2058 Print (L
"Intel Xeon Processor\n");
2062 Print (L
"AS400 Family\n");
2066 Print (L
"Intel Xeon processor MP\n");
2070 Print (L
"AMD Althon XP Processor Family\n");
2074 Print (L
"AMD Althon MP Promcessor Family\n");
2078 Print (L
"Intel Itanium 2 processor\n");
2082 Print (L
"Intel Penium M processor\n");
2086 Print (L
"Intel Celeron D processor\n");
2090 Print (L
"Intel Pentium D processor\n");
2094 Print (L
"Intel Pentium Processor Extreme Edition\n");
2098 Print (L
"Intel Core Solo Processor\n");
2102 Print (L
"Intel Core 2 Duo Processor\n");
2106 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2114 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2118 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2126 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2138 Print (L
"IBM 390\n");
2154 Print (L
"zArchitecture\n");
2158 Print (L
"Intel Core i5 processor\n");
2162 Print (L
"Intel Core i3 processor\n");
2166 Print (L
"Intel Core i9 processor\n");
2170 Print (L
"ViaC7M\n");
2174 Print (L
"ViaC7D\n");
2186 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2190 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2198 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2202 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2206 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2210 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2214 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2218 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2222 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2226 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2231 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2251 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2255 Print (L
"AMD Phenom II Processor Family\n");
2259 Print (L
"AMD Althon II Processor Family\n");
2263 Print (L
"Six-Core AMD Opteron Processor Family\n");
2267 Print (L
"AMD Sempron M Processor Family\n");
2279 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2287 Display processor family information.
2289 @param[in] Family2 The family value.
2290 @param[in] Option The option value.
2293 DisplayProcessorFamily2 (
2299 // Print prompt message
2301 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2306 PRINT_INFO_OPTION (Family2
, Option
);
2309 // Use switch to check
2333 Print (L
"StrongARM\n");
2341 Print (L
"MediaGX\n");
2349 Print (L
"WinChip\n");
2357 Print (L
"Video Processor\n");
2361 Print (L
"RISC-V RV32\n");
2365 Print (L
"RISC-V RV64\n");
2369 Print (L
"RISC-V RV128\n");
2373 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2379 Display processor voltage information.
2381 @param[in] Voltage The Voltage.
2382 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2383 Bits 6:4 Reserved, must be zero
2384 Bits 3:0 Voltage Capability.
2385 A Set bit indicates that the voltage is supported.
2389 Bit 3 - Reserved, must be zero.
2392 Setting of multiple bits indicates the socket is configurable
2393 If bit 7 is set to 1, the remaining seven bits of the field are set to
2394 contain the processor's current voltage times 10.
2395 For example, the field value for a processor voltage of 1.8 volts would be
2396 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2398 @param[in] Option The option.
2401 DisplayProcessorVoltage (
2406 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2410 PRINT_INFO_OPTION (Voltage
, Option
);
2412 if (BIT (Voltage
, 7) != 0) {
2413 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2415 if (BIT (Voltage
, 0) != 0) {
2416 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2419 if (BIT (Voltage
, 1) != 0) {
2420 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2423 if (BIT (Voltage
, 2) != 0) {
2424 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2427 // check the reserved zero bits:
2429 if (BIT (Voltage
, 3) != 0) {
2430 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2433 if (BIT (Voltage
, 4) != 0) {
2434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2437 if (BIT (Voltage
, 5) != 0) {
2438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2441 if (BIT (Voltage
, 6) != 0) {
2442 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2448 Display processor information.
2450 @param[in] Status The status.
2451 Bit 7 Reserved, must be 0
2452 Bit 6 CPU Socket Populated
2453 1 - CPU Socket Populated
2454 0 - CPU Socket Unpopulated
2455 Bits 5:3 Reserved, must be zero
2459 2h - CPU Disabled by User via BIOS Setup
2460 3h - CPU Disabled By BIOS (POST Error)
2461 4h - CPU is Idle, waiting to be enabled.
2465 @param[in] Option The option
2468 DisplayProcessorStatus (
2473 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2474 PRINT_INFO_OPTION (Status
, Option
);
2476 if (BIT (Status
, 7) != 0) {
2477 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2478 } else if (BIT (Status
, 5) != 0) {
2479 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2480 } else if (BIT (Status
, 4) != 0) {
2481 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2482 } else if (BIT (Status
, 3) != 0) {
2483 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2488 if (BIT (Status
, 6) != 0) {
2489 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2491 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2496 switch (Status
& 0x07) {
2498 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2502 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2506 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2510 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2514 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2518 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2522 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2527 Display information about Memory Controller Information (Type 5).
2529 @param[in] Size Memory size.
2530 @param[in] SlotNum Which slot is this about.
2531 @param[in] Option Option for the level of detail output required.
2534 DisplayMaxMemoryModuleSize (
2541 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2543 // MaxSize is determined by follow formula
2545 MaxSize
= (UINTN
) 1 << Size
;
2546 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2548 if (Option
>= SHOW_DETAIL
) {
2549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2550 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2555 Display information about memory configuration handles.
2557 @param[in] Handles The buffer of handles to output info on.
2558 @param[in] SlotNum The number of handles in the above buffer.
2559 @param[in] Option Option for the level of detail output required.
2562 DisplayMemoryModuleConfigHandles (
2569 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2571 if (Option
>= SHOW_DETAIL
) {
2573 // No handle, Handles is INVALID.
2579 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2580 for (Index
= 0; Index
< SlotNum
; Index
++) {
2581 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2587 Display Memory Module Information (Type 6).
2589 @param[in] BankConnections
2593 DisplayMmBankConnections (
2594 IN UINT8 BankConnections
,
2601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2605 PRINT_INFO_OPTION (BankConnections
, Option
);
2608 // Divide it to high and low
2610 High
= (UINT8
) (BankConnections
& 0xF0);
2611 Low
= (UINT8
) (BankConnections
& 0x0F);
2614 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2616 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2620 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2622 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2628 Display memory informcation.
2631 where 2**n is the size in MB with three special-case values:
2632 7Dh Not determinable (Installed Size only)
2633 7Eh Module is installed, but no memory has been enabled
2635 Bit 7 Defines whether the memory module has a single- (0)
2636 or double-bank (1) connection.
2638 @param[in] Size - The size
2639 @param[in] Option - The option
2642 DisplayMmMemorySize (
2648 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2652 PRINT_INFO_OPTION (Size
, Option
);
2655 // Get the low bits(0-6 bit)
2657 Value
= (UINT8
) (Size
& 0x7F);
2658 if (Value
== 0x7D) {
2659 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2660 } else if (Value
== 0x7E) {
2661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2662 } else if (Value
== 0x7F) {
2663 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2668 if (BIT (Size
, 7) != 0) {
2669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2671 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2676 Display Cache Configuration.
2678 @param[in] CacheConfiguration Cache Configuration.
2679 Bits 15:10 Reserved, must be 0
2680 Bits 9:8 Operational Mode
2683 2h - Varies with Memory Address
2685 Bit 7 Enabled/Disabled
2693 Bit 4 Reserved, must be zero
2694 Bit 3 Cache Socketed
2697 Bits 2:0 Cache Level
2698 1 through 8 (For example, an L1 cache would
2699 use value 000b and an L3 cache would use 010b.)
2701 @param[in] Option The option
2704 DisplayCacheConfiguration (
2705 IN UINT16 CacheConfiguration
,
2709 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2710 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2712 if (BIT (CacheConfiguration
, 15) != 0) {
2713 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2714 } else if (BIT (CacheConfiguration
, 14) != 0) {
2715 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2716 } else if (BIT (CacheConfiguration
, 13) != 0) {
2717 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2718 } else if (BIT (CacheConfiguration
, 12) != 0) {
2719 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2720 } else if (BIT (CacheConfiguration
, 11) != 0) {
2721 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2722 } else if (BIT (CacheConfiguration
, 10) != 0) {
2723 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2724 } else if (BIT (CacheConfiguration
, 4) != 0) {
2725 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2731 switch ((CacheConfiguration
& 0x300) >> 8) {
2733 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2737 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2741 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2745 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2752 if (BIT (CacheConfiguration
, 7) != 0) {
2753 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2755 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2761 switch ((CacheConfiguration
& 0x60) >> 5) {
2763 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2767 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2771 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2775 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2782 if (BIT (CacheConfiguration
, 3) != 0) {
2783 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2785 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2789 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2793 The Slot ID field of the System Slot structure provides a mechanism to
2794 correlate the physical attributes of the slot to its logical access method
2795 (which varies based on the Slot Type field).
2797 @param[in] SlotId - The slot ID
2798 @param[in] SlotType - The slot type
2799 @param[in] Option - The Option
2802 DisplaySystemSlotId (
2809 // Display slot type first
2811 DisplaySystemSlotType (SlotType
, Option
);
2813 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2817 PRINT_INFO_OPTION (SlotType
, Option
);
2824 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2825 if (SlotId
> 0 && SlotId
< 15) {
2826 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2828 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2836 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2837 if (SlotId
> 0 && SlotId
< 15) {
2838 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2840 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2855 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2862 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2866 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2867 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2869 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2875 Display System Boot Information (Type 32) information.
2877 @param[in] Parameter The parameter.
2878 @param[in] Option The options.
2881 DisplaySystemBootStatus (
2886 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2890 PRINT_INFO_OPTION (Parameter
, Option
);
2893 // Check value and print
2895 if (Parameter
== 0) {
2896 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2897 } else if (Parameter
== 1) {
2898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2899 } else if (Parameter
== 2) {
2900 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2901 } else if (Parameter
== 3) {
2902 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2903 } else if (Parameter
== 4) {
2904 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2905 } else if (Parameter
== 5) {
2906 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2907 } else if (Parameter
== 6) {
2908 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2909 } else if (Parameter
== 7) {
2910 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2911 } else if (Parameter
== 8) {
2912 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2913 } else if (Parameter
>= 9 && Parameter
<= 127) {
2914 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2915 } else if (Parameter
>= 128 && Parameter
<= 191) {
2916 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2917 } else if (Parameter
>= 192) {
2918 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2920 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2925 Display Portable Battery (Type 22) information.
2927 The date the cell pack was manufactured, in packed format:
2928 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2929 Bits 8:5 Month, in the range 1 to 12.
2930 Bits 4:0 Date, in the range 1 to 31.
2931 For example, 01 February 2000 would be identified as
2932 0010 1000 0100 0001b (0x2841).
2934 @param[in] Date The date
2935 @param[in] Option The option
2938 DisplaySBDSManufactureDate (
2947 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2948 PRINT_INFO_OPTION (Date
, Option
);
2952 Day
= Date
& 0x001F;
2953 Month
= (Date
& 0x01E0) >> 5;
2954 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2955 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2960 Display System Reset (Type 23) information.
2963 Identifies the system-reset capabilities for the system.
2964 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2965 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2966 Bits 4:3 Boot Option on Limit.
2967 Identifies the system action to be taken when the Reset Limit is reached, one of:
2968 00b Reserved, do not use.
2969 01b Operating system
2970 10b System utilities
2971 11b Do not rebootBits
2972 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2973 00b Reserved, do not use.
2974 01b Operating system
2975 10b System utilities
2978 1b The system reset is enabled by the user
2979 0b The system reset is not enabled by the user
2981 @param[in] Reset Reset
2982 @param[in] Option The option
2985 DisplaySystemResetCapabilities (
2992 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2993 PRINT_INFO_OPTION (Reset
, Option
);
2996 // Check reserved bits 7:6
2998 if ((Reset
& 0xC0) != 0) {
2999 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
3004 if (BIT (Reset
, 5) != 0) {
3005 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
3007 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
3010 // Boot Option on Limit
3012 Temp
= (Reset
& 0x18) >> 3;
3013 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
3016 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3020 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3024 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3028 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
3034 Temp
= (Reset
& 0x06) >> 1;
3035 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
3038 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3042 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3046 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3050 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3054 // Reset enable flag
3056 if ((Reset
& 0x01) != 0) {
3057 Print (L
"The system reset is enabled by the user\n");
3059 Print (L
"The system reset is disabled by the user\n");
3064 Display Hardware Security (Type 24) information.
3067 Identifies the password and reset status for the system:
3069 Bits 7:6 Power-on Password Status, one of:
3074 Bits 5:4 Keyboard Password Status, one of:
3079 Bits 3:2 Administrator Password Status, one of:
3084 Bits 1:0 Front Panel Reset Status, one of:
3090 @param[in] Settings The device settings.
3091 @param[in] Option The device options.
3094 DisplayHardwareSecuritySettings (
3101 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3102 PRINT_INFO_OPTION (Settings
, Option
);
3105 // Power-on Password Status
3107 Temp
= (Settings
& 0xC0) >> 6;
3108 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3111 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3115 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3119 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3123 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3127 // Keyboard Password Status
3129 Temp
= (Settings
& 0x30) >> 4;
3130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3133 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3149 // Administrator Password Status
3151 Temp
= (Settings
& 0x0C) >> 2;
3152 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3159 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3167 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3171 // Front Panel Reset Status
3173 Temp
= Settings
& 0x3;
3174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3181 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3185 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3195 Display Out-of-Band Remote Access (Type 30) information.
3197 @param[in] Connections The device characteristics.
3198 @param[in] Option The device options.
3201 DisplayOBRAConnections (
3202 IN UINT8 Connections
,
3206 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3207 PRINT_INFO_OPTION (Connections
, Option
);
3210 // Check reserved bits 7:2
3212 if ((Connections
& 0xFC) != 0) {
3213 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3216 // Outbound Connection
3218 if (BIT (Connections
, 1) != 0) {
3219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3221 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3224 // Inbound Connection
3226 if (BIT (Connections
, 0) != 0) {
3227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3229 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3234 Display System Power Supply (Type 39) information.
3236 @param[in] Characteristics The device characteristics.
3237 @param[in] Option The device options.
3240 DisplaySPSCharacteristics (
3241 IN UINT16 Characteristics
,
3247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3248 PRINT_INFO_OPTION (Characteristics
, Option
);
3251 // Check reserved bits 15:14
3253 if ((Characteristics
& 0xC000) != 0) {
3254 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3257 // Bits 13:10 - DMTF Power Supply Type
3259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3260 Temp
= (Characteristics
& 0x1C00) >> 10;
3263 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3267 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3271 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3275 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3279 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3287 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3291 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3295 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3298 // Bits 9:7 - Status
3300 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3301 Temp
= (Characteristics
& 0x380) >> 7;
3304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3308 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3312 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3324 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3327 // Bits 6:3 - DMTF Input Voltage Range Switching
3329 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3330 Temp
= (Characteristics
& 0x78) >> 3;
3333 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3337 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3341 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3361 // Power supply is unplugged from the wall
3363 if (BIT (Characteristics
, 2) != 0) {
3364 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3366 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3369 // Power supply is present
3371 if (BIT (Characteristics
, 1) != 0) {
3372 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3374 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3379 if (BIT (Characteristics
, 0) != 0) {
3380 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3382 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3387 Display TPM Device (Type 43) Characteristics.
3389 @param[in] Chara The information bits.
3390 @param[in] Option The optional information.
3393 DisplayTpmDeviceCharacteristics (
3401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3405 PRINT_INFO_OPTION (Chara
, Option
);
3408 // Check all the bits and print information
3409 // This function does not use Table because table of bits
3410 // are designed not to deal with UINT64
3412 if (BIT (Chara
, 0) != 0) {
3413 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3416 if (BIT (Chara
, 1) != 0) {
3417 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3419 if (BIT (Chara
, 2) != 0) {
3420 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3423 if (BIT (Chara
, 3) != 0) {
3424 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3427 if (BIT (Chara
, 4) != 0) {
3428 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3431 if (BIT (Chara
, 5) != 0) {
3432 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3436 // Just print the Reserved
3438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);