2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2017, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
7 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #include "../UefiShellDebug1CommandsLib.h"
18 #include "PrintInfo.h"
19 #include "LibSmbiosView.h"
20 #include "QueryTable.h"
21 #include "EventLogInfo.h"
25 // Get the certain bit of 'value'
27 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
30 // Check if above or equal to version
32 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
33 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
36 //////////////////////////////////////////////////////////
37 // Macros of print structure element, simplify coding.
39 #define PRINT_PENDING_STRING(pStruct, type, element) \
42 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
43 ShellPrintEx(-1,-1,L"%a",#element); \
44 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
47 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
50 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
51 ShellPrintEx(-1,-1,L"%a",#element); \
52 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
55 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
57 ShellPrintEx(-1,-1,L"%a",#element); \
58 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
61 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
63 ShellPrintEx(-1,-1,L"%a",#element); \
64 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
67 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
69 ShellPrintEx(-1,-1,L"%a",#element); \
70 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
73 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
75 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
76 ShellPrintEx(-1,-1,L"%a",#element); \
77 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
78 DumpHex (0, 0, size, &(pStruct->type->element)); \
81 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
83 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
84 ShellPrintEx(-1,-1,L"%a",#element); \
85 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
86 DumpHex (0, 0, size, startaddress); \
90 /////////////////////////////////////////
94 Copy Length of Src buffer to Dest buffer,
95 add a NULL termination to Dest buffer.
97 @param[in, out] Dest Destination buffer head.
98 @param[in] Src Source buffer head.
99 @param[in] Length Length of buffer to be copied.
110 SrcBuffer
= (UINT8
*) Src
;
111 DestBuffer
= (UINT8
*) Dest
;
115 while ((Length
--)!=0) {
116 *DestBuffer
++ = *SrcBuffer
++;
119 // append a NULL terminator
125 //////////////////////////////////////////////
127 // Functions below is to show the information
131 Print the info of EPS(Entry Point Structure).
133 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
134 @param[in] Option Display option.
138 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
145 if (SmbiosTable
== NULL
) {
146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
150 if (Option
== SHOW_NONE
) {
154 if (Option
>= SHOW_NORMAL
) {
155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
156 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
158 ShellPrintHiiEx(-1,-1,NULL
,
159 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
160 gShellDebug1HiiHandle
,
161 SmbiosTable
->EntryPointStructureChecksum
163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
164 ShellPrintHiiEx(-1,-1,NULL
,
165 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
166 gShellDebug1HiiHandle
,
167 SmbiosTable
->MajorVersion
,
168 SmbiosTable
->MinorVersion
170 ShellPrintHiiEx(-1,-1,NULL
,
171 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
172 gShellDebug1HiiHandle
,
173 SmbiosTable
->NumberOfSmbiosStructures
175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
181 // If SHOW_ALL, also print followings.
183 if (Option
>= SHOW_DETAIL
) {
184 ShellPrintHiiEx(-1,-1,NULL
,
185 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
186 gShellDebug1HiiHandle
,
187 SmbiosTable
->EntryPointRevision
189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
191 // Since raw data is not string, add a NULL terminater.
193 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
197 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
204 Print the info of 64-bit EPS(Entry Point Structure).
206 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
207 @param[in] Option Display option.
210 Smbios64BitPrintEPSInfo (
211 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
217 if (SmbiosTable
== NULL
) {
218 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
222 if (Option
== SHOW_NONE
) {
226 if (Option
>= SHOW_NORMAL
) {
227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
229 MemToString (Anchor
, SmbiosTable
->AnchorString
, 5);
230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
232 ShellPrintHiiEx(-1,-1,NULL
,
233 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
234 gShellDebug1HiiHandle
,
235 SmbiosTable
->EntryPointStructureChecksum
238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
240 ShellPrintHiiEx(-1,-1,NULL
,
241 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
242 gShellDebug1HiiHandle
,
243 SmbiosTable
->MajorVersion
,
244 SmbiosTable
->MinorVersion
247 ShellPrintHiiEx(-1,-1,NULL
,
248 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV
),
249 gShellDebug1HiiHandle
,
253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->TableMaximumSize
);
255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
259 // If SHOW_ALL, also print followings.
261 if (Option
>= SHOW_DETAIL
) {
262 ShellPrintHiiEx(-1,-1,NULL
,
263 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
264 gShellDebug1HiiHandle
,
265 SmbiosTable
->EntryPointRevision
273 This function print the content of the structure pointed by Struct.
275 @param[in] Struct Point to the structure to be printed.
276 @param[in] Option Print option of information detail.
278 @retval EFI_SUCCESS Successfully Printing this function.
279 @retval EFI_INVALID_PARAMETER Invalid Structure.
280 @retval EFI_UNSUPPORTED Unsupported.
283 SmbiosPrintStructure (
284 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
291 if (Struct
== NULL
) {
292 return EFI_INVALID_PARAMETER
;
295 if (Option
== SHOW_NONE
) {
299 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
302 // Display structure header
304 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
308 if (Option
== SHOW_OUTLINE
) {
312 switch (Struct
->Hdr
->Type
) {
314 // BIOS Information (Type 0)
317 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
318 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
319 PRINT_STRUCT_VALUE (Struct
, Type0
, BiosSegment
);
320 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
321 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
323 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type0
->BiosCharacteristics
)), Option
);
325 if (Struct
->Hdr
->Length
> 0x12) {
326 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
328 if (Struct
->Hdr
->Length
> 0x13) {
329 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
332 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
333 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
334 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
335 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
336 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
338 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x18)) {
343 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTENDED_BIOS_SIZE
),
344 gShellDebug1HiiHandle
,
345 Struct
->Type0
->ExtendedBiosSize
.Size
,
346 (Struct
->Type0
->ExtendedBiosSize
.Unit
== 0x0) ? L
"MB": L
"GB"
352 // System Information (Type 1)
355 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
356 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
357 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
358 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
359 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
360 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
361 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
362 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
363 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
369 // Baseboard Information (Type 2)
372 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
373 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
374 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
375 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
376 if (Struct
->Hdr
->Length
> 0x8) {
377 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
378 DisplayBaseBoardFeatureFlags (*(UINT8
*) &Struct
->Type2
->FeatureFlag
, Option
);
379 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
380 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
381 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
386 // System Enclosure (Type 3)
389 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
390 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
391 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
392 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
393 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
394 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
395 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
396 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
397 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
398 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
399 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
400 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
402 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
403 if (AE_SMBIOS_VERSION (0x2, 0x3)) {
404 if (Struct
->Hdr
->Length
> 0xD) {
405 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
407 if (Struct
->Hdr
->Length
> 0x11) {
408 PRINT_STRUCT_VALUE (Struct
, Type3
, Height
);
410 if (Struct
->Hdr
->Length
> 0x12) {
411 PRINT_STRUCT_VALUE (Struct
, Type3
, NumberofPowerCords
);
414 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
415 if (Struct
->Hdr
->Length
> (0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
))) {
416 PRINT_SMBIOS_STRING (Struct
, Buffer
[0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
)], SKUNumber
);
422 // Processor Information (Type 4)
425 PRINT_SMBIOS_STRING (Struct
, Struct
->Type4
->Socket
, SocketDesignation
)
426 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
427 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
428 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
430 // Get family from ProcessorFamily2 field
432 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
434 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
436 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
437 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
438 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
439 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
440 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
441 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
442 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
443 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
444 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
445 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
446 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
447 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
448 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
449 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
450 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
451 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
453 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
454 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
455 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
456 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
457 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
459 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
460 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
461 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
462 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
467 // Memory Controller Information (Type 5)
472 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
474 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
475 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
476 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
477 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
479 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
480 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
481 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
482 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
483 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
484 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
486 // According to SMBIOS Specification, offset 0x0F
488 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
489 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
494 // Memory Module Information (Type 6)
497 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
498 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
499 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
500 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
501 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
502 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
503 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
504 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
505 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
509 // Cache Information (Type 7)
512 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
513 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
514 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
515 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
516 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
517 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
518 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
519 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
520 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
521 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
522 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
523 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct
->Hdr
->Length
> 0x13)) {
524 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize2
);
525 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize2
);
530 // Port Connector Information (Type 8)
533 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
534 Print (L
"Internal ");
535 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
536 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
537 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
538 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
539 DisplayPortType (Struct
->Type8
->PortType
, Option
);
543 // System Slots (Type 9)
546 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
547 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
548 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
549 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
550 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
551 DisplaySystemSlotId (
552 Struct
->Type9
->SlotID
,
553 Struct
->Type9
->SlotType
,
556 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
557 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
558 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
559 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
560 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
561 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
566 // On Board Devices Information (Type 10)
571 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
572 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
573 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
574 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
575 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
581 // Oem Strings (Type 11)
584 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
585 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
586 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
591 // System Configuration Options (Type 12)
594 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
595 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
596 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
601 // BIOS Language Information (Type 13)
604 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
605 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
606 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
607 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
611 // Group Associations (Type 14)
616 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
617 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
618 for (Index
= 0; Index
< NumOfItem
; Index
++) {
619 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
620 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
626 // System Event Log (Type 15)
632 UINT8
*AccessMethodAddress
;
634 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
635 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
636 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
637 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
638 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
639 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
640 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
641 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
642 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
643 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
645 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
647 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
650 // Display all Event Log type descriptors supported by system
652 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
653 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
654 DisplaySELTypes (Ptr
->LogType
, Option
);
655 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
658 if (Option
>= SHOW_DETAIL
) {
659 switch (Struct
->Type15
->AccessMethod
) {
661 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
669 ShellPrintHiiEx(-1,-1,NULL
,
670 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
671 gShellDebug1HiiHandle
,
672 Struct
->Type15
->AccessMethod
674 return EFI_UNSUPPORTED
;
677 // Display Event Log Header
679 // Starting offset (or index) within the nonvolatile storage
680 // of the event-log's header, from the Access Method Address
682 DisplaySysEventLogHeader (
683 Struct
->Type15
->LogHeaderFormat
,
684 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
688 // Display all Event Log data
690 // Starting offset (or index) within the nonvolatile storage
691 // of the event-log's first data byte, from the Access Method Address(0x14)
693 DisplaySysEventLogData (
694 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
697 Struct
->Type15
->LogAreaLength
-
698 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
708 // Physical Memory Array (Type 16)
711 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
712 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
713 DisplayPMAErrorCorrectionTypes (
714 Struct
->Type16
->MemoryErrorCorrection
,
717 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
718 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
719 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
720 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
721 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
726 // Memory Device (Type 17)
729 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
730 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
731 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
732 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
733 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
734 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
735 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
736 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
737 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
738 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
739 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
740 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
741 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
742 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
743 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
744 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
745 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
746 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
748 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
749 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
750 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
752 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
753 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
754 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
755 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
760 // 32-bit Memory Error Information (Type 18)
763 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
764 DisplayMemoryErrorGranularity (
765 Struct
->Type18
->ErrorGranularity
,
768 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
769 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
770 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
771 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
772 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
776 // Memory Array Mapped Address (Type 19)
779 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
780 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
783 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
784 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
785 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
790 // Memory Device Mapped Address (Type 20)
793 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
794 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
795 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
796 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
797 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
798 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
799 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
800 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
801 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
802 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
807 // Built-in Pointing Device (Type 21)
810 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
811 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
812 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
816 // Portable Battery (Type 22)
819 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
820 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
821 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
822 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
823 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
824 DisplayPBDeviceChemistry (
825 Struct
->Type22
->DeviceChemistry
,
828 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
829 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
830 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
831 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
832 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
833 DisplaySBDSManufactureDate (
834 Struct
->Type22
->SBDSManufactureDate
,
837 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
839 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
843 // System Reset (Type 23)
846 DisplaySystemResetCapabilities (
847 Struct
->Type23
->Capabilities
,
850 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
851 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
852 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
853 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
857 // Hardware Security (Type 24)
860 DisplayHardwareSecuritySettings (
861 Struct
->Type24
->HardwareSecuritySettings
,
867 // System Power Controls (Type 25)
870 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
871 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
872 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
873 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
874 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
878 // Voltage Probe (Type 26)
881 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
882 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
883 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
884 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
885 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
886 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
887 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
889 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
890 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
894 // Cooling Device (Type 27)
897 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
898 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
899 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
900 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
901 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
902 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
903 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
904 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
909 // Temperature Probe (Type 28)
912 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
913 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
914 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
915 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
916 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
917 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
918 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
919 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
920 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
921 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
925 // Electrical Current Probe (Type 29)
928 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
929 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
930 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
931 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
932 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
933 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
934 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
935 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
936 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
937 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
941 // Out-of-Band Remote Access (Type 30)
944 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
945 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
949 // Boot Integrity Services (BIS) Entry Point (Type 31)
952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
956 // System Boot Information (Type 32)
959 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
960 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
964 // 64-Bit Memory Error Information (Type 33)
967 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
968 DisplayMemoryErrorGranularity (
969 Struct
->Type33
->ErrorGranularity
,
972 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
973 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
974 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
975 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
976 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
980 // Management Device (Type 34)
983 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
984 DisplayMDType (Struct
->Type34
->Type
, Option
);
985 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
986 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
990 // Management Device Component (Type 35)
993 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
994 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
995 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
996 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
1000 // Management Device Threshold Data (Type 36)
1003 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
1004 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
1005 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
1006 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
1007 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
1008 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
1012 // Memory Channel (Type 37)
1018 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1019 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1020 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1022 Count
= Struct
->Type37
->MemoryDeviceCount
;
1023 Ptr
= Struct
->Type37
->MemoryDevice
;
1024 for (Index
= 0; Index
< Count
; Index
++) {
1025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1026 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1033 // IPMI Device Information (Type 38)
1036 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1037 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1038 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1039 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1040 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1044 // System Power Supply (Type 39)
1047 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1048 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1049 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1050 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1051 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1052 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1053 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1054 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1055 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1056 DisplaySPSCharacteristics (
1057 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1060 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1061 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1062 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1066 // Additional Information (Type 40)
1070 UINT8 NumberOfEntries
;
1072 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1075 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1076 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1078 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1080 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1081 EntryLength
= Entries
->EntryLength
;
1082 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1084 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1085 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1086 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1087 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1093 // Onboard Devices Extended Information (Type 41)
1096 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1097 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1098 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1099 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1100 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1101 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1102 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1106 // Management Controller Host Interface (Type 42)
1109 DisplayMCHostInterfaceType (Struct
->Type42
->InterfaceType
, Option
);
1113 // TPM Device (Type 43)
1116 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1117 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1118 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1119 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1120 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1121 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1122 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type43
->Characteristics
)), Option
);
1123 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1127 // Inactive (Type 126)
1130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1134 // End-of-Table (Type 127)
1137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1149 Display BIOS Information (Type 0) information.
1151 @param[in] Chara The information bits.
1152 @param[in] Option The optional information.
1155 DisplayBiosCharacteristics (
1163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1167 PRINT_INFO_OPTION (Chara
, Option
);
1170 // Check all the bits and print information
1171 // This function does not use Table because table of bits
1172 // are designed not to deal with UINT64
1174 if (BIT (Chara
, 0) != 0) {
1175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1178 if (BIT (Chara
, 1) != 0) {
1179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1182 if (BIT (Chara
, 2) != 0) {
1183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1186 if (BIT (Chara
, 3) != 0) {
1187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1190 if (BIT (Chara
, 4) != 0) {
1191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1194 if (BIT (Chara
, 5) != 0) {
1195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1198 if (BIT (Chara
, 6) != 0) {
1199 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1202 if (BIT (Chara
, 7) != 0) {
1203 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1206 if (BIT (Chara
, 8) != 0) {
1207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1210 if (BIT (Chara
, 9) != 0) {
1211 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1214 if (BIT (Chara
, 10) != 0) {
1215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1218 if (BIT (Chara
, 11) != 0) {
1219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1222 if (BIT (Chara
, 12) != 0) {
1223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1226 if (BIT (Chara
, 13) != 0) {
1227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1230 if (BIT (Chara
, 14) != 0) {
1231 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1234 if (BIT (Chara
, 15) != 0) {
1235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1238 if (BIT (Chara
, 16) != 0) {
1239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1242 if (BIT (Chara
, 17) != 0) {
1243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1246 if (BIT (Chara
, 18) != 0) {
1247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1250 if (BIT (Chara
, 19) != 0) {
1251 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1254 if (BIT (Chara
, 20) != 0) {
1255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1258 if (BIT (Chara
, 21) != 0) {
1259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1262 if (BIT (Chara
, 22) != 0) {
1263 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1266 if (BIT (Chara
, 23) != 0) {
1267 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1270 if (BIT (Chara
, 24) != 0) {
1271 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1274 if (BIT (Chara
, 25) != 0) {
1275 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1278 if (BIT (Chara
, 26) != 0) {
1279 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1282 if (BIT (Chara
, 27) != 0) {
1283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1286 if (BIT (Chara
, 28) != 0) {
1287 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1290 if (BIT (Chara
, 29) != 0) {
1291 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1294 if (BIT (Chara
, 30) != 0) {
1295 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1298 if (BIT (Chara
, 31) != 0) {
1299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1302 // Just print the Reserved
1304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1309 Display Bios Characteristice extensions1 information.
1311 @param[in] Byte1 The information.
1312 @param[in] Option The optional information.
1315 DisplayBiosCharacteristicsExt1 (
1320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1324 PRINT_INFO_OPTION (Byte1
, Option
);
1327 // check bit and print
1329 if (BIT (Byte1
, 0) != 0) {
1330 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1333 if (BIT (Byte1
, 1) != 0) {
1334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1337 if (BIT (Byte1
, 2) != 0) {
1338 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1341 if (BIT (Byte1
, 3) != 0) {
1342 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1345 if (BIT (Byte1
, 4) != 0) {
1346 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1349 if (BIT (Byte1
, 5) != 0) {
1350 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1353 if (BIT (Byte1
, 6) != 0) {
1354 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1357 if (BIT (Byte1
, 7) != 0) {
1358 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1363 Display Bios Characteristice extensions2 information.
1365 @param[in] byte2 The information.
1366 @param[in] Option The optional information.
1369 DisplayBiosCharacteristicsExt2 (
1374 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1378 PRINT_INFO_OPTION (byte2
, Option
);
1380 if (BIT (byte2
, 0) != 0) {
1381 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1384 if (BIT (byte2
, 1) != 0) {
1385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1388 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1389 if (BIT (byte2
, 2) != 0) {
1390 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1392 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1393 if (BIT (byte2
, 3) != 0) {
1394 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1396 if (BIT (byte2
, 4) != 0) {
1397 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1399 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1404 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1409 Display Processor Information (Type 4) information.
1411 @param[in] Family The family value.
1412 @param[in] Option The option value.
1415 DisplayProcessorFamily (
1421 // Print prompt message
1423 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1427 PRINT_INFO_OPTION (Family
, Option
);
1430 // Use switch to check
1434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1450 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1454 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1474 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1482 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1486 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1490 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1494 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1498 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1502 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1506 Print (L
"M2 Family\n");
1510 Print (L
"Intel Celeron M\n");
1514 Print (L
"Intel Pentium 4 HT\n");
1518 Print (L
"AMD Duron\n");
1522 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1526 Print (L
"K6 Family\n");
1538 Print (L
"AMD Althon Processor Family\n");
1542 Print (L
"AMD 29000 Family\n");
1550 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1554 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1558 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1562 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1566 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1570 Print (L
"Power PC 620\n");
1574 Print (L
"Power PC 704\n");
1578 Print (L
"Power PC 750\n");
1582 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1586 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1590 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1594 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1598 Print (L
"Intel(R) Core(TM) M processor\n");
1602 Print (L
"Intel(R) Core(TM) m3 processor\n");
1606 Print (L
"Intel(R) Core(TM) m5 processor\n");
1610 Print (L
"Intel(R) Core(TM) m7 processor\n");
1614 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1618 Print (L
"Alpha 21064\n");
1622 Print (L
"Alpha 21066\n");
1626 Print (L
"Alpha 21164\n");
1630 Print (L
"Alpha 21164PC\n");
1634 Print (L
"Alpha 21164a\n");
1638 Print (L
"Alpha 21264\n");
1642 Print (L
"Alpha 21364\n");
1646 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1650 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1654 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1658 Print (L
"AMD Opteron 6100 Series Processor\n");
1662 Print (L
"AMD Opteron 4100 Series Processor\n");
1666 Print (L
"AMD Opteron 6200 Series Processor\n");
1670 Print (L
"AMD Opteron 4200 Series Processor\n");
1674 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1678 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1682 Print (L
"MIPS R4000\n");
1686 Print (L
"MIPS R4200\n");
1690 Print (L
"MIPS R4400\n");
1694 Print (L
"MIPS R4600\n");
1698 Print (L
"MIPS R10000\n");
1702 Print (L
"AMD C-Series Processor\n");
1706 Print (L
"AMD E-Series Processor\n");
1710 Print (L
"AMD A-Series Processor\n");
1714 Print (L
"AMD G-Series Processor\n");
1718 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1722 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1726 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1730 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1734 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1738 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1742 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1746 Print (L
"SuperSparc\n");
1750 Print (L
"microSparc II\n");
1754 Print (L
"microSparc IIep\n");
1758 Print (L
"UltraSparc\n");
1762 Print (L
"UltraSparc II\n");
1766 Print (L
"UltraSparcIIi\n");
1770 Print (L
"UltraSparcIII\n");
1774 Print (L
"UltraSparcIIIi\n");
1778 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1802 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1806 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1810 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1814 Print (L
"AMD Opteron(TM) A-Series Processor\n");
1818 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
1822 Print (L
"AMD Zen Processor Family\n");
1826 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1830 Print (L
"Crusoe TM5000\n");
1834 Print (L
"Crusoe TM3000\n");
1838 Print (L
"Efficeon TM8000\n");
1842 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1846 Print (L
"Itanium\n");
1850 Print (L
"AMD Athlon64\n");
1854 Print (L
"AMD Opteron\n");
1858 Print (L
"AMD Sempron\n");
1862 Print (L
"AMD Turion64 Mobile\n");
1866 Print (L
"Dual-Core AMD Opteron\n");
1870 Print (L
"AMD Athlon 64X2 DualCore\n");
1874 Print (L
"AMD Turion 64X2 Mobile\n");
1878 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1882 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1886 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1890 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1894 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1902 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1906 Print (L
"PA-RISC 8500\n");
1910 Print (L
"PA-RISC 8000\n");
1914 Print (L
"PA-RISC 7300LC\n");
1918 Print (L
"PA-RISC 7200\n");
1922 Print (L
"PA-RISC 7100LC\n");
1926 Print (L
"PA-RISC 7100\n");
1930 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1934 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1942 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1946 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1950 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1954 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1958 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1962 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1966 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1970 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1978 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1982 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1990 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1994 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1998 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2002 Print (L
"Pentium 4 processor\n");
2006 Print (L
"Intel Xeon Processor\n");
2010 Print (L
"AS400 Family\n");
2014 Print (L
"Intel Xeon processor MP\n");
2018 Print (L
"AMD Althon XP Processor Family\n");
2022 Print (L
"AMD Althon MP Promcessor Family\n");
2026 Print (L
"Intel Itanium 2 processor\n");
2030 Print (L
"Intel Penium M processor\n");
2034 Print (L
"Intel Celeron D processor\n");
2038 Print (L
"Intel Pentium D processor\n");
2042 Print (L
"Intel Pentium Processor Extreme Edition\n");
2046 Print (L
"Intel Core Solo Processor\n");
2050 Print (L
"Intel Core 2 Duo Processor\n");
2054 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2058 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2066 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2074 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2078 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2082 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2086 Print (L
"IBM 390\n");
2102 Print (L
"zArchitecture\n");
2106 Print (L
"Intel Core i5 processor\n");
2110 Print (L
"Intel Core i3 processor\n");
2114 Print (L
"ViaC7M\n");
2118 Print (L
"ViaC7D\n");
2130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2138 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2142 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2150 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2158 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2162 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2166 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2170 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2199 Print (L
"AMD Phenom II Processor Family\n");
2203 Print (L
"AMD Althon II Processor Family\n");
2207 Print (L
"Six-Core AMD Opteron Processor Family\n");
2211 Print (L
"AMD Sempron M Processor Family\n");
2223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2231 Display processor family information.
2233 @param[in] Family2 The family value.
2234 @param[in] Option The option value.
2237 DisplayProcessorFamily2 (
2243 // Print prompt message
2245 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2250 PRINT_INFO_OPTION (Family2
, Option
);
2253 // Use switch to check
2277 Print (L
"StrongARM\n");
2285 Print (L
"MediaGX\n");
2293 Print (L
"WinChip\n");
2301 Print (L
"Video Processor\n");
2305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2311 Display processor voltage information.
2313 @param[in] Voltage The Voltage.
2314 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2315 Bits 6:4 Reserved, must be zero
2316 Bits 3:0 Voltage Capability.
2317 A Set bit indicates that the voltage is supported.
2321 Bit 3 - Reserved, must be zero.
2324 Setting of multiple bits indicates the socket is configurable
2325 If bit 7 is set to 1, the remaining seven bits of the field are set to
2326 contain the processor's current voltage times 10.
2327 For example, the field value for a processor voltage of 1.8 volts would be
2328 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2330 @param[in] Option The option.
2333 DisplayProcessorVoltage (
2338 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2342 PRINT_INFO_OPTION (Voltage
, Option
);
2344 if (BIT (Voltage
, 7) != 0) {
2345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2347 if (BIT (Voltage
, 0) != 0) {
2348 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2351 if (BIT (Voltage
, 1) != 0) {
2352 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2355 if (BIT (Voltage
, 2) != 0) {
2356 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2359 // check the reserved zero bits:
2361 if (BIT (Voltage
, 3) != 0) {
2362 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2365 if (BIT (Voltage
, 4) != 0) {
2366 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2369 if (BIT (Voltage
, 5) != 0) {
2370 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2373 if (BIT (Voltage
, 6) != 0) {
2374 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2380 Display processor information.
2382 @param[in] Status The status.
2383 Bit 7 Reserved, must be 0
2384 Bit 6 CPU Socket Populated
2385 1 - CPU Socket Populated
2386 0 - CPU Socket Unpopulated
2387 Bits 5:3 Reserved, must be zero
2391 2h - CPU Disabled by User via BIOS Setup
2392 3h - CPU Disabled By BIOS (POST Error)
2393 4h - CPU is Idle, waiting to be enabled.
2397 @param[in] Option The option
2400 DisplayProcessorStatus (
2405 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2406 PRINT_INFO_OPTION (Status
, Option
);
2408 if (BIT (Status
, 7) != 0) {
2409 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2410 } else if (BIT (Status
, 5) != 0) {
2411 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2412 } else if (BIT (Status
, 4) != 0) {
2413 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2414 } else if (BIT (Status
, 3) != 0) {
2415 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2420 if (BIT (Status
, 6) != 0) {
2421 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2423 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2428 switch (Status
& 0x07) {
2430 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2442 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2446 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2450 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2454 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2459 Display information about Memory Controller Information (Type 5).
2461 @param[in] Size Memory size.
2462 @param[in] SlotNum Which slot is this about.
2463 @param[in] Option Option for the level of detail output required.
2466 DisplayMaxMemoryModuleSize (
2473 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2475 // MaxSize is determined by follow formula
2477 MaxSize
= (UINTN
) 1 << Size
;
2478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2480 if (Option
>= SHOW_DETAIL
) {
2481 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2482 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2487 Display information about memory configuration handles.
2489 @param[in] Handles The buffer of handles to output info on.
2490 @param[in] SlotNum The number of handles in the above buffer.
2491 @param[in] Option Option for the level of detail output required.
2494 DisplayMemoryModuleConfigHandles (
2501 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2503 if (Option
>= SHOW_DETAIL
) {
2505 // No handle, Handles is INVALID.
2511 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2512 for (Index
= 0; Index
< SlotNum
; Index
++) {
2513 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2519 Display Memory Module Information (Type 6).
2521 @param[in] BankConnections
2525 DisplayMmBankConnections (
2526 IN UINT8 BankConnections
,
2533 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2537 PRINT_INFO_OPTION (BankConnections
, Option
);
2540 // Divide it to high and low
2542 High
= (UINT8
) (BankConnections
& 0xF0);
2543 Low
= (UINT8
) (BankConnections
& 0x0F);
2546 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2548 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2552 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2554 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2560 Display memory informcation.
2563 where 2**n is the size in MB with three special-case values:
2564 7Dh Not determinable (Installed Size only)
2565 7Eh Module is installed, but no memory has been enabled
2567 Bit 7 Defines whether the memory module has a single- (0)
2568 or double-bank (1) connection.
2570 @param[in] Size - The size
2571 @param[in] Option - The option
2574 DisplayMmMemorySize (
2580 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2584 PRINT_INFO_OPTION (Size
, Option
);
2587 // Get the low bits(0-6 bit)
2589 Value
= (UINT8
) (Size
& 0x7F);
2590 if (Value
== 0x7D) {
2591 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2592 } else if (Value
== 0x7E) {
2593 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2594 } else if (Value
== 0x7F) {
2595 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2597 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2600 if (BIT (Size
, 7) != 0) {
2601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2603 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2608 Display Cache Configuration.
2610 @param[in] CacheConfiguration Cache Configuration.
2611 Bits 15:10 Reserved, must be 0
2612 Bits 9:8 Operational Mode
2615 2h - Varies with Memory Address
2617 Bit 7 Enabled/Disabled
2625 Bit 4 Reserved, must be zero
2626 Bit 3 Cache Socketed
2629 Bits 2:0 Cache Level
2630 1 through 8 (For example, an L1 cache would
2631 use value 000b and an L3 cache would use 010b.)
2633 @param[in] Option The option
2636 DisplayCacheConfiguration (
2637 IN UINT16 CacheConfiguration
,
2641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2642 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2644 if (BIT (CacheConfiguration
, 15) != 0) {
2645 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2646 } else if (BIT (CacheConfiguration
, 14) != 0) {
2647 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2648 } else if (BIT (CacheConfiguration
, 13) != 0) {
2649 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2650 } else if (BIT (CacheConfiguration
, 12) != 0) {
2651 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2652 } else if (BIT (CacheConfiguration
, 11) != 0) {
2653 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2654 } else if (BIT (CacheConfiguration
, 10) != 0) {
2655 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2656 } else if (BIT (CacheConfiguration
, 4) != 0) {
2657 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2663 switch ((CacheConfiguration
& 0x300) >> 8) {
2665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2673 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2684 if (BIT (CacheConfiguration
, 7) != 0) {
2685 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2687 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2693 switch ((CacheConfiguration
& 0x60) >> 5) {
2695 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2699 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2703 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2707 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2714 if (BIT (CacheConfiguration
, 3) != 0) {
2715 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2717 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2721 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2725 The Slot ID field of the System Slot structure provides a mechanism to
2726 correlate the physical attributes of the slot to its logical access method
2727 (which varies based on the Slot Type field).
2729 @param[in] SlotId - The slot ID
2730 @param[in] SlotType - The slot type
2731 @param[in] Option - The Option
2734 DisplaySystemSlotId (
2741 // Display slot type first
2743 DisplaySystemSlotType (SlotType
, Option
);
2745 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2749 PRINT_INFO_OPTION (SlotType
, Option
);
2756 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2757 if (SlotId
> 0 && SlotId
< 15) {
2758 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2760 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2768 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2769 if (SlotId
> 0 && SlotId
< 15) {
2770 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2772 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2780 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2787 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2794 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2798 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2799 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2801 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2807 Display System Boot Information (Type 32) information.
2809 @param[in] Parameter The parameter.
2810 @param[in] Option The options.
2813 DisplaySystemBootStatus (
2818 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2822 PRINT_INFO_OPTION (Parameter
, Option
);
2825 // Check value and print
2827 if (Parameter
== 0) {
2828 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2829 } else if (Parameter
== 1) {
2830 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2831 } else if (Parameter
== 2) {
2832 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2833 } else if (Parameter
== 3) {
2834 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2835 } else if (Parameter
== 4) {
2836 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2837 } else if (Parameter
== 5) {
2838 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2839 } else if (Parameter
== 6) {
2840 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2841 } else if (Parameter
== 7) {
2842 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2843 } else if (Parameter
== 8) {
2844 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2845 } else if (Parameter
>= 9 && Parameter
<= 127) {
2846 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2847 } else if (Parameter
>= 128 && Parameter
<= 191) {
2848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2849 } else if (Parameter
>= 192) {
2850 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2852 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2857 Display Portable Battery (Type 22) information.
2859 The date the cell pack was manufactured, in packed format:
2860 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2861 Bits 8:5 Month, in the range 1 to 12.
2862 Bits 4:0 Date, in the range 1 to 31.
2863 For example, 01 February 2000 would be identified as
2864 0010 1000 0100 0001b (0x2841).
2866 @param[in] Date The date
2867 @param[in] Option The option
2870 DisplaySBDSManufactureDate (
2879 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2880 PRINT_INFO_OPTION (Date
, Option
);
2884 Day
= Date
& 0x001F;
2885 Month
= (Date
& 0x01E0) >> 5;
2886 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2887 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2892 Display System Reset (Type 23) information.
2895 Identifies the system-reset capabilities for the system.
2896 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2897 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2898 Bits 4:3 Boot Option on Limit.
2899 Identifies the system action to be taken when the Reset Limit is reached, one of:
2900 00b Reserved, do not use.
2901 01b Operating system
2902 10b System utilities
2903 11b Do not rebootBits
2904 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2905 00b Reserved, do not use.
2906 01b Operating system
2907 10b System utilities
2910 1b The system reset is enabled by the user
2911 0b The system reset is not enabled by the user
2913 @param[in] Reset Reset
2914 @param[in] Option The option
2917 DisplaySystemResetCapabilities (
2924 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2925 PRINT_INFO_OPTION (Reset
, Option
);
2928 // Check reserved bits 7:6
2930 if ((Reset
& 0xC0) != 0) {
2931 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2936 if (BIT (Reset
, 5) != 0) {
2937 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2939 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2942 // Boot Option on Limit
2944 Temp
= (Reset
& 0x18) >> 3;
2945 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2948 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2956 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2960 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2966 Temp
= (Reset
& 0x06) >> 1;
2967 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2970 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2978 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2982 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2986 // Reset enable flag
2988 if ((Reset
& 0x01) != 0) {
2989 Print (L
"The system reset is enabled by the user\n");
2991 Print (L
"The system reset is disabled by the user\n");
2996 Display Hardware Security (Type 24) information.
2999 Identifies the password and reset status for the system:
3001 Bits 7:6 Power-on Password Status, one of:
3006 Bits 5:4 Keyboard Password Status, one of:
3011 Bits 3:2 Administrator Password Status, one of:
3016 Bits 1:0 Front Panel Reset Status, one of:
3022 @param[in] Settings The device settings.
3023 @param[in] Option The device options.
3026 DisplayHardwareSecuritySettings (
3033 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3034 PRINT_INFO_OPTION (Settings
, Option
);
3037 // Power-on Password Status
3039 Temp
= (Settings
& 0xC0) >> 6;
3040 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3043 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3047 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3051 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3055 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3059 // Keyboard Password Status
3061 Temp
= (Settings
& 0x30) >> 4;
3062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3065 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3073 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3077 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3081 // Administrator Password Status
3083 Temp
= (Settings
& 0x0C) >> 2;
3084 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3087 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3091 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3095 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3099 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3103 // Front Panel Reset Status
3105 Temp
= Settings
& 0x3;
3106 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3109 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3113 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3117 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3121 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3127 Display Out-of-Band Remote Access (Type 30) information.
3129 @param[in] Connections The device characteristics.
3130 @param[in] Option The device options.
3133 DisplayOBRAConnections (
3134 IN UINT8 Connections
,
3138 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3139 PRINT_INFO_OPTION (Connections
, Option
);
3142 // Check reserved bits 7:2
3144 if ((Connections
& 0xFC) != 0) {
3145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3148 // Outbound Connection
3150 if (BIT (Connections
, 1) != 0) {
3151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3153 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3156 // Inbound Connection
3158 if (BIT (Connections
, 0) != 0) {
3159 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3161 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3166 Display System Power Supply (Type 39) information.
3168 @param[in] Characteristics The device characteristics.
3169 @param[in] Option The device options.
3172 DisplaySPSCharacteristics (
3173 IN UINT16 Characteristics
,
3179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3180 PRINT_INFO_OPTION (Characteristics
, Option
);
3183 // Check reserved bits 15:14
3185 if ((Characteristics
& 0xC000) != 0) {
3186 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3189 // Bits 13:10 - DMTF Power Supply Type
3191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3192 Temp
= (Characteristics
& 0x1C00) >> 10;
3195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3199 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3203 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3211 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3230 // Bits 9:7 - Status
3232 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3233 Temp
= (Characteristics
& 0x380) >> 7;
3236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3248 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3256 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3259 // Bits 6:3 - DMTF Input Voltage Range Switching
3261 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3262 Temp
= (Characteristics
& 0x78) >> 3;
3265 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3281 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3285 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3289 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3293 // Power supply is unplugged from the wall
3295 if (BIT (Characteristics
, 2) != 0) {
3296 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3298 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3301 // Power supply is present
3303 if (BIT (Characteristics
, 1) != 0) {
3304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3311 if (BIT (Characteristics
, 0) != 0) {
3312 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3314 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3319 Display TPM Device (Type 43) Characteristics.
3321 @param[in] Chara The information bits.
3322 @param[in] Option The optional information.
3325 DisplayTpmDeviceCharacteristics (
3333 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3337 PRINT_INFO_OPTION (Chara
, Option
);
3340 // Check all the bits and print information
3341 // This function does not use Table because table of bits
3342 // are designed not to deal with UINT64
3344 if (BIT (Chara
, 0) != 0) {
3345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3348 if (BIT (Chara
, 1) != 0) {
3349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3351 if (BIT (Chara
, 2) != 0) {
3352 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3355 if (BIT (Chara
, 3) != 0) {
3356 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3359 if (BIT (Chara
, 4) != 0) {
3360 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3363 if (BIT (Chara
, 5) != 0) {
3364 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3368 // Just print the Reserved
3370 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);