2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2016, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
7 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #include "../UefiShellDebug1CommandsLib.h"
18 #include "PrintInfo.h"
19 #include "LibSmbiosView.h"
20 #include "QueryTable.h"
21 #include "EventLogInfo.h"
25 // Get the certain bit of 'value'
27 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
30 // Check if above or equal to version
32 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
33 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
36 //////////////////////////////////////////////////////////
37 // Macros of print structure element, simplify coding.
39 #define PRINT_PENDING_STRING(pStruct, type, element) \
42 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
43 ShellPrintEx(-1,-1,L"%a",#element); \
44 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
47 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
50 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
51 ShellPrintEx(-1,-1,L"%a",#element); \
52 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
55 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
57 ShellPrintEx(-1,-1,L"%a",#element); \
58 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
61 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
63 ShellPrintEx(-1,-1,L"%a",#element); \
64 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
67 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
69 ShellPrintEx(-1,-1,L"%a",#element); \
70 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
73 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
75 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
76 ShellPrintEx(-1,-1,L"%a",#element); \
77 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
78 DumpHex (0, 0, size, &(pStruct->type->element)); \
81 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
83 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
84 ShellPrintEx(-1,-1,L"%a",#element); \
85 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
86 DumpHex (0, 0, size, startaddress); \
90 /////////////////////////////////////////
94 Copy Length of Src buffer to Dest buffer,
95 add a NULL termination to Dest buffer.
97 @param[in, out] Dest Destination buffer head.
98 @param[in] Src Source buffer head.
99 @param[in] Length Length of buffer to be copied.
110 SrcBuffer
= (UINT8
*) Src
;
111 DestBuffer
= (UINT8
*) Dest
;
115 while ((Length
--)!=0) {
116 *DestBuffer
++ = *SrcBuffer
++;
119 // append a NULL terminator
125 //////////////////////////////////////////////
127 // Functions below is to show the information
131 Print the info of EPS(Entry Point Structure).
133 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
134 @param[in] Option Display option.
138 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
145 if (SmbiosTable
== NULL
) {
146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
150 if (Option
== SHOW_NONE
) {
154 if (Option
>= SHOW_NORMAL
) {
155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
156 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
158 ShellPrintHiiEx(-1,-1,NULL
,
159 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
160 gShellDebug1HiiHandle
,
161 SmbiosTable
->EntryPointStructureChecksum
163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
164 ShellPrintHiiEx(-1,-1,NULL
,
165 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
166 gShellDebug1HiiHandle
,
167 SmbiosTable
->MajorVersion
,
168 SmbiosTable
->MinorVersion
170 ShellPrintHiiEx(-1,-1,NULL
,
171 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
172 gShellDebug1HiiHandle
,
173 SmbiosTable
->NumberOfSmbiosStructures
175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
181 // If SHOW_ALL, also print followings.
183 if (Option
>= SHOW_DETAIL
) {
184 ShellPrintHiiEx(-1,-1,NULL
,
185 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
186 gShellDebug1HiiHandle
,
187 SmbiosTable
->EntryPointRevision
189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
191 // Since raw data is not string, add a NULL terminater.
193 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
197 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
204 Print the info of 64-bit EPS(Entry Point Structure).
206 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
207 @param[in] Option Display option.
210 Smbios64BitPrintEPSInfo (
211 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
217 if (SmbiosTable
== NULL
) {
218 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
222 if (Option
== SHOW_NONE
) {
226 if (Option
>= SHOW_NORMAL
) {
227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
229 MemToString (Anchor
, SmbiosTable
->AnchorString
, 5);
230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
232 ShellPrintHiiEx(-1,-1,NULL
,
233 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
234 gShellDebug1HiiHandle
,
235 SmbiosTable
->EntryPointStructureChecksum
238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
240 ShellPrintHiiEx(-1,-1,NULL
,
241 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
242 gShellDebug1HiiHandle
,
243 SmbiosTable
->MajorVersion
,
244 SmbiosTable
->MinorVersion
247 ShellPrintHiiEx(-1,-1,NULL
,
248 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV
),
249 gShellDebug1HiiHandle
,
253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->TableMaximumSize
);
255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
259 // If SHOW_ALL, also print followings.
261 if (Option
>= SHOW_DETAIL
) {
262 ShellPrintHiiEx(-1,-1,NULL
,
263 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
264 gShellDebug1HiiHandle
,
265 SmbiosTable
->EntryPointRevision
273 This function print the content of the structure pointed by Struct.
275 @param[in] Struct Point to the structure to be printed.
276 @param[in] Option Print option of information detail.
278 @retval EFI_SUCCESS Successfully Printing this function.
279 @retval EFI_INVALID_PARAMETER Invalid Structure.
280 @retval EFI_UNSUPPORTED Unsupported.
283 SmbiosPrintStructure (
284 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
291 if (Struct
== NULL
) {
292 return EFI_INVALID_PARAMETER
;
295 if (Option
== SHOW_NONE
) {
299 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
302 // Display structure header
304 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
308 if (Option
== SHOW_OUTLINE
) {
312 switch (Struct
->Hdr
->Type
) {
314 // BIOS Information (Type 0)
317 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
318 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
319 PRINT_STRUCT_VALUE (Struct
, Type0
, BiosSegment
);
320 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
321 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
323 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type0
->BiosCharacteristics
)), Option
);
325 if (Struct
->Hdr
->Length
> 0x12) {
326 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
328 if (Struct
->Hdr
->Length
> 0x13) {
329 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
332 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
333 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
334 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
335 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
336 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
342 // System Information (Type 1)
345 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
346 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
347 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
348 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
349 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
350 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
351 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
352 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
353 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
359 // Baseboard Information (Type 2)
362 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
363 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
364 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
365 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
366 if (Struct
->Hdr
->Length
> 0x8) {
367 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
368 DisplayBaseBoardFeatureFlags (*(UINT8
*) &Struct
->Type2
->FeatureFlag
, Option
);
369 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
370 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
371 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
376 // System Enclosure (Type 3)
379 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
380 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
381 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
382 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
383 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
384 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
386 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
387 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
388 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
389 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
390 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
391 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
392 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
393 if (AE_SMBIOS_VERSION (0x2, 0x3)) {
394 if (Struct
->Hdr
->Length
> 0xD) {
395 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
397 if (Struct
->Hdr
->Length
> 0x11) {
398 PRINT_STRUCT_VALUE (Struct
, Type3
, Height
);
400 if (Struct
->Hdr
->Length
> 0x12) {
401 PRINT_STRUCT_VALUE (Struct
, Type3
, NumberofPowerCords
);
404 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
405 if (Struct
->Hdr
->Length
> (0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
))) {
406 PRINT_SMBIOS_STRING (Struct
, Buffer
[0x15 + (Struct
->Type3
->ContainedElementCount
* Struct
->Type3
->ContainedElementRecordLength
)], SKUNumber
);
412 // Processor Information (Type 4)
415 PRINT_SMBIOS_STRING (Struct
, Struct
->Type4
->Socket
, SocketDesignation
)
416 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
417 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
418 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
420 // Get family from ProcessorFamily2 field
422 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
424 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
426 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
427 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
428 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
429 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
430 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
431 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
432 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
433 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
434 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
435 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
436 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
437 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
438 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
439 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
440 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
441 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
443 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
444 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
445 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
446 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
447 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
449 if ((SmbiosMajorVersion
>= 0x3) && (Struct
->Hdr
->Length
> 0x2A)) {
450 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
451 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
452 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
457 // Memory Controller Information (Type 5)
462 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
464 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
465 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
466 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
467 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
468 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
469 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
470 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
471 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
472 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
473 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
474 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
476 // According to SMBIOS Specification, offset 0x0F
478 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
479 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
484 // Memory Module Information (Type 6)
487 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
488 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
489 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
490 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
491 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
492 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
493 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
494 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
495 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
499 // Cache Information (Type 7)
502 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
503 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
504 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
505 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
506 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
507 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
508 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
509 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
510 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
511 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
512 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
516 // Port Connector Information (Type 8)
519 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
520 Print (L
"Internal ");
521 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
522 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
523 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
524 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
525 DisplayPortType (Struct
->Type8
->PortType
, Option
);
529 // System Slots (Type 9)
532 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
533 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
534 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
535 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
536 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
537 DisplaySystemSlotId (
538 Struct
->Type9
->SlotID
,
539 Struct
->Type9
->SlotType
,
542 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
543 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
544 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
545 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
546 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
547 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
552 // On Board Devices Information (Type 10)
557 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
558 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
559 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
560 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
561 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
567 // Oem Strings (Type 11)
570 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
571 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
572 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
577 // System Configuration Options (Type 12)
580 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
581 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
582 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
587 // BIOS Language Information (Type 13)
590 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
591 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
592 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
593 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
597 // Group Associations (Type 14)
602 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
603 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
604 for (Index
= 0; Index
< NumOfItem
; Index
++) {
605 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
606 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
612 // System Event Log (Type 15)
618 UINT8
*AccessMethodAddress
;
620 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
621 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
622 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
623 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
624 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
625 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
626 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
627 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
628 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
629 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
631 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
633 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
636 // Display all Event Log type descriptors supported by system
638 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
639 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
640 DisplaySELTypes (Ptr
->LogType
, Option
);
641 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
644 if (Option
>= SHOW_DETAIL
) {
645 switch (Struct
->Type15
->AccessMethod
) {
647 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
655 ShellPrintHiiEx(-1,-1,NULL
,
656 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
657 gShellDebug1HiiHandle
,
658 Struct
->Type15
->AccessMethod
660 return EFI_UNSUPPORTED
;
663 // Display Event Log Header
665 // Starting offset (or index) within the nonvolatile storage
666 // of the event-log's header, from the Access Method Address
668 DisplaySysEventLogHeader (
669 Struct
->Type15
->LogHeaderFormat
,
670 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
674 // Display all Event Log data
676 // Starting offset (or index) within the nonvolatile storage
677 // of the event-log's first data byte, from the Access Method Address(0x14)
679 DisplaySysEventLogData (
680 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
683 Struct
->Type15
->LogAreaLength
-
684 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
694 // Physical Memory Array (Type 16)
697 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
698 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
699 DisplayPMAErrorCorrectionTypes (
700 Struct
->Type16
->MemoryErrorCorrection
,
703 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
704 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
705 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
706 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
707 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
712 // Memory Device (Type 17)
715 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
716 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
717 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
718 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
719 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
720 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
721 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
722 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
723 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
724 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
725 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
726 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
727 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
728 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
729 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
730 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
731 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
732 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
734 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
735 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
736 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
738 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct
->Hdr
->Length
> 0x22)) {
739 PRINT_STRUCT_VALUE (Struct
, Type17
, MinimumVoltage
);
740 PRINT_STRUCT_VALUE (Struct
, Type17
, MaximumVoltage
);
741 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredVoltage
);
746 // 32-bit Memory Error Information (Type 18)
749 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
750 DisplayMemoryErrorGranularity (
751 Struct
->Type18
->ErrorGranularity
,
754 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
755 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
756 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
757 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
758 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
762 // Memory Array Mapped Address (Type 19)
765 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
766 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
767 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
768 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
769 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
770 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
771 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
776 // Memory Device Mapped Address (Type 20)
779 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
780 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
783 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
784 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
785 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
786 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
787 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
788 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
793 // Built-in Pointing Device (Type 21)
796 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
797 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
798 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
802 // Portable Battery (Type 22)
805 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
806 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
807 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
808 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
809 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
810 DisplayPBDeviceChemistry (
811 Struct
->Type22
->DeviceChemistry
,
814 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
815 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
816 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
817 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
818 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
819 DisplaySBDSManufactureDate (
820 Struct
->Type22
->SBDSManufactureDate
,
823 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
824 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
825 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
829 // System Reset (Type 23)
832 DisplaySystemResetCapabilities (
833 Struct
->Type23
->Capabilities
,
836 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
837 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
839 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
843 // Hardware Security (Type 24)
846 DisplayHardwareSecuritySettings (
847 Struct
->Type24
->HardwareSecuritySettings
,
853 // System Power Controls (Type 25)
856 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
857 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
858 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
859 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
860 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
864 // Voltage Probe (Type 26)
867 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
868 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
869 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
870 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
871 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
872 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
873 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
874 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
875 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
876 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
880 // Cooling Device (Type 27)
883 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
884 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
885 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
886 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
887 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
889 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
890 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
895 // Temperature Probe (Type 28)
898 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
899 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
900 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
901 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
902 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
903 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
904 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
905 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
906 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
907 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
911 // Electrical Current Probe (Type 29)
914 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
915 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
916 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
917 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
918 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
919 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
920 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
921 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
922 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
923 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
927 // Out-of-Band Remote Access (Type 30)
930 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
931 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
935 // Boot Integrity Services (BIS) Entry Point (Type 31)
938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
942 // System Boot Information (Type 32)
945 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
946 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
950 // 64-Bit Memory Error Information (Type 33)
953 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
954 DisplayMemoryErrorGranularity (
955 Struct
->Type33
->ErrorGranularity
,
958 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
959 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
960 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
961 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
962 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
966 // Management Device (Type 34)
969 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
970 DisplayMDType (Struct
->Type34
->Type
, Option
);
971 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
972 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
976 // Management Device Component (Type 35)
979 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
980 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
981 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
982 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
986 // Management Device Threshold Data (Type 36)
989 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
990 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
991 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
992 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
993 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
994 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
998 // Memory Channel (Type 37)
1004 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
1005 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
1006 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
1008 Count
= Struct
->Type37
->MemoryDeviceCount
;
1009 Ptr
= Struct
->Type37
->MemoryDevice
;
1010 for (Index
= 0; Index
< Count
; Index
++) {
1011 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
1012 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
1013 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
1019 // IPMI Device Information (Type 38)
1022 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
1023 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
1024 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
1025 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
1026 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
1030 // System Power Supply (Type 39)
1033 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
1034 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
1035 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
1036 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
1037 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
1038 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
1039 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
1040 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
1041 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
1042 DisplaySPSCharacteristics (
1043 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
1046 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
1047 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
1048 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
1052 // Additional Information (Type 40)
1056 UINT8 NumberOfEntries
;
1058 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
1061 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
1062 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
1064 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
1066 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
1067 EntryLength
= Entries
->EntryLength
;
1068 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
1069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
1070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
1071 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
1072 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
1073 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
1079 // Onboard Devices Extended Information (Type 41)
1082 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
1083 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
1084 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
1085 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
1086 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
1087 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1088 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1092 // Management Controller Host Interface (Type 42)
1095 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceType
);
1099 // Inactive (Type 126)
1102 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1106 // End-of-Table (Type 127)
1109 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1113 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1121 Display BIOS Information (Type 0) information.
1123 @param[in] Chara The information bits.
1124 @param[in] Option The optional information.
1127 DisplayBiosCharacteristics (
1135 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1139 PRINT_INFO_OPTION (Chara
, Option
);
1142 // Check all the bits and print information
1143 // This function does not use Table because table of bits
1144 // are designed not to deal with UINT64
1146 if (BIT (Chara
, 0) != 0) {
1147 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1150 if (BIT (Chara
, 1) != 0) {
1151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1154 if (BIT (Chara
, 2) != 0) {
1155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1158 if (BIT (Chara
, 3) != 0) {
1159 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1162 if (BIT (Chara
, 4) != 0) {
1163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1166 if (BIT (Chara
, 5) != 0) {
1167 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1170 if (BIT (Chara
, 6) != 0) {
1171 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1174 if (BIT (Chara
, 7) != 0) {
1175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1178 if (BIT (Chara
, 8) != 0) {
1179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1182 if (BIT (Chara
, 9) != 0) {
1183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1186 if (BIT (Chara
, 10) != 0) {
1187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1190 if (BIT (Chara
, 11) != 0) {
1191 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1194 if (BIT (Chara
, 12) != 0) {
1195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1198 if (BIT (Chara
, 13) != 0) {
1199 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1202 if (BIT (Chara
, 14) != 0) {
1203 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1206 if (BIT (Chara
, 15) != 0) {
1207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1210 if (BIT (Chara
, 16) != 0) {
1211 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1214 if (BIT (Chara
, 17) != 0) {
1215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1218 if (BIT (Chara
, 18) != 0) {
1219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1222 if (BIT (Chara
, 19) != 0) {
1223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1226 if (BIT (Chara
, 20) != 0) {
1227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1230 if (BIT (Chara
, 21) != 0) {
1231 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1234 if (BIT (Chara
, 22) != 0) {
1235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1238 if (BIT (Chara
, 23) != 0) {
1239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1242 if (BIT (Chara
, 24) != 0) {
1243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1246 if (BIT (Chara
, 25) != 0) {
1247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1250 if (BIT (Chara
, 26) != 0) {
1251 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1254 if (BIT (Chara
, 27) != 0) {
1255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1258 if (BIT (Chara
, 28) != 0) {
1259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1262 if (BIT (Chara
, 29) != 0) {
1263 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1266 if (BIT (Chara
, 30) != 0) {
1267 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1270 if (BIT (Chara
, 31) != 0) {
1271 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1274 // Just print the Reserved
1276 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1281 Display Bios Characteristice extensions1 information.
1283 @param[in] Byte1 The information.
1284 @param[in] Option The optional information.
1287 DisplayBiosCharacteristicsExt1 (
1292 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1296 PRINT_INFO_OPTION (Byte1
, Option
);
1299 // check bit and print
1301 if (BIT (Byte1
, 0) != 0) {
1302 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1305 if (BIT (Byte1
, 1) != 0) {
1306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1309 if (BIT (Byte1
, 2) != 0) {
1310 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1313 if (BIT (Byte1
, 3) != 0) {
1314 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1317 if (BIT (Byte1
, 4) != 0) {
1318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1321 if (BIT (Byte1
, 5) != 0) {
1322 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1325 if (BIT (Byte1
, 6) != 0) {
1326 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1329 if (BIT (Byte1
, 7) != 0) {
1330 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1335 Display Bios Characteristice extensions2 information.
1337 @param[in] byte2 The information.
1338 @param[in] Option The optional information.
1341 DisplayBiosCharacteristicsExt2 (
1346 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1350 PRINT_INFO_OPTION (byte2
, Option
);
1352 if (BIT (byte2
, 0) != 0) {
1353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1356 if (BIT (byte2
, 1) != 0) {
1357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1360 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1361 if (BIT (byte2
, 2) != 0) {
1362 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1364 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1365 if (BIT (byte2
, 3) != 0) {
1366 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1368 if (BIT (byte2
, 4) != 0) {
1369 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1371 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1373 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1376 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1381 Display Processor Information (Type 4) information.
1383 @param[in] Family The family value.
1384 @param[in] Option The option value.
1387 DisplayProcessorFamily (
1393 // Print prompt message
1395 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1399 PRINT_INFO_OPTION (Family
, Option
);
1402 // Use switch to check
1406 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1410 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1422 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1426 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1446 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1450 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1454 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1458 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1462 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1466 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1474 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1478 Print (L
"M2 Family\n");
1482 Print (L
"Intel Celeron M\n");
1486 Print (L
"Intel Pentium 4 HT\n");
1490 Print (L
"AMD Duron\n");
1494 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1498 Print (L
"K6 Family\n");
1510 Print (L
"AMD Althon Processor Family\n");
1514 Print (L
"AMD 29000 Family\n");
1522 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1526 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1530 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1534 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1538 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1542 Print (L
"Power PC 620\n");
1546 Print (L
"Power PC 704\n");
1550 Print (L
"Power PC 750\n");
1554 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1558 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1562 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1566 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1570 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1574 Print (L
"Alpha 21064\n");
1578 Print (L
"Alpha 21066\n");
1582 Print (L
"Alpha 21164\n");
1586 Print (L
"Alpha 21164PC\n");
1590 Print (L
"Alpha 21164a\n");
1594 Print (L
"Alpha 21264\n");
1598 Print (L
"Alpha 21364\n");
1602 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1606 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1610 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1614 Print (L
"AMD Opteron 6100 Series Processor\n");
1618 Print (L
"AMD Opteron 4100 Series Processor\n");
1622 Print (L
"AMD Opteron 6200 Series Processor\n");
1626 Print (L
"AMD Opteron 4200 Series Processor\n");
1630 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1634 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1638 Print (L
"MIPS R4000\n");
1642 Print (L
"MIPS R4200\n");
1646 Print (L
"MIPS R4400\n");
1650 Print (L
"MIPS R4600\n");
1654 Print (L
"MIPS R10000\n");
1658 Print (L
"AMD C-Series Processor\n");
1662 Print (L
"AMD E-Series Processor\n");
1666 Print (L
"AMD A-Series Processor\n");
1670 Print (L
"AMD G-Series Processor\n");
1674 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1678 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1682 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1686 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1690 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1694 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1698 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1702 Print (L
"SuperSparc\n");
1706 Print (L
"microSparc II\n");
1710 Print (L
"microSparc IIep\n");
1714 Print (L
"UltraSparc\n");
1718 Print (L
"UltraSparc II\n");
1722 Print (L
"UltraSparcIIi\n");
1726 Print (L
"UltraSparcIII\n");
1730 Print (L
"UltraSparcIIIi\n");
1734 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1758 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1762 Print (L
"Crusoe TM5000\n");
1766 Print (L
"Crusoe TM3000\n");
1770 Print (L
"Efficeon TM8000\n");
1774 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1778 Print (L
"Itanium\n");
1782 Print (L
"AMD Athlon64\n");
1786 Print (L
"AMD Opteron\n");
1790 Print (L
"AMD Sempron\n");
1794 Print (L
"AMD Turion64 Mobile\n");
1798 Print (L
"Dual-Core AMD Opteron\n");
1802 Print (L
"AMD Athlon 64X2 DualCore\n");
1806 Print (L
"AMD Turion 64X2 Mobile\n");
1810 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1814 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1818 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1822 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1826 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1830 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1834 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1838 Print (L
"PA-RISC 8500\n");
1842 Print (L
"PA-RISC 8000\n");
1846 Print (L
"PA-RISC 7300LC\n");
1850 Print (L
"PA-RISC 7200\n");
1854 Print (L
"PA-RISC 7100LC\n");
1858 Print (L
"PA-RISC 7100\n");
1862 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1866 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1870 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1874 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1878 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1882 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1886 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1890 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1894 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1902 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1906 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1910 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1914 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1918 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1922 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1926 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1930 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1934 Print (L
"Pentium 4 processor\n");
1938 Print (L
"Intel Xeon Processor\n");
1942 Print (L
"AS400 Family\n");
1946 Print (L
"Intel Xeon processor MP\n");
1950 Print (L
"AMD Althon XP Processor Family\n");
1954 Print (L
"AMD Althon MP Promcessor Family\n");
1958 Print (L
"Intel Itanium 2 processor\n");
1962 Print (L
"Intel Penium M processor\n");
1966 Print (L
"Intel Celeron D processor\n");
1970 Print (L
"Intel Pentium D processor\n");
1974 Print (L
"Intel Pentium Processor Extreme Edition\n");
1978 Print (L
"Intel Core Solo Processor\n");
1982 Print (L
"Intel Core 2 Duo Processor\n");
1986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
1990 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1994 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
1998 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
2002 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
2006 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
2010 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
2014 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
2018 Print (L
"IBM 390\n");
2034 Print (L
"zArchitecture\n");
2038 Print (L
"Intel Core i5 processor\n");
2042 Print (L
"Intel Core i3 processor\n");
2046 Print (L
"ViaC7M\n");
2050 Print (L
"ViaC7D\n");
2062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
2066 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2074 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2078 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2082 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
2086 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2090 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2094 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2098 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2102 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2107 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2111 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2115 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2119 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2123 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2127 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2131 Print (L
"AMD Phenom II Processor Family\n");
2135 Print (L
"AMD Althon II Processor Family\n");
2139 Print (L
"Six-Core AMD Opteron Processor Family\n");
2143 Print (L
"AMD Sempron M Processor Family\n");
2155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2163 Display processor family information.
2165 @param[in] Family2 The family value.
2166 @param[in] Option The option value.
2169 DisplayProcessorFamily2 (
2175 // Print prompt message
2177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2182 PRINT_INFO_OPTION (Family2
, Option
);
2185 // Use switch to check
2201 Print (L
"StrongARM\n");
2209 Print (L
"MediaGX\n");
2217 Print (L
"WinChip\n");
2225 Print (L
"Video Processor\n");
2229 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2235 Display processor voltage information.
2237 @param[in] Voltage The Voltage.
2238 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2239 Bits 6:4 Reserved, must be zero
2240 Bits 3:0 Voltage Capability.
2241 A Set bit indicates that the voltage is supported.
2245 Bit 3 - Reserved, must be zero.
2248 Setting of multiple bits indicates the socket is configurable
2249 If bit 7 is set to 1, the remaining seven bits of the field are set to
2250 contain the processor's current voltage times 10.
2251 For example, the field value for a processor voltage of 1.8 volts would be
2252 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2254 @param[in] Option The option.
2257 DisplayProcessorVoltage (
2262 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2266 PRINT_INFO_OPTION (Voltage
, Option
);
2268 if (BIT (Voltage
, 7) != 0) {
2269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2271 if (BIT (Voltage
, 0) != 0) {
2272 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2275 if (BIT (Voltage
, 1) != 0) {
2276 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2279 if (BIT (Voltage
, 2) != 0) {
2280 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2283 // check the reserved zero bits:
2285 if (BIT (Voltage
, 3) != 0) {
2286 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2289 if (BIT (Voltage
, 4) != 0) {
2290 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2293 if (BIT (Voltage
, 5) != 0) {
2294 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2297 if (BIT (Voltage
, 6) != 0) {
2298 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2304 Display processor information.
2306 @param[in] Status The status.
2307 Bit 7 Reserved, must be 0
2308 Bit 6 CPU Socket Populated
2309 1 - CPU Socket Populated
2310 0 - CPU Socket Unpopulated
2311 Bits 5:3 Reserved, must be zero
2315 2h - CPU Disabled by User via BIOS Setup
2316 3h - CPU Disabled By BIOS (POST Error)
2317 4h - CPU is Idle, waiting to be enabled.
2321 @param[in] Option The option
2324 DisplayProcessorStatus (
2329 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2330 PRINT_INFO_OPTION (Status
, Option
);
2332 if (BIT (Status
, 7) != 0) {
2333 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2334 } else if (BIT (Status
, 5) != 0) {
2335 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2336 } else if (BIT (Status
, 4) != 0) {
2337 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2338 } else if (BIT (Status
, 3) != 0) {
2339 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2344 if (BIT (Status
, 6) != 0) {
2345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2352 switch (Status
& 0x07) {
2354 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2358 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2362 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2366 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2370 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2374 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2378 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2383 Display information about Memory Controller Information (Type 5).
2385 @param[in] Size Memory size.
2386 @param[in] SlotNum Which slot is this about.
2387 @param[in] Option Option for the level of detail output required.
2390 DisplayMaxMemoryModuleSize (
2397 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2399 // MaxSize is determined by follow formula
2401 MaxSize
= (UINTN
) 1 << Size
;
2402 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2404 if (Option
>= SHOW_DETAIL
) {
2405 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2406 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2411 Display information about memory configuration handles.
2413 @param[in] Handles The buffer of handles to output info on.
2414 @param[in] SlotNum The number of handles in the above buffer.
2415 @param[in] Option Option for the level of detail output required.
2418 DisplayMemoryModuleConfigHandles (
2425 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2427 if (Option
>= SHOW_DETAIL
) {
2429 // No handle, Handles is INVALID.
2435 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2436 for (Index
= 0; Index
< SlotNum
; Index
++) {
2437 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2443 Display Memory Module Information (Type 6).
2445 @param[in] BankConnections
2449 DisplayMmBankConnections (
2450 IN UINT8 BankConnections
,
2457 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2461 PRINT_INFO_OPTION (BankConnections
, Option
);
2464 // Divide it to high and low
2466 High
= (UINT8
) (BankConnections
& 0xF0);
2467 Low
= (UINT8
) (BankConnections
& 0x0F);
2470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2472 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2476 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2484 Display memory informcation.
2487 where 2**n is the size in MB with three special-case values:
2488 7Dh Not determinable (Installed Size only)
2489 7Eh Module is installed, but no memory has been enabled
2491 Bit 7 Defines whether the memory module has a single- (0)
2492 or double-bank (1) connection.
2494 @param[in] Size - The size
2495 @param[in] Option - The option
2498 DisplayMmMemorySize (
2504 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2508 PRINT_INFO_OPTION (Size
, Option
);
2511 // Get the low bits(0-6 bit)
2513 Value
= (UINT8
) (Size
& 0x7F);
2514 if (Value
== 0x7D) {
2515 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2516 } else if (Value
== 0x7E) {
2517 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2518 } else if (Value
== 0x7F) {
2519 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2521 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2524 if (BIT (Size
, 7) != 0) {
2525 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2527 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2532 Display Cache Configuration.
2534 @param[in] CacheConfiguration Cache Configuration.
2535 Bits 15:10 Reserved, must be 0
2536 Bits 9:8 Operational Mode
2539 2h - Varies with Memory Address
2541 Bit 7 Enabled/Disabled
2549 Bit 4 Reserved, must be zero
2550 Bit 3 Cache Socketed
2553 Bits 2:0 Cache Level
2554 1 through 8 (For example, an L1 cache would
2555 use value 000b and an L3 cache would use 010b.)
2557 @param[in] Option The option
2560 DisplayCacheConfiguration (
2561 IN UINT16 CacheConfiguration
,
2565 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2566 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2568 if (BIT (CacheConfiguration
, 15) != 0) {
2569 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2570 } else if (BIT (CacheConfiguration
, 14) != 0) {
2571 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2572 } else if (BIT (CacheConfiguration
, 13) != 0) {
2573 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2574 } else if (BIT (CacheConfiguration
, 12) != 0) {
2575 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2576 } else if (BIT (CacheConfiguration
, 11) != 0) {
2577 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2578 } else if (BIT (CacheConfiguration
, 10) != 0) {
2579 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2580 } else if (BIT (CacheConfiguration
, 4) != 0) {
2581 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2587 switch ((CacheConfiguration
& 0x300) >> 8) {
2589 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2593 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2597 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2608 if (BIT (CacheConfiguration
, 7) != 0) {
2609 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2617 switch ((CacheConfiguration
& 0x60) >> 5) {
2619 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2623 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2627 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2631 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2638 if (BIT (CacheConfiguration
, 3) != 0) {
2639 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2645 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2649 The Slot ID field of the System Slot structure provides a mechanism to
2650 correlate the physical attributes of the slot to its logical access method
2651 (which varies based on the Slot Type field).
2653 @param[in] SlotId - The slot ID
2654 @param[in] SlotType - The slot type
2655 @param[in] Option - The Option
2658 DisplaySystemSlotId (
2665 // Display slot type first
2667 DisplaySystemSlotType (SlotType
, Option
);
2669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2673 PRINT_INFO_OPTION (SlotType
, Option
);
2680 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2681 if (SlotId
> 0 && SlotId
< 15) {
2682 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2684 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2692 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2693 if (SlotId
> 0 && SlotId
< 15) {
2694 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2696 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2704 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2711 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2718 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2722 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2723 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2725 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2731 Display System Boot Information (Type 32) information.
2733 @param[in] Parameter The parameter.
2734 @param[in] Option The options.
2737 DisplaySystemBootStatus (
2742 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2746 PRINT_INFO_OPTION (Parameter
, Option
);
2749 // Check value and print
2751 if (Parameter
== 0) {
2752 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2753 } else if (Parameter
== 1) {
2754 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2755 } else if (Parameter
== 2) {
2756 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2757 } else if (Parameter
== 3) {
2758 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2759 } else if (Parameter
== 4) {
2760 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2761 } else if (Parameter
== 5) {
2762 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2763 } else if (Parameter
== 6) {
2764 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2765 } else if (Parameter
== 7) {
2766 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2767 } else if (Parameter
== 8) {
2768 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2769 } else if (Parameter
>= 9 && Parameter
<= 127) {
2770 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2771 } else if (Parameter
>= 128 && Parameter
<= 191) {
2772 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2773 } else if (Parameter
>= 192) {
2774 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2776 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2781 Display Portable Battery (Type 22) information.
2783 The date the cell pack was manufactured, in packed format:
2784 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2785 Bits 8:5 Month, in the range 1 to 12.
2786 Bits 4:0 Date, in the range 1 to 31.
2787 For example, 01 February 2000 would be identified as
2788 0010 1000 0100 0001b (0x2841).
2790 @param[in] Date The date
2791 @param[in] Option The option
2794 DisplaySBDSManufactureDate (
2803 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2804 PRINT_INFO_OPTION (Date
, Option
);
2808 Day
= Date
& 0x001F;
2809 Month
= (Date
& 0x01E0) >> 5;
2810 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2811 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2816 Display System Reset (Type 23) information.
2819 Identifies the system-reset capabilities for the system.
2820 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2821 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2822 Bits 4:3 Boot Option on Limit.
2823 Identifies the system action to be taken when the Reset Limit is reached, one of:
2824 00b Reserved, do not use.
2825 01b Operating system
2826 10b System utilities
2827 11b Do not rebootBits
2828 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2829 00b Reserved, do not use.
2830 01b Operating system
2831 10b System utilities
2834 1b The system reset is enabled by the user
2835 0b The system reset is not enabled by the user
2837 @param[in] Reset Reset
2838 @param[in] Option The option
2841 DisplaySystemResetCapabilities (
2848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2849 PRINT_INFO_OPTION (Reset
, Option
);
2852 // Check reserved bits 7:6
2854 if ((Reset
& 0xC0) != 0) {
2855 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2860 if (BIT (Reset
, 5) != 0) {
2861 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2863 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2866 // Boot Option on Limit
2868 Temp
= (Reset
& 0x18) >> 3;
2869 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2872 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2876 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2880 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2884 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2890 Temp
= (Reset
& 0x06) >> 1;
2891 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2894 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2902 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2906 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2910 // Reset enable flag
2912 if ((Reset
& 0x01) != 0) {
2913 Print (L
"The system reset is enabled by the user\n");
2915 Print (L
"The system reset is disabled by the user\n");
2920 Display Hardware Security (Type 24) information.
2923 Identifies the password and reset status for the system:
2925 Bits 7:6 Power-on Password Status, one of:
2930 Bits 5:4 Keyboard Password Status, one of:
2935 Bits 3:2 Administrator Password Status, one of:
2940 Bits 1:0 Front Panel Reset Status, one of:
2946 @param[in] Settings The device settings.
2947 @param[in] Option The device options.
2950 DisplayHardwareSecuritySettings (
2957 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2958 PRINT_INFO_OPTION (Settings
, Option
);
2961 // Power-on Password Status
2963 Temp
= (Settings
& 0xC0) >> 6;
2964 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2967 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2971 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2975 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2979 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2983 // Keyboard Password Status
2985 Temp
= (Settings
& 0x30) >> 4;
2986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
2989 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2993 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3001 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3005 // Administrator Password Status
3007 Temp
= (Settings
& 0x0C) >> 2;
3008 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
3011 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3015 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3019 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3023 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3027 // Front Panel Reset Status
3029 Temp
= Settings
& 0x3;
3030 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
3033 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
3037 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
3041 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
3045 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3051 Display Out-of-Band Remote Access (Type 30) information.
3053 @param[in] Connections The device characteristics.
3054 @param[in] Option The device options.
3057 DisplayOBRAConnections (
3058 IN UINT8 Connections
,
3062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
3063 PRINT_INFO_OPTION (Connections
, Option
);
3066 // Check reserved bits 7:2
3068 if ((Connections
& 0xFC) != 0) {
3069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
3072 // Outbound Connection
3074 if (BIT (Connections
, 1) != 0) {
3075 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3077 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3080 // Inbound Connection
3082 if (BIT (Connections
, 0) != 0) {
3083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
3085 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3090 Display System Power Supply (Type 39) information.
3092 @param[in] Characteristics The device characteristics.
3093 @param[in] Option The device options.
3096 DisplaySPSCharacteristics (
3097 IN UINT16 Characteristics
,
3103 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3104 PRINT_INFO_OPTION (Characteristics
, Option
);
3107 // Check reserved bits 15:14
3109 if ((Characteristics
& 0xC000) != 0) {
3110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3113 // Bits 13:10 - DMTF Power Supply Type
3115 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3116 Temp
= (Characteristics
& 0x1C00) >> 10;
3119 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3123 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3127 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3131 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3135 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3139 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3143 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3147 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3154 // Bits 9:7 - Status
3156 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3157 Temp
= (Characteristics
& 0x380) >> 7;
3160 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3164 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3168 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3172 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3180 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3183 // Bits 6:3 - DMTF Input Voltage Range Switching
3185 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3186 Temp
= (Characteristics
& 0x78) >> 3;
3189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3197 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3201 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3205 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3209 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3213 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3217 // Power supply is unplugged from the wall
3219 if (BIT (Characteristics
, 2) != 0) {
3220 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3222 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3225 // Power supply is present
3227 if (BIT (Characteristics
, 1) != 0) {
3228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3235 if (BIT (Characteristics
, 0) != 0) {
3236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);