2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>
5 Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #include "../UefiShellDebug1CommandsLib.h"
17 #include "PrintInfo.h"
18 #include "LibSmbiosView.h"
19 #include "QueryTable.h"
20 #include "EventLogInfo.h"
24 // Get the certain bit of 'value'
26 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
29 // Check if above or equal to version
31 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
32 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
35 //////////////////////////////////////////////////////////
36 // Macros of print structure element, simplify coding.
38 #define PRINT_PENDING_STRING(pStruct, type, element) \
41 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
42 ShellPrintEx(-1,-1,L"%a",#element); \
43 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
46 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
49 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
50 ShellPrintEx(-1,-1,L"%a",#element); \
51 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
54 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
56 ShellPrintEx(-1,-1,L"%a",#element); \
57 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
60 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
62 ShellPrintEx(-1,-1,L"%a",#element); \
63 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
66 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
68 ShellPrintEx(-1,-1,L"%a",#element); \
69 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
72 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
74 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
75 ShellPrintEx(-1,-1,L"%a",#element); \
76 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
77 DumpHex (0, 0, size, &(pStruct->type->element)); \
80 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
82 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
83 ShellPrintEx(-1,-1,L"%a",#element); \
84 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
85 DumpHex (0, 0, size, startaddress); \
89 /////////////////////////////////////////
93 Copy Length of Src buffer to Dest buffer,
94 add a NULL termination to Dest buffer.
96 @param[in, out] Dest Destination buffer head.
97 @param[in] Src Source buffer head.
98 @param[in] Length Length of buffer to be copied.
109 SrcBuffer
= (UINT8
*) Src
;
110 DestBuffer
= (UINT8
*) Dest
;
114 while ((Length
--)!=0) {
115 *DestBuffer
++ = *SrcBuffer
++;
118 // append a NULL terminator
124 //////////////////////////////////////////////
126 // Functions below is to show the information
130 Print the info of EPS(Entry Point Structure).
132 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
133 @param[in] Option Display option.
137 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
144 if (SmbiosTable
== NULL
) {
145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
149 if (Option
== SHOW_NONE
) {
153 if (Option
>= SHOW_NORMAL
) {
154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
155 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
156 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
157 ShellPrintHiiEx(-1,-1,NULL
,
158 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
159 gShellDebug1HiiHandle
,
160 SmbiosTable
->EntryPointStructureChecksum
162 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
163 ShellPrintHiiEx(-1,-1,NULL
,
164 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
165 gShellDebug1HiiHandle
,
166 SmbiosTable
->MajorVersion
,
167 SmbiosTable
->MinorVersion
169 ShellPrintHiiEx(-1,-1,NULL
,
170 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
171 gShellDebug1HiiHandle
,
172 SmbiosTable
->NumberOfSmbiosStructures
174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
180 // If SHOW_ALL, also print followings.
182 if (Option
>= SHOW_DETAIL
) {
183 ShellPrintHiiEx(-1,-1,NULL
,
184 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
185 gShellDebug1HiiHandle
,
186 SmbiosTable
->EntryPointRevision
188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
190 // Since raw data is not string, add a NULL terminater.
192 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
196 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
203 This function print the content of the structure pointed by Struct.
205 @param[in] Struct Point to the structure to be printed.
206 @param[in] Option Print option of information detail.
208 @retval EFI_SUCCESS Successfully Printing this function.
209 @retval EFI_INVALID_PARAMETER Invalid Structure.
210 @retval EFI_UNSUPPORTED Unsupported.
213 SmbiosPrintStructure (
214 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
221 if (Struct
== NULL
) {
222 return EFI_INVALID_PARAMETER
;
225 if (Option
== SHOW_NONE
) {
229 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
232 // Display structure header
234 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
235 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
238 if (Option
== SHOW_OUTLINE
) {
242 switch (Struct
->Hdr
->Type
) {
244 // BIOS Information (Type 0)
247 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
248 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
249 PRINT_STRUCT_VALUE (Struct
, Type0
, BiosSegment
);
250 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
251 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
253 DisplayBiosCharacteristics (ReadUnaligned64 ((UINT64
*) (UINTN
) &(Struct
->Type0
->BiosCharacteristics
)), Option
);
255 if (Struct
->Hdr
->Length
> 0x12) {
256 DisplayBiosCharacteristicsExt1 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[0], Option
);
258 if (Struct
->Hdr
->Length
> 0x13) {
259 DisplayBiosCharacteristicsExt2 (Struct
->Type0
->BIOSCharacteristicsExtensionBytes
[1], Option
);
262 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x14)) {
263 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMajorRelease
);
264 PRINT_STRUCT_VALUE (Struct
, Type0
, SystemBiosMinorRelease
);
265 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMajorRelease
);
266 PRINT_STRUCT_VALUE (Struct
, Type0
, EmbeddedControllerFirmwareMinorRelease
);
272 // System Information (Type 1)
275 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
276 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
277 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
278 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
279 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
280 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
281 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct
->Hdr
->Length
> 0x19)) {
282 PRINT_PENDING_STRING (Struct
, Type1
, SKUNumber
);
283 PRINT_PENDING_STRING (Struct
, Type1
, Family
);
289 // Baseboard Information (Type 2)
292 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
293 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
294 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
295 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
296 if (Struct
->Hdr
->Length
> 0x8) {
297 PRINT_PENDING_STRING (Struct
, Type2
, AssetTag
);
298 DisplayBaseBoardFeatureFlags (*(UINT8
*) &Struct
->Type2
->FeatureFlag
, Option
);
299 PRINT_PENDING_STRING (Struct
, Type2
, LocationInChassis
);
300 PRINT_STRUCT_VALUE_H (Struct
, Type2
, ChassisHandle
);
301 DisplayBaseBoardBoardType (Struct
->Type2
->BoardType
, Option
);
306 // System Enclosure (Type 3)
309 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
310 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
311 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
312 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
313 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
314 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
315 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
316 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
317 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
318 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
319 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
320 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
321 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
322 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
323 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0xD)) {
324 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
329 // Processor Information (Type 4)
332 PRINT_PENDING_STRING (Struct
, Type4
, Socket
);
333 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
334 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x28) &&
335 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
337 // Get family from ProcessorFamily2 field
339 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
341 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
343 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
344 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
345 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
346 DisplayProcessorVoltage (*(UINT8
*) &(Struct
->Type4
->Voltage
), Option
);
347 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
348 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
349 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
350 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
351 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
352 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
353 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
354 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
355 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct
->Hdr
->Length
> 0x20)) {
356 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
357 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
358 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
360 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct
->Hdr
->Length
> 0x23)) {
361 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
362 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
363 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
364 DisplayProcessorCharacteristics (Struct
->Type4
->ProcessorCharacteristics
, Option
);
369 // Memory Controller Information (Type 5)
374 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
376 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
377 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
378 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
379 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
380 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
381 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
382 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
383 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
384 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
385 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
386 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
388 // According to SMBIOS Specification, offset 0x0F
390 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
391 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
396 // Memory Module Information (Type 6)
399 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
400 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
401 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
402 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
403 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
404 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
405 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
406 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
407 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
411 // Cache Information (Type 7)
414 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
415 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
416 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
417 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
418 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
419 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
420 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
421 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
422 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
423 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
424 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
428 // Port Connector Information (Type 8)
431 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
432 Print (L
"Internal ");
433 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
434 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
435 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
436 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
437 DisplayPortType (Struct
->Type8
->PortType
, Option
);
441 // System Slots (Type 9)
444 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
445 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
446 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
447 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
448 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
449 DisplaySystemSlotId (
450 Struct
->Type9
->SlotID
,
451 Struct
->Type9
->SlotType
,
454 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
455 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
456 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
457 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
458 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
459 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
464 // On Board Devices Information (Type 10)
469 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
470 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
471 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
472 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
473 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
479 // Oem Strings (Type 11)
482 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
483 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
484 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
489 // System Configuration Options (Type 12)
492 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
493 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
494 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
499 // BIOS Language Information (Type 13)
502 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
503 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
504 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
505 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
509 // Group Associations (Type 14)
514 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
515 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
516 for (Index
= 0; Index
< NumOfItem
; Index
++) {
517 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
518 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
524 // System Event Log (Type 15)
530 UINT8
*AccessMethodAddress
;
532 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
533 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
534 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
535 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
536 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
537 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
538 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
539 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
540 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
541 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
543 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
545 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
548 // Display all Event Log type descriptors supported by system
550 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
551 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
552 DisplaySELTypes (Ptr
->LogType
, Option
);
553 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
556 if (Option
>= SHOW_DETAIL
) {
557 switch (Struct
->Type15
->AccessMethod
) {
559 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
567 ShellPrintHiiEx(-1,-1,NULL
,
568 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
569 gShellDebug1HiiHandle
,
570 Struct
->Type15
->AccessMethod
572 return EFI_UNSUPPORTED
;
575 // Display Event Log Header
577 // Starting offset (or index) within the nonvolatile storage
578 // of the event-log's header, from the Access Method Address
580 DisplaySysEventLogHeader (
581 Struct
->Type15
->LogHeaderFormat
,
582 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
586 // Display all Event Log data
588 // Starting offset (or index) within the nonvolatile storage
589 // of the event-log's first data byte, from the Access Method Address(0x14)
591 DisplaySysEventLogData (
592 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
595 Struct
->Type15
->LogAreaLength
-
596 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
606 // Physical Memory Array (Type 16)
609 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
610 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
611 DisplayPMAErrorCorrectionTypes (
612 Struct
->Type16
->MemoryErrorCorrection
,
615 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
616 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
617 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
618 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
619 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
624 // Memory Device (Type 17)
627 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
628 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
629 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
630 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
631 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
632 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
633 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
634 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
635 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
636 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
637 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
638 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
639 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
640 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
641 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
642 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
643 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
644 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
646 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
647 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
648 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
653 // 32-bit Memory Error Information (Type 18)
656 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
657 DisplayMemoryErrorGranularity (
658 Struct
->Type18
->ErrorGranularity
,
661 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
662 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
663 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
664 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
665 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
669 // Memory Array Mapped Address (Type 19)
672 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
673 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
674 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
675 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
676 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
677 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
678 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
683 // Memory Device Mapped Address (Type 20)
686 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
687 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
688 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
689 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
690 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
691 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
692 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
693 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
694 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
695 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
700 // Built-in Pointing Device (Type 21)
703 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
704 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
705 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
709 // Portable Battery (Type 22)
712 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
713 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
714 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
715 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
716 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
717 DisplayPBDeviceChemistry (
718 Struct
->Type22
->DeviceChemistry
,
721 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
722 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
723 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
724 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
725 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
726 DisplaySBDSManufactureDate (
727 Struct
->Type22
->SBDSManufactureDate
,
730 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
731 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
732 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
736 // System Reset (Type 23)
739 DisplaySystemResetCapabilities (
740 Struct
->Type23
->Capabilities
,
743 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
744 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
745 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
746 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
750 // Hardware Security (Type 24)
753 DisplayHardwareSecuritySettings (
754 Struct
->Type24
->HardwareSecuritySettings
,
760 // System Power Controls (Type 25)
763 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
764 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
765 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
766 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
767 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
771 // Voltage Probe (Type 26)
774 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
775 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
776 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
777 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
778 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
779 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
780 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
783 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
787 // Cooling Device (Type 27)
790 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
791 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
792 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
793 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
794 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
795 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
796 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
797 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
802 // Temperature Probe (Type 28)
805 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
806 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
807 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
808 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
809 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
810 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
811 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
812 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
813 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
814 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
818 // Electrical Current Probe (Type 29)
821 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
822 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
823 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
824 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
825 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
826 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
827 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
828 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
829 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
830 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
834 // Out-of-Band Remote Access (Type 30)
837 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
838 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
842 // Boot Integrity Services (BIS) Entry Point (Type 31)
845 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
849 // System Boot Information (Type 32)
852 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
853 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
857 // 64-Bit Memory Error Information (Type 33)
860 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
861 DisplayMemoryErrorGranularity (
862 Struct
->Type33
->ErrorGranularity
,
865 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
866 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
867 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
868 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
869 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
873 // Management Device (Type 34)
876 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
877 DisplayMDType (Struct
->Type34
->Type
, Option
);
878 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
879 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
883 // Management Device Component (Type 35)
886 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
887 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
888 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
889 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
893 // Management Device Threshold Data (Type 36)
896 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
897 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
898 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
899 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
900 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
901 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
905 // Memory Channel (Type 37)
911 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
912 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
913 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
915 Count
= Struct
->Type37
->MemoryDeviceCount
;
916 Ptr
= Struct
->Type37
->MemoryDevice
;
917 for (Index
= 0; Index
< Count
; Index
++) {
918 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
919 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
920 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
926 // IPMI Device Information (Type 38)
929 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
930 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
931 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
932 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
933 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
937 // System Power Supply (Type 39)
940 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
941 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
942 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
943 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
944 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
945 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
946 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
947 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
948 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
949 DisplaySPSCharacteristics (
950 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
953 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
954 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
955 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
959 // Additional Information (Type 40)
963 UINT8 NumberOfEntries
;
965 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
968 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
969 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
971 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
973 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
974 EntryLength
= Entries
->EntryLength
;
975 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
976 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
977 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
978 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
979 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
980 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
986 // Onboard Devices Extended Information (Type 41)
989 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
990 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
991 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
992 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
993 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
994 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
995 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
999 // Management Controller Host Interface (Type 42)
1002 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceType
);
1006 // Inactive (Type 126)
1009 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1013 // End-of-Table (Type 127)
1016 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1020 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1028 Display BIOS Information (Type 0) information.
1030 @param[in] Chara The information bits.
1031 @param[in] Option The optional information.
1034 DisplayBiosCharacteristics (
1042 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1046 PRINT_INFO_OPTION (Chara
, Option
);
1049 // Check all the bits and print information
1050 // This function does not use Table because table of bits
1051 // are designed not to deal with UINT64
1053 if (BIT (Chara
, 0) != 0) {
1054 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1057 if (BIT (Chara
, 1) != 0) {
1058 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1061 if (BIT (Chara
, 2) != 0) {
1062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1065 if (BIT (Chara
, 3) != 0) {
1066 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1069 if (BIT (Chara
, 4) != 0) {
1070 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1073 if (BIT (Chara
, 5) != 0) {
1074 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1077 if (BIT (Chara
, 6) != 0) {
1078 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1081 if (BIT (Chara
, 7) != 0) {
1082 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1085 if (BIT (Chara
, 8) != 0) {
1086 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1089 if (BIT (Chara
, 9) != 0) {
1090 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1093 if (BIT (Chara
, 10) != 0) {
1094 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1097 if (BIT (Chara
, 11) != 0) {
1098 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1101 if (BIT (Chara
, 12) != 0) {
1102 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1105 if (BIT (Chara
, 13) != 0) {
1106 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1109 if (BIT (Chara
, 14) != 0) {
1110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1113 if (BIT (Chara
, 15) != 0) {
1114 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1117 if (BIT (Chara
, 16) != 0) {
1118 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1121 if (BIT (Chara
, 17) != 0) {
1122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1125 if (BIT (Chara
, 18) != 0) {
1126 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1129 if (BIT (Chara
, 19) != 0) {
1130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1133 if (BIT (Chara
, 20) != 0) {
1134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1137 if (BIT (Chara
, 21) != 0) {
1138 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1141 if (BIT (Chara
, 22) != 0) {
1142 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1145 if (BIT (Chara
, 23) != 0) {
1146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1149 if (BIT (Chara
, 24) != 0) {
1150 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1153 if (BIT (Chara
, 25) != 0) {
1154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1157 if (BIT (Chara
, 26) != 0) {
1158 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1161 if (BIT (Chara
, 27) != 0) {
1162 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1165 if (BIT (Chara
, 28) != 0) {
1166 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1169 if (BIT (Chara
, 29) != 0) {
1170 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1173 if (BIT (Chara
, 30) != 0) {
1174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1177 if (BIT (Chara
, 31) != 0) {
1178 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1181 // Just print the Reserved
1183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1184 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1188 Display Bios Characteristice extensions1 information.
1190 @param[in] Byte1 The information.
1191 @param[in] Option The optional information.
1194 DisplayBiosCharacteristicsExt1 (
1199 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1203 PRINT_INFO_OPTION (Byte1
, Option
);
1206 // check bit and print
1208 if (BIT (Byte1
, 0) != 0) {
1209 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1212 if (BIT (Byte1
, 1) != 0) {
1213 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1216 if (BIT (Byte1
, 2) != 0) {
1217 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1220 if (BIT (Byte1
, 3) != 0) {
1221 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1224 if (BIT (Byte1
, 4) != 0) {
1225 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1228 if (BIT (Byte1
, 5) != 0) {
1229 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1232 if (BIT (Byte1
, 6) != 0) {
1233 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1236 if (BIT (Byte1
, 7) != 0) {
1237 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1242 Display Bios Characteristice extensions2 information.
1244 @param[in] byte2 The information.
1245 @param[in] Option The optional information.
1248 DisplayBiosCharacteristicsExt2 (
1253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1257 PRINT_INFO_OPTION (byte2
, Option
);
1259 if (BIT (byte2
, 0) != 0) {
1260 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1263 if (BIT (byte2
, 1) != 0) {
1264 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1267 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1268 if (BIT (byte2
, 2) != 0) {
1269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1271 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1272 if (BIT (byte2
, 3) != 0) {
1273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1275 if (BIT (byte2
, 4) != 0) {
1276 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1278 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1280 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1288 Display Processor Information (Type 4) information.
1290 @param[in] Family The family value.
1291 @param[in] Option The option value.
1294 DisplayProcessorFamily (
1300 // Print prompt message
1302 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1306 PRINT_INFO_OPTION (Family
, Option
);
1309 // Use switch to check
1313 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1317 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1329 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1333 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1361 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1365 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1369 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1373 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1377 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1381 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1385 Print (L
"M2 Family\n");
1389 Print (L
"Intel Celeron M\n");
1393 Print (L
"Intel Pentium 4 HT\n");
1397 Print (L
"AMD Duron\n");
1401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1405 Print (L
"K6 Family\n");
1417 Print (L
"AMD Althon Processor Family\n");
1421 Print (L
"AMD 29000 Family\n");
1429 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1433 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1437 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1441 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1445 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1449 Print (L
"Power PC 620\n");
1453 Print (L
"Power PC 704\n");
1457 Print (L
"Power PC 750\n");
1461 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1465 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1469 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1473 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1477 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1481 Print (L
"Alpha 21064\n");
1485 Print (L
"Alpha 21066\n");
1489 Print (L
"Alpha 21164\n");
1493 Print (L
"Alpha 21164PC\n");
1497 Print (L
"Alpha 21164a\n");
1501 Print (L
"Alpha 21264\n");
1505 Print (L
"Alpha 21364\n");
1509 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1513 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1517 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1521 Print (L
"AMD Opteron 6100 Series Processor\n");
1525 Print (L
"AMD Opteron 4100 Series Processor\n");
1529 Print (L
"AMD Opteron 6200 Series Processor\n");
1533 Print (L
"AMD Opteron 4200 Series Processor\n");
1537 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1541 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1545 Print (L
"MIPS R4000\n");
1549 Print (L
"MIPS R4200\n");
1553 Print (L
"MIPS R4400\n");
1557 Print (L
"MIPS R4600\n");
1561 Print (L
"MIPS R10000\n");
1565 Print (L
"AMD C-Series Processor\n");
1569 Print (L
"AMD E-Series Processor\n");
1573 Print (L
"AMD A-Series Processor\n");
1577 Print (L
"AMD G-Series Processor\n");
1581 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1585 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1589 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1593 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1597 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1605 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1609 Print (L
"SuperSparc\n");
1613 Print (L
"microSparc II\n");
1617 Print (L
"microSparc IIep\n");
1621 Print (L
"UltraSparc\n");
1625 Print (L
"UltraSparc II\n");
1629 Print (L
"UltraSparcIIi\n");
1633 Print (L
"UltraSparcIII\n");
1637 Print (L
"UltraSparcIIIi\n");
1641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1669 Print (L
"Crusoe TM5000\n");
1673 Print (L
"Crusoe TM3000\n");
1677 Print (L
"Efficeon TM8000\n");
1681 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1685 Print (L
"Itanium\n");
1689 Print (L
"AMD Athlon64\n");
1693 Print (L
"AMD Opteron\n");
1697 Print (L
"AMD Sempron\n");
1701 Print (L
"AMD Turion64 Mobile\n");
1705 Print (L
"Dual-Core AMD Opteron\n");
1709 Print (L
"AMD Athlon 64X2 DualCore\n");
1713 Print (L
"AMD Turion 64X2 Mobile\n");
1717 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1721 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1725 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1729 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1733 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1737 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1741 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1745 Print (L
"PA-RISC 8500\n");
1749 Print (L
"PA-RISC 8000\n");
1753 Print (L
"PA-RISC 7300LC\n");
1757 Print (L
"PA-RISC 7200\n");
1761 Print (L
"PA-RISC 7100LC\n");
1765 Print (L
"PA-RISC 7100\n");
1769 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1773 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1777 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1781 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1785 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1789 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1793 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1797 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1801 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1805 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1809 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1813 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1817 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1821 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1825 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1829 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1833 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1837 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1841 Print (L
"Pentium 4 processor\n");
1845 Print (L
"Intel Xeon Processor\n");
1849 Print (L
"AS400 Family\n");
1853 Print (L
"Intel Xeon processor MP\n");
1857 Print (L
"AMD Althon XP Processor Family\n");
1861 Print (L
"AMD Althon MP Promcessor Family\n");
1865 Print (L
"Intel Itanium 2 processor\n");
1869 Print (L
"Intel Penium M processor\n");
1873 Print (L
"Intel Celeron D processor\n");
1877 Print (L
"Intel Pentium D processor\n");
1881 Print (L
"Intel Pentium Processor Extreme Edition\n");
1885 Print (L
"Intel Core Solo Processor\n");
1889 Print (L
"Intel Core 2 Duo Processor\n");
1893 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
1897 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1901 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
1905 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1909 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
1913 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1917 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
1921 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
1925 Print (L
"IBM 390\n");
1941 Print (L
"zArchitecture\n");
1945 Print (L
"Intel Core i5 processor\n");
1949 Print (L
"Intel Core i3 processor\n");
1953 Print (L
"ViaC7M\n");
1957 Print (L
"ViaC7D\n");
1969 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
1973 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1977 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1981 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1985 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1989 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1993 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2001 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2005 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2009 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2014 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2018 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2022 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2026 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2030 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2034 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2038 Print (L
"AMD Phenom II Processor Family\n");
2042 Print (L
"AMD Althon II Processor Family\n");
2046 Print (L
"Six-Core AMD Opteron Processor Family\n");
2050 Print (L
"AMD Sempron M Processor Family\n");
2062 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2070 Display processor family information.
2072 @param[in] Family2 The family value.
2073 @param[in] Option The option value.
2076 DisplayProcessorFamily2 (
2082 // Print prompt message
2084 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2089 PRINT_INFO_OPTION (Family2
, Option
);
2092 // Use switch to check
2108 Print (L
"StrongARM\n");
2116 Print (L
"MediaGX\n");
2124 Print (L
"WinChip\n");
2132 Print (L
"Video Processor\n");
2136 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2142 Display processor voltage information.
2144 @param[in] Voltage The Voltage.
2145 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2146 Bits 6:4 Reserved, must be zero
2147 Bits 3:0 Voltage Capability.
2148 A Set bit indicates that the voltage is supported.
2152 Bit 3 - Reserved, must be zero.
2155 Setting of multiple bits indicates the socket is configurable
2156 If bit 7 is set to 1, the remaining seven bits of the field are set to
2157 contain the processor's current voltage times 10.
2158 For example, the field value for a processor voltage of 1.8 volts would be
2159 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2161 @param[in] Option The option.
2164 DisplayProcessorVoltage (
2169 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2173 PRINT_INFO_OPTION (Voltage
, Option
);
2175 if (BIT (Voltage
, 7) != 0) {
2176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2178 if (BIT (Voltage
, 0) != 0) {
2179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2182 if (BIT (Voltage
, 1) != 0) {
2183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2186 if (BIT (Voltage
, 2) != 0) {
2187 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2190 // check the reserved zero bits:
2192 if (BIT (Voltage
, 3) != 0) {
2193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2196 if (BIT (Voltage
, 4) != 0) {
2197 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2200 if (BIT (Voltage
, 5) != 0) {
2201 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2204 if (BIT (Voltage
, 6) != 0) {
2205 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2211 Display processor information.
2213 @param[in] Status The status.
2214 Bit 7 Reserved, must be 0
2215 Bit 6 CPU Socket Populated
2216 1 - CPU Socket Populated
2217 0 - CPU Socket Unpopulated
2218 Bits 5:3 Reserved, must be zero
2222 2h - CPU Disabled by User via BIOS Setup
2223 3h - CPU Disabled By BIOS (POST Error)
2224 4h - CPU is Idle, waiting to be enabled.
2228 @param[in] Option The option
2231 DisplayProcessorStatus (
2236 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2237 PRINT_INFO_OPTION (Status
, Option
);
2239 if (BIT (Status
, 7) != 0) {
2240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2241 } else if (BIT (Status
, 5) != 0) {
2242 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2243 } else if (BIT (Status
, 4) != 0) {
2244 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2245 } else if (BIT (Status
, 3) != 0) {
2246 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2251 if (BIT (Status
, 6) != 0) {
2252 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2254 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2259 switch (Status
& 0x07) {
2261 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2265 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2281 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2285 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2290 Display information about Memory Controller Information (Type 5).
2292 @param[in] Size Memory size.
2293 @param[in] SlotNum Which slot is this about.
2294 @param[in] Option Option for the level of detail output required.
2297 DisplayMaxMemoryModuleSize (
2304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2306 // MaxSize is determined by follow formula
2308 MaxSize
= (UINTN
) 1 << Size
;
2309 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2311 if (Option
>= SHOW_DETAIL
) {
2312 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2313 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2318 Display information about memory configuration handles.
2320 @param[in] Handles The buffer of handles to output info on.
2321 @param[in] SlotNum The number of handles in the above buffer.
2322 @param[in] Option Option for the level of detail output required.
2325 DisplayMemoryModuleConfigHandles (
2332 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2334 if (Option
>= SHOW_DETAIL
) {
2336 // No handle, Handles is INVALID.
2342 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2343 for (Index
= 0; Index
< SlotNum
; Index
++) {
2344 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2350 Display Memory Module Information (Type 6).
2352 @param[in] BankConnections
2356 DisplayMmBankConnections (
2357 IN UINT8 BankConnections
,
2364 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2368 PRINT_INFO_OPTION (BankConnections
, Option
);
2371 // Divide it to high and low
2373 High
= (UINT8
) (BankConnections
& 0xF0);
2374 Low
= (UINT8
) (BankConnections
& 0x0F);
2377 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2379 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2383 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2391 Display memory informcation.
2394 where 2**n is the size in MB with three special-case values:
2395 7Dh Not determinable (Installed Size only)
2396 7Eh Module is installed, but no memory has been enabled
2398 Bit 7 Defines whether the memory module has a single- (0)
2399 or double-bank (1) connection.
2401 @param[in] Size - The size
2402 @param[in] Option - The option
2405 DisplayMmMemorySize (
2411 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2415 PRINT_INFO_OPTION (Size
, Option
);
2418 // Get the low bits(0-6 bit)
2420 Value
= (UINT8
) (Size
& 0x7F);
2421 if (Value
== 0x7D) {
2422 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2423 } else if (Value
== 0x7E) {
2424 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2425 } else if (Value
== 0x7F) {
2426 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2428 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2431 if (BIT (Size
, 7) != 0) {
2432 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2439 Display Cache Configuration.
2441 @param[in] CacheConfiguration Cache Configuration.
2442 Bits 15:10 Reserved, must be 0
2443 Bits 9:8 Operational Mode
2446 2h - Varies with Memory Address
2448 Bit 7 Enabled/Disabled
2456 Bit 4 Reserved, must be zero
2457 Bit 3 Cache Socketed
2460 Bits 2:0 Cache Level
2461 1 through 8 (For example, an L1 cache would
2462 use value 000b and an L3 cache would use 010b.)
2464 @param[in] Option The option
2467 DisplayCacheConfiguration (
2468 IN UINT16 CacheConfiguration
,
2472 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2473 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2475 if (BIT (CacheConfiguration
, 15) != 0) {
2476 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2477 } else if (BIT (CacheConfiguration
, 14) != 0) {
2478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2479 } else if (BIT (CacheConfiguration
, 13) != 0) {
2480 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2481 } else if (BIT (CacheConfiguration
, 12) != 0) {
2482 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2483 } else if (BIT (CacheConfiguration
, 11) != 0) {
2484 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2485 } else if (BIT (CacheConfiguration
, 10) != 0) {
2486 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2487 } else if (BIT (CacheConfiguration
, 4) != 0) {
2488 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2494 switch ((CacheConfiguration
& 0x300) >> 8) {
2496 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2500 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2504 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2508 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2515 if (BIT (CacheConfiguration
, 7) != 0) {
2516 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2518 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2524 switch ((CacheConfiguration
& 0x60) >> 5) {
2526 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2530 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2534 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2538 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2545 if (BIT (CacheConfiguration
, 3) != 0) {
2546 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2548 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2552 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2556 The Slot ID field of the System Slot structure provides a mechanism to
2557 correlate the physical attributes of the slot to its logical access method
2558 (which varies based on the Slot Type field).
2560 @param[in] SlotId - The slot ID
2561 @param[in] SlotType - The slot type
2562 @param[in] Option - The Option
2565 DisplaySystemSlotId (
2572 // Display slot type first
2574 DisplaySystemSlotType (SlotType
, Option
);
2576 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2580 PRINT_INFO_OPTION (SlotType
, Option
);
2587 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2588 if (SlotId
> 0 && SlotId
< 15) {
2589 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2591 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2599 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2600 if (SlotId
> 0 && SlotId
< 15) {
2601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2603 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2618 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2625 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2629 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2630 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2632 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2638 Display System Boot Information (Type 32) information.
2640 @param[in] Parameter The parameter.
2641 @param[in] Option The options.
2644 DisplaySystemBootStatus (
2649 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2653 PRINT_INFO_OPTION (Parameter
, Option
);
2656 // Check value and print
2658 if (Parameter
== 0) {
2659 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2660 } else if (Parameter
== 1) {
2661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2662 } else if (Parameter
== 2) {
2663 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2664 } else if (Parameter
== 3) {
2665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2666 } else if (Parameter
== 4) {
2667 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2668 } else if (Parameter
== 5) {
2669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2670 } else if (Parameter
== 6) {
2671 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2672 } else if (Parameter
== 7) {
2673 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2674 } else if (Parameter
== 8) {
2675 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2676 } else if (Parameter
>= 9 && Parameter
<= 127) {
2677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2678 } else if (Parameter
>= 128 && Parameter
<= 191) {
2679 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2680 } else if (Parameter
>= 192) {
2681 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2683 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2688 Display Portable Battery (Type 22) information.
2690 The date the cell pack was manufactured, in packed format:
2691 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2692 Bits 8:5 Month, in the range 1 to 12.
2693 Bits 4:0 Date, in the range 1 to 31.
2694 For example, 01 February 2000 would be identified as
2695 0010 1000 0100 0001b (0x2841).
2697 @param[in] Date The date
2698 @param[in] Option The option
2701 DisplaySBDSManufactureDate (
2710 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2711 PRINT_INFO_OPTION (Date
, Option
);
2715 Day
= Date
& 0x001F;
2716 Month
= (Date
& 0x01E0) >> 5;
2717 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2718 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2723 Display System Reset (Type 23) information.
2726 Identifies the system-reset capabilities for the system.
2727 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2728 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2729 Bits 4:3 Boot Option on Limit.
2730 Identifies the system action to be taken when the Reset Limit is reached, one of:
2731 00b Reserved, do not use.
2732 01b Operating system
2733 10b System utilities
2734 11b Do not rebootBits
2735 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2736 00b Reserved, do not use.
2737 01b Operating system
2738 10b System utilities
2741 1b The system reset is enabled by the user
2742 0b The system reset is not enabled by the user
2744 @param[in] Reset Reset
2745 @param[in] Option The option
2748 DisplaySystemResetCapabilities (
2755 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2756 PRINT_INFO_OPTION (Reset
, Option
);
2759 // Check reserved bits 7:6
2761 if ((Reset
& 0xC0) != 0) {
2762 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2767 if (BIT (Reset
, 5) != 0) {
2768 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2770 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2773 // Boot Option on Limit
2775 Temp
= (Reset
& 0x18) >> 3;
2776 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2779 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2783 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2787 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2791 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2797 Temp
= (Reset
& 0x06) >> 1;
2798 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2801 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2805 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2809 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2813 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2817 // Reset enable flag
2819 if ((Reset
& 0x01) != 0) {
2820 Print (L
"The system reset is enabled by the user\n");
2822 Print (L
"The system reset is disabled by the user\n");
2827 Display Hardware Security (Type 24) information.
2830 Identifies the password and reset status for the system:
2832 Bits 7:6 Power-on Password Status, one of:
2837 Bits 5:4 Keyboard Password Status, one of:
2842 Bits 3:2 Administrator Password Status, one of:
2847 Bits 1:0 Front Panel Reset Status, one of:
2853 @param[in] Settings The device settings.
2854 @param[in] Option The device options.
2857 DisplayHardwareSecuritySettings (
2864 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2865 PRINT_INFO_OPTION (Settings
, Option
);
2868 // Power-on Password Status
2870 Temp
= (Settings
& 0xC0) >> 6;
2871 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2874 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2878 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2882 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2886 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2890 // Keyboard Password Status
2892 Temp
= (Settings
& 0x30) >> 4;
2893 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
2896 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2900 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2904 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2908 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2912 // Administrator Password Status
2914 Temp
= (Settings
& 0x0C) >> 2;
2915 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
2918 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2922 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2926 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2930 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2934 // Front Panel Reset Status
2936 Temp
= Settings
& 0x3;
2937 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
2940 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2944 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2948 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2952 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2958 Display Out-of-Band Remote Access (Type 30) information.
2960 @param[in] Connections The device characteristics.
2961 @param[in] Option The device options.
2964 DisplayOBRAConnections (
2965 IN UINT8 Connections
,
2969 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
2970 PRINT_INFO_OPTION (Connections
, Option
);
2973 // Check reserved bits 7:2
2975 if ((Connections
& 0xFC) != 0) {
2976 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
2979 // Outbound Connection
2981 if (BIT (Connections
, 1) != 0) {
2982 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2984 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2987 // Inbound Connection
2989 if (BIT (Connections
, 0) != 0) {
2990 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2992 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2997 Display System Power Supply (Type 39) information.
2999 @param[in] Characteristics The device characteristics.
3000 @param[in] Option The device options.
3003 DisplaySPSCharacteristics (
3004 IN UINT16 Characteristics
,
3010 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3011 PRINT_INFO_OPTION (Characteristics
, Option
);
3014 // Check reserved bits 15:14
3016 if ((Characteristics
& 0xC000) != 0) {
3017 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3020 // Bits 13:10 - DMTF Power Supply Type
3022 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3023 Temp
= (Characteristics
& 0x1C00) << 10;
3026 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3030 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3034 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3038 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3042 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3046 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3050 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3054 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3058 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3061 // Bits 9:7 - Status
3063 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3064 Temp
= (Characteristics
& 0x380) << 7;
3067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3071 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3075 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3079 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3087 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3090 // Bits 6:3 - DMTF Input Voltage Range Switching
3092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3093 Temp
= (Characteristics
& 0x78) << 3;
3096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3100 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3104 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3108 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3112 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3116 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3120 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3124 // Power supply is unplugged from the wall
3126 if (BIT (Characteristics
, 2) != 0) {
3127 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3129 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3132 // Power supply is present
3134 if (BIT (Characteristics
, 1) != 0) {
3135 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3142 if (BIT (Characteristics
, 0) != 0) {
3143 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);