2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015 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) && (Struct
->Hdr
->Length
> 0xD)) {
394 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
399 // Processor Information (Type 4)
402 PRINT_PENDING_STRING (Struct
, Type4
, Socket
);
403 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
404 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
405 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
407 // Get family from ProcessorFamily2 field
409 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
411 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
413 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
414 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
415 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
416 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
417 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
418 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
419 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
420 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
421 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
422 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
423 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
424 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
425 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
426 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
427 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
428 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
430 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
431 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
432 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
433 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
434 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
436 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
437 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
438 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
439 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
444 // Memory Controller Information (Type 5)
449 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
451 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
452 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
453 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
454 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
455 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
456 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
457 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
458 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
459 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
460 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
461 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
463 // According to SMBIOS Specification, offset 0x0F
465 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
466 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
471 // Memory Module Information (Type 6)
474 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
475 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
476 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
477 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
479 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
480 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
481 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
482 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
486 // Cache Information (Type 7)
489 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
490 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
491 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
492 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
493 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
494 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
495 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
496 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
497 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
498 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
499 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
503 // Port Connector Information (Type 8)
506 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
507 Print (L
"Internal ");
508 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
509 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
510 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
511 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
512 DisplayPortType (Struct
->Type8
->PortType
, Option
);
516 // System Slots (Type 9)
519 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
520 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
521 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
522 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
523 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
524 DisplaySystemSlotId (
525 Struct
->Type9
->SlotID
,
526 Struct
->Type9
->SlotType
,
529 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
530 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
531 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
532 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
533 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
534 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
539 // On Board Devices Information (Type 10)
544 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
545 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
546 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
547 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
548 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
554 // Oem Strings (Type 11)
557 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
558 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
559 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
564 // System Configuration Options (Type 12)
567 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
568 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
569 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
574 // BIOS Language Information (Type 13)
577 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
578 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
579 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
580 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
584 // Group Associations (Type 14)
589 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
590 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
591 for (Index
= 0; Index
< NumOfItem
; Index
++) {
592 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
593 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
599 // System Event Log (Type 15)
605 UINT8
*AccessMethodAddress
;
607 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
608 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
609 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
610 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
611 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
612 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
613 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
614 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
615 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
616 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
618 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
620 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
623 // Display all Event Log type descriptors supported by system
625 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
626 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
627 DisplaySELTypes (Ptr
->LogType
, Option
);
628 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
631 if (Option
>= SHOW_DETAIL
) {
632 switch (Struct
->Type15
->AccessMethod
) {
634 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
642 ShellPrintHiiEx(-1,-1,NULL
,
643 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
644 gShellDebug1HiiHandle
,
645 Struct
->Type15
->AccessMethod
647 return EFI_UNSUPPORTED
;
650 // Display Event Log Header
652 // Starting offset (or index) within the nonvolatile storage
653 // of the event-log's header, from the Access Method Address
655 DisplaySysEventLogHeader (
656 Struct
->Type15
->LogHeaderFormat
,
657 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
661 // Display all Event Log data
663 // Starting offset (or index) within the nonvolatile storage
664 // of the event-log's first data byte, from the Access Method Address(0x14)
666 DisplaySysEventLogData (
667 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
670 Struct
->Type15
->LogAreaLength
-
671 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
681 // Physical Memory Array (Type 16)
684 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
685 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
686 DisplayPMAErrorCorrectionTypes (
687 Struct
->Type16
->MemoryErrorCorrection
,
690 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
691 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
692 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
693 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
694 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
699 // Memory Device (Type 17)
702 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
703 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
704 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
705 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
706 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
707 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
708 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
709 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
710 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
711 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
712 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
713 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
714 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
715 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
716 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
717 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
718 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
719 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
721 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
722 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
723 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
725 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
726 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
727 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
728 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
733 // 32-bit Memory Error Information (Type 18)
736 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
737 DisplayMemoryErrorGranularity (
738 Struct
->Type18
->ErrorGranularity
,
741 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
742 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
743 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
744 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
745 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
749 // Memory Array Mapped Address (Type 19)
752 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
753 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
754 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
755 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
756 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
757 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
758 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
763 // Memory Device Mapped Address (Type 20)
766 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
767 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
768 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
769 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
770 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
771 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
772 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
773 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
774 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
775 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
780 // Built-in Pointing Device (Type 21)
783 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
784 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
785 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
789 // Portable Battery (Type 22)
792 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
793 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
794 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
795 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
796 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
797 DisplayPBDeviceChemistry (
798 Struct
->Type22
->DeviceChemistry
,
801 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
802 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
803 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
804 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
805 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
806 DisplaySBDSManufactureDate (
807 Struct
->Type22
->SBDSManufactureDate
,
810 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
811 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
812 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
816 // System Reset (Type 23)
819 DisplaySystemResetCapabilities (
820 Struct
->Type23
->Capabilities
,
823 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
824 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
825 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
826 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
830 // Hardware Security (Type 24)
833 DisplayHardwareSecuritySettings (
834 Struct
->Type24
->HardwareSecuritySettings
,
840 // System Power Controls (Type 25)
843 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
844 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
845 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
846 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
847 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
851 // Voltage Probe (Type 26)
854 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
855 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
856 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
857 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
858 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
859 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
860 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
861 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
862 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
863 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
867 // Cooling Device (Type 27)
870 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
871 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
872 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
873 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
874 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
875 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
876 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
877 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
882 // Temperature Probe (Type 28)
885 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
886 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
887 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
889 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
890 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
891 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
892 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
893 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
894 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
898 // Electrical Current Probe (Type 29)
901 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
902 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
903 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
904 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
905 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
906 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
907 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
908 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
909 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
910 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
914 // Out-of-Band Remote Access (Type 30)
917 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
918 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
922 // Boot Integrity Services (BIS) Entry Point (Type 31)
925 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
929 // System Boot Information (Type 32)
932 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
933 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
937 // 64-Bit Memory Error Information (Type 33)
940 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
941 DisplayMemoryErrorGranularity (
942 Struct
->Type33
->ErrorGranularity
,
945 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
946 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
947 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
948 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
949 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
953 // Management Device (Type 34)
956 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
957 DisplayMDType (Struct
->Type34
->Type
, Option
);
958 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
959 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
963 // Management Device Component (Type 35)
966 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
967 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
968 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
969 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
973 // Management Device Threshold Data (Type 36)
976 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
977 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
978 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
979 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
980 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
981 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
985 // Memory Channel (Type 37)
991 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
992 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
993 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
995 Count
= Struct
->Type37
->MemoryDeviceCount
;
996 Ptr
= Struct
->Type37
->MemoryDevice
;
997 for (Index
= 0; Index
< Count
; Index
++) {
998 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
999 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1000 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1006 // IPMI Device Information (Type 38)
1009 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1010 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1011 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1012 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1013 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1017 // System Power Supply (Type 39)
1020 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1021 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1022 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1023 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1024 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1025 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1026 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1027 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1028 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1029 DisplaySPSCharacteristics (
1030 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1033 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1034 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1035 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1039 // Additional Information (Type 40)
1043 UINT8 NumberOfEntries
;
1045 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1048 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1049 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1051 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1053 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1054 EntryLength
= Entries
->EntryLength
;
1055 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1056 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1057 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1058 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1059 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1060 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1066 // Onboard Devices Extended Information (Type 41)
1069 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1070 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1071 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1072 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1073 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1074 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1075 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1079 // Management Controller Host Interface (Type 42)
1082 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceType
);
1086 // Inactive (Type 126)
1089 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1093 // End-of-Table (Type 127)
1096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1100 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1108 Display BIOS Information (Type 0) information.
1110 @param[in] Chara The information bits.
1111 @param[in] Option The optional information.
1114 DisplayBiosCharacteristics (
1122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1126 PRINT_INFO_OPTION (Chara
, Option
);
1129 // Check all the bits and print information
1130 // This function does not use Table because table of bits
1131 // are designed not to deal with UINT64
1133 if (BIT (Chara
, 0) != 0) {
1134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1137 if (BIT (Chara
, 1) != 0) {
1138 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1141 if (BIT (Chara
, 2) != 0) {
1142 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1145 if (BIT (Chara
, 3) != 0) {
1146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1149 if (BIT (Chara
, 4) != 0) {
1150 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1153 if (BIT (Chara
, 5) != 0) {
1154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1157 if (BIT (Chara
, 6) != 0) {
1158 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1161 if (BIT (Chara
, 7) != 0) {
1162 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1165 if (BIT (Chara
, 8) != 0) {
1166 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1169 if (BIT (Chara
, 9) != 0) {
1170 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1173 if (BIT (Chara
, 10) != 0) {
1174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1177 if (BIT (Chara
, 11) != 0) {
1178 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1181 if (BIT (Chara
, 12) != 0) {
1182 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1185 if (BIT (Chara
, 13) != 0) {
1186 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1189 if (BIT (Chara
, 14) != 0) {
1190 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1193 if (BIT (Chara
, 15) != 0) {
1194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1197 if (BIT (Chara
, 16) != 0) {
1198 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1201 if (BIT (Chara
, 17) != 0) {
1202 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1205 if (BIT (Chara
, 18) != 0) {
1206 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1209 if (BIT (Chara
, 19) != 0) {
1210 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1213 if (BIT (Chara
, 20) != 0) {
1214 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1217 if (BIT (Chara
, 21) != 0) {
1218 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1221 if (BIT (Chara
, 22) != 0) {
1222 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1225 if (BIT (Chara
, 23) != 0) {
1226 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1229 if (BIT (Chara
, 24) != 0) {
1230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1233 if (BIT (Chara
, 25) != 0) {
1234 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1237 if (BIT (Chara
, 26) != 0) {
1238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1241 if (BIT (Chara
, 27) != 0) {
1242 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1245 if (BIT (Chara
, 28) != 0) {
1246 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1249 if (BIT (Chara
, 29) != 0) {
1250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1253 if (BIT (Chara
, 30) != 0) {
1254 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1257 if (BIT (Chara
, 31) != 0) {
1258 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1261 // Just print the Reserved
1263 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1264 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1268 Display Bios Characteristice extensions1 information.
1270 @param[in] Byte1 The information.
1271 @param[in] Option The optional information.
1274 DisplayBiosCharacteristicsExt1 (
1279 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1283 PRINT_INFO_OPTION (Byte1
, Option
);
1286 // check bit and print
1288 if (BIT (Byte1
, 0) != 0) {
1289 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1292 if (BIT (Byte1
, 1) != 0) {
1293 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1296 if (BIT (Byte1
, 2) != 0) {
1297 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1300 if (BIT (Byte1
, 3) != 0) {
1301 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1304 if (BIT (Byte1
, 4) != 0) {
1305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1308 if (BIT (Byte1
, 5) != 0) {
1309 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1312 if (BIT (Byte1
, 6) != 0) {
1313 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1316 if (BIT (Byte1
, 7) != 0) {
1317 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1322 Display Bios Characteristice extensions2 information.
1324 @param[in] byte2 The information.
1325 @param[in] Option The optional information.
1328 DisplayBiosCharacteristicsExt2 (
1333 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1337 PRINT_INFO_OPTION (byte2
, Option
);
1339 if (BIT (byte2
, 0) != 0) {
1340 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1343 if (BIT (byte2
, 1) != 0) {
1344 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1347 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1348 if (BIT (byte2
, 2) != 0) {
1349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1351 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1352 if (BIT (byte2
, 3) != 0) {
1353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1355 if (BIT (byte2
, 4) != 0) {
1356 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1358 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1360 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1363 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1368 Display Processor Information (Type 4) information.
1370 @param[in] Family The family value.
1371 @param[in] Option The option value.
1374 DisplayProcessorFamily (
1380 // Print prompt message
1382 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1386 PRINT_INFO_OPTION (Family
, Option
);
1389 // Use switch to check
1393 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1397 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1409 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1413 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1433 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1437 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1441 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1445 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1449 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1453 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1457 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1461 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1465 Print (L
"M2 Family\n");
1469 Print (L
"Intel Celeron M\n");
1473 Print (L
"Intel Pentium 4 HT\n");
1477 Print (L
"AMD Duron\n");
1481 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1485 Print (L
"K6 Family\n");
1497 Print (L
"AMD Althon Processor Family\n");
1501 Print (L
"AMD 29000 Family\n");
1509 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1513 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1517 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1521 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1525 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1529 Print (L
"Power PC 620\n");
1533 Print (L
"Power PC 704\n");
1537 Print (L
"Power PC 750\n");
1541 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1545 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1553 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1557 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1561 Print (L
"Alpha 21064\n");
1565 Print (L
"Alpha 21066\n");
1569 Print (L
"Alpha 21164\n");
1573 Print (L
"Alpha 21164PC\n");
1577 Print (L
"Alpha 21164a\n");
1581 Print (L
"Alpha 21264\n");
1585 Print (L
"Alpha 21364\n");
1589 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1593 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1597 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1601 Print (L
"AMD Opteron 6100 Series Processor\n");
1605 Print (L
"AMD Opteron 4100 Series Processor\n");
1609 Print (L
"AMD Opteron 6200 Series Processor\n");
1613 Print (L
"AMD Opteron 4200 Series Processor\n");
1617 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1621 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1625 Print (L
"MIPS R4000\n");
1629 Print (L
"MIPS R4200\n");
1633 Print (L
"MIPS R4400\n");
1637 Print (L
"MIPS R4600\n");
1641 Print (L
"MIPS R10000\n");
1645 Print (L
"AMD C-Series Processor\n");
1649 Print (L
"AMD E-Series Processor\n");
1653 Print (L
"AMD A-Series Processor\n");
1657 Print (L
"AMD G-Series Processor\n");
1661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1673 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1681 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1685 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1689 Print (L
"SuperSparc\n");
1693 Print (L
"microSparc II\n");
1697 Print (L
"microSparc IIep\n");
1701 Print (L
"UltraSparc\n");
1705 Print (L
"UltraSparc II\n");
1709 Print (L
"UltraSparcIIi\n");
1713 Print (L
"UltraSparcIII\n");
1717 Print (L
"UltraSparcIIIi\n");
1721 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1745 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1749 Print (L
"Crusoe TM5000\n");
1753 Print (L
"Crusoe TM3000\n");
1757 Print (L
"Efficeon TM8000\n");
1761 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1765 Print (L
"Itanium\n");
1769 Print (L
"AMD Athlon64\n");
1773 Print (L
"AMD Opteron\n");
1777 Print (L
"AMD Sempron\n");
1781 Print (L
"AMD Turion64 Mobile\n");
1785 Print (L
"Dual-Core AMD Opteron\n");
1789 Print (L
"AMD Athlon 64X2 DualCore\n");
1793 Print (L
"AMD Turion 64X2 Mobile\n");
1797 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1801 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1805 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1809 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1813 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1817 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1821 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1825 Print (L
"PA-RISC 8500\n");
1829 Print (L
"PA-RISC 8000\n");
1833 Print (L
"PA-RISC 7300LC\n");
1837 Print (L
"PA-RISC 7200\n");
1841 Print (L
"PA-RISC 7100LC\n");
1845 Print (L
"PA-RISC 7100\n");
1849 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1853 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1857 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1861 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1865 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1869 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1873 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1877 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1881 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1885 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1889 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1893 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1897 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1901 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1905 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1909 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1913 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1917 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1921 Print (L
"Pentium 4 processor\n");
1925 Print (L
"Intel Xeon Processor\n");
1929 Print (L
"AS400 Family\n");
1933 Print (L
"Intel Xeon processor MP\n");
1937 Print (L
"AMD Althon XP Processor Family\n");
1941 Print (L
"AMD Althon MP Promcessor Family\n");
1945 Print (L
"Intel Itanium 2 processor\n");
1949 Print (L
"Intel Penium M processor\n");
1953 Print (L
"Intel Celeron D processor\n");
1957 Print (L
"Intel Pentium D processor\n");
1961 Print (L
"Intel Pentium Processor Extreme Edition\n");
1965 Print (L
"Intel Core Solo Processor\n");
1969 Print (L
"Intel Core 2 Duo Processor\n");
1973 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
1977 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1981 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
1985 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1989 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
1993 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2001 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2005 Print (L
"IBM 390\n");
2021 Print (L
"zArchitecture\n");
2025 Print (L
"Intel Core i5 processor\n");
2029 Print (L
"Intel Core i3 processor\n");
2033 Print (L
"ViaC7M\n");
2037 Print (L
"ViaC7D\n");
2049 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2053 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2057 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2061 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2065 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2073 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2077 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2081 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2085 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2089 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2094 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2098 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2102 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2106 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2114 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2118 Print (L
"AMD Phenom II Processor Family\n");
2122 Print (L
"AMD Althon II Processor Family\n");
2126 Print (L
"Six-Core AMD Opteron Processor Family\n");
2130 Print (L
"AMD Sempron M Processor Family\n");
2142 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2150 Display processor family information.
2152 @param[in] Family2 The family value.
2153 @param[in] Option The option value.
2156 DisplayProcessorFamily2 (
2162 // Print prompt message
2164 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2169 PRINT_INFO_OPTION (Family2
, Option
);
2172 // Use switch to check
2188 Print (L
"StrongARM\n");
2196 Print (L
"MediaGX\n");
2204 Print (L
"WinChip\n");
2212 Print (L
"Video Processor\n");
2216 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2222 Display processor voltage information.
2224 @param[in] Voltage The Voltage.
2225 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2226 Bits 6:4 Reserved, must be zero
2227 Bits 3:0 Voltage Capability.
2228 A Set bit indicates that the voltage is supported.
2232 Bit 3 - Reserved, must be zero.
2235 Setting of multiple bits indicates the socket is configurable
2236 If bit 7 is set to 1, the remaining seven bits of the field are set to
2237 contain the processor's current voltage times 10.
2238 For example, the field value for a processor voltage of 1.8 volts would be
2239 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2241 @param[in] Option The option.
2244 DisplayProcessorVoltage (
2249 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2253 PRINT_INFO_OPTION (Voltage
, Option
);
2255 if (BIT (Voltage
, 7) != 0) {
2256 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2258 if (BIT (Voltage
, 0) != 0) {
2259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2262 if (BIT (Voltage
, 1) != 0) {
2263 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2266 if (BIT (Voltage
, 2) != 0) {
2267 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2270 // check the reserved zero bits:
2272 if (BIT (Voltage
, 3) != 0) {
2273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2276 if (BIT (Voltage
, 4) != 0) {
2277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2280 if (BIT (Voltage
, 5) != 0) {
2281 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2284 if (BIT (Voltage
, 6) != 0) {
2285 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2291 Display processor information.
2293 @param[in] Status The status.
2294 Bit 7 Reserved, must be 0
2295 Bit 6 CPU Socket Populated
2296 1 - CPU Socket Populated
2297 0 - CPU Socket Unpopulated
2298 Bits 5:3 Reserved, must be zero
2302 2h - CPU Disabled by User via BIOS Setup
2303 3h - CPU Disabled By BIOS (POST Error)
2304 4h - CPU is Idle, waiting to be enabled.
2308 @param[in] Option The option
2311 DisplayProcessorStatus (
2316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2317 PRINT_INFO_OPTION (Status
, Option
);
2319 if (BIT (Status
, 7) != 0) {
2320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2321 } else if (BIT (Status
, 5) != 0) {
2322 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2323 } else if (BIT (Status
, 4) != 0) {
2324 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2325 } else if (BIT (Status
, 3) != 0) {
2326 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2331 if (BIT (Status
, 6) != 0) {
2332 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2339 switch (Status
& 0x07) {
2341 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2361 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2365 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2370 Display information about Memory Controller Information (Type 5).
2372 @param[in] Size Memory size.
2373 @param[in] SlotNum Which slot is this about.
2374 @param[in] Option Option for the level of detail output required.
2377 DisplayMaxMemoryModuleSize (
2384 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2386 // MaxSize is determined by follow formula
2388 MaxSize
= (UINTN
) 1 << Size
;
2389 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2391 if (Option
>= SHOW_DETAIL
) {
2392 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2393 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2398 Display information about memory configuration handles.
2400 @param[in] Handles The buffer of handles to output info on.
2401 @param[in] SlotNum The number of handles in the above buffer.
2402 @param[in] Option Option for the level of detail output required.
2405 DisplayMemoryModuleConfigHandles (
2412 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2414 if (Option
>= SHOW_DETAIL
) {
2416 // No handle, Handles is INVALID.
2422 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2423 for (Index
= 0; Index
< SlotNum
; Index
++) {
2424 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2430 Display Memory Module Information (Type 6).
2432 @param[in] BankConnections
2436 DisplayMmBankConnections (
2437 IN UINT8 BankConnections
,
2444 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2448 PRINT_INFO_OPTION (BankConnections
, Option
);
2451 // Divide it to high and low
2453 High
= (UINT8
) (BankConnections
& 0xF0);
2454 Low
= (UINT8
) (BankConnections
& 0x0F);
2457 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2459 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2463 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2465 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2471 Display memory informcation.
2474 where 2**n is the size in MB with three special-case values:
2475 7Dh Not determinable (Installed Size only)
2476 7Eh Module is installed, but no memory has been enabled
2478 Bit 7 Defines whether the memory module has a single- (0)
2479 or double-bank (1) connection.
2481 @param[in] Size - The size
2482 @param[in] Option - The option
2485 DisplayMmMemorySize (
2491 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2495 PRINT_INFO_OPTION (Size
, Option
);
2498 // Get the low bits(0-6 bit)
2500 Value
= (UINT8
) (Size
& 0x7F);
2501 if (Value
== 0x7D) {
2502 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2503 } else if (Value
== 0x7E) {
2504 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2505 } else if (Value
== 0x7F) {
2506 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2508 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2511 if (BIT (Size
, 7) != 0) {
2512 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2514 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2519 Display Cache Configuration.
2521 @param[in] CacheConfiguration Cache Configuration.
2522 Bits 15:10 Reserved, must be 0
2523 Bits 9:8 Operational Mode
2526 2h - Varies with Memory Address
2528 Bit 7 Enabled/Disabled
2536 Bit 4 Reserved, must be zero
2537 Bit 3 Cache Socketed
2540 Bits 2:0 Cache Level
2541 1 through 8 (For example, an L1 cache would
2542 use value 000b and an L3 cache would use 010b.)
2544 @param[in] Option The option
2547 DisplayCacheConfiguration (
2548 IN UINT16 CacheConfiguration
,
2552 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2553 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2555 if (BIT (CacheConfiguration
, 15) != 0) {
2556 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2557 } else if (BIT (CacheConfiguration
, 14) != 0) {
2558 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2559 } else if (BIT (CacheConfiguration
, 13) != 0) {
2560 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2561 } else if (BIT (CacheConfiguration
, 12) != 0) {
2562 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2563 } else if (BIT (CacheConfiguration
, 11) != 0) {
2564 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2565 } else if (BIT (CacheConfiguration
, 10) != 0) {
2566 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2567 } else if (BIT (CacheConfiguration
, 4) != 0) {
2568 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2574 switch ((CacheConfiguration
& 0x300) >> 8) {
2576 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2580 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2584 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2588 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2595 if (BIT (CacheConfiguration
, 7) != 0) {
2596 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2598 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2604 switch ((CacheConfiguration
& 0x60) >> 5) {
2606 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2610 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2614 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2618 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2625 if (BIT (CacheConfiguration
, 3) != 0) {
2626 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2628 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2632 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2636 The Slot ID field of the System Slot structure provides a mechanism to
2637 correlate the physical attributes of the slot to its logical access method
2638 (which varies based on the Slot Type field).
2640 @param[in] SlotId - The slot ID
2641 @param[in] SlotType - The slot type
2642 @param[in] Option - The Option
2645 DisplaySystemSlotId (
2652 // Display slot type first
2654 DisplaySystemSlotType (SlotType
, Option
);
2656 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2660 PRINT_INFO_OPTION (SlotType
, Option
);
2667 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2668 if (SlotId
> 0 && SlotId
< 15) {
2669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2671 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2679 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2680 if (SlotId
> 0 && SlotId
< 15) {
2681 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2683 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2691 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2698 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2705 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2709 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2710 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2712 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2718 Display System Boot Information (Type 32) information.
2720 @param[in] Parameter The parameter.
2721 @param[in] Option The options.
2724 DisplaySystemBootStatus (
2729 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2733 PRINT_INFO_OPTION (Parameter
, Option
);
2736 // Check value and print
2738 if (Parameter
== 0) {
2739 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2740 } else if (Parameter
== 1) {
2741 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2742 } else if (Parameter
== 2) {
2743 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2744 } else if (Parameter
== 3) {
2745 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2746 } else if (Parameter
== 4) {
2747 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2748 } else if (Parameter
== 5) {
2749 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2750 } else if (Parameter
== 6) {
2751 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2752 } else if (Parameter
== 7) {
2753 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2754 } else if (Parameter
== 8) {
2755 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2756 } else if (Parameter
>= 9 && Parameter
<= 127) {
2757 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2758 } else if (Parameter
>= 128 && Parameter
<= 191) {
2759 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2760 } else if (Parameter
>= 192) {
2761 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2763 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2768 Display Portable Battery (Type 22) information.
2770 The date the cell pack was manufactured, in packed format:
2771 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2772 Bits 8:5 Month, in the range 1 to 12.
2773 Bits 4:0 Date, in the range 1 to 31.
2774 For example, 01 February 2000 would be identified as
2775 0010 1000 0100 0001b (0x2841).
2777 @param[in] Date The date
2778 @param[in] Option The option
2781 DisplaySBDSManufactureDate (
2790 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2791 PRINT_INFO_OPTION (Date
, Option
);
2795 Day
= Date
& 0x001F;
2796 Month
= (Date
& 0x01E0) >> 5;
2797 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2798 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2803 Display System Reset (Type 23) information.
2806 Identifies the system-reset capabilities for the system.
2807 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2808 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2809 Bits 4:3 Boot Option on Limit.
2810 Identifies the system action to be taken when the Reset Limit is reached, one of:
2811 00b Reserved, do not use.
2812 01b Operating system
2813 10b System utilities
2814 11b Do not rebootBits
2815 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2816 00b Reserved, do not use.
2817 01b Operating system
2818 10b System utilities
2821 1b The system reset is enabled by the user
2822 0b The system reset is not enabled by the user
2824 @param[in] Reset Reset
2825 @param[in] Option The option
2828 DisplaySystemResetCapabilities (
2835 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2836 PRINT_INFO_OPTION (Reset
, Option
);
2839 // Check reserved bits 7:6
2841 if ((Reset
& 0xC0) != 0) {
2842 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2847 if (BIT (Reset
, 5) != 0) {
2848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2850 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2853 // Boot Option on Limit
2855 Temp
= (Reset
& 0x18) >> 3;
2856 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2859 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2863 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2867 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2871 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2877 Temp
= (Reset
& 0x06) >> 1;
2878 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2881 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2885 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2889 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2893 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2897 // Reset enable flag
2899 if ((Reset
& 0x01) != 0) {
2900 Print (L
"The system reset is enabled by the user\n");
2902 Print (L
"The system reset is disabled by the user\n");
2907 Display Hardware Security (Type 24) information.
2910 Identifies the password and reset status for the system:
2912 Bits 7:6 Power-on Password Status, one of:
2917 Bits 5:4 Keyboard Password Status, one of:
2922 Bits 3:2 Administrator Password Status, one of:
2927 Bits 1:0 Front Panel Reset Status, one of:
2933 @param[in] Settings The device settings.
2934 @param[in] Option The device options.
2937 DisplayHardwareSecuritySettings (
2944 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2945 PRINT_INFO_OPTION (Settings
, Option
);
2948 // Power-on Password Status
2950 Temp
= (Settings
& 0xC0) >> 6;
2951 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2954 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2958 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2962 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2966 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2970 // Keyboard Password Status
2972 Temp
= (Settings
& 0x30) >> 4;
2973 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
2976 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2980 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2984 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2988 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2992 // Administrator Password Status
2994 Temp
= (Settings
& 0x0C) >> 2;
2995 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
2998 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3002 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3006 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3010 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3014 // Front Panel Reset Status
3016 Temp
= Settings
& 0x3;
3017 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3020 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3024 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3028 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3032 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3038 Display Out-of-Band Remote Access (Type 30) information.
3040 @param[in] Connections The device characteristics.
3041 @param[in] Option The device options.
3044 DisplayOBRAConnections (
3045 IN UINT8 Connections
,
3049 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3050 PRINT_INFO_OPTION (Connections
, Option
);
3053 // Check reserved bits 7:2
3055 if ((Connections
& 0xFC) != 0) {
3056 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3059 // Outbound Connection
3061 if (BIT (Connections
, 1) != 0) {
3062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3064 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3067 // Inbound Connection
3069 if (BIT (Connections
, 0) != 0) {
3070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3072 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3077 Display System Power Supply (Type 39) information.
3079 @param[in] Characteristics The device characteristics.
3080 @param[in] Option The device options.
3083 DisplaySPSCharacteristics (
3084 IN UINT16 Characteristics
,
3090 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3091 PRINT_INFO_OPTION (Characteristics
, Option
);
3094 // Check reserved bits 15:14
3096 if ((Characteristics
& 0xC000) != 0) {
3097 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3100 // Bits 13:10 - DMTF Power Supply Type
3102 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3103 Temp
= (Characteristics
& 0x1C00) >> 10;
3106 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3114 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3118 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3126 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3138 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3141 // Bits 9:7 - Status
3143 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3144 Temp
= (Characteristics
& 0x380) >> 7;
3147 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3159 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3167 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3170 // Bits 6:3 - DMTF Input Voltage Range Switching
3172 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3173 Temp
= (Characteristics
& 0x78) >> 3;
3176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3180 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3184 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3200 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3204 // Power supply is unplugged from the wall
3206 if (BIT (Characteristics
, 2) != 0) {
3207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3209 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3212 // Power supply is present
3214 if (BIT (Characteristics
, 1) != 0) {
3215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3217 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3222 if (BIT (Characteristics
, 0) != 0) {
3223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3225 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);