2 Module for clarifying the content of the smbios structure element information.
4 Copyright (c) 2005 - 2010, 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 PrintPendingString(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 PrintSmbiosString(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 PrintStructValue(pStruct, type, element) \
51 ShellPrintEx(-1,-1,L"%a",#element); \
52 ShellPrintEx(-1,-1,L": %d\n", (pStruct->type->element)); \
55 #define PrintStructValueH(pStruct, type, element) \
57 ShellPrintEx(-1,-1,L"%a",#element); \
58 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
61 #define PrintBitField(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 PrintSmbiosBitField(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 /////////////////////////////////////////
89 Copy Length of Src buffer to Dest buffer,
90 add a NULL termination to Dest buffer.
93 Dest - Destination buffer head
94 Src - Source buffer head
95 Length - Length of buffer to be copied
104 SrcBuffer
= (UINT8
*) Src
;
105 DestBuffer
= (UINT8
*) Dest
;
109 while ((Length
--)!=0) {
110 *DestBuffer
++ = *SrcBuffer
++;
113 // append a NULL terminator
119 //////////////////////////////////////////////
121 // Functions below is to show the information
125 IN SMBIOS_STRUCTURE_TABLE
*SmbiosTable
,
131 Print the info of EPS(Entry Point Structure)
134 SmbiosTable - Pointer to the SMBIOS table entry point
135 Option - Display option
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 SmbiosPrintStructure (
204 IN SMBIOS_STRUCTURE_POINTER
*pStruct
,
210 This function print the content of the structure pointed by pStruct
213 pStruct - point to the structure to be printed
214 Option - print option of information detail
217 EFI_SUCCESS - Successfully Printing this function
218 EFI_INVALID_PARAMETER - Invalid Structure
219 EFI_UNSUPPORTED - Unsupported
226 Buffer
= (UINT8
*) (UINTN
) (pStruct
->Raw
);
228 if (pStruct
== NULL
) {
229 return EFI_INVALID_PARAMETER
;
232 if (Option
== SHOW_NONE
) {
236 // Display structure header
238 DisplayStructureTypeInfo (pStruct
->Hdr
->Type
, SHOW_DETAIL
);
239 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN
), gShellDebug1HiiHandle
, pStruct
->Hdr
->Length
);
240 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE
), gShellDebug1HiiHandle
, pStruct
->Hdr
->Handle
);
242 if (Option
== SHOW_OUTLINE
) {
246 switch (pStruct
->Hdr
->Type
) {
251 PrintPendingString (pStruct
, Type0
, Vendor
);
252 PrintPendingString (pStruct
, Type0
, BiosVersion
);
253 PrintStructValue (pStruct
, Type0
, BiosSegment
);
254 PrintPendingString (pStruct
, Type0
, BiosReleaseDate
);
255 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE
), gShellDebug1HiiHandle
, 64 * (pStruct
->Type0
->BiosSize
+ 1));
257 if (Option
< SHOW_DETAIL
) {
258 PrintStructValueH (pStruct
, Type0
, BiosCharacteristics
);
260 DisplayBiosCharacteristics (pStruct
->Type0
->BiosCharacteristics
, Option
);
263 // The length of above format part is 0x12 bytes,
264 // Ext bytes are following, size = 'len-0x12'.
265 // If len-0x12 > 0, then
266 // there are extension bytes (byte1, byte2, byte3...)
267 // And byte3 not stated in spec, so dump all extension bytes(1, 2, 3..)
269 if ((Buffer
[1] - (CHAR8
) 0x12) > 0) {
270 DisplayBiosCharacteristicsExt1 (Buffer
[0x12], Option
);
273 if ((Buffer
[1] - (CHAR8
) 0x12) > 1) {
274 DisplayBiosCharacteristicsExt2 (Buffer
[0x13], Option
);
277 if ((Buffer
[1] - (CHAR8
) 0x12) > 2) {
282 Buffer
[1] - (CHAR8
) 0x12
289 // System Information (Type 1)
292 PrintPendingString (pStruct
, Type1
, Manufacturer
);
293 PrintPendingString (pStruct
, Type1
, ProductName
);
294 PrintPendingString (pStruct
, Type1
, Version
);
295 PrintPendingString (pStruct
, Type1
, SerialNumber
);
296 PrintBitField (pStruct
, Type1
, Uuid
, 16);
297 DisplaySystemWakeupType (pStruct
->Type1
->WakeUpType
, Option
);
301 PrintPendingString (pStruct
, Type2
, Manufacturer
);
302 PrintPendingString (pStruct
, Type2
, ProductName
);
303 PrintPendingString (pStruct
, Type2
, Version
);
304 PrintPendingString (pStruct
, Type2
, SerialNumber
);
308 // System Enclosure (Type 3)
311 PrintPendingString (pStruct
, Type3
, Manufacturer
);
312 PrintStructValue (pStruct
, Type3
, Type
);
313 DisplaySystemEnclosureType (pStruct
->Type3
->Type
, Option
);
314 PrintPendingString (pStruct
, Type3
, Version
);
315 PrintPendingString (pStruct
, Type3
, SerialNumber
);
316 PrintPendingString (pStruct
, Type3
, AssetTag
);
317 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE
), gShellDebug1HiiHandle
);
318 DisplaySystemEnclosureStatus (pStruct
->Type3
->BootupState
, Option
);
319 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE
), gShellDebug1HiiHandle
);
320 DisplaySystemEnclosureStatus (pStruct
->Type3
->PowerSupplyState
, Option
);
321 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE
), gShellDebug1HiiHandle
);
322 DisplaySystemEnclosureStatus (pStruct
->Type3
->ThermalState
, Option
);
323 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS
), gShellDebug1HiiHandle
);
324 DisplaySESecurityStatus (pStruct
->Type3
->SecurityStatus
, Option
);
325 PrintBitField (pStruct
, Type3
, OemDefined
, 4);
329 // Processor Information (Type 4)
332 PrintStructValue (pStruct
, Type4
, Socket
);
333 DisplayProcessorType (pStruct
->Type4
->ProcessorType
, Option
);
334 if ((SmbiosMajorVersion
> 0x2 || (SmbiosMajorVersion
== 0x2 && SmbiosMinorVersion
>= 0x6)) &&
335 (pStruct
->Type4
->ProcessorFamily
== 0xFE)) {
337 // Get family from ProcessorFamily2 field
339 DisplayProcessorFamily2 (pStruct
->Type4
->ProcessorFamily2
, Option
);
341 DisplayProcessorFamily (pStruct
->Type4
->ProcessorFamily
, Option
);
343 PrintPendingString (pStruct
, Type4
, ProcessorManufacture
);
344 PrintBitField (pStruct
, Type4
, ProcessorId
, 8);
345 PrintPendingString (pStruct
, Type4
, ProcessorVersion
);
346 DisplayProcessorVoltage (pStruct
->Type4
->Voltage
, Option
);
347 PrintStructValue (pStruct
, Type4
, ExternalClock
);
348 PrintStructValue (pStruct
, Type4
, MaxSpeed
);
349 PrintStructValue (pStruct
, Type4
, CurrentSpeed
);
350 DisplayProcessorStatus (pStruct
->Type4
->Status
, Option
);
351 DisplayProcessorUpgrade (pStruct
->Type4
->ProcessorUpgrade
, Option
);
352 PrintStructValueH (pStruct
, Type4
, L1CacheHandle
);
353 PrintStructValueH (pStruct
, Type4
, L2CacheHandle
);
354 PrintStructValueH (pStruct
, Type4
, L3CacheHandle
);
355 PrintPendingString (pStruct
, Type4
, SerialNumber
);
356 PrintPendingString (pStruct
, Type4
, AssetTag
);
357 PrintPendingString (pStruct
, Type4
, PartNumber
);
358 if (SmbiosMajorVersion
> 0x2 || (SmbiosMajorVersion
== 0x2 && SmbiosMinorVersion
>= 0x5)) {
359 PrintStructValue (pStruct
, Type4
, CoreCount
);
360 PrintStructValue (pStruct
, Type4
, EnabledCoreCount
);
361 PrintStructValue (pStruct
, Type4
, ThreadCount
);
362 PrintStructValueH (pStruct
, Type4
, ProcessorCharacteristics
);
367 // Memory Controller Information (Type 5)
372 SlotNum
= pStruct
->Type5
->AssociatedMemorySlotNum
;
374 DisplayMcErrorDetectMethod (pStruct
->Type5
->ErrDetectMethod
, Option
);
375 DisplayMcErrorCorrectCapability (pStruct
->Type5
->ErrCorrectCapability
, Option
);
376 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT
), gShellDebug1HiiHandle
);
377 DisplayMcInterleaveSupport (pStruct
->Type5
->SupportInterleave
, Option
);
378 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT
), gShellDebug1HiiHandle
);
379 DisplayMcInterleaveSupport (pStruct
->Type5
->CurrentInterleave
, Option
);
380 DisplayMaxMemoryModuleSize (pStruct
->Type5
->MaxMemoryModuleSize
, SlotNum
, Option
);
381 DisplayMcMemorySpeeds (pStruct
->Type5
->SupportSpeed
, Option
);
382 DisplayMmMemoryType (pStruct
->Type5
->SupportMemoryType
, Option
);
383 DisplayMemoryModuleVoltage (pStruct
->Type5
->MemoryModuleVoltage
, Option
);
384 PrintStructValue (pStruct
, Type5
, AssociatedMemorySlotNum
);
386 // According to SMBIOS Specification, offset 0x0F
388 DisplayMemoryModuleConfigHandles ((UINT16
*) (&Buffer
[0x0F]), SlotNum
, Option
);
389 DisplayMcErrorCorrectCapability (Buffer
[0x0F + 2 * SlotNum
], Option
);
394 // Memory Module Information (Type 6)
397 PrintPendingString (pStruct
, Type6
, SocketDesignation
);
398 DisplayMmBankConnections (pStruct
->Type6
->BankConnections
, Option
);
399 PrintStructValue (pStruct
, Type6
, CurrentSpeed
);
400 DisplayMmMemoryType (pStruct
->Type6
->CurrentMemoryType
, Option
);
401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED
), gShellDebug1HiiHandle
);
402 DisplayMmMemorySize (pStruct
->Type6
->InstalledSize
, Option
);
403 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED
), gShellDebug1HiiHandle
);
404 DisplayMmMemorySize (pStruct
->Type6
->EnabledSize
, Option
);
405 DisplayMmErrorStatus (pStruct
->Type6
->ErrorStatus
, Option
);
409 // Cache Information (Type 7)
412 PrintPendingString (pStruct
, Type7
, SocketDesignation
);
413 PrintStructValueH (pStruct
, Type7
, CacheConfiguration
);
414 PrintStructValueH (pStruct
, Type7
, MaximumCacheSize
);
415 PrintStructValueH (pStruct
, Type7
, InstalledSize
);
416 PrintStructValueH (pStruct
, Type7
, SupportedSRAMType
);
417 PrintStructValueH (pStruct
, Type7
, CurrentSRAMType
);
418 DisplayCacheSRAMType (pStruct
->Type7
->CurrentSRAMType
, Option
);
419 PrintStructValueH (pStruct
, Type7
, CacheSpeed
);
420 DisplayCacheErrCorrectingType (pStruct
->Type7
->ErrorCorrectionType
, Option
);
421 DisplayCacheSystemCacheType (pStruct
->Type7
->SystemCacheType
, Option
);
422 DisplayCacheAssociativity (pStruct
->Type7
->Associativity
, Option
);
426 // Port Connector Information (Type 8)
429 PrintPendingString (pStruct
, Type8
, InternalReferenceDesignator
);
430 Print (L
"Internal ");
431 DisplayPortConnectorType (pStruct
->Type8
->InternalConnectorType
, Option
);
432 PrintPendingString (pStruct
, Type8
, ExternalReferenceDesignator
);
433 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL
), gShellDebug1HiiHandle
);
434 DisplayPortConnectorType (pStruct
->Type8
->ExternalConnectorType
, Option
);
435 DisplayPortType (pStruct
->Type8
->PortType
, Option
);
439 // System Slots (Type 9)
442 PrintPendingString (pStruct
, Type9
, SlotDesignation
);
443 DisplaySystemSlotType (pStruct
->Type9
->SlotType
, Option
);
444 DisplaySystemSlotDataBusWidth (pStruct
->Type9
->SlotDataBusWidth
, Option
);
445 DisplaySystemSlotCurrentUsage (pStruct
->Type9
->CurrentUsage
, Option
);
446 DisplaySystemSlotLength (pStruct
->Type9
->SlotLength
, Option
);
447 DisplaySystemSlotId (
448 pStruct
->Type9
->SlotID
,
449 pStruct
->Type9
->SlotType
,
452 DisplaySlotCharacteristics1 (pStruct
->Type9
->SlotCharacteristics1
, Option
);
453 DisplaySlotCharacteristics2 (pStruct
->Type9
->SlotCharacteristics2
, Option
);
454 if (SmbiosMajorVersion
> 0x2 || (SmbiosMajorVersion
== 0x2 && SmbiosMinorVersion
>= 0x6)) {
455 PrintStructValueH (pStruct
, Type9
, SegmentGroupNum
);
456 PrintStructValueH (pStruct
, Type9
, BusNum
);
457 PrintStructValueH (pStruct
, Type9
, DevFuncNum
);
462 // On Board Devices Information (Type 10)
467 NumOfDevice
= (pStruct
->Type10
->Hdr
.Length
- sizeof (SMBIOS_HEADER
)) / (2 * sizeof (UINT8
));
468 for (Index
= 0; Index
< NumOfDevice
; Index
++) {
469 DisplayOnboardDeviceTypes (pStruct
->Type10
->Device
[Index
].DeviceType
, Option
);
470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING
), gShellDebug1HiiHandle
);
471 ShellPrintEx(-1,-1,L
"%a",LibGetSmbiosString (pStruct
, pStruct
->Type10
->Device
[Index
].DescriptionString
));
477 PrintStructValue (pStruct
, Type11
, StringCount
);
478 for (Index
= 1; Index
<= pStruct
->Type11
->StringCount
; Index
++) {
479 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (pStruct
, Index
));
484 PrintStructValue (pStruct
, Type12
, StringCount
);
485 for (Index
= 1; Index
<= pStruct
->Type12
->StringCount
; Index
++) {
486 ShellPrintEx(-1,-1,L
"%a\n", LibGetSmbiosString (pStruct
, Index
));
491 PrintStructValue (pStruct
, Type13
, InstallableLanguages
);
492 PrintStructValue (pStruct
, Type13
, Flags
);
493 PrintBitField (pStruct
, Type13
, reserved
, 15);
494 PrintPendingString (pStruct
, Type13
, CurrentLanguages
);
498 PrintPendingString (pStruct
, Type14
, GroupName
);
499 PrintStructValue (pStruct
, Type14
, ItemType
);
500 PrintStructValue (pStruct
, Type14
, ItemHandle
);
504 // System Event Log (Type 15)
510 UINT8
*AccessMethodAddress
;
512 PrintStructValueH (pStruct
, Type15
, LogAreaLength
);
513 PrintStructValueH (pStruct
, Type15
, LogHeaderStartOffset
);
514 PrintStructValueH (pStruct
, Type15
, LogDataStartOffset
);
515 DisplaySELAccessMethod (pStruct
->Type15
->AccessMethod
, Option
);
516 PrintStructValueH (pStruct
, Type15
, AccessMethodAddress
);
517 DisplaySELLogStatus (pStruct
->Type15
->LogStatus
, Option
);
518 PrintStructValueH (pStruct
, Type15
, LogChangeToken
);
519 DisplaySysEventLogHeaderFormat (pStruct
->Type15
->LogHeaderFormat
, Option
);
520 PrintStructValueH (pStruct
, Type15
, NumberOfSupportedLogTypeDescriptors
);
521 PrintStructValueH (pStruct
, Type15
, LengthOfLogTypeDescriptor
);
523 Count
= pStruct
->Type15
->NumberOfSupportedLogTypeDescriptors
;
525 Ptr
= pStruct
->Type15
->EventLogTypeDescriptors
;
528 // Display all Event Log type descriptors supported by system
530 for (Index
= 0; Index
< Count
; Index
++, Ptr
++) {
531 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT
), gShellDebug1HiiHandle
, Index
+ 1);
532 DisplaySELTypes (Ptr
->LogType
, Option
);
533 DisplaySELVarDataFormatType (Ptr
->DataFormatType
, Option
);
536 if (Option
>= SHOW_DETAIL
) {
537 switch (pStruct
->Type15
->AccessMethod
) {
539 AccessMethodAddress
= (UINT8
*) (UINTN
) (pStruct
->Type15
->AccessMethodAddress
);
547 ShellPrintHiiEx(-1,-1,NULL
,
548 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED
),
549 gShellDebug1HiiHandle
,
550 pStruct
->Type15
->AccessMethod
552 return EFI_UNSUPPORTED
;
555 // Display Event Log Header
557 // Starting offset (or index) within the nonvolatile storage
558 // of the event-log's header, from the Access Method Address
560 DisplaySysEventLogHeader (
561 pStruct
->Type15
->LogHeaderFormat
,
562 AccessMethodAddress
+ pStruct
->Type15
->LogHeaderStartOffset
566 // Display all Event Log data
568 // Starting offset (or index) within the nonvolatile storage
569 // of the event-log's first data byte, from the Access Method Address(0x14)
571 DisplaySysEventLogData (
572 AccessMethodAddress
+ pStruct
->Type15
->LogDataStartOffset
,
575 pStruct
->Type15
->LogAreaLength
-
576 (pStruct
->Type15
->LogDataStartOffset
- pStruct
->Type15
->LogDataStartOffset
)
586 // Physical Memory Array (Type 16)
589 DisplayPMALocation (pStruct
->Type16
->Location
, Option
);
590 DisplayPMAUse (pStruct
->Type16
->Use
, Option
);
591 DisplayPMAErrorCorrectionTypes (
592 pStruct
->Type16
->MemoryErrorCorrection
,
595 PrintStructValueH (pStruct
, Type16
, MaximumCapacity
);
596 PrintStructValueH (pStruct
, Type16
, MemoryErrorInformationHandle
);
597 PrintStructValueH (pStruct
, Type16
, NumberOfMemoryDevices
);
601 // Memory Device (Type 17)
604 PrintStructValueH (pStruct
, Type17
, MemoryArrayHandle
);
605 PrintStructValueH (pStruct
, Type17
, MemoryErrorInformationHandle
);
606 PrintStructValue (pStruct
, Type17
, TotalWidth
);
607 PrintStructValue (pStruct
, Type17
, DataWidth
);
608 PrintStructValue (pStruct
, Type17
, Size
);
609 DisplayMemoryDeviceFormFactor (pStruct
->Type17
->FormFactor
, Option
);
610 PrintStructValueH (pStruct
, Type17
, DeviceSet
);
611 PrintPendingString (pStruct
, Type17
, DeviceLocator
);
612 PrintPendingString (pStruct
, Type17
, BankLocator
);
613 DisplayMemoryDeviceType (pStruct
->Type17
->MemoryType
, Option
);
614 DisplayMemoryDeviceTypeDetail (pStruct
->Type17
->TypeDetail
, Option
);
615 PrintStructValueH (pStruct
, Type17
, Speed
);
616 PrintPendingString (pStruct
, Type17
, Manufacturer
);
617 PrintPendingString (pStruct
, Type17
, SerialNumber
);
618 PrintPendingString (pStruct
, Type17
, AssetTag
);
619 PrintPendingString (pStruct
, Type17
, PartNumber
);
620 if (SmbiosMajorVersion
> 0x2 || (SmbiosMajorVersion
== 0x2 && SmbiosMinorVersion
>= 0x6)) {
621 PrintStructValueH (pStruct
, Type17
, Attributes
);
626 // 32-bit Memory Error Information (Type 18)
629 DisplayMemoryErrorType (pStruct
->Type18
->ErrorType
, Option
);
630 DisplayMemoryErrorGranularity (
631 pStruct
->Type18
->ErrorGranularity
,
634 DisplayMemoryErrorOperation (pStruct
->Type18
->ErrorOperation
, Option
);
635 PrintStructValueH (pStruct
, Type18
, VendorSyndrome
);
636 PrintStructValueH (pStruct
, Type18
, MemoryArrayErrorAddress
);
637 PrintStructValueH (pStruct
, Type18
, DeviceErrorAddress
);
638 PrintStructValueH (pStruct
, Type18
, ErrorResolution
);
642 // Memory Array Mapped Address (Type 19)
645 PrintStructValueH (pStruct
, Type19
, StartingAddress
);
646 PrintStructValueH (pStruct
, Type19
, EndingAddress
);
647 PrintStructValueH (pStruct
, Type19
, MemoryArrayHandle
);
648 PrintStructValueH (pStruct
, Type19
, PartitionWidth
);
652 // Memory Device Mapped Address (Type 20)
655 PrintStructValueH (pStruct
, Type20
, StartingAddress
);
656 PrintStructValueH (pStruct
, Type20
, EndingAddress
);
657 PrintStructValueH (pStruct
, Type20
, MemoryDeviceHandle
);
658 PrintStructValueH (pStruct
, Type20
, MemoryArrayMappedAddressHandle
);
659 PrintStructValueH (pStruct
, Type20
, PartitionRowPosition
);
660 PrintStructValueH (pStruct
, Type20
, InterleavePosition
);
661 PrintStructValueH (pStruct
, Type20
, InterleavedDataDepth
);
665 // Built-in Pointing Device (Type 21)
668 DisplayPointingDeviceType (pStruct
->Type21
->Type
, Option
);
669 DisplayPointingDeviceInterface (pStruct
->Type21
->Interface
, Option
);
670 PrintStructValue (pStruct
, Type21
, NumberOfButtons
);
674 // Portable Battery (Type 22)
677 PrintPendingString (pStruct
, Type22
, Location
);
678 PrintPendingString (pStruct
, Type22
, Manufacturer
);
679 PrintPendingString (pStruct
, Type22
, ManufactureDate
);
680 PrintPendingString (pStruct
, Type22
, SerialNumber
);
681 PrintPendingString (pStruct
, Type22
, DeviceName
);
682 DisplayPBDeviceChemistry (
683 pStruct
->Type22
->DeviceChemistry
,
686 PrintStructValueH (pStruct
, Type22
, DeviceCapacity
);
687 PrintStructValueH (pStruct
, Type22
, DesignVoltage
);
688 PrintPendingString (pStruct
, Type22
, SBDSVersionNumber
);
689 PrintStructValueH (pStruct
, Type22
, MaximumErrorInBatteryData
);
690 PrintStructValueH (pStruct
, Type22
, SBDSSerialNumber
);
691 DisplaySBDSManufactureDate (
692 pStruct
->Type22
->SBDSManufactureDate
,
695 PrintPendingString (pStruct
, Type22
, SBDSDeviceChemistry
);
696 PrintStructValueH (pStruct
, Type22
, DesignCapacityMultiplier
);
697 PrintStructValueH (pStruct
, Type22
, OEMSpecific
);
701 DisplaySystemResetCapabilities (
702 pStruct
->Type23
->Capabilities
,
705 PrintStructValueH (pStruct
, Type23
, ResetCount
);
706 PrintStructValueH (pStruct
, Type23
, ResetLimit
);
707 PrintStructValueH (pStruct
, Type23
, TimerInterval
);
708 PrintStructValueH (pStruct
, Type23
, Timeout
);
712 DisplayHardwareSecuritySettings (
713 pStruct
->Type24
->HardwareSecuritySettings
,
719 PrintStructValueH (pStruct
, Type25
, NextScheduledPowerOnMonth
);
720 PrintStructValueH (pStruct
, Type25
, NextScheduledPowerOnDayOfMonth
);
721 PrintStructValueH (pStruct
, Type25
, NextScheduledPowerOnHour
);
722 PrintStructValueH (pStruct
, Type25
, NextScheduledPowerOnMinute
);
723 PrintStructValueH (pStruct
, Type25
, NextScheduledPowerOnSecond
);
727 PrintPendingString (pStruct
, Type26
, Description
);
728 DisplayVPLocation (pStruct
->Type26
->LocationAndStatus
, Option
);
729 DisplayVPStatus (pStruct
->Type26
->LocationAndStatus
, Option
);
730 PrintStructValueH (pStruct
, Type26
, MaximumValue
);
731 PrintStructValueH (pStruct
, Type26
, MinimumValue
);
732 PrintStructValueH (pStruct
, Type26
, Resolution
);
733 PrintStructValueH (pStruct
, Type26
, Tolerance
);
734 PrintStructValueH (pStruct
, Type26
, Accuracy
);
735 PrintStructValueH (pStruct
, Type26
, OEMDefined
);
736 PrintStructValueH (pStruct
, Type26
, NominalValue
);
740 PrintStructValueH (pStruct
, Type27
, TemperatureProbeHandle
);
741 DisplayCoolingDeviceStatus (pStruct
->Type27
->DeviceTypeAndStatus
, Option
);
742 DisplayCoolingDeviceType (pStruct
->Type27
->DeviceTypeAndStatus
, Option
);
743 PrintStructValueH (pStruct
, Type27
, CoolingUnitGroup
);
744 PrintStructValueH (pStruct
, Type27
, OEMDefined
);
745 PrintStructValueH (pStruct
, Type27
, NominalSpeed
);
749 PrintPendingString (pStruct
, Type28
, Description
);
750 DisplayTemperatureProbeStatus (pStruct
->Type28
->LocationAndStatus
, Option
);
751 DisplayTemperatureProbeLoc (pStruct
->Type28
->LocationAndStatus
, Option
);
752 PrintStructValueH (pStruct
, Type28
, MaximumValue
);
753 PrintStructValueH (pStruct
, Type28
, MinimumValue
);
754 PrintStructValueH (pStruct
, Type28
, Resolution
);
755 PrintStructValueH (pStruct
, Type28
, Tolerance
);
756 PrintStructValueH (pStruct
, Type28
, Accuracy
);
757 PrintStructValueH (pStruct
, Type28
, OEMDefined
);
758 PrintStructValueH (pStruct
, Type28
, NominalValue
);
762 PrintPendingString (pStruct
, Type29
, Description
);
763 DisplayECPStatus (pStruct
->Type29
->LocationAndStatus
, Option
);
764 DisplayECPLoc (pStruct
->Type29
->LocationAndStatus
, Option
);
765 PrintStructValueH (pStruct
, Type29
, MaximumValue
);
766 PrintStructValueH (pStruct
, Type29
, MinimumValue
);
767 PrintStructValueH (pStruct
, Type29
, Resolution
);
768 PrintStructValueH (pStruct
, Type29
, Tolerance
);
769 PrintStructValueH (pStruct
, Type29
, Accuracy
);
770 PrintStructValueH (pStruct
, Type29
, OEMDefined
);
771 PrintStructValueH (pStruct
, Type29
, NominalValue
);
775 PrintPendingString (pStruct
, Type30
, ManufacturerName
);
776 DisplayOBRAConnections (pStruct
->Type30
->Connections
, Option
);
780 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31
), gShellDebug1HiiHandle
);
784 PrintBitField (pStruct
, Type32
, Reserved
, 6);
785 DisplaySystemBootStatus (pStruct
->Type32
->BootStatus
[0], Option
);
789 DisplayMemoryErrorType (pStruct
->Type33
->ErrorType
, Option
);
790 DisplayMemoryErrorGranularity (
791 pStruct
->Type33
->ErrorGranularity
,
794 DisplayMemoryErrorOperation (pStruct
->Type33
->ErrorOperation
, Option
);
795 PrintStructValueH (pStruct
, Type33
, VendorSyndrome
);
796 PrintStructValueH (pStruct
, Type33
, MemoryArrayErrorAddress
);
797 PrintStructValueH (pStruct
, Type33
, DeviceErrorAddress
);
798 PrintStructValueH (pStruct
, Type33
, ErrorResolution
);
802 // Management Device (Type 34)
805 PrintPendingString (pStruct
, Type34
, Description
);
806 DisplayMDType (pStruct
->Type34
->Type
, Option
);
807 PrintStructValueH (pStruct
, Type34
, Address
);
808 PrintStructValueH (pStruct
, Type34
, AddressType
);
812 PrintPendingString (pStruct
, Type35
, Description
);
813 PrintStructValueH (pStruct
, Type35
, ManagementDeviceHandle
);
814 PrintStructValueH (pStruct
, Type35
, ComponentHandle
);
815 PrintStructValueH (pStruct
, Type35
, ThresholdHandle
);
819 PrintStructValueH (pStruct
, Type36
, LowerThresholdNonCritical
);
820 PrintStructValueH (pStruct
, Type36
, UpperThresholdNonCritical
);
821 PrintStructValueH (pStruct
, Type36
, LowerThresholdCritical
);
822 PrintStructValueH (pStruct
, Type36
, UpperThresholdCritical
);
823 PrintStructValueH (pStruct
, Type36
, LowerThresholdNonRecoverable
);
824 PrintStructValueH (pStruct
, Type36
, UpperThresholdNonRecoverable
);
828 // Memory Channel (Type 37)
834 DisplayMemoryChannelType (pStruct
->Type37
->ChannelType
, Option
);
835 PrintStructValueH (pStruct
, Type37
, MaximumChannelLoad
);
836 PrintStructValueH (pStruct
, Type37
, MemoryDeviceCount
);
838 Count
= pStruct
->Type37
->MemoryDeviceCount
;
839 Ptr
= pStruct
->Type37
->MemoryDevice
;
840 for (Index
= 0; Index
< Count
; Index
++) {
841 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE
), gShellDebug1HiiHandle
, Index
+ 1);
842 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD
), gShellDebug1HiiHandle
, Ptr
->DeviceLoad
);
843 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE
), gShellDebug1HiiHandle
, Ptr
->DeviceHandle
);
849 // IPMI Device Information (Type 38)
852 DisplayIPMIDIBMCInterfaceType (pStruct
->Type38
->InterfaceType
, Option
);
853 PrintStructValueH (pStruct
, Type38
, IPMISpecificationRevision
);
854 PrintStructValueH (pStruct
, Type38
, I2CSlaveAddress
);
855 PrintStructValueH (pStruct
, Type38
, NVStorageDeviceAddress
);
856 PrintStructValueH (pStruct
, Type38
, BaseAddress
);
860 // System Power Supply (Type 39)
863 PrintStructValueH (pStruct
, Type39
, PowerUnitGroup
);
864 PrintPendingString (pStruct
, Type39
, Location
);
865 PrintPendingString (pStruct
, Type39
, DeviceName
);
866 PrintPendingString (pStruct
, Type39
, Manufacturer
);
867 PrintPendingString (pStruct
, Type39
, SerialNumber
);
868 PrintPendingString (pStruct
, Type39
, AssetTagNumber
);
869 PrintPendingString (pStruct
, Type39
, ModelPartNumber
);
870 PrintPendingString (pStruct
, Type39
, RevisionLevel
);
871 PrintStructValueH (pStruct
, Type39
, MaxPowerCapacity
);
872 DisplaySPSCharacteristics (
873 pStruct
->Type39
->PowerSupplyCharacteristics
,
876 PrintStructValueH (pStruct
, Type39
, InputVoltageProbeHandle
);
877 PrintStructValueH (pStruct
, Type39
, CoolingDeviceHandle
);
878 PrintStructValueH (pStruct
, Type39
, InputCurrentProbeHandle
);
882 // Additional Information (Type 40)
886 UINT8 NumberOfEntries
;
888 ADDITIONAL_INFORMATION_ENTRY
*Entries
;
891 Entries
= pStruct
->Type40
->AdditionalInfoEntries
;
892 NumberOfEntries
= pStruct
->Type40
->NumberOfAdditionalInformationEntries
;
894 PrintStructValueH (pStruct
, Type40
, NumberOfAdditionalInformationEntries
);
896 for (Index
= 0; Index
< NumberOfEntries
; Index
++) {
897 EntryLength
= Entries
->EntryLength
;
898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN
), gShellDebug1HiiHandle
, EntryLength
);
899 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE
), gShellDebug1HiiHandle
, Entries
->ReferencedHandle
);
900 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET
), gShellDebug1HiiHandle
, Entries
->ReferencedOffset
);
901 PrintSmbiosString (pStruct
, Entries
->EntryString
, String
);
902 PrintSmbiosBitField (pStruct
, Entries
->Value
, Value
, EntryLength
- 5);
903 Entries
= (ADDITIONAL_INFORMATION_ENTRY
*) ((UINT8
*)Entries
+ EntryLength
);
909 // Onboard Devices Extended Information (Type 41)
912 PrintPendingString (pStruct
, Type41
, ReferenceDesignation
);
913 PrintStructValueH (pStruct
, Type41
, DeviceType
);
914 PrintStructValueH (pStruct
, Type41
, DeviceTypeInstance
);
915 PrintStructValueH (pStruct
, Type41
, SegmentGroupNum
);
916 PrintStructValueH (pStruct
, Type41
, BusNum
);
917 PrintStructValueH (pStruct
, Type41
, DevFuncNum
);
921 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT
), gShellDebug1HiiHandle
);
925 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE
), gShellDebug1HiiHandle
);
929 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED
), gShellDebug1HiiHandle
);
937 DisplayBiosCharacteristics (
945 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR
), gShellDebug1HiiHandle
);
949 PRINT_INFO_OPTION (chara
, Option
);
952 // Check all the bits and print information
953 // This function does not use Table because table of bits
954 // are designed not to deal with UINT64
956 if (BIT (chara
, 0) != 0) {
957 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
960 if (BIT (chara
, 1) != 0) {
961 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT
), gShellDebug1HiiHandle
);
964 if (BIT (chara
, 2) != 0) {
965 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT
), gShellDebug1HiiHandle
);
968 if (BIT (chara
, 3) != 0) {
969 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED
), gShellDebug1HiiHandle
);
972 if (BIT (chara
, 4) != 0) {
973 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED
), gShellDebug1HiiHandle
);
976 if (BIT (chara
, 5) != 0) {
977 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED
), gShellDebug1HiiHandle
);
980 if (BIT (chara
, 6) != 0) {
981 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED
), gShellDebug1HiiHandle
);
984 if (BIT (chara
, 7) != 0) {
985 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED
), gShellDebug1HiiHandle
);
988 if (BIT (chara
, 8) != 0) {
989 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED
), gShellDebug1HiiHandle
);
992 if (BIT (chara
, 9) != 0) {
993 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED
), gShellDebug1HiiHandle
);
996 if (BIT (chara
, 10) != 0) {
997 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED
), gShellDebug1HiiHandle
);
1000 if (BIT (chara
, 11) != 0) {
1001 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE
), gShellDebug1HiiHandle
);
1004 if (BIT (chara
, 12) != 0) {
1005 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING
), gShellDebug1HiiHandle
);
1008 if (BIT (chara
, 13) != 0) {
1009 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED
), gShellDebug1HiiHandle
);
1012 if (BIT (chara
, 14) != 0) {
1013 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT
), gShellDebug1HiiHandle
);
1016 if (BIT (chara
, 15) != 0) {
1017 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED
), gShellDebug1HiiHandle
);
1020 if (BIT (chara
, 16) != 0) {
1021 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1024 if (BIT (chara
, 17) != 0) {
1025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED
), gShellDebug1HiiHandle
);
1028 if (BIT (chara
, 18) != 0) {
1029 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD
), gShellDebug1HiiHandle
);
1032 if (BIT (chara
, 19) != 0) {
1033 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER
), gShellDebug1HiiHandle
);
1036 if (BIT (chara
, 20) != 0) {
1037 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC
), gShellDebug1HiiHandle
);
1040 if (BIT (chara
, 21) != 0) {
1041 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA
), gShellDebug1HiiHandle
);
1044 if (BIT (chara
, 22) != 0) {
1045 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED
), gShellDebug1HiiHandle
);
1048 if (BIT (chara
, 23) != 0) {
1049 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB
), gShellDebug1HiiHandle
);
1052 if (BIT (chara
, 24) != 0) {
1053 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB
), gShellDebug1HiiHandle
);
1056 if (BIT (chara
, 25) != 0) {
1057 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB
), gShellDebug1HiiHandle
);
1060 if (BIT (chara
, 26) != 0) {
1061 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT
), gShellDebug1HiiHandle
);
1064 if (BIT (chara
, 27) != 0) {
1065 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT
), gShellDebug1HiiHandle
);
1068 if (BIT (chara
, 28) != 0) {
1069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1072 if (BIT (chara
, 29) != 0) {
1073 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT
), gShellDebug1HiiHandle
);
1076 if (BIT (chara
, 30) != 0) {
1077 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT
), gShellDebug1HiiHandle
);
1080 if (BIT (chara
, 31) != 0) {
1081 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98
), gShellDebug1HiiHandle
);
1084 // Just print the reserved
1086 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47
), gShellDebug1HiiHandle
);
1087 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64
), gShellDebug1HiiHandle
);
1091 DisplayBiosCharacteristicsExt1 (
1096 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION
), gShellDebug1HiiHandle
);
1100 PRINT_INFO_OPTION (byte1
, Option
);
1103 // check bit and print
1105 if (BIT (byte1
, 0) != 0) {
1106 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED
), gShellDebug1HiiHandle
);
1109 if (BIT (byte1
, 1) != 0) {
1110 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED
), gShellDebug1HiiHandle
);
1113 if (BIT (byte1
, 2) != 0) {
1114 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED
), gShellDebug1HiiHandle
);
1117 if (BIT (byte1
, 3) != 0) {
1118 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1121 if (BIT (byte1
, 4) != 0) {
1122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1125 if (BIT (byte1
, 5) != 0) {
1126 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE
), gShellDebug1HiiHandle
);
1129 if (BIT (byte1
, 6) != 0) {
1130 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED
), gShellDebug1HiiHandle
);
1133 if (BIT (byte1
, 7) != 0) {
1134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED
), gShellDebug1HiiHandle
);
1139 DisplayBiosCharacteristicsExt2 (
1144 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2
), gShellDebug1HiiHandle
);
1148 PRINT_INFO_OPTION (byte2
, Option
);
1150 if (BIT (byte2
, 0) != 0) {
1151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP
), gShellDebug1HiiHandle
);
1154 if (BIT (byte2
, 1) != 0) {
1155 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT
), gShellDebug1HiiHandle
);
1158 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE
), gShellDebug1HiiHandle
);
1162 DisplayProcessorFamily (
1168 // Print prompt message
1170 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1174 PRINT_INFO_OPTION (Family
, Option
);
1177 // Use switch to check
1181 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER
), gShellDebug1HiiHandle
);
1185 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1197 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR
), gShellDebug1HiiHandle
);
1201 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR
), gShellDebug1HiiHandle
);
1221 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY
), gShellDebug1HiiHandle
);
1225 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC
), gShellDebug1HiiHandle
);
1229 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC
), gShellDebug1HiiHandle
);
1233 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX
), gShellDebug1HiiHandle
);
1237 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC
), gShellDebug1HiiHandle
);
1241 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC
), gShellDebug1HiiHandle
);
1245 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC
), gShellDebug1HiiHandle
);
1249 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY
), gShellDebug1HiiHandle
);
1253 Print (L
"AMD Duron\n");
1257 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY
), gShellDebug1HiiHandle
);
1261 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY
), gShellDebug1HiiHandle
);
1265 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601
), gShellDebug1HiiHandle
);
1269 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603
), gShellDebug1HiiHandle
);
1273 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS
), gShellDebug1HiiHandle
);
1277 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604
), gShellDebug1HiiHandle
);
1281 Print (L
"Power PC 620\n");
1285 Print (L
"Power PC 704\n");
1289 Print (L
"Power PC 750\n");
1293 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO
), gShellDebug1HiiHandle
);
1297 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE
), gShellDebug1HiiHandle
);
1301 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1305 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM
), gShellDebug1HiiHandle
);
1309 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2
), gShellDebug1HiiHandle
);
1313 Print (L
"Alpha 21064\n");
1317 Print (L
"Alpha 21066\n");
1321 Print (L
"Alpha 21164\n");
1325 Print (L
"Alpha 21164PC\n");
1329 Print (L
"Alpha 21164a\n");
1333 Print (L
"Alpha 21264\n");
1337 Print (L
"Alpha 21364\n");
1341 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY
), gShellDebug1HiiHandle
);
1345 Print (L
"MIPS R4000\n");
1349 Print (L
"MIPS R4200\n");
1353 Print (L
"MIPS R4400\n");
1357 Print (L
"MIPS R4600\n");
1361 Print (L
"MIPS R10000\n");
1365 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY
), gShellDebug1HiiHandle
);
1369 Print (L
"SuperSparc\n");
1373 Print (L
"microSparc II\n");
1377 Print (L
"microSparc IIep\n");
1381 Print (L
"UltraSparc\n");
1385 Print (L
"UltraSparc II\n");
1389 Print (L
"UltraSparcIIi\n");
1393 Print (L
"UltraSparcIII\n");
1397 Print (L
"UltraSparcIIIi\n");
1401 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY
), gShellDebug1HiiHandle
);
1425 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY
), gShellDebug1HiiHandle
);
1429 Print (L
"Crusoe TM5000\n");
1433 Print (L
"Crusoe TM3000\n");
1437 Print (L
"Efficeon TM8000\n");
1441 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK
), gShellDebug1HiiHandle
);
1445 Print (L
"Itanium\n");
1449 Print (L
"AMD Athlon64\n");
1453 Print (L
"AMD Opteron\n");
1457 Print (L
"AMD Sempron\n");
1461 Print (L
"AMD Turion64 Mobile\n");
1465 Print (L
"Dual-Core AMD Opteron\n");
1469 Print (L
"AMD Athlon 64X2 DualCore\n");
1473 Print (L
"AMD Turion 64X2 Mobile\n");
1477 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1481 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION
), gShellDebug1HiiHandle
);
1485 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE
), gShellDebug1HiiHandle
);
1489 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE
), gShellDebug1HiiHandle
);
1493 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1497 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE
), gShellDebug1HiiHandle
);
1501 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY
), gShellDebug1HiiHandle
);
1505 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY
), gShellDebug1HiiHandle
);
1509 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1513 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1517 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1521 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1525 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1529 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE
), gShellDebug1HiiHandle
);
1533 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE
), gShellDebug1HiiHandle
);
1537 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1541 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1545 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE
), gShellDebug1HiiHandle
);
1549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1553 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1557 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1561 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1565 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1569 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON
), gShellDebug1HiiHandle
);
1573 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO
), gShellDebug1HiiHandle
);
1577 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME
), gShellDebug1HiiHandle
);
1581 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD
), 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_DUO_MOBILE
), gShellDebug1HiiHandle
);
1593 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE
), gShellDebug1HiiHandle
);
1597 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7
), gShellDebug1HiiHandle
);
1601 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE
), gShellDebug1HiiHandle
);
1605 Print (L
"IBM 390\n");
1621 Print (L
"zArchitectur\n");
1625 Print (L
"ViaC7M\n");
1629 Print (L
"ViaC7D\n");
1641 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE
), gShellDebug1HiiHandle
);
1645 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1649 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1653 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1657 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE
), gShellDebug1HiiHandle
);
1665 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE
), gShellDebug1HiiHandle
);
1669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE
), gShellDebug1HiiHandle
);
1673 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE
), gShellDebug1HiiHandle
);
1677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE
), gShellDebug1HiiHandle
);
1681 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
1685 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE
), gShellDebug1HiiHandle
);
1689 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE
), gShellDebug1HiiHandle
);
1693 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI
), gShellDebug1HiiHandle
);
1706 // In order to reduce code quality notice of
1707 // case & break not pair, so
1708 // move multiple case into the else part and
1709 // use if/else to check value.
1711 if (Family
>= 0x13 && Family
<= 0x17) {
1712 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_M1
), gShellDebug1HiiHandle
);
1713 } else if (Family
>= 0x1A && Family
<= 0x1F) {
1714 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_K5
), gShellDebug1HiiHandle
);
1715 } else if (Family
>= 0xB1 && Family
<= 0xBF) {
1716 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_PENTIUM
), gShellDebug1HiiHandle
);
1718 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
1727 DisplayProcessorFamily2 (
1733 // Print prompt message
1735 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY
), gShellDebug1HiiHandle
);
1740 PRINT_INFO_OPTION (Family2
, Option
);
1743 // Use switch to check
1759 Print (L
"StrongARM\n");
1767 Print (L
"MediaGX\n");
1775 Print (L
"WinChip\n");
1783 Print (L
"Video Processor\n");
1787 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY
), gShellDebug1HiiHandle
);
1793 DisplayProcessorVoltage (
1798 Routine Description:
1799 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
1800 Bits 6:4 Reserved, must be zero
1801 Bits 3:0 Voltage Capability.
1802 A Set bit indicates that the voltage is supported.
1806 Bit 3 - Reserved, must be zero.
1809 Setting of multiple bits indicates the socket is configurable
1810 If bit 7 is set to 1, the remaining seven bits of the field are set to
1811 contain the processor's current voltage times 10.
1812 For example, the field value for a processor voltage of 1.8 volts would be
1813 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
1816 Voltage - The Voltage
1823 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO
), gShellDebug1HiiHandle
);
1827 PRINT_INFO_OPTION (Voltage
, Option
);
1829 if (BIT (Voltage
, 7) != 0) {
1830 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE
), gShellDebug1HiiHandle
, (Voltage
- 0x80));
1832 if (BIT (Voltage
, 0) != 0) {
1833 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED
), gShellDebug1HiiHandle
);
1836 if (BIT (Voltage
, 1) != 0) {
1837 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED
), gShellDebug1HiiHandle
);
1840 if (BIT (Voltage
, 2) != 0) {
1841 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED
), gShellDebug1HiiHandle
);
1844 // check the reserved zero bits:
1846 if (BIT (Voltage
, 3) != 0) {
1847 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO
), gShellDebug1HiiHandle
);
1850 if (BIT (Voltage
, 4) != 0) {
1851 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO
), gShellDebug1HiiHandle
);
1854 if (BIT (Voltage
, 5) != 0) {
1855 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO
), gShellDebug1HiiHandle
);
1858 if (BIT (Voltage
, 6) != 0) {
1859 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO
), gShellDebug1HiiHandle
);
1865 DisplayProcessorStatus (
1870 Routine Description:
1872 Bit 7 Reserved, must be 0
1873 Bit 6 CPU Socket Populated
1874 1 - CPU Socket Populated
1875 0 - CPU Socket UnpopulatedBits
1876 5:3 Reserved, must be zero
1880 2h - CPU Disabled by User via BIOS Setup
1881 3h - CPU Disabled By BIOS (POST Error)
1882 4h - CPU is Idle, waiting to be enabled.
1894 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS
), gShellDebug1HiiHandle
);
1895 PRINT_INFO_OPTION (Status
, Option
);
1897 if (BIT (Status
, 7) != 0) {
1898 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT7
), gShellDebug1HiiHandle
);
1899 } else if (BIT (Status
, 5) != 0) {
1900 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT5
), gShellDebug1HiiHandle
);
1901 } else if (BIT (Status
, 4) != 0) {
1902 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT4
), gShellDebug1HiiHandle
);
1903 } else if (BIT (Status
, 3) != 0) {
1904 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT3
), gShellDebug1HiiHandle
);
1909 if (BIT (Status
, 6) != 0) {
1910 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED
), gShellDebug1HiiHandle
);
1912 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED
), gShellDebug1HiiHandle
);
1917 switch (Status
& 0x07) {
1919 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
1923 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED
), gShellDebug1HiiHandle
);
1927 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER
), gShellDebug1HiiHandle
);
1931 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS
), gShellDebug1HiiHandle
);
1935 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE
), gShellDebug1HiiHandle
);
1939 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS
), gShellDebug1HiiHandle
);
1943 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
1948 DisplayMaxMemoryModuleSize (
1955 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM
), gShellDebug1HiiHandle
);
1957 // MaxSize is determined by follow formula
1959 MaxSize
= (UINTN
) 1 << Size
;
1960 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
);
1962 if (Option
>= SHOW_DETAIL
) {
1963 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM
), gShellDebug1HiiHandle
);
1964 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB
), gShellDebug1HiiHandle
, MaxSize
, SlotNum
, MaxSize
* SlotNum
);
1969 DisplayMemoryModuleConfigHandles (
1976 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED
), gShellDebug1HiiHandle
, SlotNum
);
1978 if (Option
>= SHOW_DETAIL
) {
1980 // No handle, Handles is INVALID.
1986 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED
), gShellDebug1HiiHandle
);
1987 for (Index
= 0; Index
< SlotNum
; Index
++) {
1988 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE
), gShellDebug1HiiHandle
, Index
+ 1, Handles
[Index
]);
1993 // Memory Module Information (Type 6)
1996 DisplayMmBankConnections (
1997 UINT8 BankConnections
,
2004 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS
), gShellDebug1HiiHandle
);
2008 PRINT_INFO_OPTION (BankConnections
, Option
);
2011 // Divide it to high and low
2013 High
= (UINT8
) (BankConnections
& 0xF0);
2014 Low
= (UINT8
) (BankConnections
& 0x0F);
2017 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS
), gShellDebug1HiiHandle
, High
, Low
, High
, Low
);
2019 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, High
, High
);
2023 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2
), gShellDebug1HiiHandle
, Low
, Low
);
2025 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED
), gShellDebug1HiiHandle
);
2031 DisplayMmMemorySize (
2036 Routine Description:
2038 where 2**n is the size in MB with three special-case values:
2039 7Dh Not determinable (Installed Size only)
2040 7Eh Module is installed, but no memory has been enabled
2042 Bit 7 Defines whether the memory module has a single- (0)
2043 or double-bank (1) connection.
2054 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE
), gShellDebug1HiiHandle
);
2058 PRINT_INFO_OPTION (Size
, Option
);
2061 // Get the low bits(0-6 bit)
2063 Value
= (UINT8
) (Size
& 0x7F);
2064 if (Value
== 0x7D) {
2065 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE
), gShellDebug1HiiHandle
);
2066 } else if (Value
== 0x7E) {
2067 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED
), gShellDebug1HiiHandle
);
2068 } else if (Value
== 0x7F) {
2069 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED
), gShellDebug1HiiHandle
);
2071 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE
), gShellDebug1HiiHandle
, 1 << Value
);
2074 if (BIT (Size
, 7) != 0) {
2075 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
), gShellDebug1HiiHandle
);
2077 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
), gShellDebug1HiiHandle
);
2082 DisplaySystemSlotId (
2088 Routine Description:
2090 The Slot ID field of the System Slot structure provides a mechanism to
2091 correlate the physical attributes of the slot to its logical access method
2092 (which varies based on the Slot Type field).
2096 SlotId - The slot ID
2097 SlotType - The slot type
2105 // Display slot type first
2107 DisplaySystemSlotType (SlotType
, Option
);
2109 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID
), gShellDebug1HiiHandle
);
2113 PRINT_INFO_OPTION (SlotType
, Option
);
2120 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
), gShellDebug1HiiHandle
);
2121 if (SlotId
> 0 && SlotId
< 15) {
2122 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2124 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2132 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM
), gShellDebug1HiiHandle
);
2133 if (SlotId
> 0 && SlotId
< 15) {
2134 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D
), gShellDebug1HiiHandle
, SlotId
);
2136 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
), gShellDebug1HiiHandle
);
2144 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2151 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM
), gShellDebug1HiiHandle
, SlotId
);
2158 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2162 if (SlotType
>= 0x0E && SlotType
<= 0x12) {
2163 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT
), gShellDebug1HiiHandle
, SlotId
);
2165 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID
), gShellDebug1HiiHandle
);
2171 DisplaySystemBootStatus (
2176 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS
), gShellDebug1HiiHandle
);
2180 PRINT_INFO_OPTION (Parameter
, Option
);
2183 // Check value and print
2185 if (Parameter
== 0) {
2186 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED
), gShellDebug1HiiHandle
);
2187 } else if (Parameter
== 1) {
2188 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA
), gShellDebug1HiiHandle
);
2189 } else if (Parameter
== 2) {
2190 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM
), gShellDebug1HiiHandle
);
2191 } else if (Parameter
== 3) {
2192 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED
), gShellDebug1HiiHandle
);
2193 } else if (Parameter
== 4) {
2194 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM
), gShellDebug1HiiHandle
);
2195 } else if (Parameter
== 5) {
2196 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT
), gShellDebug1HiiHandle
);
2197 } else if (Parameter
== 6) {
2198 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION
), gShellDebug1HiiHandle
);
2199 } else if (Parameter
== 7) {
2200 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE
), gShellDebug1HiiHandle
);
2201 } else if (Parameter
== 8) {
2202 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER
), gShellDebug1HiiHandle
);
2203 } else if (Parameter
>= 9 && Parameter
<= 127) {
2204 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT
), gShellDebug1HiiHandle
);
2205 } else if (Parameter
>= 128 && Parameter
<= 191) {
2206 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC
), gShellDebug1HiiHandle
);
2207 } else if (Parameter
>= 192 && Parameter
<= 255) {
2208 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION
), gShellDebug1HiiHandle
);
2210 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE
), gShellDebug1HiiHandle
);
2214 // Portable Battery (Type 22)
2217 DisplaySBDSManufactureDate (
2222 Routine Description:
2223 The date the cell pack was manufactured, in packed format:
2224 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
2225 Bits 8:5 Month, in the range 1 to 12.
2226 Bits 4:0 Date, in the range 1 to 31.
2227 For example, 01 February 2000 would be identified as
2228 0010 1000 0100 0001b (0x2841).
2242 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE
), gShellDebug1HiiHandle
);
2243 PRINT_INFO_OPTION (Date
, Option
);
2247 Day
= Date
& 0x001F;
2248 Month
= (Date
& 0x00E0) >> 5;
2249 Year
= ((Date
& 0xFF00) >> 8) + 1980;
2250 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR
), gShellDebug1HiiHandle
, Day
, Month
, Year
);
2254 // System Reset (Type 23)
2257 DisplaySystemResetCapabilities (
2262 Routine Description:
2263 Identifies the system-reset capabilities for the system.
2264 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
2265 Bit 5 System contains a watchdog timer, either True (1) or False (0).
2266 Bits 4:3 Boot Option on Limit.
2267 Identifies the system action to be taken when the Reset Limit is reached, one of:
2268 00b Reserved, do not use.
2269 01b Operating system
2270 10b System utilities
2271 11b Do not rebootBits
2272 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
2273 00b Reserved, do not use.
2274 01b Operating system
2275 10b System utilities
2278 1b The system reset is enabled by the user
2279 0b The system reset is not enabled by the user
2291 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES
), gShellDebug1HiiHandle
);
2292 PRINT_INFO_OPTION (Reset
, Option
);
2295 // Check reserved bits 7:6
2297 if ((Reset
& 0xC0) != 0) {
2298 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO
), gShellDebug1HiiHandle
);
2303 if (BIT (Reset
, 5) != 0) {
2304 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2
), gShellDebug1HiiHandle
);
2306 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER
), gShellDebug1HiiHandle
);
2309 // Boot Option on Limit
2311 Temp
= (Reset
& 0x18) >> 3;
2312 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT
), gShellDebug1HiiHandle
);
2315 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2319 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2323 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2327 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS
), gShellDebug1HiiHandle
);
2333 Temp
= (Reset
& 0x06) >> 1;
2334 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION
), gShellDebug1HiiHandle
);
2337 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED
), gShellDebug1HiiHandle
);
2341 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2
), gShellDebug1HiiHandle
);
2345 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL
), gShellDebug1HiiHandle
);
2349 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT
), gShellDebug1HiiHandle
);
2353 // Reset enable flag
2355 if ((Reset
& 0x01) != 0) {
2356 Print (L
"The system reset is enabled by the user\n");
2358 Print (L
"The system reset is disabled by the user\n");
2362 // Hardware Security (Type 24)
2365 DisplayHardwareSecuritySettings (
2370 Routine Description:
2371 Identifies the password and reset status for the system:
2373 Bits 7:6 Power-on Password Status, one of:
2378 Bits 5:4 Keyboard Password Status, one of:
2383 Bits 3:2 Administrator Password Status, one of:
2388 Bits 1:0 Front Panel Reset Status, one of:
2395 Settings - The settings
2404 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET
), gShellDebug1HiiHandle
);
2405 PRINT_INFO_OPTION (Settings
, Option
);
2408 // Power-on Password Status
2410 Temp
= (Settings
& 0xC0) >> 6;
2411 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD
), gShellDebug1HiiHandle
);
2414 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2418 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2422 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2426 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2430 // Keyboard Password Status
2432 Temp
= (Settings
& 0x30) >> 4;
2433 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD
), gShellDebug1HiiHandle
);
2436 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2440 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2444 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2448 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2452 // Administrator Password Status
2454 Temp
= (Settings
& 0x0C) >> 2;
2455 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS
), gShellDebug1HiiHandle
);
2458 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2462 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2466 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2470 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2474 // Front Panel Reset Status
2476 Temp
= Settings
& 0x3;
2477 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET
), gShellDebug1HiiHandle
);
2480 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED
), gShellDebug1HiiHandle
);
2484 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE
), gShellDebug1HiiHandle
);
2488 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED
), gShellDebug1HiiHandle
);
2492 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2497 // Out-of-Band Remote Access (Type 30)
2500 DisplayOBRAConnections (
2505 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS
), gShellDebug1HiiHandle
);
2506 PRINT_INFO_OPTION (Connections
, Option
);
2509 // Check reserved bits 7:2
2511 if ((Connections
& 0xFC) != 0) {
2512 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2
), gShellDebug1HiiHandle
);
2515 // Outbound Connection
2517 if (BIT (Connections
, 1) != 0) {
2518 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2520 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2523 // Inbound Connection
2525 if (BIT (Connections
, 0) != 0) {
2526 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED
), gShellDebug1HiiHandle
);
2528 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED
), gShellDebug1HiiHandle
);
2532 // System Power Supply (Type 39)
2535 DisplaySPSCharacteristics (
2536 UINT16 Characteristics
,
2542 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR
), gShellDebug1HiiHandle
);
2543 PRINT_INFO_OPTION (Characteristics
, Option
);
2546 // Check reserved bits 15:14
2548 if ((Characteristics
& 0xC000) != 0) {
2549 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD
), gShellDebug1HiiHandle
);
2552 // Bits 13:10 - DMTF Power Supply Type
2554 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE
), gShellDebug1HiiHandle
);
2555 Temp
= (Characteristics
& 0x1C00) << 10;
2558 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
2562 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2566 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR
), gShellDebug1HiiHandle
);
2570 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING
), gShellDebug1HiiHandle
);
2574 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY
), gShellDebug1HiiHandle
);
2578 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS
), gShellDebug1HiiHandle
);
2582 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER
), gShellDebug1HiiHandle
);
2586 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR
), gShellDebug1HiiHandle
);
2590 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2
), gShellDebug1HiiHandle
);
2593 // Bits 9:7 - Status
2595 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH
), gShellDebug1HiiHandle
);
2596 Temp
= (Characteristics
& 0x380) << 7;
2599 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
2603 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2607 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK
), gShellDebug1HiiHandle
);
2611 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL
), gShellDebug1HiiHandle
);
2615 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY
), gShellDebug1HiiHandle
);
2619 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED
), gShellDebug1HiiHandle
);
2622 // Bits 6:3 - DMTF Input Voltage Range Switching
2624 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE
), gShellDebug1HiiHandle
);
2625 Temp
= (Characteristics
& 0x78) << 3;
2628 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE
), gShellDebug1HiiHandle
);
2632 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN
), gShellDebug1HiiHandle
);
2636 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL
), gShellDebug1HiiHandle
);
2640 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH
), gShellDebug1HiiHandle
);
2644 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE
), gShellDebug1HiiHandle
);
2648 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE
), gShellDebug1HiiHandle
);
2652 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3
), gShellDebug1HiiHandle
);
2656 // Power supply is unplugged from the wall
2658 if (BIT (Characteristics
, 2) != 0) {
2659 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED
), gShellDebug1HiiHandle
);
2661 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED
), gShellDebug1HiiHandle
);
2664 // Power supply is present
2666 if (BIT (Characteristics
, 1) != 0) {
2667 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT
), gShellDebug1HiiHandle
);
2669 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT
), gShellDebug1HiiHandle
);
2674 if (BIT (Characteristics
, 0) != 0) {
2675 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE
), gShellDebug1HiiHandle
);
2677 ShellPrintHiiEx(-1,-1,NULL
,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE
), gShellDebug1HiiHandle
);