2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #include "../UefiShellDebug1CommandsLib.h"
16 #include "PrintInfo.h"
17 #include "LibSmbiosView.h"
18 #include "QueryTable.h"
19 #include "EventLogInfo.h"
23 // Get the certain bit of 'value'
25 #define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
28 //////////////////////////////////////////////////////////
29 // Macros of print structure element, simplify coding.
31 #define PRINT_PENDING_STRING(pStruct, type, element) \
33 CHAR8 StringBuf[64]; \
34 SetMem (StringBuf, sizeof (StringBuf), 0x00); \
35 SmbiosGetPendingString ((pStruct), (pStruct->type->element), StringBuf); \
36 ShellPrintEx(-1,-1,L"%a",#element); \
37 ShellPrintEx(-1,-1,L": %a\n", StringBuf); \
40 #define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
42 CHAR8 StringBuf[64]; \
43 SetMem (StringBuf, sizeof (StringBuf), 0x00); \
44 SmbiosGetPendingString ((pStruct), (stringnumber), StringBuf); \
45 ShellPrintEx(-1,-1,L"%a",#element); \
46 ShellPrintEx(-1,-1,L": %a\n", StringBuf); \
49 #define PRINT_STRUCT_VALUE(pStruct, type, element) \
51 ShellPrintEx(-1,-1,L"%a",#element); \
52 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
55 #define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
57 ShellPrintEx(-1,-1,L"%a",#element); \
58 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
61 #define PRINT_BIT_FIELD(pStruct, type, element, size) \
63 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
64 ShellPrintEx(-1,-1,L"%a",#element); \
65 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
66 DumpHex (0, 0, size, &(pStruct->type->element)); \
69 #define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
71 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
72 ShellPrintEx(-1,-1,L"%a",#element); \
73 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
74 DumpHex (0, 0, size, startaddress); \
78 /////////////////////////////////////////
82 Copy Length of Src buffer to Dest buffer,
83 add a NULL termination to Dest buffer.
85 @param[in,out] Dest Destination buffer head.
86 @param[in] Src Source buffer head.
87 @param[in] Length Length of buffer to be copied.
98 SrcBuffer
= (UINT8
*) Src
;
99 DestBuffer
= (UINT8
*) Dest
;
103 while ((Length
--)!=0) {
104 *DestBuffer
++ = *SrcBuffer
++;
107 // append a NULL terminator
113 //////////////////////////////////////////////
115 // Functions below is to show the information
119 Print the info of EPS(Entry Point Structure).
121 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
122 @param[in] Option Display option.
126 IN SMBIOS_STRUCTURE_TABLE
*SmbiosTable
,
133 if (SmbiosTable
== NULL
) {
134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL
), gShellDebug1HiiHandle
);
138 if (Option
== SHOW_NONE
) {
142 if (Option
>= SHOW_NORMAL
) {
143 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN
), gShellDebug1HiiHandle
);
144 MemToString (Anchor
, SmbiosTable
->AnchorString
, 4);
145 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR
), gShellDebug1HiiHandle
, Anchor
);
146 ShellPrintHiiEx(-1,-1,NULL
,
147 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM
),
148 gShellDebug1HiiHandle
,
149 SmbiosTable
->EntryPointStructureChecksum
151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN
), gShellDebug1HiiHandle
, SmbiosTable
->EntryPointLength
);
152 ShellPrintHiiEx(-1,-1,NULL
,
153 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION
),
154 gShellDebug1HiiHandle
,
155 SmbiosTable
->MajorVersion
,
156 SmbiosTable
->MinorVersion
158 ShellPrintHiiEx(-1,-1,NULL
,
159 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT
),
160 gShellDebug1HiiHandle
,
161 SmbiosTable
->NumberOfSmbiosStructures
163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE
), gShellDebug1HiiHandle
, SmbiosTable
->MaxStructureSize
);
164 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR
), gShellDebug1HiiHandle
, SmbiosTable
->TableAddress
);
165 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH
), gShellDebug1HiiHandle
, SmbiosTable
->TableLength
);
169 // If SHOW_ALL, also print followings.
171 if (Option
>= SHOW_DETAIL
) {
172 ShellPrintHiiEx(-1,-1,NULL
,
173 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION
),
174 gShellDebug1HiiHandle
,
175 SmbiosTable
->EntryPointRevision
177 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION
), gShellDebug1HiiHandle
, SmbiosTable
->SmbiosBcdRevision
);
179 // Since raw data is not string, add a NULL terminater.
181 MemToString (InAnchor
, SmbiosTable
->IntermediateAnchorString
, 5);
182 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR
), gShellDebug1HiiHandle
, InAnchor
);
183 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM
), gShellDebug1HiiHandle
, SmbiosTable
->IntermediateChecksum
);
184 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA
), gShellDebug1HiiHandle
);
185 DumpHex (2, 0, 5, SmbiosTable
->FormattedArea
);
192 This function print the content of the structure pointed by Struct.
194 @param[in] Struct Point to the structure to be printed.
195 @param[in] Option Print option of information detail.
197 @retval EFI_SUCCESS Successfully Printing this function.
198 @retval EFI_INVALID_PARAMETER Invalid Structure.
199 @retval EFI_UNSUPPORTED Unsupported.
202 SmbiosPrintStructure (
203 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
210 Buffer
= (UINT8
*) (UINTN
) (Struct
->Raw
);
212 if (Struct
== NULL
) {
213 return EFI_INVALID_PARAMETER
;
216 if (Option
== SHOW_NONE
) {
220 // Display structure header
222 DisplayStructureTypeInfo (Struct
->Hdr
->Type
, SHOW_DETAIL
);
223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, Struct
->Hdr
->Length
);
224 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, Struct
->Hdr
->Handle
);
226 if (Option
== SHOW_OUTLINE
) {
230 switch (Struct
->Hdr
->Type
) {
235 PRINT_PENDING_STRING (Struct
, Type0
, Vendor
);
236 PRINT_PENDING_STRING (Struct
, Type0
, BiosVersion
);
237 PRINT_STRUCT_VALUE (Struct
, Type0
, BiosSegment
);
238 PRINT_PENDING_STRING (Struct
, Type0
, BiosReleaseDate
);
239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (Struct
->Type0
->BiosSize
+ 1));
241 if (Option
< SHOW_DETAIL
) {
242 PRINT_STRUCT_VALUE_H (Struct
, Type0
, BiosCharacteristics
);
244 DisplayBiosCharacteristics (Struct
->Type0
->BiosCharacteristics
, Option
);
247 // The length of above format part is 0x12 bytes,
248 // Ext bytes are following, size = 'len-0x12'.
249 // If len-0x12 > 0, then
250 // there are extension bytes (Byte1, byte2, byte3...)
251 // And byte3 not stated in spec, so dump all extension bytes(1, 2, 3..)
253 if ((Buffer
[1] - (CHAR8
) 0x12) > 0) {
254 DisplayBiosCharacteristicsExt1 (Buffer
[0x12], Option
);
257 if ((Buffer
[1] - (CHAR8
) 0x12) > 1) {
258 DisplayBiosCharacteristicsExt2 (Buffer
[0x13], Option
);
261 if ((Buffer
[1] - (CHAR8
) 0x12) > 2) {
266 Buffer
[1] - (CHAR8
) 0x12
273 // System Information (Type 1)
276 PRINT_PENDING_STRING (Struct
, Type1
, Manufacturer
);
277 PRINT_PENDING_STRING (Struct
, Type1
, ProductName
);
278 PRINT_PENDING_STRING (Struct
, Type1
, Version
);
279 PRINT_PENDING_STRING (Struct
, Type1
, SerialNumber
);
280 PRINT_BIT_FIELD (Struct
, Type1
, Uuid
, 16);
281 DisplaySystemWakeupType (Struct
->Type1
->WakeUpType
, Option
);
285 PRINT_PENDING_STRING (Struct
, Type2
, Manufacturer
);
286 PRINT_PENDING_STRING (Struct
, Type2
, ProductName
);
287 PRINT_PENDING_STRING (Struct
, Type2
, Version
);
288 PRINT_PENDING_STRING (Struct
, Type2
, SerialNumber
);
292 // System Enclosure (Type 3)
295 PRINT_PENDING_STRING (Struct
, Type3
, Manufacturer
);
296 PRINT_STRUCT_VALUE (Struct
, Type3
, Type
);
297 DisplaySystemEnclosureType (Struct
->Type3
->Type
, Option
);
298 PRINT_PENDING_STRING (Struct
, Type3
, Version
);
299 PRINT_PENDING_STRING (Struct
, Type3
, SerialNumber
);
300 PRINT_PENDING_STRING (Struct
, Type3
, AssetTag
);
301 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
302 DisplaySystemEnclosureStatus (Struct
->Type3
->BootupState
, Option
);
303 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
304 DisplaySystemEnclosureStatus (Struct
->Type3
->PowerSupplyState
, Option
);
305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
306 DisplaySystemEnclosureStatus (Struct
->Type3
->ThermalState
, Option
);
307 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
308 DisplaySESecurityStatus (Struct
->Type3
->SecurityStatus
, Option
);
309 PRINT_BIT_FIELD (Struct
, Type3
, OemDefined
, 4);
313 // Processor Information (Type 4)
316 PRINT_STRUCT_VALUE (Struct
, Type4
, Socket
);
317 DisplayProcessorType (Struct
->Type4
->ProcessorType
, Option
);
318 if ((SmbiosMajorVersion
> 0x2 || (SmbiosMajorVersion
== 0x2 && SmbiosMinorVersion
>= 0x6)) &&
319 (Struct
->Type4
->ProcessorFamily
== 0xFE)) {
321 // Get family from ProcessorFamily2 field
323 DisplayProcessorFamily2 (Struct
->Type4
->ProcessorFamily2
, Option
);
325 DisplayProcessorFamily (Struct
->Type4
->ProcessorFamily
, Option
);
327 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorManufacture
);
328 PRINT_BIT_FIELD (Struct
, Type4
, ProcessorId
, 8);
329 PRINT_PENDING_STRING (Struct
, Type4
, ProcessorVersion
);
330 DisplayProcessorVoltage (Struct
->Type4
->Voltage
, Option
);
331 PRINT_STRUCT_VALUE (Struct
, Type4
, ExternalClock
);
332 PRINT_STRUCT_VALUE (Struct
, Type4
, MaxSpeed
);
333 PRINT_STRUCT_VALUE (Struct
, Type4
, CurrentSpeed
);
334 DisplayProcessorStatus (Struct
->Type4
->Status
, Option
);
335 DisplayProcessorUpgrade (Struct
->Type4
->ProcessorUpgrade
, Option
);
336 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L1CacheHandle
);
337 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L2CacheHandle
);
338 PRINT_STRUCT_VALUE_H (Struct
, Type4
, L3CacheHandle
);
339 PRINT_PENDING_STRING (Struct
, Type4
, SerialNumber
);
340 PRINT_PENDING_STRING (Struct
, Type4
, AssetTag
);
341 PRINT_PENDING_STRING (Struct
, Type4
, PartNumber
);
342 if (SmbiosMajorVersion
> 0x2 || (SmbiosMajorVersion
== 0x2 && SmbiosMinorVersion
>= 0x5)) {
343 PRINT_STRUCT_VALUE (Struct
, Type4
, CoreCount
);
344 PRINT_STRUCT_VALUE (Struct
, Type4
, EnabledCoreCount
);
345 PRINT_STRUCT_VALUE (Struct
, Type4
, ThreadCount
);
346 PRINT_STRUCT_VALUE_H (Struct
, Type4
, ProcessorCharacteristics
);
351 // Memory Controller Information (Type 5)
356 SlotNum
= Struct
->Type5
->AssociatedMemorySlotNum
;
358 DisplayMcErrorDetectMethod (Struct
->Type5
->ErrDetectMethod
, Option
);
359 DisplayMcErrorCorrectCapability (Struct
->Type5
->ErrCorrectCapability
, Option
);
360 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
361 DisplayMcInterleaveSupport (Struct
->Type5
->SupportInterleave
, Option
);
362 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
363 DisplayMcInterleaveSupport (Struct
->Type5
->CurrentInterleave
, Option
);
364 DisplayMaxMemoryModuleSize (Struct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
365 DisplayMcMemorySpeeds (Struct
->Type5
->SupportSpeed
, Option
);
366 DisplayMmMemoryType (Struct
->Type5
->SupportMemoryType
, Option
);
367 DisplayMemoryModuleVoltage (Struct
->Type5
->MemoryModuleVoltage
, Option
);
368 PRINT_STRUCT_VALUE (Struct
, Type5
, AssociatedMemorySlotNum
);
370 // According to SMBIOS Specification, offset 0x0F
372 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
373 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
378 // Memory Module Information (Type 6)
381 PRINT_PENDING_STRING (Struct
, Type6
, SocketDesignation
);
382 DisplayMmBankConnections (Struct
->Type6
->BankConnections
, Option
);
383 PRINT_STRUCT_VALUE (Struct
, Type6
, CurrentSpeed
);
384 DisplayMmMemoryType (Struct
->Type6
->CurrentMemoryType
, Option
);
385 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
386 DisplayMmMemorySize (Struct
->Type6
->InstalledSize
, Option
);
387 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
388 DisplayMmMemorySize (Struct
->Type6
->EnabledSize
, Option
);
389 DisplayMmErrorStatus (Struct
->Type6
->ErrorStatus
, Option
);
393 // Cache Information (Type 7)
396 PRINT_PENDING_STRING (Struct
, Type7
, SocketDesignation
);
397 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheConfiguration
);
398 PRINT_STRUCT_VALUE_H (Struct
, Type7
, MaximumCacheSize
);
399 PRINT_STRUCT_VALUE_H (Struct
, Type7
, InstalledSize
);
400 PRINT_STRUCT_VALUE_H (Struct
, Type7
, SupportedSRAMType
);
401 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CurrentSRAMType
);
402 DisplayCacheSRAMType (Struct
->Type7
->CurrentSRAMType
, Option
);
403 PRINT_STRUCT_VALUE_H (Struct
, Type7
, CacheSpeed
);
404 DisplayCacheErrCorrectingType (Struct
->Type7
->ErrorCorrectionType
, Option
);
405 DisplayCacheSystemCacheType (Struct
->Type7
->SystemCacheType
, Option
);
406 DisplayCacheAssociativity (Struct
->Type7
->Associativity
, Option
);
410 // Port Connector Information (Type 8)
413 PRINT_PENDING_STRING (Struct
, Type8
, InternalReferenceDesignator
);
414 Print (L
"Internal ");
415 DisplayPortConnectorType (Struct
->Type8
->InternalConnectorType
, Option
);
416 PRINT_PENDING_STRING (Struct
, Type8
, ExternalReferenceDesignator
);
417 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
418 DisplayPortConnectorType (Struct
->Type8
->ExternalConnectorType
, Option
);
419 DisplayPortType (Struct
->Type8
->PortType
, Option
);
423 // System Slots (Type 9)
426 PRINT_PENDING_STRING (Struct
, Type9
, SlotDesignation
);
427 DisplaySystemSlotType (Struct
->Type9
->SlotType
, Option
);
428 DisplaySystemSlotDataBusWidth (Struct
->Type9
->SlotDataBusWidth
, Option
);
429 DisplaySystemSlotCurrentUsage (Struct
->Type9
->CurrentUsage
, Option
);
430 DisplaySystemSlotLength (Struct
->Type9
->SlotLength
, Option
);
431 DisplaySystemSlotId (
432 Struct
->Type9
->SlotID
,
433 Struct
->Type9
->SlotType
,
436 DisplaySlotCharacteristics1 (Struct
->Type9
->SlotCharacteristics1
, Option
);
437 DisplaySlotCharacteristics2 (Struct
->Type9
->SlotCharacteristics2
, Option
);
438 if (SmbiosMajorVersion
> 0x2 || (SmbiosMajorVersion
== 0x2 && SmbiosMinorVersion
>= 0x6)) {
439 PRINT_STRUCT_VALUE_H (Struct
, Type9
, SegmentGroupNum
);
440 PRINT_STRUCT_VALUE_H (Struct
, Type9
, BusNum
);
441 PRINT_STRUCT_VALUE_H (Struct
, Type9
, DevFuncNum
);
446 // On Board Devices Information (Type 10)
451 NumOfDevice
= (Struct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_HEADER
)) / (2 * sizeof (UINT8
));
452 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
453 DisplayOnboardDeviceTypes (Struct
->Type10
->Device
[Index
].DeviceType
, Option
);
454 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
455 ShellPrintEx(-1,-1,L
"%a",LibGetSmbiosString (Struct
, Struct
->Type10
->Device
[Index
].DescriptionString
));
461 PRINT_STRUCT_VALUE (Struct
, Type11
, StringCount
);
462 for (Index
= 1; Index
<= Struct
->Type11
->StringCount
; Index
++) {
463 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
468 PRINT_STRUCT_VALUE (Struct
, Type12
, StringCount
);
469 for (Index
= 1; Index
<= Struct
->Type12
->StringCount
; Index
++) {
470 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (Struct
, Index
));
475 PRINT_STRUCT_VALUE (Struct
, Type13
, InstallableLanguages
);
476 PRINT_STRUCT_VALUE (Struct
, Type13
, Flags
);
477 PRINT_BIT_FIELD (Struct
, Type13
, Reserved
, 15);
478 PRINT_PENDING_STRING (Struct
, Type13
, CurrentLanguages
);
482 PRINT_PENDING_STRING (Struct
, Type14
, GroupName
);
483 PRINT_STRUCT_VALUE (Struct
, Type14
, ItemType
);
484 PRINT_STRUCT_VALUE (Struct
, Type14
, ItemHandle
);
488 // System Event Log (Type 15)
494 UINT8
*AccessMethodAddress
;
496 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogAreaLength
);
497 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogHeaderStartOffset
);
498 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogDataStartOffset
);
499 DisplaySELAccessMethod (Struct
->Type15
->AccessMethod
, Option
);
500 PRINT_STRUCT_VALUE_H (Struct
, Type15
, AccessMethodAddress
);
501 DisplaySELLogStatus (Struct
->Type15
->LogStatus
, Option
);
502 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LogChangeToken
);
503 DisplaySysEventLogHeaderFormat (Struct
->Type15
->LogHeaderFormat
, Option
);
504 PRINT_STRUCT_VALUE_H (Struct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
505 PRINT_STRUCT_VALUE_H (Struct
, Type15
, LengthOfLogTypeDescriptor
);
507 Count
= Struct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
509 Ptr
= Struct
->Type15
->EventLogTypeDescriptors
;
512 // Display all Event Log type descriptors supported by system
514 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
515 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
516 DisplaySELTypes (Ptr
->LogType
, Option
);
517 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
520 if (Option
>= SHOW_DETAIL
) {
521 switch (Struct
->Type15
->AccessMethod
) {
523 AccessMethodAddress
= (UINT8
*) (UINTN
) (Struct
->Type15
->AccessMethodAddress
);
531 ShellPrintHiiEx(-1,-1,NULL
,
532 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
533 gShellDebug1HiiHandle
,
534 Struct
->Type15
->AccessMethod
536 return EFI_UNSUPPORTED
;
539 // Display Event Log Header
541 // Starting offset (or index) within the nonvolatile storage
542 // of the event-log's header, from the Access Method Address
544 DisplaySysEventLogHeader (
545 Struct
->Type15
->LogHeaderFormat
,
546 AccessMethodAddress
+ Struct
->Type15
->LogHeaderStartOffset
550 // Display all Event Log data
552 // Starting offset (or index) within the nonvolatile storage
553 // of the event-log's first data byte, from the Access Method Address(0x14)
555 DisplaySysEventLogData (
556 AccessMethodAddress
+ Struct
->Type15
->LogDataStartOffset
,
559 Struct
->Type15
->LogAreaLength
-
560 (Struct
->Type15
->LogDataStartOffset
- Struct
->Type15
->LogDataStartOffset
)
570 // Physical Memory Array (Type 16)
573 DisplayPMALocation (Struct
->Type16
->Location
, Option
);
574 DisplayPMAUse (Struct
->Type16
->Use
, Option
);
575 DisplayPMAErrorCorrectionTypes (
576 Struct
->Type16
->MemoryErrorCorrection
,
579 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MaximumCapacity
);
580 PRINT_STRUCT_VALUE_H (Struct
, Type16
, MemoryErrorInformationHandle
);
581 PRINT_STRUCT_VALUE_H (Struct
, Type16
, NumberOfMemoryDevices
);
585 // Memory Device (Type 17)
588 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryArrayHandle
);
589 PRINT_STRUCT_VALUE_H (Struct
, Type17
, MemoryErrorInformationHandle
);
590 PRINT_STRUCT_VALUE (Struct
, Type17
, TotalWidth
);
591 PRINT_STRUCT_VALUE (Struct
, Type17
, DataWidth
);
592 PRINT_STRUCT_VALUE (Struct
, Type17
, Size
);
593 DisplayMemoryDeviceFormFactor (Struct
->Type17
->FormFactor
, Option
);
594 PRINT_STRUCT_VALUE_H (Struct
, Type17
, DeviceSet
);
595 PRINT_PENDING_STRING (Struct
, Type17
, DeviceLocator
);
596 PRINT_PENDING_STRING (Struct
, Type17
, BankLocator
);
597 DisplayMemoryDeviceType (Struct
->Type17
->MemoryType
, Option
);
598 DisplayMemoryDeviceTypeDetail (Struct
->Type17
->TypeDetail
, Option
);
599 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Speed
);
600 PRINT_PENDING_STRING (Struct
, Type17
, Manufacturer
);
601 PRINT_PENDING_STRING (Struct
, Type17
, SerialNumber
);
602 PRINT_PENDING_STRING (Struct
, Type17
, AssetTag
);
603 PRINT_PENDING_STRING (Struct
, Type17
, PartNumber
);
604 if (SmbiosMajorVersion
> 0x2 || (SmbiosMajorVersion
== 0x2 && SmbiosMinorVersion
>= 0x6)) {
605 PRINT_STRUCT_VALUE_H (Struct
, Type17
, Attributes
);
610 // 32-bit Memory Error Information (Type 18)
613 DisplayMemoryErrorType (Struct
->Type18
->ErrorType
, Option
);
614 DisplayMemoryErrorGranularity (
615 Struct
->Type18
->ErrorGranularity
,
618 DisplayMemoryErrorOperation (Struct
->Type18
->ErrorOperation
, Option
);
619 PRINT_STRUCT_VALUE_H (Struct
, Type18
, VendorSyndrome
);
620 PRINT_STRUCT_VALUE_H (Struct
, Type18
, MemoryArrayErrorAddress
);
621 PRINT_STRUCT_VALUE_H (Struct
, Type18
, DeviceErrorAddress
);
622 PRINT_STRUCT_VALUE_H (Struct
, Type18
, ErrorResolution
);
626 // Memory Array Mapped Address (Type 19)
629 PRINT_STRUCT_VALUE_H (Struct
, Type19
, StartingAddress
);
630 PRINT_STRUCT_VALUE_H (Struct
, Type19
, EndingAddress
);
631 PRINT_STRUCT_VALUE_H (Struct
, Type19
, MemoryArrayHandle
);
632 PRINT_STRUCT_VALUE_H (Struct
, Type19
, PartitionWidth
);
636 // Memory Device Mapped Address (Type 20)
639 PRINT_STRUCT_VALUE_H (Struct
, Type20
, StartingAddress
);
640 PRINT_STRUCT_VALUE_H (Struct
, Type20
, EndingAddress
);
641 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryDeviceHandle
);
642 PRINT_STRUCT_VALUE_H (Struct
, Type20
, MemoryArrayMappedAddressHandle
);
643 PRINT_STRUCT_VALUE_H (Struct
, Type20
, PartitionRowPosition
);
644 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavePosition
);
645 PRINT_STRUCT_VALUE_H (Struct
, Type20
, InterleavedDataDepth
);
649 // Built-in Pointing Device (Type 21)
652 DisplayPointingDeviceType (Struct
->Type21
->Type
, Option
);
653 DisplayPointingDeviceInterface (Struct
->Type21
->Interface
, Option
);
654 PRINT_STRUCT_VALUE (Struct
, Type21
, NumberOfButtons
);
658 // Portable Battery (Type 22)
661 PRINT_PENDING_STRING (Struct
, Type22
, Location
);
662 PRINT_PENDING_STRING (Struct
, Type22
, Manufacturer
);
663 PRINT_PENDING_STRING (Struct
, Type22
, ManufactureDate
);
664 PRINT_PENDING_STRING (Struct
, Type22
, SerialNumber
);
665 PRINT_PENDING_STRING (Struct
, Type22
, DeviceName
);
666 DisplayPBDeviceChemistry (
667 Struct
->Type22
->DeviceChemistry
,
670 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DeviceCapacity
);
671 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignVoltage
);
672 PRINT_PENDING_STRING (Struct
, Type22
, SBDSVersionNumber
);
673 PRINT_STRUCT_VALUE_H (Struct
, Type22
, MaximumErrorInBatteryData
);
674 PRINT_STRUCT_VALUE_H (Struct
, Type22
, SBDSSerialNumber
);
675 DisplaySBDSManufactureDate (
676 Struct
->Type22
->SBDSManufactureDate
,
679 PRINT_PENDING_STRING (Struct
, Type22
, SBDSDeviceChemistry
);
680 PRINT_STRUCT_VALUE_H (Struct
, Type22
, DesignCapacityMultiplier
);
681 PRINT_STRUCT_VALUE_H (Struct
, Type22
, OEMSpecific
);
685 DisplaySystemResetCapabilities (
686 Struct
->Type23
->Capabilities
,
689 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetCount
);
690 PRINT_STRUCT_VALUE_H (Struct
, Type23
, ResetLimit
);
691 PRINT_STRUCT_VALUE_H (Struct
, Type23
, TimerInterval
);
692 PRINT_STRUCT_VALUE_H (Struct
, Type23
, Timeout
);
696 DisplayHardwareSecuritySettings (
697 Struct
->Type24
->HardwareSecuritySettings
,
703 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMonth
);
704 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnDayOfMonth
);
705 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnHour
);
706 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnMinute
);
707 PRINT_STRUCT_VALUE_H (Struct
, Type25
, NextScheduledPowerOnSecond
);
711 PRINT_PENDING_STRING (Struct
, Type26
, Description
);
712 DisplayVPLocation (Struct
->Type26
->LocationAndStatus
, Option
);
713 DisplayVPStatus (Struct
->Type26
->LocationAndStatus
, Option
);
714 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MaximumValue
);
715 PRINT_STRUCT_VALUE_H (Struct
, Type26
, MinimumValue
);
716 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Resolution
);
717 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Tolerance
);
718 PRINT_STRUCT_VALUE_H (Struct
, Type26
, Accuracy
);
719 PRINT_STRUCT_VALUE_H (Struct
, Type26
, OEMDefined
);
720 PRINT_STRUCT_VALUE_H (Struct
, Type26
, NominalValue
);
724 PRINT_STRUCT_VALUE_H (Struct
, Type27
, TemperatureProbeHandle
);
725 DisplayCoolingDeviceStatus (Struct
->Type27
->DeviceTypeAndStatus
, Option
);
726 DisplayCoolingDeviceType (Struct
->Type27
->DeviceTypeAndStatus
, Option
);
727 PRINT_STRUCT_VALUE_H (Struct
, Type27
, CoolingUnitGroup
);
728 PRINT_STRUCT_VALUE_H (Struct
, Type27
, OEMDefined
);
729 PRINT_STRUCT_VALUE_H (Struct
, Type27
, NominalSpeed
);
733 PRINT_PENDING_STRING (Struct
, Type28
, Description
);
734 DisplayTemperatureProbeStatus (Struct
->Type28
->LocationAndStatus
, Option
);
735 DisplayTemperatureProbeLoc (Struct
->Type28
->LocationAndStatus
, Option
);
736 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MaximumValue
);
737 PRINT_STRUCT_VALUE_H (Struct
, Type28
, MinimumValue
);
738 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Resolution
);
739 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Tolerance
);
740 PRINT_STRUCT_VALUE_H (Struct
, Type28
, Accuracy
);
741 PRINT_STRUCT_VALUE_H (Struct
, Type28
, OEMDefined
);
742 PRINT_STRUCT_VALUE_H (Struct
, Type28
, NominalValue
);
746 PRINT_PENDING_STRING (Struct
, Type29
, Description
);
747 DisplayECPStatus (Struct
->Type29
->LocationAndStatus
, Option
);
748 DisplayECPLoc (Struct
->Type29
->LocationAndStatus
, Option
);
749 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MaximumValue
);
750 PRINT_STRUCT_VALUE_H (Struct
, Type29
, MinimumValue
);
751 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Resolution
);
752 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Tolerance
);
753 PRINT_STRUCT_VALUE_H (Struct
, Type29
, Accuracy
);
754 PRINT_STRUCT_VALUE_H (Struct
, Type29
, OEMDefined
);
755 PRINT_STRUCT_VALUE_H (Struct
, Type29
, NominalValue
);
759 PRINT_PENDING_STRING (Struct
, Type30
, ManufacturerName
);
760 DisplayOBRAConnections (Struct
->Type30
->Connections
, Option
);
764 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
768 PRINT_BIT_FIELD (Struct
, Type32
, Reserved
, 6);
769 DisplaySystemBootStatus (Struct
->Type32
->BootStatus
[0], Option
);
773 DisplayMemoryErrorType (Struct
->Type33
->ErrorType
, Option
);
774 DisplayMemoryErrorGranularity (
775 Struct
->Type33
->ErrorGranularity
,
778 DisplayMemoryErrorOperation (Struct
->Type33
->ErrorOperation
, Option
);
779 PRINT_STRUCT_VALUE_H (Struct
, Type33
, VendorSyndrome
);
780 PRINT_STRUCT_VALUE_H (Struct
, Type33
, MemoryArrayErrorAddress
);
781 PRINT_STRUCT_VALUE_H (Struct
, Type33
, DeviceErrorAddress
);
782 PRINT_STRUCT_VALUE_H (Struct
, Type33
, ErrorResolution
);
786 // Management Device (Type 34)
789 PRINT_PENDING_STRING (Struct
, Type34
, Description
);
790 DisplayMDType (Struct
->Type34
->Type
, Option
);
791 PRINT_STRUCT_VALUE_H (Struct
, Type34
, Address
);
792 PRINT_STRUCT_VALUE_H (Struct
, Type34
, AddressType
);
796 PRINT_PENDING_STRING (Struct
, Type35
, Description
);
797 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ManagementDeviceHandle
);
798 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ComponentHandle
);
799 PRINT_STRUCT_VALUE_H (Struct
, Type35
, ThresholdHandle
);
803 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonCritical
);
804 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonCritical
);
805 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdCritical
);
806 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdCritical
);
807 PRINT_STRUCT_VALUE_H (Struct
, Type36
, LowerThresholdNonRecoverable
);
808 PRINT_STRUCT_VALUE_H (Struct
, Type36
, UpperThresholdNonRecoverable
);
812 // Memory Channel (Type 37)
818 DisplayMemoryChannelType (Struct
->Type37
->ChannelType
, Option
);
819 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MaximumChannelLoad
);
820 PRINT_STRUCT_VALUE_H (Struct
, Type37
, MemoryDeviceCount
);
822 Count
= Struct
->Type37
->MemoryDeviceCount
;
823 Ptr
= Struct
->Type37
->MemoryDevice
;
824 for (Index
= 0; Index
< Count
; Index
++) {
825 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
826 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
->DeviceLoad
);
827 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
->DeviceHandle
);
833 // IPMI Device Information (Type 38)
836 DisplayIPMIDIBMCInterfaceType (Struct
->Type38
->InterfaceType
, Option
);
837 PRINT_STRUCT_VALUE_H (Struct
, Type38
, IPMISpecificationRevision
);
838 PRINT_STRUCT_VALUE_H (Struct
, Type38
, I2CSlaveAddress
);
839 PRINT_STRUCT_VALUE_H (Struct
, Type38
, NVStorageDeviceAddress
);
840 PRINT_STRUCT_VALUE_H (Struct
, Type38
, BaseAddress
);
844 // System Power Supply (Type 39)
847 PRINT_STRUCT_VALUE_H (Struct
, Type39
, PowerUnitGroup
);
848 PRINT_PENDING_STRING (Struct
, Type39
, Location
);
849 PRINT_PENDING_STRING (Struct
, Type39
, DeviceName
);
850 PRINT_PENDING_STRING (Struct
, Type39
, Manufacturer
);
851 PRINT_PENDING_STRING (Struct
, Type39
, SerialNumber
);
852 PRINT_PENDING_STRING (Struct
, Type39
, AssetTagNumber
);
853 PRINT_PENDING_STRING (Struct
, Type39
, ModelPartNumber
);
854 PRINT_PENDING_STRING (Struct
, Type39
, RevisionLevel
);
855 PRINT_STRUCT_VALUE_H (Struct
, Type39
, MaxPowerCapacity
);
856 DisplaySPSCharacteristics (
857 Struct
->Type39
->PowerSupplyCharacteristics
,
860 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputVoltageProbeHandle
);
861 PRINT_STRUCT_VALUE_H (Struct
, Type39
, CoolingDeviceHandle
);
862 PRINT_STRUCT_VALUE_H (Struct
, Type39
, InputCurrentProbeHandle
);
866 // Additional Information (Type 40)
870 UINT8 NumberOfEntries
;
872 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
875 Entries
= Struct
->Type40
->AdditionalInfoEntries
;
876 NumberOfEntries
= Struct
->Type40
->NumberOfAdditionalInformationEntries
;
878 PRINT_STRUCT_VALUE_H (Struct
, Type40
, NumberOfAdditionalInformationEntries
);
880 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
881 EntryLength
= Entries
->EntryLength
;
882 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
883 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
884 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
885 PRINT_SMBIOS_STRING (Struct
, Entries
->EntryString
, String
);
886 PRINT_SMBIOS_BIT_FIELD (Struct
, Entries
->Value
, Value
, EntryLength
- 5);
887 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
893 // Onboard Devices Extended Information (Type 41)
896 PRINT_PENDING_STRING (Struct
, Type41
, ReferenceDesignation
);
897 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceType
);
898 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DeviceTypeInstance
);
899 PRINT_STRUCT_VALUE_H (Struct
, Type41
, SegmentGroupNum
);
900 PRINT_STRUCT_VALUE_H (Struct
, Type41
, BusNum
);
901 PRINT_STRUCT_VALUE_H (Struct
, Type41
, DevFuncNum
);
905 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
909 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
913 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
921 Display BIOS Information (Type 0) information.
923 @param[in] Chara The information bits.
924 @param[in] Option The optional information.
927 DisplayBiosCharacteristics (
935 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
939 PRINT_INFO_OPTION (Chara
, Option
);
942 // Check all the bits and print information
943 // This function does not use Table because table of bits
944 // are designed not to deal with UINT64
946 if (BIT (Chara
, 0) != 0) {
947 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
950 if (BIT (Chara
, 1) != 0) {
951 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
954 if (BIT (Chara
, 2) != 0) {
955 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
958 if (BIT (Chara
, 3) != 0) {
959 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
962 if (BIT (Chara
, 4) != 0) {
963 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
966 if (BIT (Chara
, 5) != 0) {
967 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
970 if (BIT (Chara
, 6) != 0) {
971 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
974 if (BIT (Chara
, 7) != 0) {
975 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
978 if (BIT (Chara
, 8) != 0) {
979 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
982 if (BIT (Chara
, 9) != 0) {
983 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
986 if (BIT (Chara
, 10) != 0) {
987 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
990 if (BIT (Chara
, 11) != 0) {
991 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
994 if (BIT (Chara
, 12) != 0) {
995 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
998 if (BIT (Chara
, 13) != 0) {
999 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1002 if (BIT (Chara
, 14) != 0) {
1003 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1006 if (BIT (Chara
, 15) != 0) {
1007 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1010 if (BIT (Chara
, 16) != 0) {
1011 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1014 if (BIT (Chara
, 17) != 0) {
1015 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1018 if (BIT (Chara
, 18) != 0) {
1019 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1022 if (BIT (Chara
, 19) != 0) {
1023 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1026 if (BIT (Chara
, 20) != 0) {
1027 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1030 if (BIT (Chara
, 21) != 0) {
1031 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1034 if (BIT (Chara
, 22) != 0) {
1035 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1038 if (BIT (Chara
, 23) != 0) {
1039 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1042 if (BIT (Chara
, 24) != 0) {
1043 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1046 if (BIT (Chara
, 25) != 0) {
1047 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1050 if (BIT (Chara
, 26) != 0) {
1051 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1054 if (BIT (Chara
, 27) != 0) {
1055 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1058 if (BIT (Chara
, 28) != 0) {
1059 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1062 if (BIT (Chara
, 29) != 0) {
1063 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1066 if (BIT (Chara
, 30) != 0) {
1067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1070 if (BIT (Chara
, 31) != 0) {
1071 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1074 // Just print the Reserved
1076 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1077 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1081 Display Bios Characteristice extensions1 information.
1083 @param[in] Byte1 The information.
1084 @param[in] Option The optional information.
1087 DisplayBiosCharacteristicsExt1 (
1092 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1096 PRINT_INFO_OPTION (Byte1
, Option
);
1099 // check bit and print
1101 if (BIT (Byte1
, 0) != 0) {
1102 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1105 if (BIT (Byte1
, 1) != 0) {
1106 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1109 if (BIT (Byte1
, 2) != 0) {
1110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1113 if (BIT (Byte1
, 3) != 0) {
1114 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1117 if (BIT (Byte1
, 4) != 0) {
1118 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1121 if (BIT (Byte1
, 5) != 0) {
1122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1125 if (BIT (Byte1
, 6) != 0) {
1126 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1129 if (BIT (Byte1
, 7) != 0) {
1130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1135 Display Bios Characteristice extensions2 information.
1137 @param[in] byte2 The information.
1138 @param[in] Option The optional information.
1141 DisplayBiosCharacteristicsExt2 (
1146 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1150 PRINT_INFO_OPTION (byte2
, Option
);
1152 if (BIT (byte2
, 0) != 0) {
1153 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1156 if (BIT (byte2
, 1) != 0) {
1157 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1160 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
);
1164 Display Processor Information (Type 4) information.
1166 @param[in] Family The family value.
1167 @param[in] Option The option value.
1170 DisplayProcessorFamily (
1176 // Print prompt message
1178 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1182 PRINT_INFO_OPTION (Family
, Option
);
1185 // Use switch to check
1189 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1193 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1205 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1209 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1229 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1233 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1237 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1241 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1245 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1249 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1253 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1257 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1261 Print (L
"AMD Duron\n");
1265 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1281 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1285 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1289 Print (L
"Power PC 620\n");
1293 Print (L
"Power PC 704\n");
1297 Print (L
"Power PC 750\n");
1301 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1309 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1313 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1317 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1321 Print (L
"Alpha 21064\n");
1325 Print (L
"Alpha 21066\n");
1329 Print (L
"Alpha 21164\n");
1333 Print (L
"Alpha 21164PC\n");
1337 Print (L
"Alpha 21164a\n");
1341 Print (L
"Alpha 21264\n");
1345 Print (L
"Alpha 21364\n");
1349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1353 Print (L
"MIPS R4000\n");
1357 Print (L
"MIPS R4200\n");
1361 Print (L
"MIPS R4400\n");
1365 Print (L
"MIPS R4600\n");
1369 Print (L
"MIPS R10000\n");
1373 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1377 Print (L
"SuperSparc\n");
1381 Print (L
"microSparc II\n");
1385 Print (L
"microSparc IIep\n");
1389 Print (L
"UltraSparc\n");
1393 Print (L
"UltraSparc II\n");
1397 Print (L
"UltraSparcIIi\n");
1401 Print (L
"UltraSparcIII\n");
1405 Print (L
"UltraSparcIIIi\n");
1409 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1433 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1437 Print (L
"Crusoe TM5000\n");
1441 Print (L
"Crusoe TM3000\n");
1445 Print (L
"Efficeon TM8000\n");
1449 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1453 Print (L
"Itanium\n");
1457 Print (L
"AMD Athlon64\n");
1461 Print (L
"AMD Opteron\n");
1465 Print (L
"AMD Sempron\n");
1469 Print (L
"AMD Turion64 Mobile\n");
1473 Print (L
"Dual-Core AMD Opteron\n");
1477 Print (L
"AMD Athlon 64X2 DualCore\n");
1481 Print (L
"AMD Turion 64X2 Mobile\n");
1485 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1489 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1493 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1497 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1501 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1505 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1509 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1513 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1517 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1521 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1525 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1529 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1533 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1537 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1541 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1545 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1553 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1557 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1561 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1565 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1569 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1573 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1577 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1581 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
1585 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1589 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), gShellDebug1HiiHandle
);
1593 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1597 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE
), gShellDebug1HiiHandle
);
1601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1605 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
1609 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
1613 Print (L
"IBM 390\n");
1629 Print (L
"zArchitectur\n");
1633 Print (L
"ViaC7M\n");
1637 Print (L
"ViaC7D\n");
1649 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
1653 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1657 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1673 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1681 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1685 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
1689 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
1693 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
1697 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
1701 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
1714 // In order to reduce code quality notice of
1715 // case & break not pair, so
1716 // move multiple case into the else part and
1717 // use if/else to check value.
1719 if (Family
>= 0x13 && Family
<= 0x17) {
1720 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_M1
), gShellDebug1HiiHandle
);
1721 } else if (Family
>= 0x1A && Family
<= 0x1F) {
1722 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_K5
), gShellDebug1HiiHandle
);
1723 } else if (Family
>= 0xB1 && Family
<= 0xBF) {
1724 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_PENTIUM
), gShellDebug1HiiHandle
);
1726 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
1735 Display processor family information.
1737 @param[in] Family2 The family value.
1738 @param[in] Option The option value.
1741 DisplayProcessorFamily2 (
1747 // Print prompt message
1749 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1754 PRINT_INFO_OPTION (Family2
, Option
);
1757 // Use switch to check
1773 Print (L
"StrongARM\n");
1781 Print (L
"MediaGX\n");
1789 Print (L
"WinChip\n");
1797 Print (L
"Video Processor\n");
1801 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
1807 Display processor voltage information.
1809 @param[in] Voltage The Voltage.
1810 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
1811 Bits 6:4 Reserved, must be zero
1812 Bits 3:0 Voltage Capability.
1813 A Set bit indicates that the voltage is supported.
1817 Bit 3 - Reserved, must be zero.
1820 Setting of multiple bits indicates the socket is configurable
1821 If bit 7 is set to 1, the remaining seven bits of the field are set to
1822 contain the processor's current voltage times 10.
1823 For example, the field value for a processor voltage of 1.8 volts would be
1824 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
1826 @param[in] Option The option.
1829 DisplayProcessorVoltage (
1834 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
1838 PRINT_INFO_OPTION (Voltage
, Option
);
1840 if (BIT (Voltage
, 7) != 0) {
1841 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
1843 if (BIT (Voltage
, 0) != 0) {
1844 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
1847 if (BIT (Voltage
, 1) != 0) {
1848 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
1851 if (BIT (Voltage
, 2) != 0) {
1852 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
1855 // check the reserved zero bits:
1857 if (BIT (Voltage
, 3) != 0) {
1858 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
1861 if (BIT (Voltage
, 4) != 0) {
1862 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
1865 if (BIT (Voltage
, 5) != 0) {
1866 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
1869 if (BIT (Voltage
, 6) != 0) {
1870 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
1876 Display processor information.
1878 @param[in] Status The status.
1879 Bit 7 Reserved, must be 0
1880 Bit 6 CPU Socket Populated
1881 1 - CPU Socket Populated
1882 0 - CPU Socket UnpopulatedBits
1883 5:3 Reserved, must be zero
1887 2h - CPU Disabled by User via BIOS Setup
1888 3h - CPU Disabled By BIOS (POST Error)
1889 4h - CPU is Idle, waiting to be enabled.
1893 @param[in] Option The option
1896 DisplayProcessorStatus (
1901 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
1902 PRINT_INFO_OPTION (Status
, Option
);
1904 if (BIT (Status
, 7) != 0) {
1905 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT7
), gShellDebug1HiiHandle
);
1906 } else if (BIT (Status
, 5) != 0) {
1907 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT5
), gShellDebug1HiiHandle
);
1908 } else if (BIT (Status
, 4) != 0) {
1909 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT4
), gShellDebug1HiiHandle
);
1910 } else if (BIT (Status
, 3) != 0) {
1911 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT3
), gShellDebug1HiiHandle
);
1916 if (BIT (Status
, 6) != 0) {
1917 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
1919 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
1924 switch (Status
& 0x07) {
1926 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1930 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
1934 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
1938 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
1942 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
1946 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
1950 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
1955 Display information about Memory Controller Information (Type 5).
1957 @param[in] Size Memory size.
1958 @param[in] SlotNum Which slot is this about.
1959 @param[in] Option Option for the level of detail output required.
1962 DisplayMaxMemoryModuleSize (
1969 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
1971 // MaxSize is determined by follow formula
1973 MaxSize
= (UINTN
) 1 << Size
;
1974 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
1976 if (Option
>= SHOW_DETAIL
) {
1977 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
1978 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
1983 Display information about memory configuration handles.
1985 @param[in] Handles The buffer of handles to output info on.
1986 @param[in] SlotNum The number of handles in the above buffer.
1987 @param[in] Option Option for the level of detail output required.
1990 DisplayMemoryModuleConfigHandles (
1997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
1999 if (Option
>= SHOW_DETAIL
) {
2001 // No handle, Handles is INVALID.
2007 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
2008 for (Index
= 0; Index
< SlotNum
; Index
++) {
2009 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
2015 Display Memory Module Information (Type 6).
2017 @param[in] BankConnections
2021 DisplayMmBankConnections (
2022 IN UINT8 BankConnections
,
2029 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2033 PRINT_INFO_OPTION (BankConnections
, Option
);
2036 // Divide it to high and low
2038 High
= (UINT8
) (BankConnections
& 0xF0);
2039 Low
= (UINT8
) (BankConnections
& 0x0F);
2042 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2044 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2048 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2050 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2056 Display memory informcation.
2059 where 2**n is the size in MB with three special-case values:
2060 7Dh Not determinable (Installed Size only)
2061 7Eh Module is installed, but no memory has been enabled
2063 Bit 7 Defines whether the memory module has a single- (0)
2064 or double-bank (1) connection.
2066 @param[in] Size - The size
2067 @param[in] Option - The option
2070 DisplayMmMemorySize (
2076 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2080 PRINT_INFO_OPTION (Size
, Option
);
2083 // Get the low bits(0-6 bit)
2085 Value
= (UINT8
) (Size
& 0x7F);
2086 if (Value
== 0x7D) {
2087 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2088 } else if (Value
== 0x7E) {
2089 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2090 } else if (Value
== 0x7F) {
2091 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2093 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2096 if (BIT (Size
, 7) != 0) {
2097 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2099 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2104 The Slot ID field of the System Slot structure provides a mechanism to
2105 correlate the physical attributes of the slot to its logical access method
2106 (which varies based on the Slot Type field).
2108 @param[in] SlotId - The slot ID
2109 @param[in] SlotType - The slot type
2110 @param[in] Option - The Option
2113 DisplaySystemSlotId (
2120 // Display slot type first
2122 DisplaySystemSlotType (SlotType
, Option
);
2124 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2128 PRINT_INFO_OPTION (SlotType
, Option
);
2135 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2136 if (SlotId
> 0 && SlotId
< 15) {
2137 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2139 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2147 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2148 if (SlotId
> 0 && SlotId
< 15) {
2149 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2159 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2166 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2173 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2177 if (SlotType
>= 0x0E && SlotType
<= 0x12) {
2178 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2180 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2186 Display System Boot Information (Type 32) information.
2188 @param[in] Parameter The parameter.
2189 @param[in] Option The options.
2192 DisplaySystemBootStatus (
2197 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2201 PRINT_INFO_OPTION (Parameter
, Option
);
2204 // Check value and print
2206 if (Parameter
== 0) {
2207 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2208 } else if (Parameter
== 1) {
2209 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2210 } else if (Parameter
== 2) {
2211 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2212 } else if (Parameter
== 3) {
2213 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2214 } else if (Parameter
== 4) {
2215 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2216 } else if (Parameter
== 5) {
2217 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2218 } else if (Parameter
== 6) {
2219 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2220 } else if (Parameter
== 7) {
2221 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2222 } else if (Parameter
== 8) {
2223 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2224 } else if (Parameter
>= 9 && Parameter
<= 127) {
2225 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2226 } else if (Parameter
>= 128 && Parameter
<= 191) {
2227 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2228 } else if (Parameter
>= 192 && Parameter
<= 255) {
2229 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2231 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2236 Display Portable Battery (Type 22) information.
2238 The date the cell pack was manufactured, in packed format:
2239 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2240 Bits 8:5 Month, in the range 1 to 12.
2241 Bits 4:0 Date, in the range 1 to 31.
2242 For example, 01 February 2000 would be identified as
2243 0010 1000 0100 0001b (0x2841).
2245 @param[in] Date The date
2246 @param[in] Option The option
2249 DisplaySBDSManufactureDate (
2258 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2259 PRINT_INFO_OPTION (Date
, Option
);
2263 Day
= Date
& 0x001F;
2264 Month
= (Date
& 0x00E0) >> 5;
2265 Year
= ((Date
& 0xFF00) >> 8) + 1980;
2266 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2271 Display System Reset (Type 23) information.
2274 Identifies the system-reset capabilities for the system.
2275 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2276 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2277 Bits 4:3 Boot Option on Limit.
2278 Identifies the system action to be taken when the Reset Limit is reached, one of:
2279 00b Reserved, do not use.
2280 01b Operating system
2281 10b System utilities
2282 11b Do not rebootBits
2283 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2284 00b Reserved, do not use.
2285 01b Operating system
2286 10b System utilities
2289 1b The system reset is enabled by the user
2290 0b The system reset is not enabled by the user
2292 @param[in] Reset Reset
2293 @param[in] Option The option
2296 DisplaySystemResetCapabilities (
2303 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2304 PRINT_INFO_OPTION (Reset
, Option
);
2307 // Check reserved bits 7:6
2309 if ((Reset
& 0xC0) != 0) {
2310 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2315 if (BIT (Reset
, 5) != 0) {
2316 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2318 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2321 // Boot Option on Limit
2323 Temp
= (Reset
& 0x18) >> 3;
2324 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2327 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2331 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2335 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2339 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2345 Temp
= (Reset
& 0x06) >> 1;
2346 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2353 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2357 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2361 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2365 // Reset enable flag
2367 if ((Reset
& 0x01) != 0) {
2368 Print (L
"The system reset is enabled by the user\n");
2370 Print (L
"The system reset is disabled by the user\n");
2375 Display Hardware Security (Type 24) information.
2378 Identifies the password and reset status for the system:
2380 Bits 7:6 Power-on Password Status, one of:
2385 Bits 5:4 Keyboard Password Status, one of:
2390 Bits 3:2 Administrator Password Status, one of:
2395 Bits 1:0 Front Panel Reset Status, one of:
2401 @param[in] Settings The device settings.
2402 @param[in] Option The device options.
2405 DisplayHardwareSecuritySettings (
2412 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2413 PRINT_INFO_OPTION (Settings
, Option
);
2416 // Power-on Password Status
2418 Temp
= (Settings
& 0xC0) >> 6;
2419 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2422 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2426 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2430 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2434 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2438 // Keyboard Password Status
2440 Temp
= (Settings
& 0x30) >> 4;
2441 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
2444 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2448 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2452 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2456 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2460 // Administrator Password Status
2462 Temp
= (Settings
& 0x0C) >> 2;
2463 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
2466 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2474 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2478 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2482 // Front Panel Reset Status
2484 Temp
= Settings
& 0x3;
2485 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
2488 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2492 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2496 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2500 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2506 Display Out-of-Band Remote Access (Type 30) information.
2508 @param[in] Connections The device characteristics.
2509 @param[in] Option The device options.
2512 DisplayOBRAConnections (
2513 IN UINT8 Connections
,
2517 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
2518 PRINT_INFO_OPTION (Connections
, Option
);
2521 // Check reserved bits 7:2
2523 if ((Connections
& 0xFC) != 0) {
2524 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
2527 // Outbound Connection
2529 if (BIT (Connections
, 1) != 0) {
2530 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2532 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2535 // Inbound Connection
2537 if (BIT (Connections
, 0) != 0) {
2538 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2540 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2545 Display System Power Supply (Type 39) information.
2547 @param[in] Characteristics The device characteristics.
2548 @param[in] Option The device options.
2551 DisplaySPSCharacteristics (
2552 IN UINT16 Characteristics
,
2558 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
2559 PRINT_INFO_OPTION (Characteristics
, Option
);
2562 // Check reserved bits 15:14
2564 if ((Characteristics
& 0xC000) != 0) {
2565 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
2568 // Bits 13:10 - DMTF Power Supply Type
2570 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
2571 Temp
= (Characteristics
& 0x1C00) << 10;
2574 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
2578 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2582 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
2586 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
2590 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
2594 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
2598 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
2602 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
2606 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
2609 // Bits 9:7 - Status
2611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
2612 Temp
= (Characteristics
& 0x380) << 7;
2615 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
2619 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2623 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
2627 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
2631 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
2635 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
2638 // Bits 6:3 - DMTF Input Voltage Range Switching
2640 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
2641 Temp
= (Characteristics
& 0x78) << 3;
2644 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
2648 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2652 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
2656 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
2660 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
2664 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
2668 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
2672 // Power supply is unplugged from the wall
2674 if (BIT (Characteristics
, 2) != 0) {
2675 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
2677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
2680 // Power supply is present
2682 if (BIT (Characteristics
, 1) != 0) {
2683 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
2685 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
2690 if (BIT (Characteristics
, 0) != 0) {
2691 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
2693 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);