2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #include "../UefiShellDebug1CommandsLib.h"
16 #include "PrintInfo.h"
17 #include "LibSmbiosView.h"
18 #include "QueryTable.h"
19 #include "EventLogInfo.h"
23 // Get the certain bit of 'value'
25 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
28 // Check if above or equal to version
30 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
31 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
34 //////////////////////////////////////////////////////////
35 // Macros of print structure element, simplify coding.
37 #define PRINT_PENDING_STRING(pStruct, type, element) \
40 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
41 ShellPrintEx(-1,-1,L"%a",#element); \
42 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
45 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
48 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
49 ShellPrintEx(-1,-1,L"%a",#element); \
50 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
53 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
55 ShellPrintEx(-1,-1,L"%a",#element); \
56 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
59 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
61 ShellPrintEx(-1,-1,L"%a",#element); \
62 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
65 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
67 ShellPrintEx(-1,-1,L"%a",#element); \
68 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
71 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
73 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
74 ShellPrintEx(-1,-1,L"%a",#element); \
75 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
76 DumpHex (0, 0, size, &(pStruct->type->element)); \
79 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
81 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
82 ShellPrintEx(-1,-1,L"%a",#element); \
83 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
84 DumpHex (0, 0, size, startaddress); \
88 /////////////////////////////////////////
92 Copy Length of Src buffer to Dest buffer,
93 add a NULL termination to Dest buffer.
95 @param[in, out] Dest Destination buffer head.
96 @param[in] Src Source buffer head.
97 @param[in] Length Length of buffer to be copied.
108 SrcBuffer
= (UINT8
*) Src
;
109 DestBuffer
= (UINT8
*) Dest
;
113 while ((Length
--)!=0) {
114 *DestBuffer
++ = *SrcBuffer
++;
117 // append a NULL terminator
123 //////////////////////////////////////////////
125 // Functions below is to show the information
129 Print the info of EPS(Entry Point Structure).
131 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
132 @param[in] Option Display option.
136 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
143 if (SmbiosTable
== NULL
) {
144 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
148 if (Option
== SHOW_NONE
) {
152 if (Option
>= SHOW_NORMAL
) {
153 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
154 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
156 ShellPrintHiiEx(-1,-1,NULL
,
157 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
158 gShellDebug1HiiHandle
,
159 SmbiosTable
->EntryPointStructureChecksum
161 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
162 ShellPrintHiiEx(-1,-1,NULL
,
163 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
164 gShellDebug1HiiHandle
,
165 SmbiosTable
->MajorVersion
,
166 SmbiosTable
->MinorVersion
168 ShellPrintHiiEx(-1,-1,NULL
,
169 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
170 gShellDebug1HiiHandle
,
171 SmbiosTable
->NumberOfSmbiosStructures
173 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
179 // If SHOW_ALL, also print followings.
181 if (Option
>= SHOW_DETAIL
) {
182 ShellPrintHiiEx(-1,-1,NULL
,
183 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
184 gShellDebug1HiiHandle
,
185 SmbiosTable
->EntryPointRevision
187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
189 // Since raw data is not string, add a NULL terminater.
191 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
195 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
202 This function print the content of the structure pointed by Struct.
204 @param[in] Struct Point to the structure to be printed.
205 @param[in] Option Print option of information detail.
207 @retval EFI_SUCCESS Successfully Printing this function.
208 @retval EFI_INVALID_PARAMETER Invalid Structure.
209 @retval EFI_UNSUPPORTED Unsupported.
212 SmbiosPrintStructure (
213 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
220 if (Struct
== NULL
) {
221 return EFI_INVALID_PARAMETER
;
224 if (Option
== SHOW_NONE
) {
228 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
231 // Display structure header
233 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
234 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
237 if (Option
== SHOW_OUTLINE
) {
241 switch (Struct
->Hdr
->Type
) {
243 // BIOS Information (Type 0)
246 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
247 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
248 PRINT_STRUCT_VALUE (Struct
, Type0
, BiosSegment
);
249 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
252 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type0
->BiosCharacteristics
)), Option
);
254 if (Struct
->Hdr
->Length
> 0x12) {
255 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
257 if (Struct
->Hdr
->Length
> 0x13) {
258 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
261 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
262 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
263 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
264 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
265 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
271 // System Information (Type 1)
274 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
275 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
276 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
277 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
278 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
279 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
280 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
281 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
282 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
288 // Baseboard Information (Type 2)
291 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
292 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
293 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
294 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
295 if (Struct
->Hdr
->Length
> 0x8) {
296 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
297 DisplayBaseBoardFeatureFlags (*(UINT8
*) &Struct
->Type2
->FeatureFlag
, Option
);
298 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
299 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
300 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
305 // System Enclosure (Type 3)
308 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
309 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
310 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
311 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
312 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
313 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
314 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
315 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
317 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
319 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
320 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
321 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
322 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0xD)) {
323 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
328 // Processor Information (Type 4)
331 PRINT_PENDING_STRING (Struct
, Type4
, Socket
);
332 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
333 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
334 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
336 // Get family from ProcessorFamily2 field
338 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
340 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
342 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
343 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
344 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
345 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
346 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
347 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
348 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
349 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
350 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
351 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
352 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
353 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
354 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
355 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
356 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
357 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
359 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
360 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
361 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
362 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
363 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
368 // Memory Controller Information (Type 5)
373 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
375 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
376 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
377 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
378 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
379 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
380 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
381 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
382 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
383 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
384 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
385 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
387 // According to SMBIOS Specification, offset 0x0F
389 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
390 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
395 // Memory Module Information (Type 6)
398 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
399 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
400 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
401 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
402 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
403 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
404 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
405 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
406 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
410 // Cache Information (Type 7)
413 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
414 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
415 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
416 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
417 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
418 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
419 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
420 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
421 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
422 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
423 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
427 // Port Connector Information (Type 8)
430 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
431 Print (L
"Internal ");
432 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
433 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
435 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
436 DisplayPortType (Struct
->Type8
->PortType
, Option
);
440 // System Slots (Type 9)
443 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
444 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
445 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
446 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
447 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
448 DisplaySystemSlotId (
449 Struct
->Type9
->SlotID
,
450 Struct
->Type9
->SlotType
,
453 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
454 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
455 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
456 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
457 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
458 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
463 // On Board Devices Information (Type 10)
468 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
469 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
470 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
471 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
472 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
478 // Oem Strings (Type 11)
481 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
482 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
483 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
488 // System Configuration Options (Type 12)
491 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
492 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
493 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
498 // BIOS Language Information (Type 13)
501 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
502 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
503 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
504 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
508 // Group Associations (Type 14)
513 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
514 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
515 for (Index
= 0; Index
< NumOfItem
; Index
++) {
516 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
517 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
523 // System Event Log (Type 15)
529 UINT8
*AccessMethodAddress
;
531 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
532 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
533 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
534 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
535 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
536 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
537 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
538 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
539 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
540 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
542 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
544 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
547 // Display all Event Log type descriptors supported by system
549 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
550 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
551 DisplaySELTypes (Ptr
->LogType
, Option
);
552 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
555 if (Option
>= SHOW_DETAIL
) {
556 switch (Struct
->Type15
->AccessMethod
) {
558 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
566 ShellPrintHiiEx(-1,-1,NULL
,
567 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
568 gShellDebug1HiiHandle
,
569 Struct
->Type15
->AccessMethod
571 return EFI_UNSUPPORTED
;
574 // Display Event Log Header
576 // Starting offset (or index) within the nonvolatile storage
577 // of the event-log's header, from the Access Method Address
579 DisplaySysEventLogHeader (
580 Struct
->Type15
->LogHeaderFormat
,
581 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
585 // Display all Event Log data
587 // Starting offset (or index) within the nonvolatile storage
588 // of the event-log's first data byte, from the Access Method Address(0x14)
590 DisplaySysEventLogData (
591 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
594 Struct
->Type15
->LogAreaLength
-
595 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
605 // Physical Memory Array (Type 16)
608 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
609 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
610 DisplayPMAErrorCorrectionTypes (
611 Struct
->Type16
->MemoryErrorCorrection
,
614 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
615 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
616 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
617 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
618 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
623 // Memory Device (Type 17)
626 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
627 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
628 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
629 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
630 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
631 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
632 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
633 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
634 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
635 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
636 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
637 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
638 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
639 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
640 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
641 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
642 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
643 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
645 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
646 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
647 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
652 // 32-bit Memory Error Information (Type 18)
655 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
656 DisplayMemoryErrorGranularity (
657 Struct
->Type18
->ErrorGranularity
,
660 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
661 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
662 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
663 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
664 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
668 // Memory Array Mapped Address (Type 19)
671 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
672 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
673 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
674 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
675 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
676 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
677 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
682 // Memory Device Mapped Address (Type 20)
685 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
686 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
687 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
688 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
689 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
690 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
691 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
692 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
693 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
694 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
699 // Built-in Pointing Device (Type 21)
702 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
703 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
704 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
708 // Portable Battery (Type 22)
711 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
712 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
713 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
714 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
715 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
716 DisplayPBDeviceChemistry (
717 Struct
->Type22
->DeviceChemistry
,
720 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
721 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
722 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
723 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
724 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
725 DisplaySBDSManufactureDate (
726 Struct
->Type22
->SBDSManufactureDate
,
729 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
730 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
731 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
735 // System Reset (Type 23)
738 DisplaySystemResetCapabilities (
739 Struct
->Type23
->Capabilities
,
742 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
743 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
744 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
745 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
749 // Hardware Security (Type 24)
752 DisplayHardwareSecuritySettings (
753 Struct
->Type24
->HardwareSecuritySettings
,
759 // System Power Controls (Type 25)
762 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
763 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
764 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
765 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
766 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
770 // Voltage Probe (Type 26)
773 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
774 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
775 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
776 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
777 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
778 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
779 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
780 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
786 // Cooling Device (Type 27)
789 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
790 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
791 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
792 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
793 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
794 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
795 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
796 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
801 // Temperature Probe (Type 28)
804 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
805 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
806 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
807 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
808 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
809 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
810 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
811 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
812 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
813 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
817 // Electrical Current Probe (Type 29)
820 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
821 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
822 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
823 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
824 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
825 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
826 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
827 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
828 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
829 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
833 // Out-of-Band Remote Access (Type 30)
836 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
837 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
841 // Boot Integrity Services (BIS) Entry Point (Type 31)
844 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
848 // System Boot Information (Type 32)
851 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
852 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
856 // 64-Bit Memory Error Information (Type 33)
859 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
860 DisplayMemoryErrorGranularity (
861 Struct
->Type33
->ErrorGranularity
,
864 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
865 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
866 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
867 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
868 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
872 // Management Device (Type 34)
875 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
876 DisplayMDType (Struct
->Type34
->Type
, Option
);
877 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
878 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
882 // Management Device Component (Type 35)
885 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
886 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
887 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
892 // Management Device Threshold Data (Type 36)
895 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
896 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
897 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
898 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
899 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
900 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
904 // Memory Channel (Type 37)
910 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
911 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
912 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
914 Count
= Struct
->Type37
->MemoryDeviceCount
;
915 Ptr
= Struct
->Type37
->MemoryDevice
;
916 for (Index
= 0; Index
< Count
; Index
++) {
917 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
918 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
919 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
925 // IPMI Device Information (Type 38)
928 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
929 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
930 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
931 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
932 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
936 // System Power Supply (Type 39)
939 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
940 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
941 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
942 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
943 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
944 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
945 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
946 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
947 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
948 DisplaySPSCharacteristics (
949 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
952 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
953 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
954 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
958 // Additional Information (Type 40)
962 UINT8 NumberOfEntries
;
964 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
967 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
968 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
970 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
972 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
973 EntryLength
= Entries
->EntryLength
;
974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
975 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
976 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
977 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
978 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
979 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
985 // Onboard Devices Extended Information (Type 41)
988 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
989 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
990 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
991 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
992 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
993 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
994 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
998 // Management Controller Host Interface (Type 42)
1001 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceType
);
1005 // Inactive (Type 126)
1008 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1012 // End-of-Table (Type 127)
1015 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1019 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1027 Display BIOS Information (Type 0) information.
1029 @param[in] Chara The information bits.
1030 @param[in] Option The optional information.
1033 DisplayBiosCharacteristics (
1041 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1045 PRINT_INFO_OPTION (Chara
, Option
);
1048 // Check all the bits and print information
1049 // This function does not use Table because table of bits
1050 // are designed not to deal with UINT64
1052 if (BIT (Chara
, 0) != 0) {
1053 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1056 if (BIT (Chara
, 1) != 0) {
1057 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1060 if (BIT (Chara
, 2) != 0) {
1061 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1064 if (BIT (Chara
, 3) != 0) {
1065 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1068 if (BIT (Chara
, 4) != 0) {
1069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1072 if (BIT (Chara
, 5) != 0) {
1073 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1076 if (BIT (Chara
, 6) != 0) {
1077 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1080 if (BIT (Chara
, 7) != 0) {
1081 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1084 if (BIT (Chara
, 8) != 0) {
1085 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1088 if (BIT (Chara
, 9) != 0) {
1089 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1092 if (BIT (Chara
, 10) != 0) {
1093 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1096 if (BIT (Chara
, 11) != 0) {
1097 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1100 if (BIT (Chara
, 12) != 0) {
1101 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1104 if (BIT (Chara
, 13) != 0) {
1105 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1108 if (BIT (Chara
, 14) != 0) {
1109 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1112 if (BIT (Chara
, 15) != 0) {
1113 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1116 if (BIT (Chara
, 16) != 0) {
1117 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1120 if (BIT (Chara
, 17) != 0) {
1121 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1124 if (BIT (Chara
, 18) != 0) {
1125 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1128 if (BIT (Chara
, 19) != 0) {
1129 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1132 if (BIT (Chara
, 20) != 0) {
1133 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1136 if (BIT (Chara
, 21) != 0) {
1137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1140 if (BIT (Chara
, 22) != 0) {
1141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1144 if (BIT (Chara
, 23) != 0) {
1145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1148 if (BIT (Chara
, 24) != 0) {
1149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1152 if (BIT (Chara
, 25) != 0) {
1153 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1156 if (BIT (Chara
, 26) != 0) {
1157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1160 if (BIT (Chara
, 27) != 0) {
1161 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1164 if (BIT (Chara
, 28) != 0) {
1165 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1168 if (BIT (Chara
, 29) != 0) {
1169 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1172 if (BIT (Chara
, 30) != 0) {
1173 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1176 if (BIT (Chara
, 31) != 0) {
1177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1180 // Just print the Reserved
1182 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1187 Display Bios Characteristice extensions1 information.
1189 @param[in] Byte1 The information.
1190 @param[in] Option The optional information.
1193 DisplayBiosCharacteristicsExt1 (
1198 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1202 PRINT_INFO_OPTION (Byte1
, Option
);
1205 // check bit and print
1207 if (BIT (Byte1
, 0) != 0) {
1208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1211 if (BIT (Byte1
, 1) != 0) {
1212 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1215 if (BIT (Byte1
, 2) != 0) {
1216 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1219 if (BIT (Byte1
, 3) != 0) {
1220 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1223 if (BIT (Byte1
, 4) != 0) {
1224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1227 if (BIT (Byte1
, 5) != 0) {
1228 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1231 if (BIT (Byte1
, 6) != 0) {
1232 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1235 if (BIT (Byte1
, 7) != 0) {
1236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1241 Display Bios Characteristice extensions2 information.
1243 @param[in] byte2 The information.
1244 @param[in] Option The optional information.
1247 DisplayBiosCharacteristicsExt2 (
1252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1256 PRINT_INFO_OPTION (byte2
, Option
);
1258 if (BIT (byte2
, 0) != 0) {
1259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1262 if (BIT (byte2
, 1) != 0) {
1263 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1266 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1267 if (BIT (byte2
, 2) != 0) {
1268 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1270 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1271 if (BIT (byte2
, 3) != 0) {
1272 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1274 if (BIT (byte2
, 4) != 0) {
1275 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1279 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1282 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1287 Display Processor Information (Type 4) information.
1289 @param[in] Family The family value.
1290 @param[in] Option The option value.
1293 DisplayProcessorFamily (
1299 // Print prompt message
1301 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1305 PRINT_INFO_OPTION (Family
, Option
);
1308 // Use switch to check
1312 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1328 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1332 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1352 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1356 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1360 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1364 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1368 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1372 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1376 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1380 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1384 Print (L
"M2 Family\n");
1388 Print (L
"Intel Celeron M\n");
1392 Print (L
"Intel Pentium 4 HT\n");
1396 Print (L
"AMD Duron\n");
1400 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1404 Print (L
"K6 Family\n");
1416 Print (L
"AMD Althon Processor Family\n");
1420 Print (L
"AMD 29000 Family\n");
1428 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1432 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1436 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1440 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1444 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1448 Print (L
"Power PC 620\n");
1452 Print (L
"Power PC 704\n");
1456 Print (L
"Power PC 750\n");
1460 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1464 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1468 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1472 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1476 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1480 Print (L
"Alpha 21064\n");
1484 Print (L
"Alpha 21066\n");
1488 Print (L
"Alpha 21164\n");
1492 Print (L
"Alpha 21164PC\n");
1496 Print (L
"Alpha 21164a\n");
1500 Print (L
"Alpha 21264\n");
1504 Print (L
"Alpha 21364\n");
1508 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1512 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1516 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1520 Print (L
"AMD Opteron 6100 Series Processor\n");
1524 Print (L
"AMD Opteron 4100 Series Processor\n");
1528 Print (L
"AMD Opteron 6200 Series Processor\n");
1532 Print (L
"AMD Opteron 4200 Series Processor\n");
1536 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1540 Print (L
"MIPS R4000\n");
1544 Print (L
"MIPS R4200\n");
1548 Print (L
"MIPS R4400\n");
1552 Print (L
"MIPS R4600\n");
1556 Print (L
"MIPS R10000\n");
1560 Print (L
"AMD C-Series Processor\n");
1564 Print (L
"AMD E-Series Processor\n");
1568 Print (L
"AMD S-Series Processor\n");
1572 Print (L
"AMD G-Series Processor\n");
1576 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1580 Print (L
"SuperSparc\n");
1584 Print (L
"microSparc II\n");
1588 Print (L
"microSparc IIep\n");
1592 Print (L
"UltraSparc\n");
1596 Print (L
"UltraSparc II\n");
1600 Print (L
"UltraSparcIIi\n");
1604 Print (L
"UltraSparcIII\n");
1608 Print (L
"UltraSparcIIIi\n");
1612 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1636 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1640 Print (L
"Crusoe TM5000\n");
1644 Print (L
"Crusoe TM3000\n");
1648 Print (L
"Efficeon TM8000\n");
1652 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1656 Print (L
"Itanium\n");
1660 Print (L
"AMD Athlon64\n");
1664 Print (L
"AMD Opteron\n");
1668 Print (L
"AMD Sempron\n");
1672 Print (L
"AMD Turion64 Mobile\n");
1676 Print (L
"Dual-Core AMD Opteron\n");
1680 Print (L
"AMD Athlon 64X2 DualCore\n");
1684 Print (L
"AMD Turion 64X2 Mobile\n");
1688 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1692 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1696 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1700 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1704 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1708 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1712 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1716 Print (L
"PA-RISC 8500\n");
1720 Print (L
"PA-RISC 8000\n");
1724 Print (L
"PA-RISC 7300LC\n");
1728 Print (L
"PA-RISC 7200\n");
1732 Print (L
"PA-RISC 7100LC\n");
1736 Print (L
"PA-RISC 7100\n");
1740 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1744 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1748 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1752 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1756 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1760 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1764 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1768 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1772 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1776 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1780 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1784 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1788 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1792 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1796 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1800 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1804 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1808 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1812 Print (L
"Pentium 4 processor\n");
1816 Print (L
"Intel Xeon Processor\n");
1820 Print (L
"AS400 Family\n");
1824 Print (L
"Intel Xeon processor MP\n");
1828 Print (L
"AMD Althon XP Processor Family\n");
1832 Print (L
"AMD Althon MP Promcessor Family\n");
1836 Print (L
"Intel Itanium 2 processor\n");
1840 Print (L
"Intel Penium M processor\n");
1844 Print (L
"Intel Celeron D processor\n");
1848 Print (L
"Intel Pentium D processor\n");
1852 Print (L
"Intel Pentium Processor Extreme Edition\n");
1856 Print (L
"Intel Core Solo Processor\n");
1860 Print (L
"Intel Core 2 Duo Processor\n");
1864 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
1868 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1872 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
1876 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1880 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
1884 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1888 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
1892 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
1896 Print (L
"IBM 390\n");
1912 Print (L
"zArchitectur\n");
1916 Print (L
"Intel Core i5 processor\n");
1920 Print (L
"Intel Core i3 processor\n");
1924 Print (L
"ViaC7M\n");
1928 Print (L
"ViaC7D\n");
1940 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
1944 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1948 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1956 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1960 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1964 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1968 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1972 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
1976 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1980 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
1984 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
1988 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
1992 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
1996 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2000 Print (L
"AMD Phenom II Processor Family\n");
2004 Print (L
"AMD Althon II Processor Family\n");
2008 Print (L
"Six-Core AMD Opteron Processor Family\n");
2012 Print (L
"AMD Sempron M Processor Family\n");
2024 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2032 Display processor family information.
2034 @param[in] Family2 The family value.
2035 @param[in] Option The option value.
2038 DisplayProcessorFamily2 (
2044 // Print prompt message
2046 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2051 PRINT_INFO_OPTION (Family2
, Option
);
2054 // Use switch to check
2070 Print (L
"StrongARM\n");
2078 Print (L
"MediaGX\n");
2086 Print (L
"WinChip\n");
2094 Print (L
"Video Processor\n");
2098 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2104 Display processor voltage information.
2106 @param[in] Voltage The Voltage.
2107 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2108 Bits 6:4 Reserved, must be zero
2109 Bits 3:0 Voltage Capability.
2110 A Set bit indicates that the voltage is supported.
2114 Bit 3 - Reserved, must be zero.
2117 Setting of multiple bits indicates the socket is configurable
2118 If bit 7 is set to 1, the remaining seven bits of the field are set to
2119 contain the processor's current voltage times 10.
2120 For example, the field value for a processor voltage of 1.8 volts would be
2121 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2123 @param[in] Option The option.
2126 DisplayProcessorVoltage (
2131 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2135 PRINT_INFO_OPTION (Voltage
, Option
);
2137 if (BIT (Voltage
, 7) != 0) {
2138 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2140 if (BIT (Voltage
, 0) != 0) {
2141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2144 if (BIT (Voltage
, 1) != 0) {
2145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2148 if (BIT (Voltage
, 2) != 0) {
2149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2152 // check the reserved zero bits:
2154 if (BIT (Voltage
, 3) != 0) {
2155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2158 if (BIT (Voltage
, 4) != 0) {
2159 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2162 if (BIT (Voltage
, 5) != 0) {
2163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2166 if (BIT (Voltage
, 6) != 0) {
2167 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2173 Display processor information.
2175 @param[in] Status The status.
2176 Bit 7 Reserved, must be 0
2177 Bit 6 CPU Socket Populated
2178 1 - CPU Socket Populated
2179 0 - CPU Socket Unpopulated
2180 Bits 5:3 Reserved, must be zero
2184 2h - CPU Disabled by User via BIOS Setup
2185 3h - CPU Disabled By BIOS (POST Error)
2186 4h - CPU is Idle, waiting to be enabled.
2190 @param[in] Option The option
2193 DisplayProcessorStatus (
2198 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2199 PRINT_INFO_OPTION (Status
, Option
);
2201 if (BIT (Status
, 7) != 0) {
2202 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2203 } else if (BIT (Status
, 5) != 0) {
2204 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2205 } else if (BIT (Status
, 4) != 0) {
2206 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2207 } else if (BIT (Status
, 3) != 0) {
2208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2213 if (BIT (Status
, 6) != 0) {
2214 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2216 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2221 switch (Status
& 0x07) {
2223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2231 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2243 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2252 Display information about Memory Controller Information (Type 5).
2254 @param[in] Size Memory size.
2255 @param[in] SlotNum Which slot is this about.
2256 @param[in] Option Option for the level of detail output required.
2259 DisplayMaxMemoryModuleSize (
2266 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2268 // MaxSize is determined by follow formula
2270 MaxSize
= (UINTN
) 1 << Size
;
2271 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2273 if (Option
>= SHOW_DETAIL
) {
2274 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2275 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2280 Display information about memory configuration handles.
2282 @param[in] Handles The buffer of handles to output info on.
2283 @param[in] SlotNum The number of handles in the above buffer.
2284 @param[in] Option Option for the level of detail output required.
2287 DisplayMemoryModuleConfigHandles (
2294 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2296 if (Option
>= SHOW_DETAIL
) {
2298 // No handle, Handles is INVALID.
2304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2305 for (Index
= 0; Index
< SlotNum
; Index
++) {
2306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2312 Display Memory Module Information (Type 6).
2314 @param[in] BankConnections
2318 DisplayMmBankConnections (
2319 IN UINT8 BankConnections
,
2326 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2330 PRINT_INFO_OPTION (BankConnections
, Option
);
2333 // Divide it to high and low
2335 High
= (UINT8
) (BankConnections
& 0xF0);
2336 Low
= (UINT8
) (BankConnections
& 0x0F);
2339 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2341 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2353 Display memory informcation.
2356 where 2**n is the size in MB with three special-case values:
2357 7Dh Not determinable (Installed Size only)
2358 7Eh Module is installed, but no memory has been enabled
2360 Bit 7 Defines whether the memory module has a single- (0)
2361 or double-bank (1) connection.
2363 @param[in] Size - The size
2364 @param[in] Option - The option
2367 DisplayMmMemorySize (
2373 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2377 PRINT_INFO_OPTION (Size
, Option
);
2380 // Get the low bits(0-6 bit)
2382 Value
= (UINT8
) (Size
& 0x7F);
2383 if (Value
== 0x7D) {
2384 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2385 } else if (Value
== 0x7E) {
2386 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2387 } else if (Value
== 0x7F) {
2388 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2390 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2393 if (BIT (Size
, 7) != 0) {
2394 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2396 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2401 Display Cache Configuration.
2403 @param[in] CacheConfiguration Cache Configuration.
2404 Bits 15:10 Reserved, must be 0
2405 Bits 9:8 Operational Mode
2408 2h - Varies with Memory Address
2410 Bit 7 Enabled/Disabled
2418 Bit 4 Reserved, must be zero
2419 Bit 3 Cache Socketed
2422 Bits 2:0 Cache Level
2423 1 through 8 (For example, an L1 cache would
2424 use value 000b and an L3 cache would use 010b.)
2426 @param[in] Option The option
2429 DisplayCacheConfiguration (
2430 IN UINT16 CacheConfiguration
,
2434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2435 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2437 if (BIT (CacheConfiguration
, 15) != 0) {
2438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2439 } else if (BIT (CacheConfiguration
, 14) != 0) {
2440 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2441 } else if (BIT (CacheConfiguration
, 13) != 0) {
2442 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2443 } else if (BIT (CacheConfiguration
, 12) != 0) {
2444 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2445 } else if (BIT (CacheConfiguration
, 11) != 0) {
2446 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2447 } else if (BIT (CacheConfiguration
, 10) != 0) {
2448 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2449 } else if (BIT (CacheConfiguration
, 4) != 0) {
2450 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2456 switch ((CacheConfiguration
& 0x300) >> 8) {
2458 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2462 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2466 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2477 if (BIT (CacheConfiguration
, 7) != 0) {
2478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2480 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2486 switch ((CacheConfiguration
& 0x60) >> 5) {
2488 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2492 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2496 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2500 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2507 if (BIT (CacheConfiguration
, 3) != 0) {
2508 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2510 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2514 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2518 The Slot ID field of the System Slot structure provides a mechanism to
2519 correlate the physical attributes of the slot to its logical access method
2520 (which varies based on the Slot Type field).
2522 @param[in] SlotId - The slot ID
2523 @param[in] SlotType - The slot type
2524 @param[in] Option - The Option
2527 DisplaySystemSlotId (
2534 // Display slot type first
2536 DisplaySystemSlotType (SlotType
, Option
);
2538 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2542 PRINT_INFO_OPTION (SlotType
, Option
);
2549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2550 if (SlotId
> 0 && SlotId
< 15) {
2551 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2553 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2561 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2562 if (SlotId
> 0 && SlotId
< 15) {
2563 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2565 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2573 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2580 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2587 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2591 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2592 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2594 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2600 Display System Boot Information (Type 32) information.
2602 @param[in] Parameter The parameter.
2603 @param[in] Option The options.
2606 DisplaySystemBootStatus (
2611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2615 PRINT_INFO_OPTION (Parameter
, Option
);
2618 // Check value and print
2620 if (Parameter
== 0) {
2621 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2622 } else if (Parameter
== 1) {
2623 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2624 } else if (Parameter
== 2) {
2625 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2626 } else if (Parameter
== 3) {
2627 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2628 } else if (Parameter
== 4) {
2629 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2630 } else if (Parameter
== 5) {
2631 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2632 } else if (Parameter
== 6) {
2633 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2634 } else if (Parameter
== 7) {
2635 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2636 } else if (Parameter
== 8) {
2637 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2638 } else if (Parameter
>= 9 && Parameter
<= 127) {
2639 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2640 } else if (Parameter
>= 128 && Parameter
<= 191) {
2641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2642 } else if (Parameter
>= 192) {
2643 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2645 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2650 Display Portable Battery (Type 22) information.
2652 The date the cell pack was manufactured, in packed format:
2653 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2654 Bits 8:5 Month, in the range 1 to 12.
2655 Bits 4:0 Date, in the range 1 to 31.
2656 For example, 01 February 2000 would be identified as
2657 0010 1000 0100 0001b (0x2841).
2659 @param[in] Date The date
2660 @param[in] Option The option
2663 DisplaySBDSManufactureDate (
2672 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2673 PRINT_INFO_OPTION (Date
, Option
);
2677 Day
= Date
& 0x001F;
2678 Month
= (Date
& 0x01E0) >> 5;
2679 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2680 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2685 Display System Reset (Type 23) information.
2688 Identifies the system-reset capabilities for the system.
2689 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2690 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2691 Bits 4:3 Boot Option on Limit.
2692 Identifies the system action to be taken when the Reset Limit is reached, one of:
2693 00b Reserved, do not use.
2694 01b Operating system
2695 10b System utilities
2696 11b Do not rebootBits
2697 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2698 00b Reserved, do not use.
2699 01b Operating system
2700 10b System utilities
2703 1b The system reset is enabled by the user
2704 0b The system reset is not enabled by the user
2706 @param[in] Reset Reset
2707 @param[in] Option The option
2710 DisplaySystemResetCapabilities (
2717 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2718 PRINT_INFO_OPTION (Reset
, Option
);
2721 // Check reserved bits 7:6
2723 if ((Reset
& 0xC0) != 0) {
2724 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2729 if (BIT (Reset
, 5) != 0) {
2730 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2732 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2735 // Boot Option on Limit
2737 Temp
= (Reset
& 0x18) >> 3;
2738 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2741 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2745 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2749 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2753 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2759 Temp
= (Reset
& 0x06) >> 1;
2760 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2763 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2767 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2771 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2775 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2779 // Reset enable flag
2781 if ((Reset
& 0x01) != 0) {
2782 Print (L
"The system reset is enabled by the user\n");
2784 Print (L
"The system reset is disabled by the user\n");
2789 Display Hardware Security (Type 24) information.
2792 Identifies the password and reset status for the system:
2794 Bits 7:6 Power-on Password Status, one of:
2799 Bits 5:4 Keyboard Password Status, one of:
2804 Bits 3:2 Administrator Password Status, one of:
2809 Bits 1:0 Front Panel Reset Status, one of:
2815 @param[in] Settings The device settings.
2816 @param[in] Option The device options.
2819 DisplayHardwareSecuritySettings (
2826 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2827 PRINT_INFO_OPTION (Settings
, Option
);
2830 // Power-on Password Status
2832 Temp
= (Settings
& 0xC0) >> 6;
2833 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2836 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2840 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2844 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2852 // Keyboard Password Status
2854 Temp
= (Settings
& 0x30) >> 4;
2855 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
2858 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2862 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2866 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2870 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2874 // Administrator Password Status
2876 Temp
= (Settings
& 0x0C) >> 2;
2877 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
2880 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2884 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2888 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2892 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2896 // Front Panel Reset Status
2898 Temp
= Settings
& 0x3;
2899 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
2902 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2906 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2910 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2914 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2920 Display Out-of-Band Remote Access (Type 30) information.
2922 @param[in] Connections The device characteristics.
2923 @param[in] Option The device options.
2926 DisplayOBRAConnections (
2927 IN UINT8 Connections
,
2931 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
2932 PRINT_INFO_OPTION (Connections
, Option
);
2935 // Check reserved bits 7:2
2937 if ((Connections
& 0xFC) != 0) {
2938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
2941 // Outbound Connection
2943 if (BIT (Connections
, 1) != 0) {
2944 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2946 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2949 // Inbound Connection
2951 if (BIT (Connections
, 0) != 0) {
2952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2954 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2959 Display System Power Supply (Type 39) information.
2961 @param[in] Characteristics The device characteristics.
2962 @param[in] Option The device options.
2965 DisplaySPSCharacteristics (
2966 IN UINT16 Characteristics
,
2972 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
2973 PRINT_INFO_OPTION (Characteristics
, Option
);
2976 // Check reserved bits 15:14
2978 if ((Characteristics
& 0xC000) != 0) {
2979 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
2982 // Bits 13:10 - DMTF Power Supply Type
2984 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
2985 Temp
= (Characteristics
& 0x1C00) << 10;
2988 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
2992 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2996 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3000 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3004 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3008 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3012 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3016 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3020 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3023 // Bits 9:7 - Status
3025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3026 Temp
= (Characteristics
& 0x380) << 7;
3029 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3033 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3037 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3041 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3045 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3049 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3052 // Bits 6:3 - DMTF Input Voltage Range Switching
3054 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3055 Temp
= (Characteristics
& 0x78) << 3;
3058 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3066 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3074 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3078 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3082 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3086 // Power supply is unplugged from the wall
3088 if (BIT (Characteristics
, 2) != 0) {
3089 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3091 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3094 // Power supply is present
3096 if (BIT (Characteristics
, 1) != 0) {
3097 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3099 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3104 if (BIT (Characteristics
, 0) != 0) {
3105 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3107 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);