2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #include "../UefiShellDebug1CommandsLib.h"
17 #include "PrintInfo.h"
18 #include "LibSmbiosView.h"
19 #include "QueryTable.h"
20 #include "EventLogInfo.h"
24 // Get the certain bit of 'value'
26 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
29 // Check if above or equal to version
31 #define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
32 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
35 //////////////////////////////////////////////////////////
36 // Macros of print structure element, simplify coding.
38 #define PRINT_PENDING_STRING(pStruct, type, element) \
41 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
42 ShellPrintEx(-1,-1,L"%a",#element); \
43 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
46 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
49 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
50 ShellPrintEx(-1,-1,L"%a",#element); \
51 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
54 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
56 ShellPrintEx(-1,-1,L"%a",#element); \
57 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
60 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
62 ShellPrintEx(-1,-1,L"%a",#element); \
63 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
66 #define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
68 ShellPrintEx(-1,-1,L"%a",#element); \
69 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
72 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
74 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
75 ShellPrintEx(-1,-1,L"%a",#element); \
76 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
77 DumpHex (0, 0, size, &(pStruct->type->element)); \
80 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
82 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
83 ShellPrintEx(-1,-1,L"%a",#element); \
84 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
85 DumpHex (0, 0, size, startaddress); \
89 /////////////////////////////////////////
93 Copy Length of Src buffer to Dest buffer,
94 add a NULL termination to Dest buffer.
96 @param[in, out] Dest Destination buffer head.
97 @param[in] Src Source buffer head.
98 @param[in] Length Length of buffer to be copied.
109 SrcBuffer
= (UINT8
*) Src
;
110 DestBuffer
= (UINT8
*) Dest
;
114 while ((Length
--)!=0) {
115 *DestBuffer
++ = *SrcBuffer
++;
118 // append a NULL terminator
124 //////////////////////////////////////////////
126 // Functions below is to show the information
130 Print the info of EPS(Entry Point Structure).
132 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
133 @param[in] Option Display option.
137 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
144 if (SmbiosTable
== NULL
) {
145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
149 if (Option
== SHOW_NONE
) {
153 if (Option
>= SHOW_NORMAL
) {
154 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
155 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
156 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
157 ShellPrintHiiEx(-1,-1,NULL
,
158 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
159 gShellDebug1HiiHandle
,
160 SmbiosTable
->EntryPointStructureChecksum
162 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
163 ShellPrintHiiEx(-1,-1,NULL
,
164 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
165 gShellDebug1HiiHandle
,
166 SmbiosTable
->MajorVersion
,
167 SmbiosTable
->MinorVersion
169 ShellPrintHiiEx(-1,-1,NULL
,
170 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
171 gShellDebug1HiiHandle
,
172 SmbiosTable
->NumberOfSmbiosStructures
174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
180 // If SHOW_ALL, also print followings.
182 if (Option
>= SHOW_DETAIL
) {
183 ShellPrintHiiEx(-1,-1,NULL
,
184 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
185 gShellDebug1HiiHandle
,
186 SmbiosTable
->EntryPointRevision
188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
190 // Since raw data is not string, add a NULL terminater.
192 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
195 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
196 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
203 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
);
366 if (AE_SMBIOS_VERSION (0x3, 0x0) && (Struct
->Hdr
->Length
> 0x2A)) {
367 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount2
);
368 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount2
);
369 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount2
);
374 // Memory Controller Information (Type 5)
379 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
381 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
382 DisplayMcErrorCorrectCapability (*(UINT8
*) &(Struct
->Type5
->ErrCorrectCapability
), Option
);
383 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
384 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
386 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
387 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
388 DisplayMcMemorySpeeds (*(UINT16
*) &(Struct
->Type5
->SupportSpeed
), Option
);
389 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
390 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
391 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
393 // According to SMBIOS Specification, offset 0x0F
395 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
396 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
401 // Memory Module Information (Type 6)
404 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
405 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
406 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
407 DisplayMmMemoryType (*(UINT16
*) &(Struct
->Type6
->CurrentMemoryType
), Option
);
408 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
409 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->InstalledSize
), Option
);
410 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
411 DisplayMmMemorySize (*(UINT8
*) &(Struct
->Type6
->EnabledSize
), Option
);
412 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
416 // Cache Information (Type 7)
419 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
420 DisplayCacheConfiguration (Struct
->Type7
->CacheConfiguration
, Option
);
421 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
422 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
423 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
424 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
425 DisplayCacheSRAMType (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type7
->CurrentSRAMType
)), Option
);
426 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
427 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
428 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
429 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
433 // Port Connector Information (Type 8)
436 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
437 Print (L
"Internal ");
438 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
439 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
440 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
441 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
442 DisplayPortType (Struct
->Type8
->PortType
, Option
);
446 // System Slots (Type 9)
449 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
450 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
451 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
452 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
453 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
454 DisplaySystemSlotId (
455 Struct
->Type9
->SlotID
,
456 Struct
->Type9
->SlotType
,
459 DisplaySlotCharacteristics1 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics1
), Option
);
460 DisplaySlotCharacteristics2 (*(UINT8
*) &(Struct
->Type9
->SlotCharacteristics2
), Option
);
461 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0xD)) {
462 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
463 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
464 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
469 // On Board Devices Information (Type 10)
474 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_STRUCTURE
)) / (2 * sizeof (UINT8
));
475 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
476 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
477 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
478 ShellPrintEx(-1,-1,L
"%a\n",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
484 // Oem Strings (Type 11)
487 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
488 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
489 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
494 // System Configuration Options (Type 12)
497 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
498 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
499 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
504 // BIOS Language Information (Type 13)
507 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
508 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
509 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
510 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
514 // Group Associations (Type 14)
519 NumOfItem
= (Struct
->Type14
->Hdr
.Length
- 5) / 3;
520 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
521 for (Index
= 0; Index
< NumOfItem
; Index
++) {
522 ShellPrintEx(-1,-1,L
"ItemType %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemType
);
523 ShellPrintEx(-1,-1,L
"ItemHandle %d: %d\n", Index
+ 1, Struct
->Type14
->Group
[Index
].ItemHandle
);
529 // System Event Log (Type 15)
535 UINT8
*AccessMethodAddress
;
537 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
538 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
539 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
540 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
541 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
542 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
543 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
544 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
545 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
546 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
548 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
550 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
553 // Display all Event Log type descriptors supported by system
555 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
556 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
557 DisplaySELTypes (Ptr
->LogType
, Option
);
558 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
561 if (Option
>= SHOW_DETAIL
) {
562 switch (Struct
->Type15
->AccessMethod
) {
564 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
572 ShellPrintHiiEx(-1,-1,NULL
,
573 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
574 gShellDebug1HiiHandle
,
575 Struct
->Type15
->AccessMethod
577 return EFI_UNSUPPORTED
;
580 // Display Event Log Header
582 // Starting offset (or index) within the nonvolatile storage
583 // of the event-log's header, from the Access Method Address
585 DisplaySysEventLogHeader (
586 Struct
->Type15
->LogHeaderFormat
,
587 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
591 // Display all Event Log data
593 // Starting offset (or index) within the nonvolatile storage
594 // of the event-log's first data byte, from the Access Method Address(0x14)
596 DisplaySysEventLogData (
597 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
600 Struct
->Type15
->LogAreaLength
-
601 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogHeaderStartOffset
)
611 // Physical Memory Array (Type 16)
614 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
615 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
616 DisplayPMAErrorCorrectionTypes (
617 Struct
->Type16
->MemoryErrorCorrection
,
620 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
621 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
622 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
623 if (AE_SMBIOS_VERSION (0x2, 0x7) && Struct
->Hdr
->Length
> 0xF) {
624 PRINT_STRUCT_VALUE_LH (Struct
, Type16
, ExtendedMaximumCapacity
);
629 // Memory Device (Type 17)
632 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
633 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
634 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
635 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
636 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
637 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
638 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
639 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
640 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
641 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
642 DisplayMemoryDeviceTypeDetail (ReadUnaligned16 ((UINT16
*) (UINTN
) &(Struct
->Type17
->TypeDetail
)), Option
);
643 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
644 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
645 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
646 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
647 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
648 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct
->Hdr
->Length
> 0x1B)) {
649 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
651 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x1C)) {
652 PRINT_STRUCT_VALUE (Struct
, Type17
, ExtendedSize
);
653 PRINT_STRUCT_VALUE (Struct
, Type17
, ConfiguredMemoryClockSpeed
);
658 // 32-bit Memory Error Information (Type 18)
661 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
662 DisplayMemoryErrorGranularity (
663 Struct
->Type18
->ErrorGranularity
,
666 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
667 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
668 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
669 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
670 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
674 // Memory Array Mapped Address (Type 19)
677 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
678 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
679 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
680 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
681 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xF)) {
682 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
683 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
688 // Memory Device Mapped Address (Type 20)
691 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
692 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
693 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
694 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
695 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
696 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
697 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
698 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0x13)) {
699 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedStartingAddress
);
700 PRINT_STRUCT_VALUE_LH (Struct
, Type19
, ExtendedEndingAddress
);
705 // Built-in Pointing Device (Type 21)
708 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
709 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
710 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
714 // Portable Battery (Type 22)
717 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
718 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
719 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
720 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
721 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
722 DisplayPBDeviceChemistry (
723 Struct
->Type22
->DeviceChemistry
,
726 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
727 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
728 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
729 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
730 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
731 DisplaySBDSManufactureDate (
732 Struct
->Type22
->SBDSManufactureDate
,
735 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
736 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
737 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
741 // System Reset (Type 23)
744 DisplaySystemResetCapabilities (
745 Struct
->Type23
->Capabilities
,
748 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
749 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
750 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
751 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
755 // Hardware Security (Type 24)
758 DisplayHardwareSecuritySettings (
759 Struct
->Type24
->HardwareSecuritySettings
,
765 // System Power Controls (Type 25)
768 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
769 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
770 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
771 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
772 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
776 // Voltage Probe (Type 26)
779 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
780 DisplayVPLocation (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
781 DisplayVPStatus (*(UINT8
*) &(Struct
->Type26
->LocationAndStatus
), Option
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
783 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
784 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
785 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
786 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
787 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
788 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
792 // Cooling Device (Type 27)
795 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
796 DisplayCoolingDeviceStatus (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
797 DisplayCoolingDeviceType (*(UINT8
*) &(Struct
->Type27
->DeviceTypeAndStatus
), Option
);
798 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
799 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
800 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
801 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct
->Hdr
->Length
> 0xE)) {
802 PRINT_PENDING_STRING (Struct
, Type27
, Description
);
807 // Temperature Probe (Type 28)
810 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
811 DisplayTemperatureProbeStatus (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
812 DisplayTemperatureProbeLoc (*(UINT8
*) &(Struct
->Type28
->LocationAndStatus
), Option
);
813 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
814 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
815 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
816 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
817 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
818 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
819 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
823 // Electrical Current Probe (Type 29)
826 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
827 DisplayECPStatus (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
828 DisplayECPLoc (*(UINT8
*) &(Struct
->Type29
->LocationAndStatus
), Option
);
829 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
830 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
831 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
832 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
833 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
834 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
835 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
839 // Out-of-Band Remote Access (Type 30)
842 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
843 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
847 // Boot Integrity Services (BIS) Entry Point (Type 31)
850 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
854 // System Boot Information (Type 32)
857 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
858 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
, Option
);
862 // 64-Bit Memory Error Information (Type 33)
865 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
866 DisplayMemoryErrorGranularity (
867 Struct
->Type33
->ErrorGranularity
,
870 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
871 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
872 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, MemoryArrayErrorAddress
);
873 PRINT_STRUCT_VALUE_LH (Struct
, Type33
, DeviceErrorAddress
);
874 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
878 // Management Device (Type 34)
881 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
882 DisplayMDType (Struct
->Type34
->Type
, Option
);
883 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
884 DisplayMDAddressType (Struct
->Type34
->AddressType
, Option
);
888 // Management Device Component (Type 35)
891 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
892 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
893 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
894 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
898 // Management Device Threshold Data (Type 36)
901 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
902 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
903 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
904 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
905 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
906 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
910 // Memory Channel (Type 37)
916 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
917 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
918 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
920 Count
= Struct
->Type37
->MemoryDeviceCount
;
921 Ptr
= Struct
->Type37
->MemoryDevice
;
922 for (Index
= 0; Index
< Count
; Index
++) {
923 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
924 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceLoad
);
925 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
[Index
].DeviceHandle
);
931 // IPMI Device Information (Type 38)
934 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
935 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
936 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
937 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
938 PRINT_STRUCT_VALUE_LH (Struct
, Type38
, BaseAddress
);
942 // System Power Supply (Type 39)
945 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
946 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
947 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
948 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
949 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
950 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
951 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
952 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
953 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
954 DisplaySPSCharacteristics (
955 *(UINT16
*) &(Struct
->Type39
->PowerSupplyCharacteristics
),
958 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
959 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
960 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
964 // Additional Information (Type 40)
968 UINT8 NumberOfEntries
;
970 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
973 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
974 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
976 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
978 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
979 EntryLength
= Entries
->EntryLength
;
980 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
981 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
982 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
983 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
984 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
985 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
991 // Onboard Devices Extended Information (Type 41)
994 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
995 ShellPrintEx(-1,-1,(((Struct
->Type41
->DeviceType
) & 0x80) != 0) ? L
"Device Enabled\n": L
"Device Disabled\n");
996 DisplayOnboardDeviceTypes ((Struct
->Type41
->DeviceType
) & 0x7F, Option
);
997 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
998 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
999 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
1000 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
1004 // Management Controller Host Interface (Type 42)
1007 PRINT_STRUCT_VALUE_H (Struct
, Type42
, InterfaceType
);
1011 // Inactive (Type 126)
1014 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
1018 // End-of-Table (Type 127)
1021 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
1025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
1033 Display BIOS Information (Type 0) information.
1035 @param[in] Chara The information bits.
1036 @param[in] Option The optional information.
1039 DisplayBiosCharacteristics (
1047 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
1051 PRINT_INFO_OPTION (Chara
, Option
);
1054 // Check all the bits and print information
1055 // This function does not use Table because table of bits
1056 // are designed not to deal with UINT64
1058 if (BIT (Chara
, 0) != 0) {
1059 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1062 if (BIT (Chara
, 1) != 0) {
1063 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
1066 if (BIT (Chara
, 2) != 0) {
1067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
1070 if (BIT (Chara
, 3) != 0) {
1071 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
1074 if (BIT (Chara
, 4) != 0) {
1075 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
1078 if (BIT (Chara
, 5) != 0) {
1079 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
1082 if (BIT (Chara
, 6) != 0) {
1083 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
1086 if (BIT (Chara
, 7) != 0) {
1087 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
1090 if (BIT (Chara
, 8) != 0) {
1091 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
1094 if (BIT (Chara
, 9) != 0) {
1095 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
1098 if (BIT (Chara
, 10) != 0) {
1099 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1102 if (BIT (Chara
, 11) != 0) {
1103 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1106 if (BIT (Chara
, 12) != 0) {
1107 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1110 if (BIT (Chara
, 13) != 0) {
1111 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1114 if (BIT (Chara
, 14) != 0) {
1115 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1118 if (BIT (Chara
, 15) != 0) {
1119 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1122 if (BIT (Chara
, 16) != 0) {
1123 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1126 if (BIT (Chara
, 17) != 0) {
1127 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1130 if (BIT (Chara
, 18) != 0) {
1131 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1134 if (BIT (Chara
, 19) != 0) {
1135 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1138 if (BIT (Chara
, 20) != 0) {
1139 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1142 if (BIT (Chara
, 21) != 0) {
1143 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1146 if (BIT (Chara
, 22) != 0) {
1147 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1150 if (BIT (Chara
, 23) != 0) {
1151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1154 if (BIT (Chara
, 24) != 0) {
1155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1158 if (BIT (Chara
, 25) != 0) {
1159 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1162 if (BIT (Chara
, 26) != 0) {
1163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1166 if (BIT (Chara
, 27) != 0) {
1167 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1170 if (BIT (Chara
, 28) != 0) {
1171 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1174 if (BIT (Chara
, 29) != 0) {
1175 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1178 if (BIT (Chara
, 30) != 0) {
1179 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1182 if (BIT (Chara
, 31) != 0) {
1183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1186 // Just print the Reserved
1188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1193 Display Bios Characteristice extensions1 information.
1195 @param[in] Byte1 The information.
1196 @param[in] Option The optional information.
1199 DisplayBiosCharacteristicsExt1 (
1204 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1208 PRINT_INFO_OPTION (Byte1
, Option
);
1211 // check bit and print
1213 if (BIT (Byte1
, 0) != 0) {
1214 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1217 if (BIT (Byte1
, 1) != 0) {
1218 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1221 if (BIT (Byte1
, 2) != 0) {
1222 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1225 if (BIT (Byte1
, 3) != 0) {
1226 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1229 if (BIT (Byte1
, 4) != 0) {
1230 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1233 if (BIT (Byte1
, 5) != 0) {
1234 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1237 if (BIT (Byte1
, 6) != 0) {
1238 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1241 if (BIT (Byte1
, 7) != 0) {
1242 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1247 Display Bios Characteristice extensions2 information.
1249 @param[in] byte2 The information.
1250 @param[in] Option The optional information.
1253 DisplayBiosCharacteristicsExt2 (
1258 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1262 PRINT_INFO_OPTION (byte2
, Option
);
1264 if (BIT (byte2
, 0) != 0) {
1265 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1268 if (BIT (byte2
, 1) != 0) {
1269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1272 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1273 if (BIT (byte2
, 2) != 0) {
1274 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLE_TAR_CONT_DIST
), gShellDebug1HiiHandle
);
1276 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1277 if (BIT (byte2
, 3) != 0) {
1278 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UEFI_SPEC_SUPPORT
), gShellDebug1HiiHandle
);
1280 if (BIT (byte2
, 4) != 0) {
1281 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VIRTUAL_MACHINE
), gShellDebug1HiiHandle
);
1283 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 5);
1285 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 3);
1288 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
, 2);
1293 Display Processor Information (Type 4) information.
1295 @param[in] Family The family value.
1296 @param[in] Option The option value.
1299 DisplayProcessorFamily (
1305 // Print prompt message
1307 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1311 PRINT_INFO_OPTION (Family
, Option
);
1314 // Use switch to check
1318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1322 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1338 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1358 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1362 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1366 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1370 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1374 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1378 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1382 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1386 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1390 Print (L
"M2 Family\n");
1394 Print (L
"Intel Celeron M\n");
1398 Print (L
"Intel Pentium 4 HT\n");
1402 Print (L
"AMD Duron\n");
1406 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1410 Print (L
"K6 Family\n");
1422 Print (L
"AMD Althon Processor Family\n");
1426 Print (L
"AMD 29000 Family\n");
1434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1438 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1442 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1446 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1450 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1454 Print (L
"Power PC 620\n");
1458 Print (L
"Power PC 704\n");
1462 Print (L
"Power PC 750\n");
1466 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1474 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1482 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1486 Print (L
"Alpha 21064\n");
1490 Print (L
"Alpha 21066\n");
1494 Print (L
"Alpha 21164\n");
1498 Print (L
"Alpha 21164PC\n");
1502 Print (L
"Alpha 21164a\n");
1506 Print (L
"Alpha 21264\n");
1510 Print (L
"Alpha 21364\n");
1514 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1518 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1522 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1526 Print (L
"AMD Opteron 6100 Series Processor\n");
1530 Print (L
"AMD Opteron 4100 Series Processor\n");
1534 Print (L
"AMD Opteron 6200 Series Processor\n");
1538 Print (L
"AMD Opteron 4200 Series Processor\n");
1542 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_FX_SERIES
), gShellDebug1HiiHandle
);
1546 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1550 Print (L
"MIPS R4000\n");
1554 Print (L
"MIPS R4200\n");
1558 Print (L
"MIPS R4400\n");
1562 Print (L
"MIPS R4600\n");
1566 Print (L
"MIPS R10000\n");
1570 Print (L
"AMD C-Series Processor\n");
1574 Print (L
"AMD E-Series Processor\n");
1578 Print (L
"AMD A-Series Processor\n");
1582 Print (L
"AMD G-Series Processor\n");
1586 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_Z_SERIES
), gShellDebug1HiiHandle
);
1590 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_R_SERIES
), gShellDebug1HiiHandle
);
1594 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_4300_SERIES
), gShellDebug1HiiHandle
);
1598 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_6300_SERIES
), gShellDebug1HiiHandle
);
1602 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3300_SERIES
), gShellDebug1HiiHandle
);
1606 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_FIREPRO_SERIES
), gShellDebug1HiiHandle
);
1610 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1614 Print (L
"SuperSparc\n");
1618 Print (L
"microSparc II\n");
1622 Print (L
"microSparc IIep\n");
1626 Print (L
"UltraSparc\n");
1630 Print (L
"UltraSparc II\n");
1634 Print (L
"UltraSparcIIi\n");
1638 Print (L
"UltraSparcIII\n");
1642 Print (L
"UltraSparcIIIi\n");
1646 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1670 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1674 Print (L
"Crusoe TM5000\n");
1678 Print (L
"Crusoe TM3000\n");
1682 Print (L
"Efficeon TM8000\n");
1686 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1690 Print (L
"Itanium\n");
1694 Print (L
"AMD Athlon64\n");
1698 Print (L
"AMD Opteron\n");
1702 Print (L
"AMD Sempron\n");
1706 Print (L
"AMD Turion64 Mobile\n");
1710 Print (L
"Dual-Core AMD Opteron\n");
1714 Print (L
"AMD Athlon 64X2 DualCore\n");
1718 Print (L
"AMD Turion 64X2 Mobile\n");
1722 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1726 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1730 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1734 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1738 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1742 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1746 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1750 Print (L
"PA-RISC 8500\n");
1754 Print (L
"PA-RISC 8000\n");
1758 Print (L
"PA-RISC 7300LC\n");
1762 Print (L
"PA-RISC 7200\n");
1766 Print (L
"PA-RISC 7100LC\n");
1770 Print (L
"PA-RISC 7100\n");
1774 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1778 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1782 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1786 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1790 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1794 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1798 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1802 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1806 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1810 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1814 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1818 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1822 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1826 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1830 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1834 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1838 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1842 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
1846 Print (L
"Pentium 4 processor\n");
1850 Print (L
"Intel Xeon Processor\n");
1854 Print (L
"AS400 Family\n");
1858 Print (L
"Intel Xeon processor MP\n");
1862 Print (L
"AMD Althon XP Processor Family\n");
1866 Print (L
"AMD Althon MP Promcessor Family\n");
1870 Print (L
"Intel Itanium 2 processor\n");
1874 Print (L
"Intel Penium M processor\n");
1878 Print (L
"Intel Celeron D processor\n");
1882 Print (L
"Intel Pentium D processor\n");
1886 Print (L
"Intel Pentium Processor Extreme Edition\n");
1890 Print (L
"Intel Core Solo Processor\n");
1894 Print (L
"Intel Core 2 Duo Processor\n");
1898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
1902 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1906 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
1910 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1914 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
1918 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1922 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
1926 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
1930 Print (L
"IBM 390\n");
1946 Print (L
"zArchitecture\n");
1950 Print (L
"Intel Core i5 processor\n");
1954 Print (L
"Intel Core i3 processor\n");
1958 Print (L
"ViaC7M\n");
1962 Print (L
"ViaC7D\n");
1974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
1978 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1982 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1990 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1994 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1998 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
2002 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
2006 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2010 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_3000_SERIES
), gShellDebug1HiiHandle
);
2014 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_II
), gShellDebug1HiiHandle
);
2019 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
2023 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
2027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2031 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
2035 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
2039 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
2043 Print (L
"AMD Phenom II Processor Family\n");
2047 Print (L
"AMD Althon II Processor Family\n");
2051 Print (L
"Six-Core AMD Opteron Processor Family\n");
2055 Print (L
"AMD Sempron M Processor Family\n");
2067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2075 Display processor family information.
2077 @param[in] Family2 The family value.
2078 @param[in] Option The option value.
2081 DisplayProcessorFamily2 (
2087 // Print prompt message
2089 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
2094 PRINT_INFO_OPTION (Family2
, Option
);
2097 // Use switch to check
2113 Print (L
"StrongARM\n");
2121 Print (L
"MediaGX\n");
2129 Print (L
"WinChip\n");
2137 Print (L
"Video Processor\n");
2141 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
2147 Display processor voltage information.
2149 @param[in] Voltage The Voltage.
2150 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
2151 Bits 6:4 Reserved, must be zero
2152 Bits 3:0 Voltage Capability.
2153 A Set bit indicates that the voltage is supported.
2157 Bit 3 - Reserved, must be zero.
2160 Setting of multiple bits indicates the socket is configurable
2161 If bit 7 is set to 1, the remaining seven bits of the field are set to
2162 contain the processor's current voltage times 10.
2163 For example, the field value for a processor voltage of 1.8 volts would be
2164 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
2166 @param[in] Option The option.
2169 DisplayProcessorVoltage (
2174 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
2178 PRINT_INFO_OPTION (Voltage
, Option
);
2180 if (BIT (Voltage
, 7) != 0) {
2181 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
2183 if (BIT (Voltage
, 0) != 0) {
2184 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
2187 if (BIT (Voltage
, 1) != 0) {
2188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
2191 if (BIT (Voltage
, 2) != 0) {
2192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
2195 // check the reserved zero bits:
2197 if (BIT (Voltage
, 3) != 0) {
2198 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2201 if (BIT (Voltage
, 4) != 0) {
2202 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2205 if (BIT (Voltage
, 5) != 0) {
2206 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2209 if (BIT (Voltage
, 6) != 0) {
2210 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
2216 Display processor information.
2218 @param[in] Status The status.
2219 Bit 7 Reserved, must be 0
2220 Bit 6 CPU Socket Populated
2221 1 - CPU Socket Populated
2222 0 - CPU Socket Unpopulated
2223 Bits 5:3 Reserved, must be zero
2227 2h - CPU Disabled by User via BIOS Setup
2228 3h - CPU Disabled By BIOS (POST Error)
2229 4h - CPU is Idle, waiting to be enabled.
2233 @param[in] Option The option
2236 DisplayProcessorStatus (
2241 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
2242 PRINT_INFO_OPTION (Status
, Option
);
2244 if (BIT (Status
, 7) != 0) {
2245 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT7_NOT_ZERO
), gShellDebug1HiiHandle
);
2246 } else if (BIT (Status
, 5) != 0) {
2247 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
2248 } else if (BIT (Status
, 4) != 0) {
2249 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2250 } else if (BIT (Status
, 3) != 0) {
2251 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
2256 if (BIT (Status
, 6) != 0) {
2257 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
2259 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
2264 switch (Status
& 0x07) {
2266 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2270 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
2274 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
2278 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
2282 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
2286 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
2290 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2295 Display information about Memory Controller Information (Type 5).
2297 @param[in] Size Memory size.
2298 @param[in] SlotNum Which slot is this about.
2299 @param[in] Option Option for the level of detail output required.
2302 DisplayMaxMemoryModuleSize (
2309 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
2311 // MaxSize is determined by follow formula
2313 MaxSize
= (UINTN
) 1 << Size
;
2314 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
2316 if (Option
>= SHOW_DETAIL
) {
2317 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
2318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
2323 Display information about memory configuration handles.
2325 @param[in] Handles The buffer of handles to output info on.
2326 @param[in] SlotNum The number of handles in the above buffer.
2327 @param[in] Option Option for the level of detail output required.
2330 DisplayMemoryModuleConfigHandles (
2337 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
2339 if (Option
>= SHOW_DETAIL
) {
2341 // No handle, Handles is INVALID.
2347 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2348 for (Index
= 0; Index
< SlotNum
; Index
++) {
2349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2355 Display Memory Module Information (Type 6).
2357 @param[in] BankConnections
2361 DisplayMmBankConnections (
2362 IN UINT8 BankConnections
,
2369 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2373 PRINT_INFO_OPTION (BankConnections
, Option
);
2376 // Divide it to high and low
2378 High
= (UINT8
) (BankConnections
& 0xF0);
2379 Low
= (UINT8
) (BankConnections
& 0x0F);
2382 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2384 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2388 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2390 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2396 Display memory informcation.
2399 where 2**n is the size in MB with three special-case values:
2400 7Dh Not determinable (Installed Size only)
2401 7Eh Module is installed, but no memory has been enabled
2403 Bit 7 Defines whether the memory module has a single- (0)
2404 or double-bank (1) connection.
2406 @param[in] Size - The size
2407 @param[in] Option - The option
2410 DisplayMmMemorySize (
2416 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2420 PRINT_INFO_OPTION (Size
, Option
);
2423 // Get the low bits(0-6 bit)
2425 Value
= (UINT8
) (Size
& 0x7F);
2426 if (Value
== 0x7D) {
2427 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2428 } else if (Value
== 0x7E) {
2429 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2430 } else if (Value
== 0x7F) {
2431 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2433 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2436 if (BIT (Size
, 7) != 0) {
2437 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2439 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2444 Display Cache Configuration.
2446 @param[in] CacheConfiguration Cache Configuration.
2447 Bits 15:10 Reserved, must be 0
2448 Bits 9:8 Operational Mode
2451 2h - Varies with Memory Address
2453 Bit 7 Enabled/Disabled
2461 Bit 4 Reserved, must be zero
2462 Bit 3 Cache Socketed
2465 Bits 2:0 Cache Level
2466 1 through 8 (For example, an L1 cache would
2467 use value 000b and an L3 cache would use 010b.)
2469 @param[in] Option The option
2472 DisplayCacheConfiguration (
2473 IN UINT16 CacheConfiguration
,
2477 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION
), gShellDebug1HiiHandle
);
2478 PRINT_INFO_OPTION (CacheConfiguration
, Option
);
2480 if (BIT (CacheConfiguration
, 15) != 0) {
2481 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO
), gShellDebug1HiiHandle
);
2482 } else if (BIT (CacheConfiguration
, 14) != 0) {
2483 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO
), gShellDebug1HiiHandle
);
2484 } else if (BIT (CacheConfiguration
, 13) != 0) {
2485 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO
), gShellDebug1HiiHandle
);
2486 } else if (BIT (CacheConfiguration
, 12) != 0) {
2487 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO
), gShellDebug1HiiHandle
);
2488 } else if (BIT (CacheConfiguration
, 11) != 0) {
2489 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO
), gShellDebug1HiiHandle
);
2490 } else if (BIT (CacheConfiguration
, 10) != 0) {
2491 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO
), gShellDebug1HiiHandle
);
2492 } else if (BIT (CacheConfiguration
, 4) != 0) {
2493 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
2499 switch ((CacheConfiguration
& 0x300) >> 8) {
2501 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH
), gShellDebug1HiiHandle
);
2505 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK
), gShellDebug1HiiHandle
);
2509 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR
), gShellDebug1HiiHandle
);
2513 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2520 if (BIT (CacheConfiguration
, 7) != 0) {
2521 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
2523 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2529 switch ((CacheConfiguration
& 0x60) >> 5) {
2531 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL
), gShellDebug1HiiHandle
);
2535 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL
), gShellDebug1HiiHandle
);
2539 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2543 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2550 if (BIT (CacheConfiguration
, 3) != 0) {
2551 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED
), gShellDebug1HiiHandle
);
2553 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED
), gShellDebug1HiiHandle
);
2557 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL
), gShellDebug1HiiHandle
, (CacheConfiguration
& 0x07) + 1);
2561 The Slot ID field of the System Slot structure provides a mechanism to
2562 correlate the physical attributes of the slot to its logical access method
2563 (which varies based on the Slot Type field).
2565 @param[in] SlotId - The slot ID
2566 @param[in] SlotType - The slot type
2567 @param[in] Option - The Option
2570 DisplaySystemSlotId (
2577 // Display slot type first
2579 DisplaySystemSlotType (SlotType
, Option
);
2581 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2585 PRINT_INFO_OPTION (SlotType
, Option
);
2592 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2593 if (SlotId
> 0 && SlotId
< 15) {
2594 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2596 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2604 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2605 if (SlotId
> 0 && SlotId
< 15) {
2606 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2608 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2616 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2623 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2630 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2634 if ((SlotType
>= 0x0E && SlotType
<= 0x12) || (SlotType
>= 0xA6 && SlotType
<= 0xB6)){
2635 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2637 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2643 Display System Boot Information (Type 32) information.
2645 @param[in] Parameter The parameter.
2646 @param[in] Option The options.
2649 DisplaySystemBootStatus (
2654 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2658 PRINT_INFO_OPTION (Parameter
, Option
);
2661 // Check value and print
2663 if (Parameter
== 0) {
2664 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2665 } else if (Parameter
== 1) {
2666 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2667 } else if (Parameter
== 2) {
2668 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2669 } else if (Parameter
== 3) {
2670 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2671 } else if (Parameter
== 4) {
2672 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2673 } else if (Parameter
== 5) {
2674 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2675 } else if (Parameter
== 6) {
2676 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2677 } else if (Parameter
== 7) {
2678 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2679 } else if (Parameter
== 8) {
2680 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2681 } else if (Parameter
>= 9 && Parameter
<= 127) {
2682 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2683 } else if (Parameter
>= 128 && Parameter
<= 191) {
2684 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2685 } else if (Parameter
>= 192) {
2686 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2688 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2693 Display Portable Battery (Type 22) information.
2695 The date the cell pack was manufactured, in packed format:
2696 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2697 Bits 8:5 Month, in the range 1 to 12.
2698 Bits 4:0 Date, in the range 1 to 31.
2699 For example, 01 February 2000 would be identified as
2700 0010 1000 0100 0001b (0x2841).
2702 @param[in] Date The date
2703 @param[in] Option The option
2706 DisplaySBDSManufactureDate (
2715 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2716 PRINT_INFO_OPTION (Date
, Option
);
2720 Day
= Date
& 0x001F;
2721 Month
= (Date
& 0x01E0) >> 5;
2722 Year
= ((Date
& 0xFE00) >> 9) + 1980;
2723 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2728 Display System Reset (Type 23) information.
2731 Identifies the system-reset capabilities for the system.
2732 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2733 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2734 Bits 4:3 Boot Option on Limit.
2735 Identifies the system action to be taken when the Reset Limit is reached, one of:
2736 00b Reserved, do not use.
2737 01b Operating system
2738 10b System utilities
2739 11b Do not rebootBits
2740 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2741 00b Reserved, do not use.
2742 01b Operating system
2743 10b System utilities
2746 1b The system reset is enabled by the user
2747 0b The system reset is not enabled by the user
2749 @param[in] Reset Reset
2750 @param[in] Option The option
2753 DisplaySystemResetCapabilities (
2760 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2761 PRINT_INFO_OPTION (Reset
, Option
);
2764 // Check reserved bits 7:6
2766 if ((Reset
& 0xC0) != 0) {
2767 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2772 if (BIT (Reset
, 5) != 0) {
2773 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2775 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2778 // Boot Option on Limit
2780 Temp
= (Reset
& 0x18) >> 3;
2781 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2784 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2788 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2792 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2796 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2802 Temp
= (Reset
& 0x06) >> 1;
2803 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2806 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2810 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2814 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2818 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2822 // Reset enable flag
2824 if ((Reset
& 0x01) != 0) {
2825 Print (L
"The system reset is enabled by the user\n");
2827 Print (L
"The system reset is disabled by the user\n");
2832 Display Hardware Security (Type 24) information.
2835 Identifies the password and reset status for the system:
2837 Bits 7:6 Power-on Password Status, one of:
2842 Bits 5:4 Keyboard Password Status, one of:
2847 Bits 3:2 Administrator Password Status, one of:
2852 Bits 1:0 Front Panel Reset Status, one of:
2858 @param[in] Settings The device settings.
2859 @param[in] Option The device options.
2862 DisplayHardwareSecuritySettings (
2869 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2870 PRINT_INFO_OPTION (Settings
, Option
);
2873 // Power-on Password Status
2875 Temp
= (Settings
& 0xC0) >> 6;
2876 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2879 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2887 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2891 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2895 // Keyboard Password Status
2897 Temp
= (Settings
& 0x30) >> 4;
2898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
2901 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2905 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2909 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2913 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2917 // Administrator Password Status
2919 Temp
= (Settings
& 0x0C) >> 2;
2920 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
2923 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2927 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2931 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2935 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2939 // Front Panel Reset Status
2941 Temp
= Settings
& 0x3;
2942 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
2945 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2949 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2953 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2957 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2963 Display Out-of-Band Remote Access (Type 30) information.
2965 @param[in] Connections The device characteristics.
2966 @param[in] Option The device options.
2969 DisplayOBRAConnections (
2970 IN UINT8 Connections
,
2974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
2975 PRINT_INFO_OPTION (Connections
, Option
);
2978 // Check reserved bits 7:2
2980 if ((Connections
& 0xFC) != 0) {
2981 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
2984 // Outbound Connection
2986 if (BIT (Connections
, 1) != 0) {
2987 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2989 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2992 // Inbound Connection
2994 if (BIT (Connections
, 0) != 0) {
2995 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
3002 Display System Power Supply (Type 39) information.
3004 @param[in] Characteristics The device characteristics.
3005 @param[in] Option The device options.
3008 DisplaySPSCharacteristics (
3009 IN UINT16 Characteristics
,
3015 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
3016 PRINT_INFO_OPTION (Characteristics
, Option
);
3019 // Check reserved bits 15:14
3021 if ((Characteristics
& 0xC000) != 0) {
3022 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
3025 // Bits 13:10 - DMTF Power Supply Type
3027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
3028 Temp
= (Characteristics
& 0x1C00) << 10;
3031 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3035 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3039 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
3043 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
3047 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
3051 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
3055 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
3059 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
3063 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
3066 // Bits 9:7 - Status
3068 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
3069 Temp
= (Characteristics
& 0x380) << 7;
3072 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3076 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3080 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
3084 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
3088 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
3092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
3095 // Bits 6:3 - DMTF Input Voltage Range Switching
3097 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
3098 Temp
= (Characteristics
& 0x78) << 3;
3101 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
3105 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
3109 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
3113 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
3117 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
3121 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
3125 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
3129 // Power supply is unplugged from the wall
3131 if (BIT (Characteristics
, 2) != 0) {
3132 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
3134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
3137 // Power supply is present
3139 if (BIT (Characteristics
, 1) != 0) {
3140 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
3142 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
3147 if (BIT (Characteristics
, 0) != 0) {
3148 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
3150 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);