2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
7 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_H (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)
547 MISC_SLOT_PEER_GROUP
*PeerGroupPtr
;
548 UINT8 PeerGroupCount
;
550 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
551 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
552 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
553 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
554 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
555 DisplaySystemSlotId (
556 Struct
->Type9
->SlotID
,
557 Struct
->Type9
->SlotType
,
560 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
561 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
562 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
563 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
564 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
565 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
567 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
568 if (Struct
->Hdr
->Length
> 0x11) {
569 PRINT_STRUCT_VALUE (Struct
, Type9
, DataBusWidth
);
571 if (Struct
->Hdr
->Length
> 0x12) {
572 PRINT_STRUCT_VALUE (Struct
, Type9
, PeerGroupingCount
);
574 PeerGroupCount
= Struct
->Type9
->PeerGroupingCount
;
575 PeerGroupPtr
= Struct
->Type9
->PeerGroups
;
576 for (Index
= 0; Index
< PeerGroupCount
; Index
++) {
577 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_PEER_GROUPS
), gShellDebug1HiiHandle
, Index
+ 1);
578 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SEGMENT_GROUP_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].SegmentGroupNum
);
579 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BUS_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].BusNum
);
580 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_FUNC_NUM
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].DevFuncNum
);
581 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DATA_BUS_WIDTH
), gShellDebug1HiiHandle
, PeerGroupPtr
[Index
].DataBusWidth
);
589 // On Board Devices Information (Type 10)
594 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
595 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
596 ShellPrintEx(-1,-1,(((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
597 DisplayOnboardDeviceTypes ((Struct
->Type10
->Device
[Index
].DeviceType
) & 0x7F, Option
);
598 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
599 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
605 // Oem Strings (Type 11)
608 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
609 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
610 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
615 // System Configuration Options (Type 12)
618 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
619 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
620 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
625 // BIOS Language Information (Type 13)
628 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
629 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
630 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
631 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
635 // Group Associations (Type 14)
640 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
641 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
642 for (Index
= 0; Index
< NumOfItem
; Index
++) {
643 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
644 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
650 // System Event Log (Type 15)
656 UINT8
*AccessMethodAddress
;
658 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
659 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
660 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
661 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
662 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
663 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
664 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
665 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
666 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
667 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
669 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
671 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
674 // Display all Event Log type descriptors supported by system
676 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
678 DisplaySELTypes (Ptr
->LogType
, Option
);
679 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
682 if (Option
>= SHOW_DETAIL
) {
683 switch (Struct
->Type15
->AccessMethod
) {
685 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
693 ShellPrintHiiEx(-1,-1,NULL
,
694 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
695 gShellDebug1HiiHandle
,
696 Struct
->Type15
->AccessMethod
698 return EFI_UNSUPPORTED
;
701 // Display Event Log Header
703 // Starting offset (or index) within the nonvolatile storage
704 // of the event-log's header, from the Access Method Address
706 DisplaySysEventLogHeader (
707 Struct
->Type15
->LogHeaderFormat
,
708 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
712 // Display all Event Log data
714 // Starting offset (or index) within the nonvolatile storage
715 // of the event-log's first data byte, from the Access Method Address(0x14)
717 DisplaySysEventLogData (
718 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
721 Struct
->Type15
->LogAreaLength
-
722 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
732 // Physical Memory Array (Type 16)
735 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
736 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
737 DisplayPMAErrorCorrectionTypes (
738 Struct
->Type16
->MemoryErrorCorrection
,
741 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
742 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
743 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
744 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
745 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
750 // Memory Device (Type 17)
753 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
754 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
755 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
756 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
757 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
758 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
759 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
760 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
761 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
762 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
763 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
764 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
765 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
766 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
767 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
768 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
769 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
770 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
772 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
773 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
774 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
776 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
777 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
778 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
779 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
781 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
782 if (Struct
->Hdr
->Length
> 0x28) {
783 DisplayMemoryDeviceMemoryTechnology (Struct
->Type17
->MemoryTechnology
, Option
);
784 DisplayMemoryDeviceMemoryOperatingModeCapability (Struct
->Type17
->MemoryOperatingModeCapability
.Uint16
, Option
);
785 PRINT_PENDING_STRING (Struct
, Type17
, FirwareVersion
);
786 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleManufacturerID
);
787 PRINT_STRUCT_VALUE_H (Struct
, Type17
, ModuleProductID
);
788 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerManufacturerID
);
789 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemorySubsystemControllerProductID
);
791 if (Struct
->Hdr
->Length
> 0x34) {
792 PRINT_STRUCT_VALUE_H (Struct
, Type17
, NonVolatileSize
);
794 if (Struct
->Hdr
->Length
> 0x3C) {
795 PRINT_STRUCT_VALUE_H (Struct
, Type17
, VolatileSize
);
797 if (Struct
->Hdr
->Length
> 0x44) {
798 PRINT_STRUCT_VALUE_H (Struct
, Type17
, CacheSize
);
800 if (Struct
->Hdr
->Length
> 0x4C) {
801 PRINT_STRUCT_VALUE_H (Struct
, Type17
, LogicalSize
);
807 // 32-bit Memory Error Information (Type 18)
810 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
811 DisplayMemoryErrorGranularity (
812 Struct
->Type18
->ErrorGranularity
,
815 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
816 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
817 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
818 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
819 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
823 // Memory Array Mapped Address (Type 19)
826 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
827 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
828 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
829 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
830 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
831 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
832 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
837 // Memory Device Mapped Address (Type 20)
840 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
841 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
842 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
843 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
844 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
845 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
846 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
847 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
848 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
849 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
854 // Built-in Pointing Device (Type 21)
857 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
858 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
859 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
863 // Portable Battery (Type 22)
866 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
867 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
868 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
869 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
870 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
871 DisplayPBDeviceChemistry (
872 Struct
->Type22
->DeviceChemistry
,
875 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
876 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
877 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
878 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
879 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
880 DisplaySBDSManufactureDate (
881 Struct
->Type22
->SBDSManufactureDate
,
884 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
885 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
886 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
890 // System Reset (Type 23)
893 DisplaySystemResetCapabilities (
894 Struct
->Type23
->Capabilities
,
897 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
898 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
899 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
900 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
904 // Hardware Security (Type 24)
907 DisplayHardwareSecuritySettings (
908 Struct
->Type24
->HardwareSecuritySettings
,
914 // System Power Controls (Type 25)
917 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
918 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
919 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
920 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
921 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
925 // Voltage Probe (Type 26)
928 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
929 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
930 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
931 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
932 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
933 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
934 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
935 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
936 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
937 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
941 // Cooling Device (Type 27)
944 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
945 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
946 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
947 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
948 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
949 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
950 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
951 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
956 // Temperature Probe (Type 28)
959 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
960 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
961 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
962 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
963 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
964 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
965 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
966 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
967 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
968 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
972 // Electrical Current Probe (Type 29)
975 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
976 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
977 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
978 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
979 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
980 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
981 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
982 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
983 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
984 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
988 // Out-of-Band Remote Access (Type 30)
991 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
992 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
996 // Boot Integrity Services (BIS) Entry Point (Type 31)
999 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
1003 // System Boot Information (Type 32)
1006 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
1007 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
1011 // 64-Bit Memory Error Information (Type 33)
1014 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
1015 DisplayMemoryErrorGranularity (
1016 Struct
->Type33
->ErrorGranularity
,
1019 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
1020 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
1021 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
1022 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
1023 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
1027 // Management Device (Type 34)
1030 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
1031 DisplayMDType (Struct
->Type34
->Type
, Option
);
1032 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
1033 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
1037 // Management Device Component (Type 35)
1040 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
1041 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
1042 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
1043 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
1047 // Management Device Threshold Data (Type 36)
1050 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
1051 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
1052 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
1053 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
1054 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
1055 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
1059 // Memory Channel (Type 37)
1065 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1066 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1067 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1069 Count
= Struct
->Type37
->MemoryDeviceCount
;
1070 Ptr
= Struct
->Type37
->MemoryDevice
;
1071 for (Index
= 0; Index
< Count
; Index
++) {
1072 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1073 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1074 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1080 // IPMI Device Information (Type 38)
1083 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1084 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1085 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1086 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1087 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1091 // System Power Supply (Type 39)
1094 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1095 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1096 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1097 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1098 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1099 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1100 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1101 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1102 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1103 DisplaySPSCharacteristics (
1104 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1107 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1108 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1109 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1113 // Additional Information (Type 40)
1117 UINT8 NumberOfEntries
;
1119 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1122 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1123 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1125 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1127 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1128 EntryLength
= Entries
->EntryLength
;
1129 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1131 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1132 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1133 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1134 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1140 // Onboard Devices Extended Information (Type 41)
1143 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1144 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1145 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1146 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1147 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1148 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1149 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1153 // Management Controller Host Interface (Type 42)
1156 DisplayMCHostInterfaceType (Struct
->Type42
->InterfaceType
, Option
);
1157 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
1158 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceTypeSpecificDataLength
);
1159 PRINT_BIT_FIELD (Struct
, Type42
, InterfaceTypeSpecificData
, Struct
->Type42
->InterfaceTypeSpecificDataLength
);
1164 // TPM Device (Type 43)
1167 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1168 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1169 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1170 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1171 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1172 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1173 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type43
->Characteristics
)), Option
);
1174 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1178 // Inactive (Type 126)
1181 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1185 // End-of-Table (Type 127)
1188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1200 Display BIOS Information (Type 0) information.
1202 @param[in] Chara The information bits.
1203 @param[in] Option The optional information.
1206 DisplayBiosCharacteristics (
1214 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1218 PRINT_INFO_OPTION (Chara
, Option
);
1221 // Check all the bits and print information
1222 // This function does not use Table because table of bits
1223 // are designed not to deal with UINT64
1225 if (BIT (Chara
, 0) != 0) {
1226 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1229 if (BIT (Chara
, 1) != 0) {
1230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1233 if (BIT (Chara
, 2) != 0) {
1234 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1237 if (BIT (Chara
, 3) != 0) {
1238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1241 if (BIT (Chara
, 4) != 0) {
1242 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1245 if (BIT (Chara
, 5) != 0) {
1246 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1249 if (BIT (Chara
, 6) != 0) {
1250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1253 if (BIT (Chara
, 7) != 0) {
1254 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1257 if (BIT (Chara
, 8) != 0) {
1258 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1261 if (BIT (Chara
, 9) != 0) {
1262 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1265 if (BIT (Chara
, 10) != 0) {
1266 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1269 if (BIT (Chara
, 11) != 0) {
1270 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1273 if (BIT (Chara
, 12) != 0) {
1274 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1277 if (BIT (Chara
, 13) != 0) {
1278 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1281 if (BIT (Chara
, 14) != 0) {
1282 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1285 if (BIT (Chara
, 15) != 0) {
1286 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1289 if (BIT (Chara
, 16) != 0) {
1290 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1293 if (BIT (Chara
, 17) != 0) {
1294 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1297 if (BIT (Chara
, 18) != 0) {
1298 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1301 if (BIT (Chara
, 19) != 0) {
1302 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1305 if (BIT (Chara
, 20) != 0) {
1306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1309 if (BIT (Chara
, 21) != 0) {
1310 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1313 if (BIT (Chara
, 22) != 0) {
1314 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1317 if (BIT (Chara
, 23) != 0) {
1318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1321 if (BIT (Chara
, 24) != 0) {
1322 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1325 if (BIT (Chara
, 25) != 0) {
1326 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1329 if (BIT (Chara
, 26) != 0) {
1330 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1333 if (BIT (Chara
, 27) != 0) {
1334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1337 if (BIT (Chara
, 28) != 0) {
1338 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1341 if (BIT (Chara
, 29) != 0) {
1342 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1345 if (BIT (Chara
, 30) != 0) {
1346 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1349 if (BIT (Chara
, 31) != 0) {
1350 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1353 // Just print the Reserved
1355 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1356 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1360 Display Bios Characteristice extensions1 information.
1362 @param[in] Byte1 The information.
1363 @param[in] Option The optional information.
1366 DisplayBiosCharacteristicsExt1 (
1371 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1375 PRINT_INFO_OPTION (Byte1
, Option
);
1378 // check bit and print
1380 if (BIT (Byte1
, 0) != 0) {
1381 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1384 if (BIT (Byte1
, 1) != 0) {
1385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1388 if (BIT (Byte1
, 2) != 0) {
1389 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1392 if (BIT (Byte1
, 3) != 0) {
1393 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1396 if (BIT (Byte1
, 4) != 0) {
1397 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1400 if (BIT (Byte1
, 5) != 0) {
1401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1404 if (BIT (Byte1
, 6) != 0) {
1405 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1408 if (BIT (Byte1
, 7) != 0) {
1409 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1414 Display Bios Characteristice extensions2 information.
1416 @param[in] byte2 The information.
1417 @param[in] Option The optional information.
1420 DisplayBiosCharacteristicsExt2 (
1425 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1429 PRINT_INFO_OPTION (byte2
, Option
);
1431 if (BIT (byte2
, 0) != 0) {
1432 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1435 if (BIT (byte2
, 1) != 0) {
1436 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1439 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1440 if (BIT (byte2
, 2) != 0) {
1441 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1443 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1444 if (BIT (byte2
, 3) != 0) {
1445 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1447 if (BIT (byte2
, 4) != 0) {
1448 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1450 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1452 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1455 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1460 Display Processor Information (Type 4) information.
1462 @param[in] Family The family value.
1463 @param[in] Option The option value.
1466 DisplayProcessorFamily (
1472 // Print prompt message
1474 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1478 PRINT_INFO_OPTION (Family
, Option
);
1481 // Use switch to check
1485 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1489 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1501 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1505 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1525 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1529 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1533 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1537 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1541 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1545 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1553 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1557 Print (L
"M2 Family\n");
1561 Print (L
"Intel Celeron M\n");
1565 Print (L
"Intel Pentium 4 HT\n");
1569 Print (L
"AMD Duron\n");
1573 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1577 Print (L
"K6 Family\n");
1589 Print (L
"AMD Althon Processor Family\n");
1593 Print (L
"AMD 29000 Family\n");
1601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1605 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1609 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1613 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1617 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1621 Print (L
"Power PC 620\n");
1625 Print (L
"Power PC 704\n");
1629 Print (L
"Power PC 750\n");
1633 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1637 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1645 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1649 Print (L
"Intel(R) Core(TM) M processor\n");
1653 Print (L
"Intel(R) Core(TM) m3 processor\n");
1657 Print (L
"Intel(R) Core(TM) m5 processor\n");
1661 Print (L
"Intel(R) Core(TM) m7 processor\n");
1665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1669 Print (L
"Alpha 21064\n");
1673 Print (L
"Alpha 21066\n");
1677 Print (L
"Alpha 21164\n");
1681 Print (L
"Alpha 21164PC\n");
1685 Print (L
"Alpha 21164a\n");
1689 Print (L
"Alpha 21264\n");
1693 Print (L
"Alpha 21364\n");
1697 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1701 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1705 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1709 Print (L
"AMD Opteron 6100 Series Processor\n");
1713 Print (L
"AMD Opteron 4100 Series Processor\n");
1717 Print (L
"AMD Opteron 6200 Series Processor\n");
1721 Print (L
"AMD Opteron 4200 Series Processor\n");
1725 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1729 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1733 Print (L
"MIPS R4000\n");
1737 Print (L
"MIPS R4200\n");
1741 Print (L
"MIPS R4400\n");
1745 Print (L
"MIPS R4600\n");
1749 Print (L
"MIPS R10000\n");
1753 Print (L
"AMD C-Series Processor\n");
1757 Print (L
"AMD E-Series Processor\n");
1761 Print (L
"AMD A-Series Processor\n");
1765 Print (L
"AMD G-Series Processor\n");
1769 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1773 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1777 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1781 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1785 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1789 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1793 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1797 Print (L
"SuperSparc\n");
1801 Print (L
"microSparc II\n");
1805 Print (L
"microSparc IIep\n");
1809 Print (L
"UltraSparc\n");
1813 Print (L
"UltraSparc II\n");
1817 Print (L
"UltraSparcIIi\n");
1821 Print (L
"UltraSparcIII\n");
1825 Print (L
"UltraSparcIIIi\n");
1829 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1853 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1857 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1861 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1865 Print (L
"AMD Opteron(TM) A-Series Processor\n");
1869 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
1873 Print (L
"AMD Zen Processor Family\n");
1877 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1881 Print (L
"Crusoe TM5000\n");
1885 Print (L
"Crusoe TM3000\n");
1889 Print (L
"Efficeon TM8000\n");
1893 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1897 Print (L
"Itanium\n");
1901 Print (L
"AMD Athlon64\n");
1905 Print (L
"AMD Opteron\n");
1909 Print (L
"AMD Sempron\n");
1913 Print (L
"AMD Turion64 Mobile\n");
1917 Print (L
"Dual-Core AMD Opteron\n");
1921 Print (L
"AMD Athlon 64X2 DualCore\n");
1925 Print (L
"AMD Turion 64X2 Mobile\n");
1929 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1933 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1937 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1941 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1945 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1949 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1953 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1957 Print (L
"PA-RISC 8500\n");
1961 Print (L
"PA-RISC 8000\n");
1965 Print (L
"PA-RISC 7300LC\n");
1969 Print (L
"PA-RISC 7200\n");
1973 Print (L
"PA-RISC 7100LC\n");
1977 Print (L
"PA-RISC 7100\n");
1981 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1985 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1989 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1993 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2001 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2005 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
2009 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
2013 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2017 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2021 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
2025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2029 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2033 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2037 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2041 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2045 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
2049 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2053 Print (L
"Pentium 4 processor\n");
2057 Print (L
"Intel Xeon Processor\n");
2061 Print (L
"AS400 Family\n");
2065 Print (L
"Intel Xeon processor MP\n");
2069 Print (L
"AMD Althon XP Processor Family\n");
2073 Print (L
"AMD Althon MP Promcessor Family\n");
2077 Print (L
"Intel Itanium 2 processor\n");
2081 Print (L
"Intel Penium M processor\n");
2085 Print (L
"Intel Celeron D processor\n");
2089 Print (L
"Intel Pentium D processor\n");
2093 Print (L
"Intel Pentium Processor Extreme Edition\n");
2097 Print (L
"Intel Core Solo Processor\n");
2101 Print (L
"Intel Core 2 Duo Processor\n");
2105 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2109 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2113 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2117 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2121 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2125 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2129 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2133 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2137 Print (L
"IBM 390\n");
2153 Print (L
"zArchitecture\n");
2157 Print (L
"Intel Core i5 processor\n");
2161 Print (L
"Intel Core i3 processor\n");
2165 Print (L
"Intel Core i9 processor\n");
2169 Print (L
"ViaC7M\n");
2173 Print (L
"ViaC7D\n");
2185 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2197 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2201 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2205 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2209 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2213 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2217 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2221 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2225 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2234 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2242 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2246 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2254 Print (L
"AMD Phenom II Processor Family\n");
2258 Print (L
"AMD Althon II Processor Family\n");
2262 Print (L
"Six-Core AMD Opteron Processor Family\n");
2266 Print (L
"AMD Sempron M Processor Family\n");
2278 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2286 Display processor family information.
2288 @param[in] Family2 The family value.
2289 @param[in] Option The option value.
2292 DisplayProcessorFamily2 (
2298 // Print prompt message
2300 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2305 PRINT_INFO_OPTION (Family2
, Option
);
2308 // Use switch to check
2332 Print (L
"StrongARM\n");
2340 Print (L
"MediaGX\n");
2348 Print (L
"WinChip\n");
2356 Print (L
"Video Processor\n");
2360 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2366 Display processor voltage information.
2368 @param[in] Voltage The Voltage.
2369 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2370 Bits 6:4 Reserved, must be zero
2371 Bits 3:0 Voltage Capability.
2372 A Set bit indicates that the voltage is supported.
2376 Bit 3 - Reserved, must be zero.
2379 Setting of multiple bits indicates the socket is configurable
2380 If bit 7 is set to 1, the remaining seven bits of the field are set to
2381 contain the processor's current voltage times 10.
2382 For example, the field value for a processor voltage of 1.8 volts would be
2383 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2385 @param[in] Option The option.
2388 DisplayProcessorVoltage (
2393 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2397 PRINT_INFO_OPTION (Voltage
, Option
);
2399 if (BIT (Voltage
, 7) != 0) {
2400 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2402 if (BIT (Voltage
, 0) != 0) {
2403 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2406 if (BIT (Voltage
, 1) != 0) {
2407 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2410 if (BIT (Voltage
, 2) != 0) {
2411 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2414 // check the reserved zero bits:
2416 if (BIT (Voltage
, 3) != 0) {
2417 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2420 if (BIT (Voltage
, 4) != 0) {
2421 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2424 if (BIT (Voltage
, 5) != 0) {
2425 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2428 if (BIT (Voltage
, 6) != 0) {
2429 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2435 Display processor information.
2437 @param[in] Status The status.
2438 Bit 7 Reserved, must be 0
2439 Bit 6 CPU Socket Populated
2440 1 - CPU Socket Populated
2441 0 - CPU Socket Unpopulated
2442 Bits 5:3 Reserved, must be zero
2446 2h - CPU Disabled by User via BIOS Setup
2447 3h - CPU Disabled By BIOS (POST Error)
2448 4h - CPU is Idle, waiting to be enabled.
2452 @param[in] Option The option
2455 DisplayProcessorStatus (
2460 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2461 PRINT_INFO_OPTION (Status
, Option
);
2463 if (BIT (Status
, 7) != 0) {
2464 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2465 } else if (BIT (Status
, 5) != 0) {
2466 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2467 } else if (BIT (Status
, 4) != 0) {
2468 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2469 } else if (BIT (Status
, 3) != 0) {
2470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2475 if (BIT (Status
, 6) != 0) {
2476 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2483 switch (Status
& 0x07) {
2485 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2489 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2493 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2497 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2501 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2505 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2509 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2514 Display information about Memory Controller Information (Type 5).
2516 @param[in] Size Memory size.
2517 @param[in] SlotNum Which slot is this about.
2518 @param[in] Option Option for the level of detail output required.
2521 DisplayMaxMemoryModuleSize (
2528 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2530 // MaxSize is determined by follow formula
2532 MaxSize
= (UINTN
) 1 << Size
;
2533 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2535 if (Option
>= SHOW_DETAIL
) {
2536 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2537 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2542 Display information about memory configuration handles.
2544 @param[in] Handles The buffer of handles to output info on.
2545 @param[in] SlotNum The number of handles in the above buffer.
2546 @param[in] Option Option for the level of detail output required.
2549 DisplayMemoryModuleConfigHandles (
2556 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2558 if (Option
>= SHOW_DETAIL
) {
2560 // No handle, Handles is INVALID.
2566 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2567 for (Index
= 0; Index
< SlotNum
; Index
++) {
2568 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2574 Display Memory Module Information (Type 6).
2576 @param[in] BankConnections
2580 DisplayMmBankConnections (
2581 IN UINT8 BankConnections
,
2588 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2592 PRINT_INFO_OPTION (BankConnections
, Option
);
2595 // Divide it to high and low
2597 High
= (UINT8
) (BankConnections
& 0xF0);
2598 Low
= (UINT8
) (BankConnections
& 0x0F);
2601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2603 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2607 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2609 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2615 Display memory informcation.
2618 where 2**n is the size in MB with three special-case values:
2619 7Dh Not determinable (Installed Size only)
2620 7Eh Module is installed, but no memory has been enabled
2622 Bit 7 Defines whether the memory module has a single- (0)
2623 or double-bank (1) connection.
2625 @param[in] Size - The size
2626 @param[in] Option - The option
2629 DisplayMmMemorySize (
2635 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2639 PRINT_INFO_OPTION (Size
, Option
);
2642 // Get the low bits(0-6 bit)
2644 Value
= (UINT8
) (Size
& 0x7F);
2645 if (Value
== 0x7D) {
2646 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2647 } else if (Value
== 0x7E) {
2648 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2649 } else if (Value
== 0x7F) {
2650 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2652 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2655 if (BIT (Size
, 7) != 0) {
2656 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2658 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2663 Display Cache Configuration.
2665 @param[in] CacheConfiguration Cache Configuration.
2666 Bits 15:10 Reserved, must be 0
2667 Bits 9:8 Operational Mode
2670 2h - Varies with Memory Address
2672 Bit 7 Enabled/Disabled
2680 Bit 4 Reserved, must be zero
2681 Bit 3 Cache Socketed
2684 Bits 2:0 Cache Level
2685 1 through 8 (For example, an L1 cache would
2686 use value 000b and an L3 cache would use 010b.)
2688 @param[in] Option The option
2691 DisplayCacheConfiguration (
2692 IN UINT16 CacheConfiguration
,
2696 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2697 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2699 if (BIT (CacheConfiguration
, 15) != 0) {
2700 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2701 } else if (BIT (CacheConfiguration
, 14) != 0) {
2702 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2703 } else if (BIT (CacheConfiguration
, 13) != 0) {
2704 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2705 } else if (BIT (CacheConfiguration
, 12) != 0) {
2706 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2707 } else if (BIT (CacheConfiguration
, 11) != 0) {
2708 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2709 } else if (BIT (CacheConfiguration
, 10) != 0) {
2710 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2711 } else if (BIT (CacheConfiguration
, 4) != 0) {
2712 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2718 switch ((CacheConfiguration
& 0x300) >> 8) {
2720 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2724 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2728 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2732 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2739 if (BIT (CacheConfiguration
, 7) != 0) {
2740 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2742 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2748 switch ((CacheConfiguration
& 0x60) >> 5) {
2750 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2754 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2758 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2762 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2769 if (BIT (CacheConfiguration
, 3) != 0) {
2770 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2772 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2776 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2780 The Slot ID field of the System Slot structure provides a mechanism to
2781 correlate the physical attributes of the slot to its logical access method
2782 (which varies based on the Slot Type field).
2784 @param[in] SlotId - The slot ID
2785 @param[in] SlotType - The slot type
2786 @param[in] Option - The Option
2789 DisplaySystemSlotId (
2796 // Display slot type first
2798 DisplaySystemSlotType (SlotType
, Option
);
2800 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2804 PRINT_INFO_OPTION (SlotType
, Option
);
2811 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2812 if (SlotId
> 0 && SlotId
< 15) {
2813 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2815 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2823 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2824 if (SlotId
> 0 && SlotId
< 15) {
2825 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2827 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2835 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2842 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2849 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2853 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2854 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2856 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2862 Display System Boot Information (Type 32) information.
2864 @param[in] Parameter The parameter.
2865 @param[in] Option The options.
2868 DisplaySystemBootStatus (
2873 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2877 PRINT_INFO_OPTION (Parameter
, Option
);
2880 // Check value and print
2882 if (Parameter
== 0) {
2883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2884 } else if (Parameter
== 1) {
2885 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2886 } else if (Parameter
== 2) {
2887 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2888 } else if (Parameter
== 3) {
2889 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2890 } else if (Parameter
== 4) {
2891 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2892 } else if (Parameter
== 5) {
2893 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2894 } else if (Parameter
== 6) {
2895 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2896 } else if (Parameter
== 7) {
2897 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2898 } else if (Parameter
== 8) {
2899 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2900 } else if (Parameter
>= 9 && Parameter
<= 127) {
2901 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2902 } else if (Parameter
>= 128 && Parameter
<= 191) {
2903 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2904 } else if (Parameter
>= 192) {
2905 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2907 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2912 Display Portable Battery (Type 22) information.
2914 The date the cell pack was manufactured, in packed format:
2915 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2916 Bits 8:5 Month, in the range 1 to 12.
2917 Bits 4:0 Date, in the range 1 to 31.
2918 For example, 01 February 2000 would be identified as
2919 0010 1000 0100 0001b (0x2841).
2921 @param[in] Date The date
2922 @param[in] Option The option
2925 DisplaySBDSManufactureDate (
2934 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2935 PRINT_INFO_OPTION (Date
, Option
);
2939 Day
= Date
& 0x001F;
2940 Month
= (Date
& 0x01E0) >> 5;
2941 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2942 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2947 Display System Reset (Type 23) information.
2950 Identifies the system-reset capabilities for the system.
2951 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2952 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2953 Bits 4:3 Boot Option on Limit.
2954 Identifies the system action to be taken when the Reset Limit is reached, one of:
2955 00b Reserved, do not use.
2956 01b Operating system
2957 10b System utilities
2958 11b Do not rebootBits
2959 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2960 00b Reserved, do not use.
2961 01b Operating system
2962 10b System utilities
2965 1b The system reset is enabled by the user
2966 0b The system reset is not enabled by the user
2968 @param[in] Reset Reset
2969 @param[in] Option The option
2972 DisplaySystemResetCapabilities (
2979 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2980 PRINT_INFO_OPTION (Reset
, Option
);
2983 // Check reserved bits 7:6
2985 if ((Reset
& 0xC0) != 0) {
2986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2991 if (BIT (Reset
, 5) != 0) {
2992 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2994 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2997 // Boot Option on Limit
2999 Temp
= (Reset
& 0x18) >> 3;
3000 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
3003 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3007 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3011 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3015 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
3021 Temp
= (Reset
& 0x06) >> 1;
3022 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
3025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
3029 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
3033 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
3037 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
3041 // Reset enable flag
3043 if ((Reset
& 0x01) != 0) {
3044 Print (L
"The system reset is enabled by the user\n");
3046 Print (L
"The system reset is disabled by the user\n");
3051 Display Hardware Security (Type 24) information.
3054 Identifies the password and reset status for the system:
3056 Bits 7:6 Power-on Password Status, one of:
3061 Bits 5:4 Keyboard Password Status, one of:
3066 Bits 3:2 Administrator Password Status, one of:
3071 Bits 1:0 Front Panel Reset Status, one of:
3077 @param[in] Settings The device settings.
3078 @param[in] Option The device options.
3081 DisplayHardwareSecuritySettings (
3088 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
3089 PRINT_INFO_OPTION (Settings
, Option
);
3092 // Power-on Password Status
3094 Temp
= (Settings
& 0xC0) >> 6;
3095 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
3098 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3102 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3106 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3114 // Keyboard Password Status
3116 Temp
= (Settings
& 0x30) >> 4;
3117 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3120 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3124 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3128 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3132 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3136 // Administrator Password Status
3138 Temp
= (Settings
& 0x0C) >> 2;
3139 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3142 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3150 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3158 // Front Panel Reset Status
3160 Temp
= Settings
& 0x3;
3161 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3164 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3168 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3172 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3182 Display Out-of-Band Remote Access (Type 30) information.
3184 @param[in] Connections The device characteristics.
3185 @param[in] Option The device options.
3188 DisplayOBRAConnections (
3189 IN UINT8 Connections
,
3193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3194 PRINT_INFO_OPTION (Connections
, Option
);
3197 // Check reserved bits 7:2
3199 if ((Connections
& 0xFC) != 0) {
3200 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3203 // Outbound Connection
3205 if (BIT (Connections
, 1) != 0) {
3206 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3211 // Inbound Connection
3213 if (BIT (Connections
, 0) != 0) {
3214 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3216 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3221 Display System Power Supply (Type 39) information.
3223 @param[in] Characteristics The device characteristics.
3224 @param[in] Option The device options.
3227 DisplaySPSCharacteristics (
3228 IN UINT16 Characteristics
,
3234 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3235 PRINT_INFO_OPTION (Characteristics
, Option
);
3238 // Check reserved bits 15:14
3240 if ((Characteristics
& 0xC000) != 0) {
3241 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3244 // Bits 13:10 - DMTF Power Supply Type
3246 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3247 Temp
= (Characteristics
& 0x1C00) >> 10;
3250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3254 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3258 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3262 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3266 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3270 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3274 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3278 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3282 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3285 // Bits 9:7 - Status
3287 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3288 Temp
= (Characteristics
& 0x380) >> 7;
3291 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3295 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3303 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3307 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3311 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3314 // Bits 6:3 - DMTF Input Voltage Range Switching
3316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3317 Temp
= (Characteristics
& 0x78) >> 3;
3320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3324 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3328 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3332 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3336 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3340 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3344 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3348 // Power supply is unplugged from the wall
3350 if (BIT (Characteristics
, 2) != 0) {
3351 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3356 // Power supply is present
3358 if (BIT (Characteristics
, 1) != 0) {
3359 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3361 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3366 if (BIT (Characteristics
, 0) != 0) {
3367 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3369 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3374 Display TPM Device (Type 43) Characteristics.
3376 @param[in] Chara The information bits.
3377 @param[in] Option The optional information.
3380 DisplayTpmDeviceCharacteristics (
3388 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3392 PRINT_INFO_OPTION (Chara
, Option
);
3395 // Check all the bits and print information
3396 // This function does not use Table because table of bits
3397 // are designed not to deal with UINT64
3399 if (BIT (Chara
, 0) != 0) {
3400 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3403 if (BIT (Chara
, 1) != 0) {
3404 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3406 if (BIT (Chara
, 2) != 0) {
3407 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3410 if (BIT (Chara
, 3) != 0) {
3411 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3414 if (BIT (Chara
, 4) != 0) {
3415 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3418 if (BIT (Chara
, 5) != 0) {
3419 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3423 // Just print the Reserved
3425 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);