2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2017, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
7 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #include "../UefiShellDebug1CommandsLib.h"
18 #include "PrintInfo.h"
19 #include "LibSmbiosView.h"
20 #include "QueryTable.h"
21 #include "EventLogInfo.h"
25 // Get the certain bit of 'value'
27 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
30 // Check if above or equal to version
32 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
33 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
36 //////////////////////////////////////////////////////////
37 // Macros of print structure element, simplify coding.
39 #define PRINT_PENDING_STRING(pStruct, type, element) \
42 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
43 ShellPrintEx(-1,-1,L"%a",#element); \
44 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
47 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
50 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
51 ShellPrintEx(-1,-1,L"%a",#element); \
52 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
55 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
57 ShellPrintEx(-1,-1,L"%a",#element); \
58 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
61 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
63 ShellPrintEx(-1,-1,L"%a",#element); \
64 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
67 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
69 ShellPrintEx(-1,-1,L"%a",#element); \
70 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
73 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
75 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
76 ShellPrintEx(-1,-1,L"%a",#element); \
77 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
78 DumpHex (0, 0, size, &(pStruct->type->element)); \
81 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
83 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
84 ShellPrintEx(-1,-1,L"%a",#element); \
85 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
86 DumpHex (0, 0, size, startaddress); \
90 /////////////////////////////////////////
94 Copy Length of Src buffer to Dest buffer,
95 add a NULL termination to Dest buffer.
97 @param[in, out] Dest Destination buffer head.
98 @param[in] Src Source buffer head.
99 @param[in] Length Length of buffer to be copied.
110 SrcBuffer
= (UINT8
*) Src
;
111 DestBuffer
= (UINT8
*) Dest
;
115 while ((Length
--)!=0) {
116 *DestBuffer
++ = *SrcBuffer
++;
119 // append a NULL terminator
125 //////////////////////////////////////////////
127 // Functions below is to show the information
131 Print the info of EPS(Entry Point Structure).
133 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
134 @param[in] Option Display option.
138 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
145 if (SmbiosTable
== NULL
) {
146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
150 if (Option
== SHOW_NONE
) {
154 if (Option
>= SHOW_NORMAL
) {
155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
156 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
158 ShellPrintHiiEx(-1,-1,NULL
,
159 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
160 gShellDebug1HiiHandle
,
161 SmbiosTable
->EntryPointStructureChecksum
163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
164 ShellPrintHiiEx(-1,-1,NULL
,
165 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
166 gShellDebug1HiiHandle
,
167 SmbiosTable
->MajorVersion
,
168 SmbiosTable
->MinorVersion
170 ShellPrintHiiEx(-1,-1,NULL
,
171 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
172 gShellDebug1HiiHandle
,
173 SmbiosTable
->NumberOfSmbiosStructures
175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
181 // If SHOW_ALL, also print followings.
183 if (Option
>= SHOW_DETAIL
) {
184 ShellPrintHiiEx(-1,-1,NULL
,
185 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
186 gShellDebug1HiiHandle
,
187 SmbiosTable
->EntryPointRevision
189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
191 // Since raw data is not string, add a NULL terminater.
193 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
197 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
204 Print the info of 64-bit EPS(Entry Point Structure).
206 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
207 @param[in] Option Display option.
210 Smbios64BitPrintEPSInfo (
211 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
217 if (SmbiosTable
== NULL
) {
218 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
222 if (Option
== SHOW_NONE
) {
226 if (Option
>= SHOW_NORMAL
) {
227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
229 MemToString (Anchor
, SmbiosTable
->AnchorString
, 5);
230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
232 ShellPrintHiiEx(-1,-1,NULL
,
233 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
234 gShellDebug1HiiHandle
,
235 SmbiosTable
->EntryPointStructureChecksum
238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
240 ShellPrintHiiEx(-1,-1,NULL
,
241 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
242 gShellDebug1HiiHandle
,
243 SmbiosTable
->MajorVersion
,
244 SmbiosTable
->MinorVersion
247 ShellPrintHiiEx(-1,-1,NULL
,
248 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV
),
249 gShellDebug1HiiHandle
,
253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->TableMaximumSize
);
255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
259 // If SHOW_ALL, also print followings.
261 if (Option
>= SHOW_DETAIL
) {
262 ShellPrintHiiEx(-1,-1,NULL
,
263 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
264 gShellDebug1HiiHandle
,
265 SmbiosTable
->EntryPointRevision
273 This function print the content of the structure pointed by Struct.
275 @param[in] Struct Point to the structure to be printed.
276 @param[in] Option Print option of information detail.
278 @retval EFI_SUCCESS Successfully Printing this function.
279 @retval EFI_INVALID_PARAMETER Invalid Structure.
280 @retval EFI_UNSUPPORTED Unsupported.
283 SmbiosPrintStructure (
284 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
291 if (Struct
== NULL
) {
292 return EFI_INVALID_PARAMETER
;
295 if (Option
== SHOW_NONE
) {
299 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
302 // Display structure header
304 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
308 if (Option
== SHOW_OUTLINE
) {
312 switch (Struct
->Hdr
->Type
) {
314 // BIOS Information (Type 0)
317 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
318 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
319 PRINT_STRUCT_VALUE (Struct
, Type0
, BiosSegment
);
320 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
321 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
323 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type0
->BiosCharacteristics
)), Option
);
325 if (Struct
->Hdr
->Length
> 0x12) {
326 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
328 if (Struct
->Hdr
->Length
> 0x13) {
329 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
332 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
333 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
334 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
335 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
336 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
342 // System Information (Type 1)
345 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
346 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
347 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
348 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
349 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
350 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
351 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
352 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
353 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
359 // Baseboard Information (Type 2)
362 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
363 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
364 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
365 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
366 if (Struct
->Hdr
->Length
> 0x8) {
367 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
368 DisplayBaseBoardFeatureFlags (*(UINT8
*) &Struct
->Type2
->FeatureFlag
, Option
);
369 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
370 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
371 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
376 // System Enclosure (Type 3)
379 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
380 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
381 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
382 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
383 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
384 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
386 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
387 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
388 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
389 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
390 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
391 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
392 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
393 if (AE_SMBIOS_VERSION (0x2, 0x3)) {
394 if (Struct
->Hdr
->Length
> 0xD) {
395 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
397 if (Struct
->Hdr
->Length
> 0x11) {
398 PRINT_STRUCT_VALUE (Struct
, Type3
, Height
);
400 if (Struct
->Hdr
->Length
> 0x12) {
401 PRINT_STRUCT_VALUE (Struct
, Type3
, NumberofPowerCords
);
404 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
405 if (Struct
->Hdr
->Length
> (0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
))) {
406 PRINT_SMBIOS_STRING (Struct
, Buffer
[0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
)], SKUNumber
);
412 // Processor Information (Type 4)
415 PRINT_SMBIOS_STRING (Struct
, Struct
->Type4
->Socket
, SocketDesignation
)
416 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
417 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
418 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
420 // Get family from ProcessorFamily2 field
422 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
424 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
426 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
427 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
428 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
429 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
430 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
431 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
432 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
433 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
434 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
435 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
436 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
437 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
438 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
439 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
440 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
441 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
443 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
444 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
445 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
446 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
447 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
449 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
450 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
451 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
452 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
457 // Memory Controller Information (Type 5)
462 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
464 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
465 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
466 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
467 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
468 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
469 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
470 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
471 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
472 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
473 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
474 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
476 // According to SMBIOS Specification, offset 0x0F
478 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
479 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
484 // Memory Module Information (Type 6)
487 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
488 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
489 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
490 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
491 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
492 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
493 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
494 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
495 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
499 // Cache Information (Type 7)
502 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
503 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
504 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
505 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
506 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
507 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
508 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
509 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
510 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
511 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
512 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
516 // Port Connector Information (Type 8)
519 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
520 Print (L
"Internal ");
521 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
522 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
523 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
524 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
525 DisplayPortType (Struct
->Type8
->PortType
, Option
);
529 // System Slots (Type 9)
532 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
533 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
534 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
535 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
536 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
537 DisplaySystemSlotId (
538 Struct
->Type9
->SlotID
,
539 Struct
->Type9
->SlotType
,
542 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
543 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
544 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
545 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
546 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
547 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
552 // On Board Devices Information (Type 10)
557 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
558 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
559 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
560 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
561 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
567 // Oem Strings (Type 11)
570 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
571 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
572 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
577 // System Configuration Options (Type 12)
580 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
581 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
582 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
587 // BIOS Language Information (Type 13)
590 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
591 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
592 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
593 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
597 // Group Associations (Type 14)
602 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
603 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
604 for (Index
= 0; Index
< NumOfItem
; Index
++) {
605 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
606 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
612 // System Event Log (Type 15)
618 UINT8
*AccessMethodAddress
;
620 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
621 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
622 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
623 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
624 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
625 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
626 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
627 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
628 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
629 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
631 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
633 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
636 // Display all Event Log type descriptors supported by system
638 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
639 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
640 DisplaySELTypes (Ptr
->LogType
, Option
);
641 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
644 if (Option
>= SHOW_DETAIL
) {
645 switch (Struct
->Type15
->AccessMethod
) {
647 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
655 ShellPrintHiiEx(-1,-1,NULL
,
656 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
657 gShellDebug1HiiHandle
,
658 Struct
->Type15
->AccessMethod
660 return EFI_UNSUPPORTED
;
663 // Display Event Log Header
665 // Starting offset (or index) within the nonvolatile storage
666 // of the event-log's header, from the Access Method Address
668 DisplaySysEventLogHeader (
669 Struct
->Type15
->LogHeaderFormat
,
670 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
674 // Display all Event Log data
676 // Starting offset (or index) within the nonvolatile storage
677 // of the event-log's first data byte, from the Access Method Address(0x14)
679 DisplaySysEventLogData (
680 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
683 Struct
->Type15
->LogAreaLength
-
684 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
694 // Physical Memory Array (Type 16)
697 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
698 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
699 DisplayPMAErrorCorrectionTypes (
700 Struct
->Type16
->MemoryErrorCorrection
,
703 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
704 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
705 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
706 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
707 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
712 // Memory Device (Type 17)
715 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
716 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
717 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
718 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
719 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
720 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
721 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
722 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
723 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
724 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
725 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
726 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
727 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
728 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
729 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
730 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
731 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
732 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
734 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
735 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
736 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
738 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
739 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
740 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
741 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
746 // 32-bit Memory Error Information (Type 18)
749 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
750 DisplayMemoryErrorGranularity (
751 Struct
->Type18
->ErrorGranularity
,
754 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
755 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
756 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
757 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
758 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
762 // Memory Array Mapped Address (Type 19)
765 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
766 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
767 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
768 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
769 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
770 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
771 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
776 // Memory Device Mapped Address (Type 20)
779 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
780 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
783 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
784 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
785 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
786 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
787 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
788 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
793 // Built-in Pointing Device (Type 21)
796 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
797 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
798 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
802 // Portable Battery (Type 22)
805 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
806 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
807 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
808 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
809 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
810 DisplayPBDeviceChemistry (
811 Struct
->Type22
->DeviceChemistry
,
814 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
815 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
816 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
817 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
818 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
819 DisplaySBDSManufactureDate (
820 Struct
->Type22
->SBDSManufactureDate
,
823 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
824 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
825 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
829 // System Reset (Type 23)
832 DisplaySystemResetCapabilities (
833 Struct
->Type23
->Capabilities
,
836 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
837 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
839 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
843 // Hardware Security (Type 24)
846 DisplayHardwareSecuritySettings (
847 Struct
->Type24
->HardwareSecuritySettings
,
853 // System Power Controls (Type 25)
856 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
857 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
858 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
859 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
860 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
864 // Voltage Probe (Type 26)
867 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
868 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
869 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
870 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
871 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
872 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
873 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
874 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
875 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
876 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
880 // Cooling Device (Type 27)
883 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
884 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
885 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
886 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
887 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
889 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
890 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
895 // Temperature Probe (Type 28)
898 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
899 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
900 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
901 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
902 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
903 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
904 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
905 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
906 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
907 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
911 // Electrical Current Probe (Type 29)
914 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
915 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
916 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
917 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
918 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
919 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
920 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
921 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
922 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
923 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
927 // Out-of-Band Remote Access (Type 30)
930 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
931 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
935 // Boot Integrity Services (BIS) Entry Point (Type 31)
938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
942 // System Boot Information (Type 32)
945 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
946 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
950 // 64-Bit Memory Error Information (Type 33)
953 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
954 DisplayMemoryErrorGranularity (
955 Struct
->Type33
->ErrorGranularity
,
958 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
959 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
960 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
961 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
962 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
966 // Management Device (Type 34)
969 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
970 DisplayMDType (Struct
->Type34
->Type
, Option
);
971 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
972 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
976 // Management Device Component (Type 35)
979 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
980 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
981 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
982 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
986 // Management Device Threshold Data (Type 36)
989 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
990 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
991 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
992 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
993 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
994 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
998 // Memory Channel (Type 37)
1004 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1005 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1006 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1008 Count
= Struct
->Type37
->MemoryDeviceCount
;
1009 Ptr
= Struct
->Type37
->MemoryDevice
;
1010 for (Index
= 0; Index
< Count
; Index
++) {
1011 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1012 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1013 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1019 // IPMI Device Information (Type 38)
1022 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1023 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1024 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1025 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1026 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1030 // System Power Supply (Type 39)
1033 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1034 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1035 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1036 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1037 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1038 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1039 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1040 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1041 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1042 DisplaySPSCharacteristics (
1043 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1046 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1047 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1048 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1052 // Additional Information (Type 40)
1056 UINT8 NumberOfEntries
;
1058 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1061 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1062 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1064 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1066 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1067 EntryLength
= Entries
->EntryLength
;
1068 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1071 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1072 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1073 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1079 // Onboard Devices Extended Information (Type 41)
1082 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1083 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1084 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1085 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1086 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1087 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1088 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1092 // Management Controller Host Interface (Type 42)
1095 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceType
);
1099 // TPM Device (Type 43)
1102 PRINT_BIT_FIELD (Struct
, Type43
, VendorID
, 4);
1103 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MajorSpecVersion
);
1104 PRINT_STRUCT_VALUE_H (Struct
, Type43
, MinorSpecVersion
);
1105 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion1
);
1106 PRINT_STRUCT_VALUE_H (Struct
, Type43
, FirmwareVersion2
);
1107 PRINT_PENDING_STRING (Struct
, Type43
, Description
);
1108 DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type43
->Characteristics
)), Option
);
1109 PRINT_STRUCT_VALUE_H (Struct
, Type43
, OemDefined
);
1113 // Inactive (Type 126)
1116 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1120 // End-of-Table (Type 127)
1123 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1127 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1135 Display BIOS Information (Type 0) information.
1137 @param[in] Chara The information bits.
1138 @param[in] Option The optional information.
1141 DisplayBiosCharacteristics (
1149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1153 PRINT_INFO_OPTION (Chara
, Option
);
1156 // Check all the bits and print information
1157 // This function does not use Table because table of bits
1158 // are designed not to deal with UINT64
1160 if (BIT (Chara
, 0) != 0) {
1161 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1164 if (BIT (Chara
, 1) != 0) {
1165 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1168 if (BIT (Chara
, 2) != 0) {
1169 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1172 if (BIT (Chara
, 3) != 0) {
1173 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1176 if (BIT (Chara
, 4) != 0) {
1177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1180 if (BIT (Chara
, 5) != 0) {
1181 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1184 if (BIT (Chara
, 6) != 0) {
1185 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1188 if (BIT (Chara
, 7) != 0) {
1189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1192 if (BIT (Chara
, 8) != 0) {
1193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1196 if (BIT (Chara
, 9) != 0) {
1197 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1200 if (BIT (Chara
, 10) != 0) {
1201 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1204 if (BIT (Chara
, 11) != 0) {
1205 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1208 if (BIT (Chara
, 12) != 0) {
1209 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1212 if (BIT (Chara
, 13) != 0) {
1213 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1216 if (BIT (Chara
, 14) != 0) {
1217 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1220 if (BIT (Chara
, 15) != 0) {
1221 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1224 if (BIT (Chara
, 16) != 0) {
1225 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1228 if (BIT (Chara
, 17) != 0) {
1229 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1232 if (BIT (Chara
, 18) != 0) {
1233 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1236 if (BIT (Chara
, 19) != 0) {
1237 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1240 if (BIT (Chara
, 20) != 0) {
1241 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1244 if (BIT (Chara
, 21) != 0) {
1245 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1248 if (BIT (Chara
, 22) != 0) {
1249 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1252 if (BIT (Chara
, 23) != 0) {
1253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1256 if (BIT (Chara
, 24) != 0) {
1257 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1260 if (BIT (Chara
, 25) != 0) {
1261 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1264 if (BIT (Chara
, 26) != 0) {
1265 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1268 if (BIT (Chara
, 27) != 0) {
1269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1272 if (BIT (Chara
, 28) != 0) {
1273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1276 if (BIT (Chara
, 29) != 0) {
1277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1280 if (BIT (Chara
, 30) != 0) {
1281 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1284 if (BIT (Chara
, 31) != 0) {
1285 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1288 // Just print the Reserved
1290 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1291 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1295 Display Bios Characteristice extensions1 information.
1297 @param[in] Byte1 The information.
1298 @param[in] Option The optional information.
1301 DisplayBiosCharacteristicsExt1 (
1306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1310 PRINT_INFO_OPTION (Byte1
, Option
);
1313 // check bit and print
1315 if (BIT (Byte1
, 0) != 0) {
1316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1319 if (BIT (Byte1
, 1) != 0) {
1320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1323 if (BIT (Byte1
, 2) != 0) {
1324 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1327 if (BIT (Byte1
, 3) != 0) {
1328 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1331 if (BIT (Byte1
, 4) != 0) {
1332 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1335 if (BIT (Byte1
, 5) != 0) {
1336 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1339 if (BIT (Byte1
, 6) != 0) {
1340 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1343 if (BIT (Byte1
, 7) != 0) {
1344 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1349 Display Bios Characteristice extensions2 information.
1351 @param[in] byte2 The information.
1352 @param[in] Option The optional information.
1355 DisplayBiosCharacteristicsExt2 (
1360 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1364 PRINT_INFO_OPTION (byte2
, Option
);
1366 if (BIT (byte2
, 0) != 0) {
1367 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1370 if (BIT (byte2
, 1) != 0) {
1371 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1374 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1375 if (BIT (byte2
, 2) != 0) {
1376 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1378 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1379 if (BIT (byte2
, 3) != 0) {
1380 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1382 if (BIT (byte2
, 4) != 0) {
1383 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1387 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1390 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1395 Display Processor Information (Type 4) information.
1397 @param[in] Family The family value.
1398 @param[in] Option The option value.
1401 DisplayProcessorFamily (
1407 // Print prompt message
1409 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1413 PRINT_INFO_OPTION (Family
, Option
);
1416 // Use switch to check
1420 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1424 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1436 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1440 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1460 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1464 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1468 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1472 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1476 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1480 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1484 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1488 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1492 Print (L
"M2 Family\n");
1496 Print (L
"Intel Celeron M\n");
1500 Print (L
"Intel Pentium 4 HT\n");
1504 Print (L
"AMD Duron\n");
1508 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1512 Print (L
"K6 Family\n");
1524 Print (L
"AMD Althon Processor Family\n");
1528 Print (L
"AMD 29000 Family\n");
1536 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1540 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1544 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1548 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1552 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1556 Print (L
"Power PC 620\n");
1560 Print (L
"Power PC 704\n");
1564 Print (L
"Power PC 750\n");
1568 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1572 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1576 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1580 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1584 Print (L
"Intel(R) Core(TM) M processor\n");
1588 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1592 Print (L
"Alpha 21064\n");
1596 Print (L
"Alpha 21066\n");
1600 Print (L
"Alpha 21164\n");
1604 Print (L
"Alpha 21164PC\n");
1608 Print (L
"Alpha 21164a\n");
1612 Print (L
"Alpha 21264\n");
1616 Print (L
"Alpha 21364\n");
1620 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1624 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1628 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1632 Print (L
"AMD Opteron 6100 Series Processor\n");
1636 Print (L
"AMD Opteron 4100 Series Processor\n");
1640 Print (L
"AMD Opteron 6200 Series Processor\n");
1644 Print (L
"AMD Opteron 4200 Series Processor\n");
1648 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1652 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1656 Print (L
"MIPS R4000\n");
1660 Print (L
"MIPS R4200\n");
1664 Print (L
"MIPS R4400\n");
1668 Print (L
"MIPS R4600\n");
1672 Print (L
"MIPS R10000\n");
1676 Print (L
"AMD C-Series Processor\n");
1680 Print (L
"AMD E-Series Processor\n");
1684 Print (L
"AMD A-Series Processor\n");
1688 Print (L
"AMD G-Series Processor\n");
1692 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1696 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1700 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1704 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1708 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1712 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1716 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1720 Print (L
"SuperSparc\n");
1724 Print (L
"microSparc II\n");
1728 Print (L
"microSparc IIep\n");
1732 Print (L
"UltraSparc\n");
1736 Print (L
"UltraSparc II\n");
1740 Print (L
"UltraSparcIIi\n");
1744 Print (L
"UltraSparcIII\n");
1748 Print (L
"UltraSparcIIIi\n");
1752 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1776 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
1780 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
1784 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
1788 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1792 Print (L
"Crusoe TM5000\n");
1796 Print (L
"Crusoe TM3000\n");
1800 Print (L
"Efficeon TM8000\n");
1804 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1808 Print (L
"Itanium\n");
1812 Print (L
"AMD Athlon64\n");
1816 Print (L
"AMD Opteron\n");
1820 Print (L
"AMD Sempron\n");
1824 Print (L
"AMD Turion64 Mobile\n");
1828 Print (L
"Dual-Core AMD Opteron\n");
1832 Print (L
"AMD Athlon 64X2 DualCore\n");
1836 Print (L
"AMD Turion 64X2 Mobile\n");
1840 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1844 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1852 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1856 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1860 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1864 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1868 Print (L
"PA-RISC 8500\n");
1872 Print (L
"PA-RISC 8000\n");
1876 Print (L
"PA-RISC 7300LC\n");
1880 Print (L
"PA-RISC 7200\n");
1884 Print (L
"PA-RISC 7100LC\n");
1888 Print (L
"PA-RISC 7100\n");
1892 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1896 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1900 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1904 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1908 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1912 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1916 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1920 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1924 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1928 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1932 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1936 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1940 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1944 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1948 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1956 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1960 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1964 Print (L
"Pentium 4 processor\n");
1968 Print (L
"Intel Xeon Processor\n");
1972 Print (L
"AS400 Family\n");
1976 Print (L
"Intel Xeon processor MP\n");
1980 Print (L
"AMD Althon XP Processor Family\n");
1984 Print (L
"AMD Althon MP Promcessor Family\n");
1988 Print (L
"Intel Itanium 2 processor\n");
1992 Print (L
"Intel Penium M processor\n");
1996 Print (L
"Intel Celeron D processor\n");
2000 Print (L
"Intel Pentium D processor\n");
2004 Print (L
"Intel Pentium Processor Extreme Edition\n");
2008 Print (L
"Intel Core Solo Processor\n");
2012 Print (L
"Intel Core 2 Duo Processor\n");
2016 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2020 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2024 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2028 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2032 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2036 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2040 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2044 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2048 Print (L
"IBM 390\n");
2064 Print (L
"zArchitecture\n");
2068 Print (L
"Intel Core i5 processor\n");
2072 Print (L
"Intel Core i3 processor\n");
2076 Print (L
"ViaC7M\n");
2080 Print (L
"ViaC7D\n");
2092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2100 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2104 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2108 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2112 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2116 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2120 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2124 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2128 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2132 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2153 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2161 Print (L
"AMD Phenom II Processor Family\n");
2165 Print (L
"AMD Althon II Processor Family\n");
2169 Print (L
"Six-Core AMD Opteron Processor Family\n");
2173 Print (L
"AMD Sempron M Processor Family\n");
2185 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2193 Display processor family information.
2195 @param[in] Family2 The family value.
2196 @param[in] Option The option value.
2199 DisplayProcessorFamily2 (
2205 // Print prompt message
2207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2212 PRINT_INFO_OPTION (Family2
, Option
);
2215 // Use switch to check
2231 Print (L
"StrongARM\n");
2239 Print (L
"MediaGX\n");
2247 Print (L
"WinChip\n");
2255 Print (L
"Video Processor\n");
2259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2265 Display processor voltage information.
2267 @param[in] Voltage The Voltage.
2268 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2269 Bits 6:4 Reserved, must be zero
2270 Bits 3:0 Voltage Capability.
2271 A Set bit indicates that the voltage is supported.
2275 Bit 3 - Reserved, must be zero.
2278 Setting of multiple bits indicates the socket is configurable
2279 If bit 7 is set to 1, the remaining seven bits of the field are set to
2280 contain the processor's current voltage times 10.
2281 For example, the field value for a processor voltage of 1.8 volts would be
2282 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2284 @param[in] Option The option.
2287 DisplayProcessorVoltage (
2292 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2296 PRINT_INFO_OPTION (Voltage
, Option
);
2298 if (BIT (Voltage
, 7) != 0) {
2299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2301 if (BIT (Voltage
, 0) != 0) {
2302 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2305 if (BIT (Voltage
, 1) != 0) {
2306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2309 if (BIT (Voltage
, 2) != 0) {
2310 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2313 // check the reserved zero bits:
2315 if (BIT (Voltage
, 3) != 0) {
2316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2319 if (BIT (Voltage
, 4) != 0) {
2320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2323 if (BIT (Voltage
, 5) != 0) {
2324 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2327 if (BIT (Voltage
, 6) != 0) {
2328 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2334 Display processor information.
2336 @param[in] Status The status.
2337 Bit 7 Reserved, must be 0
2338 Bit 6 CPU Socket Populated
2339 1 - CPU Socket Populated
2340 0 - CPU Socket Unpopulated
2341 Bits 5:3 Reserved, must be zero
2345 2h - CPU Disabled by User via BIOS Setup
2346 3h - CPU Disabled By BIOS (POST Error)
2347 4h - CPU is Idle, waiting to be enabled.
2351 @param[in] Option The option
2354 DisplayProcessorStatus (
2359 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2360 PRINT_INFO_OPTION (Status
, Option
);
2362 if (BIT (Status
, 7) != 0) {
2363 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2364 } else if (BIT (Status
, 5) != 0) {
2365 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2366 } else if (BIT (Status
, 4) != 0) {
2367 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2368 } else if (BIT (Status
, 3) != 0) {
2369 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2374 if (BIT (Status
, 6) != 0) {
2375 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2377 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2382 switch (Status
& 0x07) {
2384 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2388 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2392 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2396 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2400 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2404 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2408 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2413 Display information about Memory Controller Information (Type 5).
2415 @param[in] Size Memory size.
2416 @param[in] SlotNum Which slot is this about.
2417 @param[in] Option Option for the level of detail output required.
2420 DisplayMaxMemoryModuleSize (
2427 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2429 // MaxSize is determined by follow formula
2431 MaxSize
= (UINTN
) 1 << Size
;
2432 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2434 if (Option
>= SHOW_DETAIL
) {
2435 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2436 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2441 Display information about memory configuration handles.
2443 @param[in] Handles The buffer of handles to output info on.
2444 @param[in] SlotNum The number of handles in the above buffer.
2445 @param[in] Option Option for the level of detail output required.
2448 DisplayMemoryModuleConfigHandles (
2455 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2457 if (Option
>= SHOW_DETAIL
) {
2459 // No handle, Handles is INVALID.
2465 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2466 for (Index
= 0; Index
< SlotNum
; Index
++) {
2467 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2473 Display Memory Module Information (Type 6).
2475 @param[in] BankConnections
2479 DisplayMmBankConnections (
2480 IN UINT8 BankConnections
,
2487 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2491 PRINT_INFO_OPTION (BankConnections
, Option
);
2494 // Divide it to high and low
2496 High
= (UINT8
) (BankConnections
& 0xF0);
2497 Low
= (UINT8
) (BankConnections
& 0x0F);
2500 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2502 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2506 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2508 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2514 Display memory informcation.
2517 where 2**n is the size in MB with three special-case values:
2518 7Dh Not determinable (Installed Size only)
2519 7Eh Module is installed, but no memory has been enabled
2521 Bit 7 Defines whether the memory module has a single- (0)
2522 or double-bank (1) connection.
2524 @param[in] Size - The size
2525 @param[in] Option - The option
2528 DisplayMmMemorySize (
2534 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2538 PRINT_INFO_OPTION (Size
, Option
);
2541 // Get the low bits(0-6 bit)
2543 Value
= (UINT8
) (Size
& 0x7F);
2544 if (Value
== 0x7D) {
2545 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2546 } else if (Value
== 0x7E) {
2547 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2548 } else if (Value
== 0x7F) {
2549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2551 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2554 if (BIT (Size
, 7) != 0) {
2555 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2557 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2562 Display Cache Configuration.
2564 @param[in] CacheConfiguration Cache Configuration.
2565 Bits 15:10 Reserved, must be 0
2566 Bits 9:8 Operational Mode
2569 2h - Varies with Memory Address
2571 Bit 7 Enabled/Disabled
2579 Bit 4 Reserved, must be zero
2580 Bit 3 Cache Socketed
2583 Bits 2:0 Cache Level
2584 1 through 8 (For example, an L1 cache would
2585 use value 000b and an L3 cache would use 010b.)
2587 @param[in] Option The option
2590 DisplayCacheConfiguration (
2591 IN UINT16 CacheConfiguration
,
2595 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2596 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2598 if (BIT (CacheConfiguration
, 15) != 0) {
2599 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2600 } else if (BIT (CacheConfiguration
, 14) != 0) {
2601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2602 } else if (BIT (CacheConfiguration
, 13) != 0) {
2603 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2604 } else if (BIT (CacheConfiguration
, 12) != 0) {
2605 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2606 } else if (BIT (CacheConfiguration
, 11) != 0) {
2607 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2608 } else if (BIT (CacheConfiguration
, 10) != 0) {
2609 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2610 } else if (BIT (CacheConfiguration
, 4) != 0) {
2611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2617 switch ((CacheConfiguration
& 0x300) >> 8) {
2619 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2623 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2627 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2631 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2638 if (BIT (CacheConfiguration
, 7) != 0) {
2639 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2647 switch ((CacheConfiguration
& 0x60) >> 5) {
2649 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2653 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2657 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2668 if (BIT (CacheConfiguration
, 3) != 0) {
2669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2671 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2675 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2679 The Slot ID field of the System Slot structure provides a mechanism to
2680 correlate the physical attributes of the slot to its logical access method
2681 (which varies based on the Slot Type field).
2683 @param[in] SlotId - The slot ID
2684 @param[in] SlotType - The slot type
2685 @param[in] Option - The Option
2688 DisplaySystemSlotId (
2695 // Display slot type first
2697 DisplaySystemSlotType (SlotType
, Option
);
2699 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2703 PRINT_INFO_OPTION (SlotType
, Option
);
2710 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2711 if (SlotId
> 0 && SlotId
< 15) {
2712 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2714 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2722 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2723 if (SlotId
> 0 && SlotId
< 15) {
2724 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2726 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2734 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2741 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2748 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2752 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2753 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2755 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2761 Display System Boot Information (Type 32) information.
2763 @param[in] Parameter The parameter.
2764 @param[in] Option The options.
2767 DisplaySystemBootStatus (
2772 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2776 PRINT_INFO_OPTION (Parameter
, Option
);
2779 // Check value and print
2781 if (Parameter
== 0) {
2782 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2783 } else if (Parameter
== 1) {
2784 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2785 } else if (Parameter
== 2) {
2786 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2787 } else if (Parameter
== 3) {
2788 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2789 } else if (Parameter
== 4) {
2790 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2791 } else if (Parameter
== 5) {
2792 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2793 } else if (Parameter
== 6) {
2794 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2795 } else if (Parameter
== 7) {
2796 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2797 } else if (Parameter
== 8) {
2798 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2799 } else if (Parameter
>= 9 && Parameter
<= 127) {
2800 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2801 } else if (Parameter
>= 128 && Parameter
<= 191) {
2802 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2803 } else if (Parameter
>= 192) {
2804 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2806 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2811 Display Portable Battery (Type 22) information.
2813 The date the cell pack was manufactured, in packed format:
2814 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2815 Bits 8:5 Month, in the range 1 to 12.
2816 Bits 4:0 Date, in the range 1 to 31.
2817 For example, 01 February 2000 would be identified as
2818 0010 1000 0100 0001b (0x2841).
2820 @param[in] Date The date
2821 @param[in] Option The option
2824 DisplaySBDSManufactureDate (
2833 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2834 PRINT_INFO_OPTION (Date
, Option
);
2838 Day
= Date
& 0x001F;
2839 Month
= (Date
& 0x01E0) >> 5;
2840 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2841 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2846 Display System Reset (Type 23) information.
2849 Identifies the system-reset capabilities for the system.
2850 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2851 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2852 Bits 4:3 Boot Option on Limit.
2853 Identifies the system action to be taken when the Reset Limit is reached, one of:
2854 00b Reserved, do not use.
2855 01b Operating system
2856 10b System utilities
2857 11b Do not rebootBits
2858 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2859 00b Reserved, do not use.
2860 01b Operating system
2861 10b System utilities
2864 1b The system reset is enabled by the user
2865 0b The system reset is not enabled by the user
2867 @param[in] Reset Reset
2868 @param[in] Option The option
2871 DisplaySystemResetCapabilities (
2878 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2879 PRINT_INFO_OPTION (Reset
, Option
);
2882 // Check reserved bits 7:6
2884 if ((Reset
& 0xC0) != 0) {
2885 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2890 if (BIT (Reset
, 5) != 0) {
2891 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2893 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2896 // Boot Option on Limit
2898 Temp
= (Reset
& 0x18) >> 3;
2899 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2902 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2906 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2910 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2914 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2920 Temp
= (Reset
& 0x06) >> 1;
2921 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2924 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2928 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2932 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2936 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2940 // Reset enable flag
2942 if ((Reset
& 0x01) != 0) {
2943 Print (L
"The system reset is enabled by the user\n");
2945 Print (L
"The system reset is disabled by the user\n");
2950 Display Hardware Security (Type 24) information.
2953 Identifies the password and reset status for the system:
2955 Bits 7:6 Power-on Password Status, one of:
2960 Bits 5:4 Keyboard Password Status, one of:
2965 Bits 3:2 Administrator Password Status, one of:
2970 Bits 1:0 Front Panel Reset Status, one of:
2976 @param[in] Settings The device settings.
2977 @param[in] Option The device options.
2980 DisplayHardwareSecuritySettings (
2987 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2988 PRINT_INFO_OPTION (Settings
, Option
);
2991 // Power-on Password Status
2993 Temp
= (Settings
& 0xC0) >> 6;
2994 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3001 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3005 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3009 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3013 // Keyboard Password Status
3015 Temp
= (Settings
& 0x30) >> 4;
3016 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3019 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3023 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3031 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3035 // Administrator Password Status
3037 Temp
= (Settings
& 0x0C) >> 2;
3038 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3041 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3045 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3049 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3053 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3057 // Front Panel Reset Status
3059 Temp
= Settings
& 0x3;
3060 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3063 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3071 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3075 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3081 Display Out-of-Band Remote Access (Type 30) information.
3083 @param[in] Connections The device characteristics.
3084 @param[in] Option The device options.
3087 DisplayOBRAConnections (
3088 IN UINT8 Connections
,
3092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3093 PRINT_INFO_OPTION (Connections
, Option
);
3096 // Check reserved bits 7:2
3098 if ((Connections
& 0xFC) != 0) {
3099 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3102 // Outbound Connection
3104 if (BIT (Connections
, 1) != 0) {
3105 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3107 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3110 // Inbound Connection
3112 if (BIT (Connections
, 0) != 0) {
3113 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3115 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3120 Display System Power Supply (Type 39) information.
3122 @param[in] Characteristics The device characteristics.
3123 @param[in] Option The device options.
3126 DisplaySPSCharacteristics (
3127 IN UINT16 Characteristics
,
3133 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3134 PRINT_INFO_OPTION (Characteristics
, Option
);
3137 // Check reserved bits 15:14
3139 if ((Characteristics
& 0xC000) != 0) {
3140 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3143 // Bits 13:10 - DMTF Power Supply Type
3145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3146 Temp
= (Characteristics
& 0x1C00) >> 10;
3149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3153 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3161 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3165 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3169 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3173 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3181 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3184 // Bits 9:7 - Status
3186 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3187 Temp
= (Characteristics
& 0x380) >> 7;
3190 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3198 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3202 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3206 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3210 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3213 // Bits 6:3 - DMTF Input Voltage Range Switching
3215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3216 Temp
= (Characteristics
& 0x78) >> 3;
3219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3231 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3247 // Power supply is unplugged from the wall
3249 if (BIT (Characteristics
, 2) != 0) {
3250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3255 // Power supply is present
3257 if (BIT (Characteristics
, 1) != 0) {
3258 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3260 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3265 if (BIT (Characteristics
, 0) != 0) {
3266 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3268 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3273 Display TPM Device (Type 43) Characteristics.
3275 @param[in] Chara The information bits.
3276 @param[in] Option The optional information.
3279 DisplayTpmDeviceCharacteristics (
3287 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3291 PRINT_INFO_OPTION (Chara
, Option
);
3294 // Check all the bits and print information
3295 // This function does not use Table because table of bits
3296 // are designed not to deal with UINT64
3298 if (BIT (Chara
, 0) != 0) {
3299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3302 if (BIT (Chara
, 1) != 0) {
3303 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3305 if (BIT (Chara
, 2) != 0) {
3306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3309 if (BIT (Chara
, 3) != 0) {
3310 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3313 if (BIT (Chara
, 4) != 0) {
3314 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3317 if (BIT (Chara
, 5) != 0) {
3318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3322 // Just print the Reserved
3324 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);