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 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #include "../UefiShellDebug1CommandsLib.h"
17 #include "PrintInfo.h"
18 #include "LibSmbiosView.h"
19 #include "QueryTable.h"
20 #include "EventLogInfo.h"
24 // Get the certain bit of 'value'
26 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
29 // Check if above or equal to version
31 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
32 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
35 //////////////////////////////////////////////////////////
36 // Macros of print structure element, simplify coding.
38 #define PRINT_PENDING_STRING(pStruct, type, element) \
41 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
42 ShellPrintEx(-1,-1,L"%a",#element); \
43 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
46 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
49 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
50 ShellPrintEx(-1,-1,L"%a",#element); \
51 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
54 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
56 ShellPrintEx(-1,-1,L"%a",#element); \
57 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
60 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
62 ShellPrintEx(-1,-1,L"%a",#element); \
63 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
66 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
68 ShellPrintEx(-1,-1,L"%a",#element); \
69 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
72 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
74 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
75 ShellPrintEx(-1,-1,L"%a",#element); \
76 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
77 DumpHex (0, 0, size, &(pStruct->type->element)); \
80 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
82 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
83 ShellPrintEx(-1,-1,L"%a",#element); \
84 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
85 DumpHex (0, 0, size, startaddress); \
89 /////////////////////////////////////////
93 Copy Length of Src buffer to Dest buffer,
94 add a NULL termination to Dest buffer.
96 @param[in, out] Dest Destination buffer head.
97 @param[in] Src Source buffer head.
98 @param[in] Length Length of buffer to be copied.
109 SrcBuffer
= (UINT8
*) Src
;
110 DestBuffer
= (UINT8
*) Dest
;
114 while ((Length
--)!=0) {
115 *DestBuffer
++ = *SrcBuffer
++;
118 // append a NULL terminator
124 //////////////////////////////////////////////
126 // Functions below is to show the information
130 Print the info of EPS(Entry Point Structure).
132 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
133 @param[in] Option Display option.
137 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
144 if (SmbiosTable
== NULL
) {
145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
149 if (Option
== SHOW_NONE
) {
153 if (Option
>= SHOW_NORMAL
) {
154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
155 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
156 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
157 ShellPrintHiiEx(-1,-1,NULL
,
158 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
159 gShellDebug1HiiHandle
,
160 SmbiosTable
->EntryPointStructureChecksum
162 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
163 ShellPrintHiiEx(-1,-1,NULL
,
164 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
165 gShellDebug1HiiHandle
,
166 SmbiosTable
->MajorVersion
,
167 SmbiosTable
->MinorVersion
169 ShellPrintHiiEx(-1,-1,NULL
,
170 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
171 gShellDebug1HiiHandle
,
172 SmbiosTable
->NumberOfSmbiosStructures
174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
180 // If SHOW_ALL, also print followings.
182 if (Option
>= SHOW_DETAIL
) {
183 ShellPrintHiiEx(-1,-1,NULL
,
184 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
185 gShellDebug1HiiHandle
,
186 SmbiosTable
->EntryPointRevision
188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
190 // Since raw data is not string, add a NULL terminater.
192 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
196 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
203 Print the info of 64-bit EPS(Entry Point Structure).
205 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
206 @param[in] Option Display option.
209 Smbios64BitPrintEPSInfo (
210 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
216 if (SmbiosTable
== NULL
) {
217 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
221 if (Option
== SHOW_NONE
) {
225 if (Option
>= SHOW_NORMAL
) {
226 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
228 MemToString (Anchor
, SmbiosTable
->AnchorString
, 5);
229 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
231 ShellPrintHiiEx(-1,-1,NULL
,
232 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
233 gShellDebug1HiiHandle
,
234 SmbiosTable
->EntryPointStructureChecksum
237 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
239 ShellPrintHiiEx(-1,-1,NULL
,
240 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
241 gShellDebug1HiiHandle
,
242 SmbiosTable
->MajorVersion
,
243 SmbiosTable
->MinorVersion
246 ShellPrintHiiEx(-1,-1,NULL
,
247 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV
),
248 gShellDebug1HiiHandle
,
252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->TableMaximumSize
);
254 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
258 // If SHOW_ALL, also print followings.
260 if (Option
>= SHOW_DETAIL
) {
261 ShellPrintHiiEx(-1,-1,NULL
,
262 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
263 gShellDebug1HiiHandle
,
264 SmbiosTable
->EntryPointRevision
272 This function print the content of the structure pointed by Struct.
274 @param[in] Struct Point to the structure to be printed.
275 @param[in] Option Print option of information detail.
277 @retval EFI_SUCCESS Successfully Printing this function.
278 @retval EFI_INVALID_PARAMETER Invalid Structure.
279 @retval EFI_UNSUPPORTED Unsupported.
282 SmbiosPrintStructure (
283 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
290 if (Struct
== NULL
) {
291 return EFI_INVALID_PARAMETER
;
294 if (Option
== SHOW_NONE
) {
298 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
301 // Display structure header
303 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
307 if (Option
== SHOW_OUTLINE
) {
311 switch (Struct
->Hdr
->Type
) {
313 // BIOS Information (Type 0)
316 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
317 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
318 PRINT_STRUCT_VALUE (Struct
, Type0
, BiosSegment
);
319 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
322 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type0
->BiosCharacteristics
)), Option
);
324 if (Struct
->Hdr
->Length
> 0x12) {
325 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
327 if (Struct
->Hdr
->Length
> 0x13) {
328 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
331 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
332 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
333 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
334 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
335 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
341 // System Information (Type 1)
344 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
345 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
346 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
347 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
348 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
349 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
350 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
351 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
352 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
358 // Baseboard Information (Type 2)
361 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
362 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
363 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
364 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
365 if (Struct
->Hdr
->Length
> 0x8) {
366 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
367 DisplayBaseBoardFeatureFlags (*(UINT8
*) &Struct
->Type2
->FeatureFlag
, Option
);
368 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
369 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
370 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
375 // System Enclosure (Type 3)
378 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
379 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
380 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
381 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
382 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
383 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
384 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
385 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
386 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
387 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
388 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
389 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
390 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
391 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
392 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0xD)) {
393 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
398 // Processor Information (Type 4)
401 PRINT_PENDING_STRING (Struct
, Type4
, Socket
);
402 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
403 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
404 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
406 // Get family from ProcessorFamily2 field
408 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
410 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
412 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
413 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
414 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
415 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
416 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
417 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
418 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
419 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
420 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
421 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
422 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
423 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
424 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
425 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
426 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
427 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
429 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
430 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
431 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
432 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
433 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
435 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
436 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
437 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
438 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
443 // Memory Controller Information (Type 5)
448 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
450 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
451 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
452 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
453 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
454 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
455 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
456 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
457 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
458 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
459 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
460 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
462 // According to SMBIOS Specification, offset 0x0F
464 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
465 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
470 // Memory Module Information (Type 6)
473 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
474 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
475 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
476 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
477 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
478 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
479 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
480 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
481 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
485 // Cache Information (Type 7)
488 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
489 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
490 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
491 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
492 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
493 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
494 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
495 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
496 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
497 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
498 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
502 // Port Connector Information (Type 8)
505 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
506 Print (L
"Internal ");
507 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
508 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
509 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
510 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
511 DisplayPortType (Struct
->Type8
->PortType
, Option
);
515 // System Slots (Type 9)
518 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
519 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
520 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
521 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
522 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
523 DisplaySystemSlotId (
524 Struct
->Type9
->SlotID
,
525 Struct
->Type9
->SlotType
,
528 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
529 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
530 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
531 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
532 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
533 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
538 // On Board Devices Information (Type 10)
543 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
544 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
545 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
546 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
547 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
553 // Oem Strings (Type 11)
556 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
557 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
558 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
563 // System Configuration Options (Type 12)
566 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
567 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
568 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
573 // BIOS Language Information (Type 13)
576 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
577 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
578 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
579 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
583 // Group Associations (Type 14)
588 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
589 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
590 for (Index
= 0; Index
< NumOfItem
; Index
++) {
591 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
592 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
598 // System Event Log (Type 15)
604 UINT8
*AccessMethodAddress
;
606 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
607 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
608 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
609 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
610 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
611 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
612 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
613 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
614 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
615 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
617 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
619 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
622 // Display all Event Log type descriptors supported by system
624 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
625 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
626 DisplaySELTypes (Ptr
->LogType
, Option
);
627 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
630 if (Option
>= SHOW_DETAIL
) {
631 switch (Struct
->Type15
->AccessMethod
) {
633 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
641 ShellPrintHiiEx(-1,-1,NULL
,
642 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
643 gShellDebug1HiiHandle
,
644 Struct
->Type15
->AccessMethod
646 return EFI_UNSUPPORTED
;
649 // Display Event Log Header
651 // Starting offset (or index) within the nonvolatile storage
652 // of the event-log's header, from the Access Method Address
654 DisplaySysEventLogHeader (
655 Struct
->Type15
->LogHeaderFormat
,
656 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
660 // Display all Event Log data
662 // Starting offset (or index) within the nonvolatile storage
663 // of the event-log's first data byte, from the Access Method Address(0x14)
665 DisplaySysEventLogData (
666 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
669 Struct
->Type15
->LogAreaLength
-
670 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
680 // Physical Memory Array (Type 16)
683 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
684 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
685 DisplayPMAErrorCorrectionTypes (
686 Struct
->Type16
->MemoryErrorCorrection
,
689 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
690 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
691 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
692 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
693 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
698 // Memory Device (Type 17)
701 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
702 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
703 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
704 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
705 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
706 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
707 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
708 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
709 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
710 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
711 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
712 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
713 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
714 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
715 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
716 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
717 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
718 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
720 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
721 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
722 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
727 // 32-bit Memory Error Information (Type 18)
730 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
731 DisplayMemoryErrorGranularity (
732 Struct
->Type18
->ErrorGranularity
,
735 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
736 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
737 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
738 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
739 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
743 // Memory Array Mapped Address (Type 19)
746 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
747 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
748 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
749 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
750 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
751 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
752 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
757 // Memory Device Mapped Address (Type 20)
760 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
761 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
762 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
763 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
764 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
765 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
766 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
767 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
768 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
769 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
774 // Built-in Pointing Device (Type 21)
777 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
778 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
779 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
783 // Portable Battery (Type 22)
786 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
787 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
788 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
789 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
790 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
791 DisplayPBDeviceChemistry (
792 Struct
->Type22
->DeviceChemistry
,
795 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
796 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
797 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
798 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
799 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
800 DisplaySBDSManufactureDate (
801 Struct
->Type22
->SBDSManufactureDate
,
804 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
805 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
806 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
810 // System Reset (Type 23)
813 DisplaySystemResetCapabilities (
814 Struct
->Type23
->Capabilities
,
817 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
818 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
819 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
820 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
824 // Hardware Security (Type 24)
827 DisplayHardwareSecuritySettings (
828 Struct
->Type24
->HardwareSecuritySettings
,
834 // System Power Controls (Type 25)
837 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
839 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
840 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
841 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
845 // Voltage Probe (Type 26)
848 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
849 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
850 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
851 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
852 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
853 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
854 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
855 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
856 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
857 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
861 // Cooling Device (Type 27)
864 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
865 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
866 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
867 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
868 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
869 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
870 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
871 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
876 // Temperature Probe (Type 28)
879 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
880 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
881 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
882 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
883 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
884 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
885 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
886 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
887 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
892 // Electrical Current Probe (Type 29)
895 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
896 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
897 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
898 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
899 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
900 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
901 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
902 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
903 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
904 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
908 // Out-of-Band Remote Access (Type 30)
911 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
912 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
916 // Boot Integrity Services (BIS) Entry Point (Type 31)
919 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
923 // System Boot Information (Type 32)
926 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
927 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
931 // 64-Bit Memory Error Information (Type 33)
934 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
935 DisplayMemoryErrorGranularity (
936 Struct
->Type33
->ErrorGranularity
,
939 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
940 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
941 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
942 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
943 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
947 // Management Device (Type 34)
950 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
951 DisplayMDType (Struct
->Type34
->Type
, Option
);
952 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
953 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
957 // Management Device Component (Type 35)
960 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
961 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
962 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
963 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
967 // Management Device Threshold Data (Type 36)
970 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
971 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
972 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
973 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
974 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
975 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
979 // Memory Channel (Type 37)
985 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
986 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
987 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
989 Count
= Struct
->Type37
->MemoryDeviceCount
;
990 Ptr
= Struct
->Type37
->MemoryDevice
;
991 for (Index
= 0; Index
< Count
; Index
++) {
992 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
993 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
994 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1000 // IPMI Device Information (Type 38)
1003 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1004 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1005 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1006 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1007 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1011 // System Power Supply (Type 39)
1014 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1015 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1016 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1017 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1018 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1019 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1020 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1021 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1022 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1023 DisplaySPSCharacteristics (
1024 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1027 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1028 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1029 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1033 // Additional Information (Type 40)
1037 UINT8 NumberOfEntries
;
1039 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1042 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1043 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1045 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1047 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1048 EntryLength
= Entries
->EntryLength
;
1049 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1050 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1051 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1052 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1053 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1054 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1060 // Onboard Devices Extended Information (Type 41)
1063 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1064 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1065 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1066 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1067 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1068 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1069 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1073 // Management Controller Host Interface (Type 42)
1076 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceType
);
1080 // Inactive (Type 126)
1083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1087 // End-of-Table (Type 127)
1090 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1094 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1102 Display BIOS Information (Type 0) information.
1104 @param[in] Chara The information bits.
1105 @param[in] Option The optional information.
1108 DisplayBiosCharacteristics (
1116 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1120 PRINT_INFO_OPTION (Chara
, Option
);
1123 // Check all the bits and print information
1124 // This function does not use Table because table of bits
1125 // are designed not to deal with UINT64
1127 if (BIT (Chara
, 0) != 0) {
1128 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1131 if (BIT (Chara
, 1) != 0) {
1132 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1135 if (BIT (Chara
, 2) != 0) {
1136 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1139 if (BIT (Chara
, 3) != 0) {
1140 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1143 if (BIT (Chara
, 4) != 0) {
1144 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1147 if (BIT (Chara
, 5) != 0) {
1148 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1151 if (BIT (Chara
, 6) != 0) {
1152 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1155 if (BIT (Chara
, 7) != 0) {
1156 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1159 if (BIT (Chara
, 8) != 0) {
1160 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1163 if (BIT (Chara
, 9) != 0) {
1164 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1167 if (BIT (Chara
, 10) != 0) {
1168 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1171 if (BIT (Chara
, 11) != 0) {
1172 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1175 if (BIT (Chara
, 12) != 0) {
1176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1179 if (BIT (Chara
, 13) != 0) {
1180 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1183 if (BIT (Chara
, 14) != 0) {
1184 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1187 if (BIT (Chara
, 15) != 0) {
1188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1191 if (BIT (Chara
, 16) != 0) {
1192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1195 if (BIT (Chara
, 17) != 0) {
1196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1199 if (BIT (Chara
, 18) != 0) {
1200 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1203 if (BIT (Chara
, 19) != 0) {
1204 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1207 if (BIT (Chara
, 20) != 0) {
1208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1211 if (BIT (Chara
, 21) != 0) {
1212 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1215 if (BIT (Chara
, 22) != 0) {
1216 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1219 if (BIT (Chara
, 23) != 0) {
1220 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1223 if (BIT (Chara
, 24) != 0) {
1224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1227 if (BIT (Chara
, 25) != 0) {
1228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1231 if (BIT (Chara
, 26) != 0) {
1232 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1235 if (BIT (Chara
, 27) != 0) {
1236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1239 if (BIT (Chara
, 28) != 0) {
1240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1243 if (BIT (Chara
, 29) != 0) {
1244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1247 if (BIT (Chara
, 30) != 0) {
1248 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1251 if (BIT (Chara
, 31) != 0) {
1252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1255 // Just print the Reserved
1257 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1258 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1262 Display Bios Characteristice extensions1 information.
1264 @param[in] Byte1 The information.
1265 @param[in] Option The optional information.
1268 DisplayBiosCharacteristicsExt1 (
1273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1277 PRINT_INFO_OPTION (Byte1
, Option
);
1280 // check bit and print
1282 if (BIT (Byte1
, 0) != 0) {
1283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1286 if (BIT (Byte1
, 1) != 0) {
1287 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1290 if (BIT (Byte1
, 2) != 0) {
1291 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1294 if (BIT (Byte1
, 3) != 0) {
1295 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1298 if (BIT (Byte1
, 4) != 0) {
1299 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1302 if (BIT (Byte1
, 5) != 0) {
1303 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1306 if (BIT (Byte1
, 6) != 0) {
1307 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1310 if (BIT (Byte1
, 7) != 0) {
1311 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1316 Display Bios Characteristice extensions2 information.
1318 @param[in] byte2 The information.
1319 @param[in] Option The optional information.
1322 DisplayBiosCharacteristicsExt2 (
1327 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1331 PRINT_INFO_OPTION (byte2
, Option
);
1333 if (BIT (byte2
, 0) != 0) {
1334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1337 if (BIT (byte2
, 1) != 0) {
1338 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1341 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1342 if (BIT (byte2
, 2) != 0) {
1343 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1345 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1346 if (BIT (byte2
, 3) != 0) {
1347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1349 if (BIT (byte2
, 4) != 0) {
1350 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1352 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1354 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1362 Display Processor Information (Type 4) information.
1364 @param[in] Family The family value.
1365 @param[in] Option The option value.
1368 DisplayProcessorFamily (
1374 // Print prompt message
1376 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1380 PRINT_INFO_OPTION (Family
, Option
);
1383 // Use switch to check
1387 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1391 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1403 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1407 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1427 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1431 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1435 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1439 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1443 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1447 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1451 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1455 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1459 Print (L
"M2 Family\n");
1463 Print (L
"Intel Celeron M\n");
1467 Print (L
"Intel Pentium 4 HT\n");
1471 Print (L
"AMD Duron\n");
1475 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1479 Print (L
"K6 Family\n");
1491 Print (L
"AMD Althon Processor Family\n");
1495 Print (L
"AMD 29000 Family\n");
1503 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1507 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1511 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1515 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1519 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1523 Print (L
"Power PC 620\n");
1527 Print (L
"Power PC 704\n");
1531 Print (L
"Power PC 750\n");
1535 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1539 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1543 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1547 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1551 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1555 Print (L
"Alpha 21064\n");
1559 Print (L
"Alpha 21066\n");
1563 Print (L
"Alpha 21164\n");
1567 Print (L
"Alpha 21164PC\n");
1571 Print (L
"Alpha 21164a\n");
1575 Print (L
"Alpha 21264\n");
1579 Print (L
"Alpha 21364\n");
1583 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1587 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1591 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1595 Print (L
"AMD Opteron 6100 Series Processor\n");
1599 Print (L
"AMD Opteron 4100 Series Processor\n");
1603 Print (L
"AMD Opteron 6200 Series Processor\n");
1607 Print (L
"AMD Opteron 4200 Series Processor\n");
1611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1615 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1619 Print (L
"MIPS R4000\n");
1623 Print (L
"MIPS R4200\n");
1627 Print (L
"MIPS R4400\n");
1631 Print (L
"MIPS R4600\n");
1635 Print (L
"MIPS R10000\n");
1639 Print (L
"AMD C-Series Processor\n");
1643 Print (L
"AMD E-Series Processor\n");
1647 Print (L
"AMD A-Series Processor\n");
1651 Print (L
"AMD G-Series Processor\n");
1655 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1659 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1663 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1667 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1671 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1675 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1679 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1683 Print (L
"SuperSparc\n");
1687 Print (L
"microSparc II\n");
1691 Print (L
"microSparc IIep\n");
1695 Print (L
"UltraSparc\n");
1699 Print (L
"UltraSparc II\n");
1703 Print (L
"UltraSparcIIi\n");
1707 Print (L
"UltraSparcIII\n");
1711 Print (L
"UltraSparcIIIi\n");
1715 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1739 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1743 Print (L
"Crusoe TM5000\n");
1747 Print (L
"Crusoe TM3000\n");
1751 Print (L
"Efficeon TM8000\n");
1755 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1759 Print (L
"Itanium\n");
1763 Print (L
"AMD Athlon64\n");
1767 Print (L
"AMD Opteron\n");
1771 Print (L
"AMD Sempron\n");
1775 Print (L
"AMD Turion64 Mobile\n");
1779 Print (L
"Dual-Core AMD Opteron\n");
1783 Print (L
"AMD Athlon 64X2 DualCore\n");
1787 Print (L
"AMD Turion 64X2 Mobile\n");
1791 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1795 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1799 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1803 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1807 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1811 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1815 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1819 Print (L
"PA-RISC 8500\n");
1823 Print (L
"PA-RISC 8000\n");
1827 Print (L
"PA-RISC 7300LC\n");
1831 Print (L
"PA-RISC 7200\n");
1835 Print (L
"PA-RISC 7100LC\n");
1839 Print (L
"PA-RISC 7100\n");
1843 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1847 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1851 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1855 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1859 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1863 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1867 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1871 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1875 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1879 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1887 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1891 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1895 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1899 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1903 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1907 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1911 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1915 Print (L
"Pentium 4 processor\n");
1919 Print (L
"Intel Xeon Processor\n");
1923 Print (L
"AS400 Family\n");
1927 Print (L
"Intel Xeon processor MP\n");
1931 Print (L
"AMD Althon XP Processor Family\n");
1935 Print (L
"AMD Althon MP Promcessor Family\n");
1939 Print (L
"Intel Itanium 2 processor\n");
1943 Print (L
"Intel Penium M processor\n");
1947 Print (L
"Intel Celeron D processor\n");
1951 Print (L
"Intel Pentium D processor\n");
1955 Print (L
"Intel Pentium Processor Extreme Edition\n");
1959 Print (L
"Intel Core Solo Processor\n");
1963 Print (L
"Intel Core 2 Duo Processor\n");
1967 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
1971 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1975 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
1979 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1983 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
1987 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1991 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
1995 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
1999 Print (L
"IBM 390\n");
2015 Print (L
"zArchitecture\n");
2019 Print (L
"Intel Core i5 processor\n");
2023 Print (L
"Intel Core i3 processor\n");
2027 Print (L
"ViaC7M\n");
2031 Print (L
"ViaC7D\n");
2043 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2047 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2051 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2055 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2059 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2063 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2071 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2075 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2079 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2088 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2100 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2104 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2108 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2112 Print (L
"AMD Phenom II Processor Family\n");
2116 Print (L
"AMD Althon II Processor Family\n");
2120 Print (L
"Six-Core AMD Opteron Processor Family\n");
2124 Print (L
"AMD Sempron M Processor Family\n");
2136 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2144 Display processor family information.
2146 @param[in] Family2 The family value.
2147 @param[in] Option The option value.
2150 DisplayProcessorFamily2 (
2156 // Print prompt message
2158 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2163 PRINT_INFO_OPTION (Family2
, Option
);
2166 // Use switch to check
2182 Print (L
"StrongARM\n");
2190 Print (L
"MediaGX\n");
2198 Print (L
"WinChip\n");
2206 Print (L
"Video Processor\n");
2210 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2216 Display processor voltage information.
2218 @param[in] Voltage The Voltage.
2219 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2220 Bits 6:4 Reserved, must be zero
2221 Bits 3:0 Voltage Capability.
2222 A Set bit indicates that the voltage is supported.
2226 Bit 3 - Reserved, must be zero.
2229 Setting of multiple bits indicates the socket is configurable
2230 If bit 7 is set to 1, the remaining seven bits of the field are set to
2231 contain the processor's current voltage times 10.
2232 For example, the field value for a processor voltage of 1.8 volts would be
2233 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2235 @param[in] Option The option.
2238 DisplayProcessorVoltage (
2243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2247 PRINT_INFO_OPTION (Voltage
, Option
);
2249 if (BIT (Voltage
, 7) != 0) {
2250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2252 if (BIT (Voltage
, 0) != 0) {
2253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2256 if (BIT (Voltage
, 1) != 0) {
2257 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2260 if (BIT (Voltage
, 2) != 0) {
2261 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2264 // check the reserved zero bits:
2266 if (BIT (Voltage
, 3) != 0) {
2267 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2270 if (BIT (Voltage
, 4) != 0) {
2271 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2274 if (BIT (Voltage
, 5) != 0) {
2275 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2278 if (BIT (Voltage
, 6) != 0) {
2279 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2285 Display processor information.
2287 @param[in] Status The status.
2288 Bit 7 Reserved, must be 0
2289 Bit 6 CPU Socket Populated
2290 1 - CPU Socket Populated
2291 0 - CPU Socket Unpopulated
2292 Bits 5:3 Reserved, must be zero
2296 2h - CPU Disabled by User via BIOS Setup
2297 3h - CPU Disabled By BIOS (POST Error)
2298 4h - CPU is Idle, waiting to be enabled.
2302 @param[in] Option The option
2305 DisplayProcessorStatus (
2310 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2311 PRINT_INFO_OPTION (Status
, Option
);
2313 if (BIT (Status
, 7) != 0) {
2314 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2315 } else if (BIT (Status
, 5) != 0) {
2316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2317 } else if (BIT (Status
, 4) != 0) {
2318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2319 } else if (BIT (Status
, 3) != 0) {
2320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2325 if (BIT (Status
, 6) != 0) {
2326 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2328 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2333 switch (Status
& 0x07) {
2335 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2339 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2343 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2351 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2355 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2359 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2364 Display information about Memory Controller Information (Type 5).
2366 @param[in] Size Memory size.
2367 @param[in] SlotNum Which slot is this about.
2368 @param[in] Option Option for the level of detail output required.
2371 DisplayMaxMemoryModuleSize (
2378 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2380 // MaxSize is determined by follow formula
2382 MaxSize
= (UINTN
) 1 << Size
;
2383 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2385 if (Option
>= SHOW_DETAIL
) {
2386 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2387 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2392 Display information about memory configuration handles.
2394 @param[in] Handles The buffer of handles to output info on.
2395 @param[in] SlotNum The number of handles in the above buffer.
2396 @param[in] Option Option for the level of detail output required.
2399 DisplayMemoryModuleConfigHandles (
2406 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2408 if (Option
>= SHOW_DETAIL
) {
2410 // No handle, Handles is INVALID.
2416 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2417 for (Index
= 0; Index
< SlotNum
; Index
++) {
2418 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2424 Display Memory Module Information (Type 6).
2426 @param[in] BankConnections
2430 DisplayMmBankConnections (
2431 IN UINT8 BankConnections
,
2438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2442 PRINT_INFO_OPTION (BankConnections
, Option
);
2445 // Divide it to high and low
2447 High
= (UINT8
) (BankConnections
& 0xF0);
2448 Low
= (UINT8
) (BankConnections
& 0x0F);
2451 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2453 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2457 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2459 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2465 Display memory informcation.
2468 where 2**n is the size in MB with three special-case values:
2469 7Dh Not determinable (Installed Size only)
2470 7Eh Module is installed, but no memory has been enabled
2472 Bit 7 Defines whether the memory module has a single- (0)
2473 or double-bank (1) connection.
2475 @param[in] Size - The size
2476 @param[in] Option - The option
2479 DisplayMmMemorySize (
2485 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2489 PRINT_INFO_OPTION (Size
, Option
);
2492 // Get the low bits(0-6 bit)
2494 Value
= (UINT8
) (Size
& 0x7F);
2495 if (Value
== 0x7D) {
2496 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2497 } else if (Value
== 0x7E) {
2498 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2499 } else if (Value
== 0x7F) {
2500 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2502 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2505 if (BIT (Size
, 7) != 0) {
2506 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2508 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2513 Display Cache Configuration.
2515 @param[in] CacheConfiguration Cache Configuration.
2516 Bits 15:10 Reserved, must be 0
2517 Bits 9:8 Operational Mode
2520 2h - Varies with Memory Address
2522 Bit 7 Enabled/Disabled
2530 Bit 4 Reserved, must be zero
2531 Bit 3 Cache Socketed
2534 Bits 2:0 Cache Level
2535 1 through 8 (For example, an L1 cache would
2536 use value 000b and an L3 cache would use 010b.)
2538 @param[in] Option The option
2541 DisplayCacheConfiguration (
2542 IN UINT16 CacheConfiguration
,
2546 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2547 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2549 if (BIT (CacheConfiguration
, 15) != 0) {
2550 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2551 } else if (BIT (CacheConfiguration
, 14) != 0) {
2552 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2553 } else if (BIT (CacheConfiguration
, 13) != 0) {
2554 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2555 } else if (BIT (CacheConfiguration
, 12) != 0) {
2556 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2557 } else if (BIT (CacheConfiguration
, 11) != 0) {
2558 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2559 } else if (BIT (CacheConfiguration
, 10) != 0) {
2560 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2561 } else if (BIT (CacheConfiguration
, 4) != 0) {
2562 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2568 switch ((CacheConfiguration
& 0x300) >> 8) {
2570 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2574 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2578 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2582 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2589 if (BIT (CacheConfiguration
, 7) != 0) {
2590 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2592 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2598 switch ((CacheConfiguration
& 0x60) >> 5) {
2600 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2604 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2608 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2612 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2619 if (BIT (CacheConfiguration
, 3) != 0) {
2620 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2622 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2626 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2630 The Slot ID field of the System Slot structure provides a mechanism to
2631 correlate the physical attributes of the slot to its logical access method
2632 (which varies based on the Slot Type field).
2634 @param[in] SlotId - The slot ID
2635 @param[in] SlotType - The slot type
2636 @param[in] Option - The Option
2639 DisplaySystemSlotId (
2646 // Display slot type first
2648 DisplaySystemSlotType (SlotType
, Option
);
2650 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2654 PRINT_INFO_OPTION (SlotType
, Option
);
2661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2662 if (SlotId
> 0 && SlotId
< 15) {
2663 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2673 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2674 if (SlotId
> 0 && SlotId
< 15) {
2675 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2685 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2692 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2699 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2703 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2704 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2706 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2712 Display System Boot Information (Type 32) information.
2714 @param[in] Parameter The parameter.
2715 @param[in] Option The options.
2718 DisplaySystemBootStatus (
2723 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2727 PRINT_INFO_OPTION (Parameter
, Option
);
2730 // Check value and print
2732 if (Parameter
== 0) {
2733 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2734 } else if (Parameter
== 1) {
2735 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2736 } else if (Parameter
== 2) {
2737 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2738 } else if (Parameter
== 3) {
2739 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2740 } else if (Parameter
== 4) {
2741 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2742 } else if (Parameter
== 5) {
2743 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2744 } else if (Parameter
== 6) {
2745 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2746 } else if (Parameter
== 7) {
2747 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2748 } else if (Parameter
== 8) {
2749 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2750 } else if (Parameter
>= 9 && Parameter
<= 127) {
2751 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2752 } else if (Parameter
>= 128 && Parameter
<= 191) {
2753 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2754 } else if (Parameter
>= 192) {
2755 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2757 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2762 Display Portable Battery (Type 22) information.
2764 The date the cell pack was manufactured, in packed format:
2765 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2766 Bits 8:5 Month, in the range 1 to 12.
2767 Bits 4:0 Date, in the range 1 to 31.
2768 For example, 01 February 2000 would be identified as
2769 0010 1000 0100 0001b (0x2841).
2771 @param[in] Date The date
2772 @param[in] Option The option
2775 DisplaySBDSManufactureDate (
2784 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2785 PRINT_INFO_OPTION (Date
, Option
);
2789 Day
= Date
& 0x001F;
2790 Month
= (Date
& 0x01E0) >> 5;
2791 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2792 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2797 Display System Reset (Type 23) information.
2800 Identifies the system-reset capabilities for the system.
2801 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2802 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2803 Bits 4:3 Boot Option on Limit.
2804 Identifies the system action to be taken when the Reset Limit is reached, one of:
2805 00b Reserved, do not use.
2806 01b Operating system
2807 10b System utilities
2808 11b Do not rebootBits
2809 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2810 00b Reserved, do not use.
2811 01b Operating system
2812 10b System utilities
2815 1b The system reset is enabled by the user
2816 0b The system reset is not enabled by the user
2818 @param[in] Reset Reset
2819 @param[in] Option The option
2822 DisplaySystemResetCapabilities (
2829 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2830 PRINT_INFO_OPTION (Reset
, Option
);
2833 // Check reserved bits 7:6
2835 if ((Reset
& 0xC0) != 0) {
2836 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2841 if (BIT (Reset
, 5) != 0) {
2842 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2844 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2847 // Boot Option on Limit
2849 Temp
= (Reset
& 0x18) >> 3;
2850 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2853 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2857 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2861 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2865 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2871 Temp
= (Reset
& 0x06) >> 1;
2872 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2875 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2879 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2887 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2891 // Reset enable flag
2893 if ((Reset
& 0x01) != 0) {
2894 Print (L
"The system reset is enabled by the user\n");
2896 Print (L
"The system reset is disabled by the user\n");
2901 Display Hardware Security (Type 24) information.
2904 Identifies the password and reset status for the system:
2906 Bits 7:6 Power-on Password Status, one of:
2911 Bits 5:4 Keyboard Password Status, one of:
2916 Bits 3:2 Administrator Password Status, one of:
2921 Bits 1:0 Front Panel Reset Status, one of:
2927 @param[in] Settings The device settings.
2928 @param[in] Option The device options.
2931 DisplayHardwareSecuritySettings (
2938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2939 PRINT_INFO_OPTION (Settings
, Option
);
2942 // Power-on Password Status
2944 Temp
= (Settings
& 0xC0) >> 6;
2945 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2948 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2956 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2960 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2964 // Keyboard Password Status
2966 Temp
= (Settings
& 0x30) >> 4;
2967 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
2970 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2978 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2982 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2986 // Administrator Password Status
2988 Temp
= (Settings
& 0x0C) >> 2;
2989 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
2992 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2996 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3000 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3004 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3008 // Front Panel Reset Status
3010 Temp
= Settings
& 0x3;
3011 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3014 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3018 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3022 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3026 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3032 Display Out-of-Band Remote Access (Type 30) information.
3034 @param[in] Connections The device characteristics.
3035 @param[in] Option The device options.
3038 DisplayOBRAConnections (
3039 IN UINT8 Connections
,
3043 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3044 PRINT_INFO_OPTION (Connections
, Option
);
3047 // Check reserved bits 7:2
3049 if ((Connections
& 0xFC) != 0) {
3050 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3053 // Outbound Connection
3055 if (BIT (Connections
, 1) != 0) {
3056 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3058 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3061 // Inbound Connection
3063 if (BIT (Connections
, 0) != 0) {
3064 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3066 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3071 Display System Power Supply (Type 39) information.
3073 @param[in] Characteristics The device characteristics.
3074 @param[in] Option The device options.
3077 DisplaySPSCharacteristics (
3078 IN UINT16 Characteristics
,
3084 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3085 PRINT_INFO_OPTION (Characteristics
, Option
);
3088 // Check reserved bits 15:14
3090 if ((Characteristics
& 0xC000) != 0) {
3091 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3094 // Bits 13:10 - DMTF Power Supply Type
3096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3097 Temp
= (Characteristics
& 0x1C00) << 10;
3100 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3104 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3108 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3112 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3116 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3120 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3124 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3128 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3132 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3135 // Bits 9:7 - Status
3137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3138 Temp
= (Characteristics
& 0x380) << 7;
3141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3153 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3161 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3164 // Bits 6:3 - DMTF Input Voltage Range Switching
3166 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3167 Temp
= (Characteristics
& 0x78) << 3;
3170 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3178 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3182 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3186 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3190 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3198 // Power supply is unplugged from the wall
3200 if (BIT (Characteristics
, 2) != 0) {
3201 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3203 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3206 // Power supply is present
3208 if (BIT (Characteristics
, 1) != 0) {
3209 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3211 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3216 if (BIT (Characteristics
, 0) != 0) {
3217 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);