2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2016, 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 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1588 Print (L
"Alpha 21064\n");
1592 Print (L
"Alpha 21066\n");
1596 Print (L
"Alpha 21164\n");
1600 Print (L
"Alpha 21164PC\n");
1604 Print (L
"Alpha 21164a\n");
1608 Print (L
"Alpha 21264\n");
1612 Print (L
"Alpha 21364\n");
1616 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1620 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1624 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1628 Print (L
"AMD Opteron 6100 Series Processor\n");
1632 Print (L
"AMD Opteron 4100 Series Processor\n");
1636 Print (L
"AMD Opteron 6200 Series Processor\n");
1640 Print (L
"AMD Opteron 4200 Series Processor\n");
1644 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1648 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1652 Print (L
"MIPS R4000\n");
1656 Print (L
"MIPS R4200\n");
1660 Print (L
"MIPS R4400\n");
1664 Print (L
"MIPS R4600\n");
1668 Print (L
"MIPS R10000\n");
1672 Print (L
"AMD C-Series Processor\n");
1676 Print (L
"AMD E-Series Processor\n");
1680 Print (L
"AMD A-Series Processor\n");
1684 Print (L
"AMD G-Series Processor\n");
1688 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1692 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1696 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1700 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1704 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1708 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1712 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1716 Print (L
"SuperSparc\n");
1720 Print (L
"microSparc II\n");
1724 Print (L
"microSparc IIep\n");
1728 Print (L
"UltraSparc\n");
1732 Print (L
"UltraSparc II\n");
1736 Print (L
"UltraSparcIIi\n");
1740 Print (L
"UltraSparcIII\n");
1744 Print (L
"UltraSparcIIIi\n");
1748 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1772 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1776 Print (L
"Crusoe TM5000\n");
1780 Print (L
"Crusoe TM3000\n");
1784 Print (L
"Efficeon TM8000\n");
1788 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1792 Print (L
"Itanium\n");
1796 Print (L
"AMD Athlon64\n");
1800 Print (L
"AMD Opteron\n");
1804 Print (L
"AMD Sempron\n");
1808 Print (L
"AMD Turion64 Mobile\n");
1812 Print (L
"Dual-Core AMD Opteron\n");
1816 Print (L
"AMD Athlon 64X2 DualCore\n");
1820 Print (L
"AMD Turion 64X2 Mobile\n");
1824 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1828 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1832 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1836 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1840 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1844 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1852 Print (L
"PA-RISC 8500\n");
1856 Print (L
"PA-RISC 8000\n");
1860 Print (L
"PA-RISC 7300LC\n");
1864 Print (L
"PA-RISC 7200\n");
1868 Print (L
"PA-RISC 7100LC\n");
1872 Print (L
"PA-RISC 7100\n");
1876 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1880 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1884 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1888 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1892 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1896 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1900 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1904 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1908 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1912 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1916 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1920 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1924 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1928 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1932 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1936 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1940 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1944 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1948 Print (L
"Pentium 4 processor\n");
1952 Print (L
"Intel Xeon Processor\n");
1956 Print (L
"AS400 Family\n");
1960 Print (L
"Intel Xeon processor MP\n");
1964 Print (L
"AMD Althon XP Processor Family\n");
1968 Print (L
"AMD Althon MP Promcessor Family\n");
1972 Print (L
"Intel Itanium 2 processor\n");
1976 Print (L
"Intel Penium M processor\n");
1980 Print (L
"Intel Celeron D processor\n");
1984 Print (L
"Intel Pentium D processor\n");
1988 Print (L
"Intel Pentium Processor Extreme Edition\n");
1992 Print (L
"Intel Core Solo Processor\n");
1996 Print (L
"Intel Core 2 Duo Processor\n");
2000 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
2004 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2008 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
2012 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2016 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2020 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2024 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2028 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2032 Print (L
"IBM 390\n");
2048 Print (L
"zArchitecture\n");
2052 Print (L
"Intel Core i5 processor\n");
2056 Print (L
"Intel Core i3 processor\n");
2060 Print (L
"ViaC7M\n");
2064 Print (L
"ViaC7D\n");
2076 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2080 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2084 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2088 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2100 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2104 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2108 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2112 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2116 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2121 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2125 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2129 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2133 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2145 Print (L
"AMD Phenom II Processor Family\n");
2149 Print (L
"AMD Althon II Processor Family\n");
2153 Print (L
"Six-Core AMD Opteron Processor Family\n");
2157 Print (L
"AMD Sempron M Processor Family\n");
2169 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2177 Display processor family information.
2179 @param[in] Family2 The family value.
2180 @param[in] Option The option value.
2183 DisplayProcessorFamily2 (
2189 // Print prompt message
2191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2196 PRINT_INFO_OPTION (Family2
, Option
);
2199 // Use switch to check
2215 Print (L
"StrongARM\n");
2223 Print (L
"MediaGX\n");
2231 Print (L
"WinChip\n");
2239 Print (L
"Video Processor\n");
2243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2249 Display processor voltage information.
2251 @param[in] Voltage The Voltage.
2252 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2253 Bits 6:4 Reserved, must be zero
2254 Bits 3:0 Voltage Capability.
2255 A Set bit indicates that the voltage is supported.
2259 Bit 3 - Reserved, must be zero.
2262 Setting of multiple bits indicates the socket is configurable
2263 If bit 7 is set to 1, the remaining seven bits of the field are set to
2264 contain the processor's current voltage times 10.
2265 For example, the field value for a processor voltage of 1.8 volts would be
2266 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2268 @param[in] Option The option.
2271 DisplayProcessorVoltage (
2276 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2280 PRINT_INFO_OPTION (Voltage
, Option
);
2282 if (BIT (Voltage
, 7) != 0) {
2283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2285 if (BIT (Voltage
, 0) != 0) {
2286 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2289 if (BIT (Voltage
, 1) != 0) {
2290 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2293 if (BIT (Voltage
, 2) != 0) {
2294 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2297 // check the reserved zero bits:
2299 if (BIT (Voltage
, 3) != 0) {
2300 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2303 if (BIT (Voltage
, 4) != 0) {
2304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2307 if (BIT (Voltage
, 5) != 0) {
2308 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2311 if (BIT (Voltage
, 6) != 0) {
2312 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2318 Display processor information.
2320 @param[in] Status The status.
2321 Bit 7 Reserved, must be 0
2322 Bit 6 CPU Socket Populated
2323 1 - CPU Socket Populated
2324 0 - CPU Socket Unpopulated
2325 Bits 5:3 Reserved, must be zero
2329 2h - CPU Disabled by User via BIOS Setup
2330 3h - CPU Disabled By BIOS (POST Error)
2331 4h - CPU is Idle, waiting to be enabled.
2335 @param[in] Option The option
2338 DisplayProcessorStatus (
2343 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2344 PRINT_INFO_OPTION (Status
, Option
);
2346 if (BIT (Status
, 7) != 0) {
2347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2348 } else if (BIT (Status
, 5) != 0) {
2349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2350 } else if (BIT (Status
, 4) != 0) {
2351 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2352 } else if (BIT (Status
, 3) != 0) {
2353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2358 if (BIT (Status
, 6) != 0) {
2359 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2361 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2366 switch (Status
& 0x07) {
2368 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2372 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2376 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2380 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2384 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2388 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2392 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2397 Display information about Memory Controller Information (Type 5).
2399 @param[in] Size Memory size.
2400 @param[in] SlotNum Which slot is this about.
2401 @param[in] Option Option for the level of detail output required.
2404 DisplayMaxMemoryModuleSize (
2411 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2413 // MaxSize is determined by follow formula
2415 MaxSize
= (UINTN
) 1 << Size
;
2416 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2418 if (Option
>= SHOW_DETAIL
) {
2419 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2420 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2425 Display information about memory configuration handles.
2427 @param[in] Handles The buffer of handles to output info on.
2428 @param[in] SlotNum The number of handles in the above buffer.
2429 @param[in] Option Option for the level of detail output required.
2432 DisplayMemoryModuleConfigHandles (
2439 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2441 if (Option
>= SHOW_DETAIL
) {
2443 // No handle, Handles is INVALID.
2449 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2450 for (Index
= 0; Index
< SlotNum
; Index
++) {
2451 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2457 Display Memory Module Information (Type 6).
2459 @param[in] BankConnections
2463 DisplayMmBankConnections (
2464 IN UINT8 BankConnections
,
2471 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2475 PRINT_INFO_OPTION (BankConnections
, Option
);
2478 // Divide it to high and low
2480 High
= (UINT8
) (BankConnections
& 0xF0);
2481 Low
= (UINT8
) (BankConnections
& 0x0F);
2484 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2486 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2490 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2492 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2498 Display memory informcation.
2501 where 2**n is the size in MB with three special-case values:
2502 7Dh Not determinable (Installed Size only)
2503 7Eh Module is installed, but no memory has been enabled
2505 Bit 7 Defines whether the memory module has a single- (0)
2506 or double-bank (1) connection.
2508 @param[in] Size - The size
2509 @param[in] Option - The option
2512 DisplayMmMemorySize (
2518 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2522 PRINT_INFO_OPTION (Size
, Option
);
2525 // Get the low bits(0-6 bit)
2527 Value
= (UINT8
) (Size
& 0x7F);
2528 if (Value
== 0x7D) {
2529 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2530 } else if (Value
== 0x7E) {
2531 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2532 } else if (Value
== 0x7F) {
2533 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2535 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2538 if (BIT (Size
, 7) != 0) {
2539 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2541 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2546 Display Cache Configuration.
2548 @param[in] CacheConfiguration Cache Configuration.
2549 Bits 15:10 Reserved, must be 0
2550 Bits 9:8 Operational Mode
2553 2h - Varies with Memory Address
2555 Bit 7 Enabled/Disabled
2563 Bit 4 Reserved, must be zero
2564 Bit 3 Cache Socketed
2567 Bits 2:0 Cache Level
2568 1 through 8 (For example, an L1 cache would
2569 use value 000b and an L3 cache would use 010b.)
2571 @param[in] Option The option
2574 DisplayCacheConfiguration (
2575 IN UINT16 CacheConfiguration
,
2579 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2580 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2582 if (BIT (CacheConfiguration
, 15) != 0) {
2583 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2584 } else if (BIT (CacheConfiguration
, 14) != 0) {
2585 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2586 } else if (BIT (CacheConfiguration
, 13) != 0) {
2587 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2588 } else if (BIT (CacheConfiguration
, 12) != 0) {
2589 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2590 } else if (BIT (CacheConfiguration
, 11) != 0) {
2591 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2592 } else if (BIT (CacheConfiguration
, 10) != 0) {
2593 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2594 } else if (BIT (CacheConfiguration
, 4) != 0) {
2595 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2601 switch ((CacheConfiguration
& 0x300) >> 8) {
2603 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2607 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2615 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2622 if (BIT (CacheConfiguration
, 7) != 0) {
2623 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2625 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2631 switch ((CacheConfiguration
& 0x60) >> 5) {
2633 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2637 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2645 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2652 if (BIT (CacheConfiguration
, 3) != 0) {
2653 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2655 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2659 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2663 The Slot ID field of the System Slot structure provides a mechanism to
2664 correlate the physical attributes of the slot to its logical access method
2665 (which varies based on the Slot Type field).
2667 @param[in] SlotId - The slot ID
2668 @param[in] SlotType - The slot type
2669 @param[in] Option - The Option
2672 DisplaySystemSlotId (
2679 // Display slot type first
2681 DisplaySystemSlotType (SlotType
, Option
);
2683 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2687 PRINT_INFO_OPTION (SlotType
, Option
);
2694 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2695 if (SlotId
> 0 && SlotId
< 15) {
2696 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2698 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2706 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2707 if (SlotId
> 0 && SlotId
< 15) {
2708 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2710 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2718 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2725 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2732 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2736 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2737 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2739 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2745 Display System Boot Information (Type 32) information.
2747 @param[in] Parameter The parameter.
2748 @param[in] Option The options.
2751 DisplaySystemBootStatus (
2756 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2760 PRINT_INFO_OPTION (Parameter
, Option
);
2763 // Check value and print
2765 if (Parameter
== 0) {
2766 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2767 } else if (Parameter
== 1) {
2768 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2769 } else if (Parameter
== 2) {
2770 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2771 } else if (Parameter
== 3) {
2772 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2773 } else if (Parameter
== 4) {
2774 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2775 } else if (Parameter
== 5) {
2776 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2777 } else if (Parameter
== 6) {
2778 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2779 } else if (Parameter
== 7) {
2780 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2781 } else if (Parameter
== 8) {
2782 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2783 } else if (Parameter
>= 9 && Parameter
<= 127) {
2784 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2785 } else if (Parameter
>= 128 && Parameter
<= 191) {
2786 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2787 } else if (Parameter
>= 192) {
2788 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2790 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2795 Display Portable Battery (Type 22) information.
2797 The date the cell pack was manufactured, in packed format:
2798 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2799 Bits 8:5 Month, in the range 1 to 12.
2800 Bits 4:0 Date, in the range 1 to 31.
2801 For example, 01 February 2000 would be identified as
2802 0010 1000 0100 0001b (0x2841).
2804 @param[in] Date The date
2805 @param[in] Option The option
2808 DisplaySBDSManufactureDate (
2817 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2818 PRINT_INFO_OPTION (Date
, Option
);
2822 Day
= Date
& 0x001F;
2823 Month
= (Date
& 0x01E0) >> 5;
2824 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2825 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2830 Display System Reset (Type 23) information.
2833 Identifies the system-reset capabilities for the system.
2834 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2835 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2836 Bits 4:3 Boot Option on Limit.
2837 Identifies the system action to be taken when the Reset Limit is reached, one of:
2838 00b Reserved, do not use.
2839 01b Operating system
2840 10b System utilities
2841 11b Do not rebootBits
2842 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2843 00b Reserved, do not use.
2844 01b Operating system
2845 10b System utilities
2848 1b The system reset is enabled by the user
2849 0b The system reset is not enabled by the user
2851 @param[in] Reset Reset
2852 @param[in] Option The option
2855 DisplaySystemResetCapabilities (
2862 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2863 PRINT_INFO_OPTION (Reset
, Option
);
2866 // Check reserved bits 7:6
2868 if ((Reset
& 0xC0) != 0) {
2869 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2874 if (BIT (Reset
, 5) != 0) {
2875 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2877 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2880 // Boot Option on Limit
2882 Temp
= (Reset
& 0x18) >> 3;
2883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2886 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2890 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2894 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2904 Temp
= (Reset
& 0x06) >> 1;
2905 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2908 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2912 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2916 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2920 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2924 // Reset enable flag
2926 if ((Reset
& 0x01) != 0) {
2927 Print (L
"The system reset is enabled by the user\n");
2929 Print (L
"The system reset is disabled by the user\n");
2934 Display Hardware Security (Type 24) information.
2937 Identifies the password and reset status for the system:
2939 Bits 7:6 Power-on Password Status, one of:
2944 Bits 5:4 Keyboard Password Status, one of:
2949 Bits 3:2 Administrator Password Status, one of:
2954 Bits 1:0 Front Panel Reset Status, one of:
2960 @param[in] Settings The device settings.
2961 @param[in] Option The device options.
2964 DisplayHardwareSecuritySettings (
2971 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2972 PRINT_INFO_OPTION (Settings
, Option
);
2975 // Power-on Password Status
2977 Temp
= (Settings
& 0xC0) >> 6;
2978 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2981 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2985 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2989 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2993 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2997 // Keyboard Password Status
2999 Temp
= (Settings
& 0x30) >> 4;
3000 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
3003 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3007 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3011 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3015 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3019 // Administrator Password Status
3021 Temp
= (Settings
& 0x0C) >> 2;
3022 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3029 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3033 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3037 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3041 // Front Panel Reset Status
3043 Temp
= Settings
& 0x3;
3044 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3047 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3051 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3055 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3059 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3065 Display Out-of-Band Remote Access (Type 30) information.
3067 @param[in] Connections The device characteristics.
3068 @param[in] Option The device options.
3071 DisplayOBRAConnections (
3072 IN UINT8 Connections
,
3076 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3077 PRINT_INFO_OPTION (Connections
, Option
);
3080 // Check reserved bits 7:2
3082 if ((Connections
& 0xFC) != 0) {
3083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3086 // Outbound Connection
3088 if (BIT (Connections
, 1) != 0) {
3089 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3091 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3094 // Inbound Connection
3096 if (BIT (Connections
, 0) != 0) {
3097 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3099 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3104 Display System Power Supply (Type 39) information.
3106 @param[in] Characteristics The device characteristics.
3107 @param[in] Option The device options.
3110 DisplaySPSCharacteristics (
3111 IN UINT16 Characteristics
,
3117 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3118 PRINT_INFO_OPTION (Characteristics
, Option
);
3121 // Check reserved bits 15:14
3123 if ((Characteristics
& 0xC000) != 0) {
3124 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3127 // Bits 13:10 - DMTF Power Supply Type
3129 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3130 Temp
= (Characteristics
& 0x1C00) >> 10;
3133 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3153 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3161 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3165 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3168 // Bits 9:7 - Status
3170 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3171 Temp
= (Characteristics
& 0x380) >> 7;
3174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3178 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3182 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3186 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3190 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3197 // Bits 6:3 - DMTF Input Voltage Range Switching
3199 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3200 Temp
= (Characteristics
& 0x78) >> 3;
3203 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3211 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3231 // Power supply is unplugged from the wall
3233 if (BIT (Characteristics
, 2) != 0) {
3234 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3239 // Power supply is present
3241 if (BIT (Characteristics
, 1) != 0) {
3242 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3249 if (BIT (Characteristics
, 0) != 0) {
3250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);
3257 Display TPM Device (Type 43) Characteristics.
3259 @param[in] Chara The information bits.
3260 @param[in] Option The optional information.
3263 DisplayTpmDeviceCharacteristics (
3271 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR
), gShellDebug1HiiHandle
);
3275 PRINT_INFO_OPTION (Chara
, Option
);
3278 // Check all the bits and print information
3279 // This function does not use Table because table of bits
3280 // are designed not to deal with UINT64
3282 if (BIT (Chara
, 0) != 0) {
3283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3286 if (BIT (Chara
, 1) != 0) {
3287 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
3289 if (BIT (Chara
, 2) != 0) {
3290 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
3293 if (BIT (Chara
, 3) != 0) {
3294 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU
), gShellDebug1HiiHandle
);
3297 if (BIT (Chara
, 4) != 0) {
3298 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW
), gShellDebug1HiiHandle
);
3301 if (BIT (Chara
, 5) != 0) {
3302 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM
), gShellDebug1HiiHandle
);
3306 // Just print the Reserved
3308 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63
), gShellDebug1HiiHandle
);