23#define BIT(value, bit) ((value) & ((UINT64) 1) << (bit))
28#define AE_SMBIOS_VERSION(MajorVersion, MinorVersion) \
29 (SmbiosMajorVersion > (MajorVersion) || (SmbiosMajorVersion == (MajorVersion) && SmbiosMinorVersion >= (MinorVersion)))
35#define PRINT_PENDING_STRING(pStruct, type, element) \
38 StringBuf = LibGetSmbiosString ((pStruct), (pStruct->type->element)); \
39 ShellPrintEx(-1,-1,L"%a",#element); \
40 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
43#define PRINT_SMBIOS_STRING(pStruct, stringnumber, element) \
46 StringBuf = LibGetSmbiosString ((pStruct), (stringnumber)); \
47 ShellPrintEx(-1,-1,L"%a",#element); \
48 ShellPrintEx(-1,-1,L": %a\n", (StringBuf != NULL) ? StringBuf: ""); \
51#define PRINT_STRUCT_VALUE(pStruct, type, element) \
53 ShellPrintEx(-1,-1,L"%a",#element); \
54 ShellPrintEx(-1,-1,L": %u\n", (pStruct->type->element)); \
57#define PRINT_STRUCT_VALUE_H(pStruct, type, element) \
59 ShellPrintEx(-1,-1,L"%a",#element); \
60 ShellPrintEx(-1,-1,L": 0x%x\n", (pStruct->type->element)); \
63#define PRINT_STRUCT_VALUE_LH(pStruct, type, element) \
65 ShellPrintEx(-1,-1,L"%a",#element); \
66 ShellPrintEx(-1,-1,L": 0x%lx\n", (pStruct->type->element)); \
69#define PRINT_BIT_FIELD(pStruct, type, 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, &(pStruct->type->element)); \
77#define PRINT_SMBIOS_BIT_FIELD(pStruct, startaddress, element, size) \
79 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gShellDebug1HiiHandle); \
80 ShellPrintEx(-1,-1,L"%a",#element); \
81 ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gShellDebug1HiiHandle, size); \
82 DumpHex (0, 0, size, startaddress); \
107 SrcBuffer = (UINT8 *)Src;
108 DestBuffer = (UINT8 *)Dest;
112 while ((Length--) != 0) {
113 *DestBuffer++ = *SrcBuffer++;
140 UINT8 Anchor[SMBIOS_ANCHOR_STRING_LENGTH + 1];
143 if (SmbiosTable ==
NULL) {
148 if (Option == SHOW_NONE) {
152 if (Option >= SHOW_NORMAL) {
154 MemToString (Anchor, SmbiosTable->AnchorString, SMBIOS_ANCHOR_STRING_LENGTH);
161 gShellDebug1HiiHandle,
162 SmbiosTable->EntryPointStructureChecksum
170 gShellDebug1HiiHandle,
171 SmbiosTable->MajorVersion,
172 SmbiosTable->MinorVersion
179 gShellDebug1HiiHandle,
180 SmbiosTable->NumberOfSmbiosStructures
190 if (Option >= SHOW_DETAIL) {
195 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION),
196 gShellDebug1HiiHandle,
197 SmbiosTable->EntryPointRevision
203 MemToString (InAnchor, SmbiosTable->IntermediateAnchorString, 5);
207 DumpHex (2, 0, 5, SmbiosTable->FormattedArea);
225 UINT8 Anchor[SMBIOS_3_0_ANCHOR_STRING_LENGTH + 1];
227 if (SmbiosTable ==
NULL) {
232 if (Option == SHOW_NONE) {
236 if (Option >= SHOW_NORMAL) {
239 MemToString (Anchor, SmbiosTable->AnchorString, SMBIOS_3_0_ANCHOR_STRING_LENGTH);
247 gShellDebug1HiiHandle,
248 SmbiosTable->EntryPointStructureChecksum
258 gShellDebug1HiiHandle,
259 SmbiosTable->MajorVersion,
260 SmbiosTable->MinorVersion
268 gShellDebug1HiiHandle,
280 if (Option >= SHOW_DETAIL) {
285 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION),
286 gShellDebug1HiiHandle,
287 SmbiosTable->EntryPointRevision
315 if (Struct ==
NULL) {
316 return EFI_INVALID_PARAMETER;
319 if (Option == SHOW_NONE) {
323 Buffer = (UINT8 *)(
UINTN)(Struct->Raw);
332 if (Option == SHOW_OUTLINE) {
336 switch (Struct->Hdr->Type) {
343 ShellPrintEx (-1, -1, L
"BIOS Starting Address Segment: 0x%x\n", Struct->Type0->BiosSegment);
345 if ((Struct->Type0->BiosSize != 0xFF) || !(AE_SMBIOS_VERSION (0x3, 0x1))) {
351 if (Struct->Hdr->Length > 0x12) {
355 if (Struct->Hdr->Length > 0x13) {
359 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct->Hdr->Length > 0x14)) {
360 ShellPrintEx (-1, -1, L
"System BIOS Major Release: %u\n", Struct->Type0->SystemBiosMajorRelease);
361 ShellPrintEx (-1, -1, L
"System BIOS Minor Release: %u\n", Struct->Type0->SystemBiosMinorRelease);
362 ShellPrintEx (-1, -1, L
"Embedded Controller Firmware Major Release: %u\n", Struct->Type0->EmbeddedControllerFirmwareMajorRelease);
363 ShellPrintEx (-1, -1, L
"Embedded Controller Firmware Minor Release: %u\n", Struct->Type0->EmbeddedControllerFirmwareMinorRelease);
366 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct->Hdr->Length > 0x18)) {
371 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTENDED_BIOS_SIZE),
372 gShellDebug1HiiHandle,
373 Struct->Type0->ExtendedBiosSize.Size,
374 (Struct->Type0->ExtendedBiosSize.Unit == 0x0) ? L
"MB" : L
"GB"
384 PRINT_PENDING_STRING (Struct, Type1, Manufacturer);
385 PRINT_PENDING_STRING (Struct, Type1, ProductName);
386 PRINT_PENDING_STRING (Struct, Type1, Version);
387 PRINT_PENDING_STRING (Struct, Type1, SerialNumber);
388 PRINT_BIT_FIELD (Struct, Type1, Uuid, 16);
390 if (AE_SMBIOS_VERSION (0x2, 0x4) && (Struct->Hdr->Length > 0x19)) {
391 PRINT_PENDING_STRING (Struct, Type1, SKUNumber);
392 PRINT_PENDING_STRING (Struct, Type1, Family);
401 PRINT_PENDING_STRING (Struct, Type2, Manufacturer);
402 PRINT_PENDING_STRING (Struct, Type2, ProductName);
403 PRINT_PENDING_STRING (Struct, Type2, Version);
404 PRINT_PENDING_STRING (Struct, Type2, SerialNumber);
405 if (Struct->Hdr->Length > 0x8) {
406 PRINT_PENDING_STRING (Struct, Type2, AssetTag);
408 PRINT_PENDING_STRING (Struct, Type2, LocationInChassis);
409 PRINT_STRUCT_VALUE_H (Struct, Type2, ChassisHandle);
419 PRINT_PENDING_STRING (Struct, Type3, Manufacturer);
420 PRINT_STRUCT_VALUE (Struct, Type3, Type);
422 PRINT_PENDING_STRING (Struct, Type3, Version);
423 PRINT_PENDING_STRING (Struct, Type3, SerialNumber);
424 PRINT_PENDING_STRING (Struct, Type3, AssetTag);
433 if (AE_SMBIOS_VERSION (0x2, 0x3)) {
434 if (Struct->Hdr->Length > 0xD) {
435 PRINT_BIT_FIELD (Struct, Type3, OemDefined, 4);
438 if (Struct->Hdr->Length > 0x11) {
439 PRINT_STRUCT_VALUE (Struct, Type3, Height);
442 if (Struct->Hdr->Length > 0x12) {
443 PRINT_STRUCT_VALUE (Struct, Type3, NumberofPowerCords);
446 if (Struct->Hdr->Length > 0x13) {
447 PRINT_STRUCT_VALUE (Struct, Type3, ContainedElementCount);
450 if (Struct->Hdr->Length > 0x14) {
451 PRINT_STRUCT_VALUE (Struct, Type3, ContainedElementRecordLength);
454 if (Struct->Hdr->Length > 0x15) {
455 for (Index = 0; Index < Struct->Type3->ContainedElementCount; Index++) {
457 for (Index2 = 0; Index2 < Struct->Type3->ContainedElementRecordLength; Index2++) {
458 Print (L
"%02X ", Buffer[0x15 + (Index * Struct->Type3->ContainedElementRecordLength) + Index2]);
466 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0x13)) {
467 if (Struct->Hdr->Length > (0x15 + (Struct->Type3->ContainedElementCount * Struct->Type3->ContainedElementRecordLength))) {
468 PRINT_SMBIOS_STRING (Struct, Buffer[0x15 + (Struct->Type3->ContainedElementCount * Struct->Type3->ContainedElementRecordLength)], SKUNumber);
484 DumpHex (0, 0, 8, &(Struct->Type4->ProcessorId));
487 ShellPrintEx (-1, -1, L
"External Clock: %u\n", Struct->Type4->ExternalClock);
488 ShellPrintEx (-1, -1, L
"Max Speed: %u\n", Struct->Type4->MaxSpeed);
489 ShellPrintEx (-1, -1, L
"Current Speed: %u\n", Struct->Type4->CurrentSpeed);
492 ShellPrintEx (-1, -1, L
"L1 Cache Handle: 0x%x\n", Struct->Type4->L1CacheHandle);
493 ShellPrintEx (-1, -1, L
"L2 Cache Handle: 0x%x\n", Struct->Type4->L2CacheHandle);
494 ShellPrintEx (-1, -1, L
"L3 Cache Handle: 0x%x\n", Struct->Type4->L3CacheHandle);
495 if (AE_SMBIOS_VERSION (0x2, 0x3) && (Struct->Hdr->Length > 0x20)) {
501 if (AE_SMBIOS_VERSION (0x2, 0x5) && (Struct->Hdr->Length > 0x23)) {
502 ShellPrintEx (-1, -1, L
"Core Count: %u\n", Struct->Type4->CoreCount);
503 ShellPrintEx (-1, -1, L
"Core Enabled: %u\n", Struct->Type4->EnabledCoreCount);
504 ShellPrintEx (-1, -1, L
"Thread Count: %u\n", Struct->Type4->ThreadCount);
508 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct->Hdr->Length > 0x28)) {
510 if (Struct->Type4->ProcessorFamily2 >= 0x100) {
517 if ((SmbiosMajorVersion >= 0x3) && (Struct->Hdr->Length > 0x2A)) {
518 ShellPrintEx (-1, -1, L
"Core Count 2: %u\n", Struct->Type4->CoreCount2);
519 ShellPrintEx (-1, -1, L
"Core Enabled 2: %u\n", Struct->Type4->EnabledCoreCount2);
520 ShellPrintEx (-1, -1, L
"Thread Count 2: %u\n", Struct->Type4->ThreadCount2);
523 if (AE_SMBIOS_VERSION (0x3, 0x6) && (Struct->Hdr->Length > 0x30)) {
524 ShellPrintEx (-1, -1, L
"Thread Enabled: %u\n", Struct->Type4->ThreadEnabled);
527 if (AE_SMBIOS_VERSION (0x3, 0x8) && (Struct->Hdr->Length > 0x32)) {
539 SlotNum = Struct->Type5->AssociatedMemorySlotNum;
551 PRINT_STRUCT_VALUE (Struct, Type5, AssociatedMemorySlotNum);
564 PRINT_PENDING_STRING (Struct, Type6, SocketDesignation);
566 PRINT_STRUCT_VALUE (Struct, Type6, CurrentSpeed);
579 PRINT_PENDING_STRING (Struct, Type7, SocketDesignation);
581 PRINT_STRUCT_VALUE_H (Struct, Type7, MaximumCacheSize);
582 PRINT_STRUCT_VALUE_H (Struct, Type7, InstalledSize);
583 PRINT_STRUCT_VALUE_H (Struct, Type7, SupportedSRAMType);
584 PRINT_STRUCT_VALUE_H (Struct, Type7, CurrentSRAMType);
586 PRINT_STRUCT_VALUE_H (Struct, Type7, CacheSpeed);
590 if (AE_SMBIOS_VERSION (0x3, 0x1) && (Struct->Hdr->Length > 0x13)) {
591 PRINT_STRUCT_VALUE_H (Struct, Type7, MaximumCacheSize2);
592 PRINT_STRUCT_VALUE_H (Struct, Type7, InstalledSize2);
601 PRINT_PENDING_STRING (Struct, Type8, InternalReferenceDesignator);
602 Print (L
"Internal ");
604 PRINT_PENDING_STRING (Struct, Type8, ExternalReferenceDesignator);
617 UINT8 PeerGroupCount;
619 PRINT_PENDING_STRING (Struct, Type9, SlotDesignation);
625 Struct->Type9->SlotID,
626 Struct->Type9->SlotType,
631 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct->Hdr->Length > 0xD)) {
632 PRINT_STRUCT_VALUE_H (Struct, Type9, SegmentGroupNum);
633 PRINT_STRUCT_VALUE_H (Struct, Type9, BusNum);
634 PRINT_STRUCT_VALUE_H (Struct, Type9, DevFuncNum);
637 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
638 if (Struct->Hdr->Length > 0x11) {
639 PRINT_STRUCT_VALUE (Struct, Type9, DataBusWidth);
642 if (Struct->Hdr->Length > 0x12) {
643 PRINT_STRUCT_VALUE (Struct, Type9, PeerGroupingCount);
645 PeerGroupCount = Struct->Type9->PeerGroupingCount;
646 PeerGroupPtr = Struct->Type9->PeerGroups;
647 for (Index = 0; Index < PeerGroupCount; Index++) {
655 if (AE_SMBIOS_VERSION (0x3, 0x4)) {
662 if (AE_SMBIOS_VERSION (0x3, 0x5)) {
678 NumOfDevice = (Struct->Type10->Hdr.Length -
sizeof (
SMBIOS_STRUCTURE)) / (2 *
sizeof (UINT8));
679 for (Index = 0; (
UINTN)Index < NumOfDevice; Index++) {
680 ShellPrintEx (-1, -1, (((Struct->Type10->Device[Index].DeviceType) & 0x80) != 0) ? L
"Device Enabled\n" : L
"Device Disabled\n");
693 PRINT_STRUCT_VALUE (Struct, Type11, StringCount);
694 for (Index = 1; Index <= Struct->Type11->StringCount; Index++) {
704 PRINT_STRUCT_VALUE (Struct, Type12, StringCount);
705 for (Index = 1; Index <= Struct->Type12->StringCount; Index++) {
715 PRINT_STRUCT_VALUE (Struct, Type13, InstallableLanguages);
716 PRINT_STRUCT_VALUE (Struct, Type13, Flags);
717 PRINT_BIT_FIELD (Struct, Type13, Reserved, 15);
718 PRINT_PENDING_STRING (Struct, Type13, CurrentLanguages);
727 NumOfItem = (Struct->Type14->Hdr.Length - 5) / 3;
728 PRINT_PENDING_STRING (Struct, Type14, GroupName);
729 for (Index = 0; Index < NumOfItem; Index++) {
730 ShellPrintEx (-1, -1, L
"ItemType %u: %u\n", Index + 1, Struct->Type14->Group[Index].ItemType);
731 ShellPrintEx (-1, -1, L
"ItemHandle %u: %u\n", Index + 1, Struct->Type14->Group[Index].ItemHandle);
744 UINT8 *AccessMethodAddress;
746 PRINT_STRUCT_VALUE_H (Struct, Type15, LogAreaLength);
747 PRINT_STRUCT_VALUE_H (Struct, Type15, LogHeaderStartOffset);
748 PRINT_STRUCT_VALUE_H (Struct, Type15, LogDataStartOffset);
750 PRINT_STRUCT_VALUE_H (Struct, Type15, AccessMethodAddress);
752 PRINT_STRUCT_VALUE_H (Struct, Type15, LogChangeToken);
754 PRINT_STRUCT_VALUE_H (Struct, Type15, NumberOfSupportedLogTypeDescriptors);
755 PRINT_STRUCT_VALUE_H (Struct, Type15, LengthOfLogTypeDescriptor);
757 Count = Struct->Type15->NumberOfSupportedLogTypeDescriptors;
759 Ptr = Struct->Type15->EventLogTypeDescriptors;
764 for (Index = 0; Index < Count; Index++, Ptr++) {
770 if (Option >= SHOW_DETAIL) {
771 switch (Struct->Type15->AccessMethod) {
773 AccessMethodAddress = (UINT8 *)(
UINTN)(Struct->Type15->AccessMethodAddress);
785 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED),
786 gShellDebug1HiiHandle,
787 Struct->Type15->AccessMethod
789 return EFI_UNSUPPORTED;
799 Struct->Type15->LogHeaderFormat,
800 AccessMethodAddress + Struct->Type15->LogHeaderStartOffset
810 AccessMethodAddress + Struct->Type15->LogDataStartOffset,
813 Struct->Type15->LogAreaLength -
814 (Struct->Type15->LogDataStartOffset - Struct->Type15->LogHeaderStartOffset)
830 Struct->Type16->MemoryErrorCorrection,
833 PRINT_STRUCT_VALUE_H (Struct, Type16, MaximumCapacity);
834 PRINT_STRUCT_VALUE_H (Struct, Type16, MemoryErrorInformationHandle);
835 PRINT_STRUCT_VALUE_H (Struct, Type16, NumberOfMemoryDevices);
836 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0xF)) {
837 PRINT_STRUCT_VALUE_LH (Struct, Type16, ExtendedMaximumCapacity);
846 ShellPrintEx (-1, -1, L
"Physical Memory Array Handle: 0x%x\n", Struct->Type17->MemoryArrayHandle);
847 ShellPrintEx (-1, -1, L
"Memory Error Information Handle: 0x%x\n", Struct->Type17->MemoryErrorInformationHandle);
848 ShellPrintEx (-1, -1, L
"Total Width: 0x%x\n", Struct->Type17->TotalWidth);
849 ShellPrintEx (-1, -1, L
"Data Width: 0x%x\n", Struct->Type17->DataWidth);
850 PRINT_STRUCT_VALUE (Struct, Type17, Size);
852 ShellPrintEx (-1, -1, L
"Device Set: 0x%x\n", Struct->Type17->DeviceSet);
857 PRINT_STRUCT_VALUE_H (Struct, Type17, Speed);
858 PRINT_PENDING_STRING (Struct, Type17, Manufacturer);
862 if (AE_SMBIOS_VERSION (0x2, 0x6) && (Struct->Hdr->Length > 0x1B)) {
863 PRINT_STRUCT_VALUE_H (Struct, Type17, Attributes);
866 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0x1C)) {
867 ShellPrintEx (-1, -1, L
"Extended Size: %u\n", Struct->Type17->ExtendedSize);
868 ShellPrintEx (-1, -1, L
"Configured Memory Speed: 0x%x\n", Struct->Type17->ConfiguredMemoryClockSpeed);
871 if (AE_SMBIOS_VERSION (0x2, 0x8) && (Struct->Hdr->Length > 0x22)) {
872 ShellPrintEx (-1, -1, L
"Minimum voltage: %u\n", Struct->Type17->MinimumVoltage);
873 ShellPrintEx (-1, -1, L
"Maximum voltage: %u\n", Struct->Type17->MaximumVoltage);
874 ShellPrintEx (-1, -1, L
"Configured voltage: %u\n", Struct->Type17->ConfiguredVoltage);
877 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
878 if (Struct->Hdr->Length > 0x28) {
882 ShellPrintEx (-1, -1, L
"Module Manufacturer ID: 0x%x\n", Struct->Type17->ModuleManufacturerID);
883 ShellPrintEx (-1, -1, L
"Module Product ID: 0x%x\n", Struct->Type17->ModuleProductID);
884 ShellPrintEx (-1, -1, L
"Memory Subsystem Controller Manufacturer ID: 0x%x\n", Struct->Type17->MemorySubsystemControllerManufacturerID);
885 ShellPrintEx (-1, -1, L
"Memory Subsystem Controller Product ID: 0x%x\n", Struct->Type17->MemorySubsystemControllerProductID);
888 if (Struct->Hdr->Length > 0x34) {
889 ShellPrintEx (-1, -1, L
"Non-volatile Size: 0x%lx\n", Struct->Type17->NonVolatileSize);
892 if (Struct->Hdr->Length > 0x3C) {
893 ShellPrintEx (-1, -1, L
"Volatile Size: 0x%lx\n", Struct->Type17->VolatileSize);
896 if (Struct->Hdr->Length > 0x44) {
897 ShellPrintEx (-1, -1, L
"Cache Size: 0x%lx\n", Struct->Type17->CacheSize);
900 if (Struct->Hdr->Length > 0x4C) {
901 ShellPrintEx (-1, -1, L
"Logical Size: 0x%lx\n", Struct->Type17->LogicalSize);
905 if (AE_SMBIOS_VERSION (0x3, 0x3) && (Struct->Hdr->Length > 0x54)) {
906 ShellPrintEx (-1, -1, L
"Extended Speed: 0x%x\n", Struct->Type17->ExtendedSpeed);
907 ShellPrintEx (-1, -1, L
"Extended Configured Memory Speed: 0x%x\n", Struct->Type17->ExtendedConfiguredMemorySpeed);
910 if (AE_SMBIOS_VERSION (0x3, 0x7) && (Struct->Hdr->Length > 0x5C)) {
911 ShellPrintEx (-1, -1, L
"PMIC0 Manufacturer ID: 0x%x\n", Struct->Type17->Pmic0ManufacturerID);
912 ShellPrintEx (-1, -1, L
"PMIC0 Revision Number: 0x%x\n", Struct->Type17->Pmic0RevisionNumber);
913 ShellPrintEx (-1, -1, L
"RCD Manufacturer ID: 0x%x\n", Struct->Type17->RcdManufacturerID);
914 ShellPrintEx (-1, -1, L
"RCD Revision Number: 0x%x\n", Struct->Type17->RcdRevisionNumber);
925 Struct->Type18->ErrorGranularity,
929 PRINT_STRUCT_VALUE_H (Struct, Type18, VendorSyndrome);
930 PRINT_STRUCT_VALUE_H (Struct, Type18, MemoryArrayErrorAddress);
931 PRINT_STRUCT_VALUE_H (Struct, Type18, DeviceErrorAddress);
932 PRINT_STRUCT_VALUE_H (Struct, Type18, ErrorResolution);
939 PRINT_STRUCT_VALUE_H (Struct, Type19, StartingAddress);
940 PRINT_STRUCT_VALUE_H (Struct, Type19, EndingAddress);
941 PRINT_STRUCT_VALUE_H (Struct, Type19, MemoryArrayHandle);
942 PRINT_STRUCT_VALUE_H (Struct, Type19, PartitionWidth);
943 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0xF)) {
944 PRINT_STRUCT_VALUE_LH (Struct, Type19, ExtendedStartingAddress);
945 PRINT_STRUCT_VALUE_LH (Struct, Type19, ExtendedEndingAddress);
954 PRINT_STRUCT_VALUE_H (Struct, Type20, StartingAddress);
955 PRINT_STRUCT_VALUE_H (Struct, Type20, EndingAddress);
956 PRINT_STRUCT_VALUE_H (Struct, Type20, MemoryDeviceHandle);
957 PRINT_STRUCT_VALUE_H (Struct, Type20, MemoryArrayMappedAddressHandle);
958 PRINT_STRUCT_VALUE_H (Struct, Type20, PartitionRowPosition);
959 PRINT_STRUCT_VALUE_H (Struct, Type20, InterleavePosition);
960 PRINT_STRUCT_VALUE_H (Struct, Type20, InterleavedDataDepth);
961 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0x13)) {
962 PRINT_STRUCT_VALUE_LH (Struct, Type19, ExtendedStartingAddress);
963 PRINT_STRUCT_VALUE_LH (Struct, Type19, ExtendedEndingAddress);
974 PRINT_STRUCT_VALUE (Struct, Type21, NumberOfButtons);
981 PRINT_PENDING_STRING (Struct, Type22, Location);
982 PRINT_PENDING_STRING (Struct, Type22, Manufacturer);
983 PRINT_PENDING_STRING (Struct, Type22, ManufactureDate);
984 PRINT_PENDING_STRING (Struct, Type22, SerialNumber);
985 PRINT_PENDING_STRING (Struct, Type22, DeviceName);
987 Struct->Type22->DeviceChemistry,
990 PRINT_STRUCT_VALUE_H (Struct, Type22, DeviceCapacity);
991 PRINT_STRUCT_VALUE_H (Struct, Type22, DesignVoltage);
992 PRINT_PENDING_STRING (Struct, Type22, SBDSVersionNumber);
993 PRINT_STRUCT_VALUE_H (Struct, Type22, MaximumErrorInBatteryData);
994 PRINT_STRUCT_VALUE_H (Struct, Type22, SBDSSerialNumber);
996 Struct->Type22->SBDSManufactureDate,
999 PRINT_PENDING_STRING (Struct, Type22, SBDSDeviceChemistry);
1000 PRINT_STRUCT_VALUE_H (Struct, Type22, DesignCapacityMultiplier);
1001 PRINT_STRUCT_VALUE_H (Struct, Type22, OEMSpecific);
1009 Struct->Type23->Capabilities,
1012 PRINT_STRUCT_VALUE_H (Struct, Type23, ResetCount);
1013 PRINT_STRUCT_VALUE_H (Struct, Type23, ResetLimit);
1014 PRINT_STRUCT_VALUE_H (Struct, Type23, TimerInterval);
1015 PRINT_STRUCT_VALUE_H (Struct, Type23, Timeout);
1023 Struct->Type24->HardwareSecuritySettings,
1032 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnMonth);
1033 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnDayOfMonth);
1034 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnHour);
1035 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnMinute);
1036 PRINT_STRUCT_VALUE_H (Struct, Type25, NextScheduledPowerOnSecond);
1043 PRINT_PENDING_STRING (Struct, Type26, Description);
1045 DisplayVPStatus (*(UINT8 *)&(Struct->Type26->LocationAndStatus), Option);
1046 PRINT_STRUCT_VALUE_H (Struct, Type26, MaximumValue);
1047 PRINT_STRUCT_VALUE_H (Struct, Type26, MinimumValue);
1048 PRINT_STRUCT_VALUE_H (Struct, Type26, Resolution);
1049 PRINT_STRUCT_VALUE_H (Struct, Type26, Tolerance);
1050 PRINT_STRUCT_VALUE_H (Struct, Type26, Accuracy);
1051 PRINT_STRUCT_VALUE_H (Struct, Type26, OEMDefined);
1052 PRINT_STRUCT_VALUE_H (Struct, Type26, NominalValue);
1059 PRINT_STRUCT_VALUE_H (Struct, Type27, TemperatureProbeHandle);
1062 PRINT_STRUCT_VALUE_H (Struct, Type27, CoolingUnitGroup);
1063 PRINT_STRUCT_VALUE_H (Struct, Type27, OEMDefined);
1064 PRINT_STRUCT_VALUE_H (Struct, Type27, NominalSpeed);
1065 if (AE_SMBIOS_VERSION (0x2, 0x7) && (Struct->Hdr->Length > 0xE)) {
1066 PRINT_PENDING_STRING (Struct, Type27, Description);
1075 PRINT_PENDING_STRING (Struct, Type28, Description);
1078 PRINT_STRUCT_VALUE_H (Struct, Type28, MaximumValue);
1079 PRINT_STRUCT_VALUE_H (Struct, Type28, MinimumValue);
1080 PRINT_STRUCT_VALUE_H (Struct, Type28, Resolution);
1081 PRINT_STRUCT_VALUE_H (Struct, Type28, Tolerance);
1082 PRINT_STRUCT_VALUE_H (Struct, Type28, Accuracy);
1083 PRINT_STRUCT_VALUE_H (Struct, Type28, OEMDefined);
1084 PRINT_STRUCT_VALUE_H (Struct, Type28, NominalValue);
1091 PRINT_PENDING_STRING (Struct, Type29, Description);
1093 DisplayECPLoc (*(UINT8 *)&(Struct->Type29->LocationAndStatus), Option);
1094 PRINT_STRUCT_VALUE_H (Struct, Type29, MaximumValue);
1095 PRINT_STRUCT_VALUE_H (Struct, Type29, MinimumValue);
1096 PRINT_STRUCT_VALUE_H (Struct, Type29, Resolution);
1097 PRINT_STRUCT_VALUE_H (Struct, Type29, Tolerance);
1098 PRINT_STRUCT_VALUE_H (Struct, Type29, Accuracy);
1099 PRINT_STRUCT_VALUE_H (Struct, Type29, OEMDefined);
1100 PRINT_STRUCT_VALUE_H (Struct, Type29, NominalValue);
1107 PRINT_PENDING_STRING (Struct, Type30, ManufacturerName);
1122 PRINT_BIT_FIELD (Struct, Type32, Reserved, 6);
1132 Struct->Type33->ErrorGranularity,
1136 PRINT_STRUCT_VALUE_H (Struct, Type33, VendorSyndrome);
1137 PRINT_STRUCT_VALUE_LH (Struct, Type33, MemoryArrayErrorAddress);
1138 PRINT_STRUCT_VALUE_LH (Struct, Type33, DeviceErrorAddress);
1139 PRINT_STRUCT_VALUE_H (Struct, Type33, ErrorResolution);
1146 PRINT_PENDING_STRING (Struct, Type34, Description);
1148 PRINT_STRUCT_VALUE_H (Struct, Type34, Address);
1156 PRINT_PENDING_STRING (Struct, Type35, Description);
1157 PRINT_STRUCT_VALUE_H (Struct, Type35, ManagementDeviceHandle);
1158 PRINT_STRUCT_VALUE_H (Struct, Type35, ComponentHandle);
1159 PRINT_STRUCT_VALUE_H (Struct, Type35, ThresholdHandle);
1166 PRINT_STRUCT_VALUE_H (Struct, Type36, LowerThresholdNonCritical);
1167 PRINT_STRUCT_VALUE_H (Struct, Type36, UpperThresholdNonCritical);
1168 PRINT_STRUCT_VALUE_H (Struct, Type36, LowerThresholdCritical);
1169 PRINT_STRUCT_VALUE_H (Struct, Type36, UpperThresholdCritical);
1170 PRINT_STRUCT_VALUE_H (Struct, Type36, LowerThresholdNonRecoverable);
1171 PRINT_STRUCT_VALUE_H (Struct, Type36, UpperThresholdNonRecoverable);
1182 PRINT_STRUCT_VALUE_H (Struct, Type37, MaximumChannelLoad);
1183 PRINT_STRUCT_VALUE_H (Struct, Type37, MemoryDeviceCount);
1185 Count = Struct->Type37->MemoryDeviceCount;
1186 Ptr = Struct->Type37->MemoryDevice;
1187 for (Index = 0; Index < Count; Index++) {
1206 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IPMI_SPECIFICATION_REVISION),
1207 gShellDebug1HiiHandle,
1208 RShiftU64 ((UINT64)Struct->Type38->IPMISpecificationRevision, 4), \
1209 Struct->Type38->IPMISpecificationRevision & 0x0F
1212 PRINT_STRUCT_VALUE_H (Struct, Type38, I2CSlaveAddress);
1214 if (Struct->Type38->NVStorageDeviceAddress == 0xFF) {
1217 PRINT_STRUCT_VALUE_H (Struct, Type38, NVStorageDeviceAddress);
1223 PRINT_STRUCT_VALUE_LH (Struct, Type38, BaseAddress);
1232 PRINT_STRUCT_VALUE_H (Struct, Type39, PowerUnitGroup);
1233 PRINT_PENDING_STRING (Struct, Type39, Location);
1234 PRINT_PENDING_STRING (Struct, Type39, DeviceName);
1235 PRINT_PENDING_STRING (Struct, Type39, Manufacturer);
1236 PRINT_PENDING_STRING (Struct, Type39, SerialNumber);
1237 PRINT_PENDING_STRING (Struct, Type39, AssetTagNumber);
1238 PRINT_PENDING_STRING (Struct, Type39, ModelPartNumber);
1239 PRINT_PENDING_STRING (Struct, Type39, RevisionLevel);
1240 PRINT_STRUCT_VALUE_H (Struct, Type39, MaxPowerCapacity);
1242 *(UINT16 *)&(Struct->Type39->PowerSupplyCharacteristics),
1245 PRINT_STRUCT_VALUE_H (Struct, Type39, InputVoltageProbeHandle);
1246 PRINT_STRUCT_VALUE_H (Struct, Type39, CoolingDeviceHandle);
1247 PRINT_STRUCT_VALUE_H (Struct, Type39, InputCurrentProbeHandle);
1255 UINT8 NumberOfEntries;
1260 Entries = Struct->Type40->AdditionalInfoEntries;
1261 NumberOfEntries = Struct->Type40->NumberOfAdditionalInformationEntries;
1263 PRINT_STRUCT_VALUE_H (Struct, Type40, NumberOfAdditionalInformationEntries);
1265 for (Index = 0; Index < NumberOfEntries; Index++) {
1266 EntryLength = Entries->EntryLength;
1270 PRINT_SMBIOS_STRING (Struct, Entries->EntryString, String);
1271 PRINT_SMBIOS_BIT_FIELD (Struct, Entries->Value, Value, EntryLength - 5);
1283 ShellPrintEx (-1, -1, (((Struct->Type41->DeviceType) & 0x80) != 0) ? L
"Device Enabled\n" : L
"Device Disabled\n");
1285 ShellPrintEx (-1, -1, L
"Device Type Instance: 0x%x\n", Struct->Type41->DeviceTypeInstance);
1286 ShellPrintEx (-1, -1, L
"Segment Group Number: 0x%x\n", Struct->Type41->SegmentGroupNum);
1287 ShellPrintEx (-1, -1, L
"Bus Number: 0x%x\n", Struct->Type41->BusNum);
1288 ShellPrintEx (-1, -1, L
"Device/Function Number: 0x%x\n", Struct->Type41->DevFuncNum);
1296 if (AE_SMBIOS_VERSION (0x3, 0x2)) {
1297 PRINT_STRUCT_VALUE_H (Struct, Type42, InterfaceTypeSpecificDataLength);
1298 PRINT_BIT_FIELD (Struct, Type42, InterfaceTypeSpecificData, Struct->Type42->InterfaceTypeSpecificDataLength);
1307 PRINT_BIT_FIELD (Struct, Type43, VendorID, 4);
1308 PRINT_STRUCT_VALUE_H (Struct, Type43, MajorSpecVersion);
1309 PRINT_STRUCT_VALUE_H (Struct, Type43, MinorSpecVersion);
1310 PRINT_STRUCT_VALUE_H (Struct, Type43, FirmwareVersion1);
1311 PRINT_STRUCT_VALUE_H (Struct, Type43, FirmwareVersion2);
1312 PRINT_PENDING_STRING (Struct, Type43, Description);
1314 PRINT_STRUCT_VALUE_H (Struct, Type43, OemDefined);
1328 PRINT_PENDING_STRING (Struct, Type45, FirmwareComponentName);
1329 PRINT_PENDING_STRING (Struct, Type45, FirmwareVersion);
1330 if (Struct->Type45->FirmwareVersionFormat == VersionFormatTypeFreeForm) {
1331 String = L
"Free-form string";
1332 }
else if (Struct->Type45->FirmwareVersionFormat == VersionFormatTypeMajorMinor) {
1333 String = L
"MAJOR.MINOR";
1334 }
else if (Struct->Type45->FirmwareVersionFormat == VersionFormatType32BitHex) {
1335 String = L
"32-bit hexadecimal string";
1336 }
else if (Struct->Type45->FirmwareVersionFormat == VersionFormatTypeMajorMinor) {
1337 String = L
"64-bit hexadecimal string";
1338 }
else if (Struct->Type45->FirmwareVersionFormat >= 0x80) {
1339 String = L
"BIOS Vendor/OEM-specific";
1341 String = L
"Reserved";
1348 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_VERSION_FORMAT),
1349 gShellDebug1HiiHandle,
1352 PRINT_PENDING_STRING (Struct, Type45, FirmwareId);
1353 if (Struct->Type45->FirmwareIdFormat == FirmwareIdFormatTypeFreeForm) {
1354 String = L
"Free-form string";
1355 }
else if (Struct->Type45->FirmwareIdFormat == FirmwareIdFormatTypeUuid) {
1356 String = L
"RFC4122 UUID string";
1357 }
else if (Struct->Type45->FirmwareIdFormat >= 0x80) {
1358 String = L
"BIOS Vendor/OEM-specific";
1360 String = L
"Reserved";
1367 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_ID_FORMAT),
1368 gShellDebug1HiiHandle,
1371 PRINT_PENDING_STRING (Struct, Type45, ReleaseDate);
1372 PRINT_PENDING_STRING (Struct, Type45, Manufacturer);
1373 PRINT_PENDING_STRING (Struct, Type45, LowestSupportedVersion);
1374 if (Struct->Type45->ImageSize != MAX_UINT64) {
1375 PRINT_STRUCT_VALUE_H (Struct, Type45, ImageSize);
1381 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IMAGE_SIZE_UNKNOWN),
1382 gShellDebug1HiiHandle
1389 PRINT_STRUCT_VALUE_H (Struct, Type45, AssociatedComponentCount);
1390 if (Struct->Hdr->Length > sizeof (*Struct->Type45)) {
1391 for (Index = 0; Index < Struct->Type45->AssociatedComponentCount; Index++) {
1393 Print (L
" 0x%04X ", Buffer[
sizeof (*Struct->Type45) + (Index * sizeof (
SMBIOS_HANDLE))]);
1404 if (Struct->Type46->StringPropertyId == StringPropertyIdDevicePath) {
1405 String = L
"UEFI device path";
1409 String = L
"BIOS vendor defined";
1411 String = L
"OEM defined";
1413 String = L
"Reserved";
1420 STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRING_PROPERTY_ID),
1421 gShellDebug1HiiHandle,
1424 PRINT_PENDING_STRING (Struct, Type46, StringPropertyValue);
1425 PRINT_STRUCT_VALUE_H (Struct, Type46, ParentHandle);
1468 PRINT_INFO_OPTION (Chara, Option);
1475 if (BIT (Chara, 0) != 0) {
1479 if (BIT (Chara, 1) != 0) {
1483 if (BIT (Chara, 2) != 0) {
1487 if (BIT (Chara, 3) != 0) {
1491 if (BIT (Chara, 4) != 0) {
1495 if (BIT (Chara, 5) != 0) {
1499 if (BIT (Chara, 6) != 0) {
1503 if (BIT (Chara, 7) != 0) {
1507 if (BIT (Chara, 8) != 0) {
1511 if (BIT (Chara, 9) != 0) {
1515 if (BIT (Chara, 10) != 0) {
1519 if (BIT (Chara, 11) != 0) {
1523 if (BIT (Chara, 12) != 0) {
1527 if (BIT (Chara, 13) != 0) {
1531 if (BIT (Chara, 14) != 0) {
1535 if (BIT (Chara, 15) != 0) {
1539 if (BIT (Chara, 16) != 0) {
1543 if (BIT (Chara, 17) != 0) {
1547 if (BIT (Chara, 18) != 0) {
1551 if (BIT (Chara, 19) != 0) {
1555 if (BIT (Chara, 20) != 0) {
1559 if (BIT (Chara, 21) != 0) {
1563 if (BIT (Chara, 22) != 0) {
1567 if (BIT (Chara, 23) != 0) {
1571 if (BIT (Chara, 24) != 0) {
1575 if (BIT (Chara, 25) != 0) {
1579 if (BIT (Chara, 26) != 0) {
1583 if (BIT (Chara, 27) != 0) {
1587 if (BIT (Chara, 28) != 0) {
1591 if (BIT (Chara, 29) != 0) {
1595 if (BIT (Chara, 30) != 0) {
1599 if (BIT (Chara, 31) != 0) {
1626 PRINT_INFO_OPTION (Byte1, Option);
1631 if (BIT (Byte1, 0) != 0) {
1635 if (BIT (Byte1, 1) != 0) {
1639 if (BIT (Byte1, 2) != 0) {
1643 if (BIT (Byte1, 3) != 0) {
1647 if (BIT (Byte1, 4) != 0) {
1651 if (BIT (Byte1, 5) != 0) {
1655 if (BIT (Byte1, 6) != 0) {
1659 if (BIT (Byte1, 7) != 0) {
1680 PRINT_INFO_OPTION (byte2, Option);
1682 if (BIT (byte2, 0) != 0) {
1686 if (BIT (byte2, 1) != 0) {
1690 if (AE_SMBIOS_VERSION (0x2, 0x4)) {
1691 if (BIT (byte2, 2) != 0) {
1695 if (AE_SMBIOS_VERSION (0x2, 0x7)) {
1696 if (BIT (byte2, 3) != 0) {
1700 if (BIT (byte2, 4) != 0) {
1704 if (BIT (byte2, 5) != 0) {
1708 if (BIT (byte2, 6) != 0) {
1736 PRINT_INFO_OPTION (Family, Option);
1815 Print (L
"M2 Family\n");
1819 Print (L
"Intel Celeron M\n");
1823 Print (L
"Intel Pentium 4 HT\n");
1827 Print (L
"AMD Duron\n");
1835 Print (L
"K6 Family\n");
1847 Print (L
"AMD Althon Processor Family\n");
1851 Print (L
"AMD 29000 Family\n");
1879 Print (L
"Power PC 620\n");
1883 Print (L
"Power PC 704\n");
1887 Print (L
"Power PC 750\n");
1907 Print (L
"Intel(R) Core(TM) M processor\n");
1911 Print (L
"Intel(R) Core(TM) m3 processor\n");
1915 Print (L
"Intel(R) Core(TM) m5 processor\n");
1919 Print (L
"Intel(R) Core(TM) m7 processor\n");
1927 Print (L
"Alpha 21064\n");
1931 Print (L
"Alpha 21066\n");
1935 Print (L
"Alpha 21164\n");
1939 Print (L
"Alpha 21164PC\n");
1943 Print (L
"Alpha 21164a\n");
1947 Print (L
"Alpha 21264\n");
1951 Print (L
"Alpha 21364\n");
1955 Print (L
"AMD Turion II Ultra Dual-Core Mobile M Processor Family\n");
1959 Print (L
"AMD Turion II Dual-Core Mobile M Processor Family\n");
1963 Print (L
"AMD Althon II Dual-Core M Processor Family\n");
1967 Print (L
"AMD Opteron 6100 Series Processor\n");
1971 Print (L
"AMD Opteron 4100 Series Processor\n");
1975 Print (L
"AMD Opteron 6200 Series Processor\n");
1979 Print (L
"AMD Opteron 4200 Series Processor\n");
1991 Print (L
"MIPS R4000\n");
1995 Print (L
"MIPS R4200\n");
1999 Print (L
"MIPS R4400\n");
2003 Print (L
"MIPS R4600\n");
2007 Print (L
"MIPS R10000\n");
2011 Print (L
"AMD C-Series Processor\n");
2015 Print (L
"AMD E-Series Processor\n");
2019 Print (L
"AMD A-Series Processor\n");
2023 Print (L
"AMD G-Series Processor\n");
2055 Print (L
"SuperSparc\n");
2059 Print (L
"microSparc II\n");
2063 Print (L
"microSparc IIep\n");
2067 Print (L
"UltraSparc\n");
2071 Print (L
"UltraSparc II\n");
2075 Print (L
"UltraSparcIIi\n");
2079 Print (L
"UltraSparcIII\n");
2083 Print (L
"UltraSparcIIIi\n");
2111 Print (L
"AMD Athlon(TM) X4 Quad-Core Processor Family\n");
2115 Print (L
"AMD Opteron(TM) X1000 Series Processor\n");
2119 Print (L
"AMD Opteron(TM) X2000 Series APU\n");
2123 Print (L
"AMD Opteron(TM) A-Series Processor\n");
2127 Print (L
"AMD Opteron(TM) X3000 Series APU\n");
2131 Print (L
"AMD Zen Processor Family\n");
2139 Print (L
"Crusoe TM5000\n");
2143 Print (L
"Crusoe TM3000\n");
2147 Print (L
"Efficeon TM8000\n");
2155 Print (L
"Itanium\n");
2159 Print (L
"AMD Athlon64\n");
2163 Print (L
"AMD Opteron\n");
2167 Print (L
"AMD Sempron\n");
2171 Print (L
"AMD Turion64 Mobile\n");
2175 Print (L
"Dual-Core AMD Opteron\n");
2179 Print (L
"AMD Athlon 64X2 DualCore\n");
2183 Print (L
"AMD Turion 64X2 Mobile\n");
2215 Print (L
"PA-RISC 8500\n");
2219 Print (L
"PA-RISC 8000\n");
2223 Print (L
"PA-RISC 7300LC\n");
2227 Print (L
"PA-RISC 7200\n");
2231 Print (L
"PA-RISC 7100LC\n");
2235 Print (L
"PA-RISC 7100\n");
2307 Print (L
"Pentium III Processorwith Intel SpeedStep Technology\n");
2311 Print (L
"Pentium 4 processor\n");
2315 Print (L
"Intel Xeon Processor\n");
2319 Print (L
"AS400 Family\n");
2323 Print (L
"Intel Xeon processor MP\n");
2327 Print (L
"AMD Althon XP Processor Family\n");
2331 Print (L
"AMD Althon MP Promcessor Family\n");
2335 Print (L
"Intel Itanium 2 processor\n");
2339 Print (L
"Intel Penium M processor\n");
2343 Print (L
"Intel Celeron D processor\n");
2347 Print (L
"Intel Pentium D processor\n");
2351 Print (L
"Intel Pentium Processor Extreme Edition\n");
2355 Print (L
"Intel Core Solo Processor\n");
2359 Print (L
"Intel Core 2 Duo Processor\n");
2395 Print (L
"IBM 390\n");
2411 Print (L
"zArchitecture\n");
2415 Print (L
"Intel Core i5 processor\n");
2419 Print (L
"Intel Core i3 processor\n");
2423 Print (L
"Intel Core i9 processor\n");
2427 Print (L
"Intel Xeon D Processor\n");
2431 Print (L
"ViaC7M\n");
2435 Print (L
"ViaC7D\n");
2479 Print (L
"Multi-Core Intel Xeon processor 3400 Series\n");
2515 Print (L
"AMD Phenom II Processor Family\n");
2519 Print (L
"AMD Althon II Processor Family\n");
2523 Print (L
"Six-Core AMD Opteron Processor Family\n");
2527 Print (L
"AMD Sempron M Processor Family\n");
2539 Print (L
"Indicator to obtain the processor family from the Processor Family 2 field\n");
2566 PRINT_INFO_OPTION (Family2, Option);
2593 Print (L
"StrongARM\n");
2601 Print (L
"MediaGX\n");
2609 Print (L
"WinChip\n");
2617 Print (L
"Video Processor\n");
2621 Print (L
"RISC-V RV32\n");
2625 Print (L
"RISC-V RV64\n");
2629 Print (L
"RISC-V RV128\n");
2633 Print (L
"LoongArch\n");
2637 Print (L
"Loongson1\n");
2641 Print (L
"Loongson2\n");
2645 Print (L
"Loongson3\n");
2649 Print (L
"Loongson2K\n");
2653 Print (L
"Loongson3A\n");
2657 Print (L
"Loongson3B\n");
2661 Print (L
"Loongson3C\n");
2665 Print (L
"Loongson3D\n");
2669 Print (L
"Loongson3E\n");
2673 Print (L
"DualCoreLoongson2K\n");
2677 Print (L
"QuadCoreLoongson3A\n");
2681 Print (L
"MultiCoreLoongson3A\n");
2685 Print (L
"QuadCoreLoongson3B\n");
2689 Print (L
"MultiCoreLoongson3B\n");
2693 Print (L
"MultiCoreLoongson3C\n");
2697 Print (L
"MultiCoreLoongson3D\n");
2701 Print (L
"IntelCore3\n");
2705 Print (L
"IntelCore5\n");
2709 Print (L
"IntelCore7\n");
2713 Print (L
"IntelCore9\n");
2717 Print (L
"IntelCoreUltra3\n");
2721 Print (L
"IntelCoreUltra5\n");
2725 Print (L
"IntelCoreUltra7\n");
2729 Print (L
"IntelCoreUltra9\n");
2769 PRINT_INFO_OPTION (Voltage, Option);
2771 if (BIT (Voltage, 7) != 0) {
2774 if (BIT (Voltage, 0) != 0) {
2778 if (BIT (Voltage, 1) != 0) {
2782 if (BIT (Voltage, 2) != 0) {
2789 if (BIT (Voltage, 3) != 0) {
2793 if (BIT (Voltage, 4) != 0) {
2797 if (BIT (Voltage, 5) != 0) {
2801 if (BIT (Voltage, 6) != 0) {
2834 PRINT_INFO_OPTION (Status, Option);
2836 if (BIT (Status, 7) != 0) {
2838 }
else if (BIT (Status, 5) != 0) {
2840 }
else if (BIT (Status, 4) != 0) {
2842 }
else if (BIT (Status, 3) != 0) {
2849 if (BIT (Status, 6) != 0) {
2858 switch (Status & 0x07) {
2908 MaxSize = (
UINTN)1 << Size;
2911 if (Option >= SHOW_DETAIL) {
2935 if (Option >= SHOW_DETAIL) {
2944 for (Index = 0; Index < SlotNum; Index++) {
2958 IN UINT8 BankConnections,
2969 PRINT_INFO_OPTION (BankConnections, Option);
2974 High = (UINT8)(BankConnections & 0xF0);
2975 Low = (UINT8)(BankConnections & 0x0F);
3017 PRINT_INFO_OPTION (Size, Option);
3022 Value = (UINT8)(Size & 0x7F);
3023 if (Value == 0x7D) {
3025 }
else if (Value == 0x7E) {
3027 }
else if (Value == 0x7F) {
3033 if (BIT (Size, 7) != 0) {
3070 IN UINT16 CacheConfiguration,
3075 PRINT_INFO_OPTION (CacheConfiguration, Option);
3077 if (BIT (CacheConfiguration, 15) != 0) {
3079 }
else if (BIT (CacheConfiguration, 14) != 0) {
3081 }
else if (BIT (CacheConfiguration, 13) != 0) {
3083 }
else if (BIT (CacheConfiguration, 12) != 0) {
3085 }
else if (BIT (CacheConfiguration, 11) != 0) {
3087 }
else if (BIT (CacheConfiguration, 10) != 0) {
3089 }
else if (BIT (CacheConfiguration, 4) != 0) {
3096 switch ((CacheConfiguration & 0x300) >> 8) {
3117 if (BIT (CacheConfiguration, 7) != 0) {
3126 switch ((CacheConfiguration & 0x60) >> 5) {
3147 if (BIT (CacheConfiguration, 3) != 0) {
3176 PRINT_INFO_OPTION (SlotType, Option);
3184 if ((SlotId > 0) && (SlotId <= 15)) {
3197 if ((SlotId > 0) && (SlotId <= 15)) {
3223 if (((SlotType >= 0x0E) && (SlotType <= 0x13)) ||
3224 ((SlotType >= 0x1F) && (SlotType <= 0x25)) ||
3225 ((SlotType >= 0xA5) && (SlotType <= 0xC6)))
3250 PRINT_INFO_OPTION (Parameter, Option);
3255 if (Parameter == 0) {
3257 }
else if (Parameter == 1) {
3259 }
else if (Parameter == 2) {
3261 }
else if (Parameter == 3) {
3263 }
else if (Parameter == 4) {
3265 }
else if (Parameter == 5) {
3267 }
else if (Parameter == 6) {
3269 }
else if (Parameter == 7) {
3271 }
else if (Parameter == 8) {
3273 }
else if ((Parameter >= 9) && (Parameter <= 127)) {
3275 }
else if ((Parameter >= 128) && (Parameter <= 191)) {
3277 }
else if (Parameter >= 192) {
3308 PRINT_INFO_OPTION (Date, Option);
3312 Day = Date & 0x001F;
3313 Month = (Date & 0x01E0) >> 5;
3314 Year = ((Date & 0xFE00) >> 9) + 1980;
3352 PRINT_INFO_OPTION (Reset, Option);
3357 if ((Reset & 0xC0) != 0) {
3364 if (BIT (Reset, 5) != 0) {
3373 Temp = (Reset & 0x18) >> 3;
3396 Temp = (Reset & 0x06) >> 1;
3419 if ((Reset & 0x01) != 0) {
3420 Print (L
"The system reset is enabled by the user\n");
3422 Print (L
"The system reset is disabled by the user\n");
3465 PRINT_INFO_OPTION (Settings, Option);
3470 Temp = (Settings & 0xC0) >> 6;
3493 Temp = (Settings & 0x30) >> 4;
3516 Temp = (Settings & 0x0C) >> 2;
3539 Temp = Settings & 0x3;
3568 IN UINT8 Connections,
3573 PRINT_INFO_OPTION (Connections, Option);
3578 if ((Connections & 0xFC) != 0) {
3585 if (BIT (Connections, 1) != 0) {
3594 if (BIT (Connections, 0) != 0) {
3609 IN UINT16 Characteristics,
3616 PRINT_INFO_OPTION (Characteristics, Option);
3621 if ((Characteristics & 0xC000) != 0) {
3629 Temp = (Characteristics & 0x1C00) >> 10;
3671 Temp = (Characteristics & 0x380) >> 7;
3701 Temp = (Characteristics & 0x78) >> 3;
3735 if (BIT (Characteristics, 2) != 0) {
3744 if (BIT (Characteristics, 1) != 0) {
3753 if (BIT (Characteristics, 0) != 0) {
3779 PRINT_INFO_OPTION (Chara, Option);
3786 if (BIT (Chara, 0) != 0) {
3790 if (BIT (Chara, 1) != 0) {
3794 if (BIT (Chara, 2) != 0) {
3798 if (BIT (Chara, 3) != 0) {
3802 if (BIT (Chara, 4) != 0) {
3806 if (BIT (Chara, 5) != 0) {
UINT64 EFIAPI ReadUnaligned64(IN CONST UINT64 *Buffer)
UINT16 EFIAPI ReadUnaligned16(IN CONST UINT16 *Buffer)
UINT64 EFIAPI RShiftU64(IN UINT64 Operand, IN UINTN Count)
VOID DisplaySysEventLogHeader(UINT8 LogHeaderFormat, UINT8 *LogHeader)
VOID DisplaySysEventLogData(UINT8 *LogData, UINT16 LogAreaLength)
VOID DisplaySysEventLogHeaderFormat(UINT8 Key, UINT8 Option)
VOID DisplaySELAccessMethod(IN CONST UINT8 Key, IN CONST UINT8 Option)
VOID DisplaySELLogStatus(UINT8 Key, UINT8 Option)
@ IPMIDeviceInfoInterfaceTypeSSIF
SMBus System Interface.
@ StringPropertyIdOem
BIOS vendor 0x8000 - 0xBFFF.
@ StringPropertyIdBiosVendor
Reserved 0x0002 - 0x7FFF.
CHAR8 * LibGetSmbiosString(IN SMBIOS_STRUCTURE_POINTER *Smbios, IN UINT16 StringNumber)
VOID DisplayBiosCharacteristics(IN UINT64 Chara, IN UINT8 Option)
VOID DisplayProcessorFamily(UINT8 Family, UINT8 Option)
VOID DisplayCacheConfiguration(IN UINT16 CacheConfiguration, IN UINT8 Option)
VOID DisplayMmBankConnections(IN UINT8 BankConnections, IN UINT8 Option)
EFI_STATUS SmbiosPrintStructure(IN SMBIOS_STRUCTURE_POINTER *Struct, IN UINT8 Option)
VOID MemToString(IN OUT VOID *Dest, IN VOID *Src, IN UINTN Length)
VOID DisplaySystemBootStatus(IN UINT8 Parameter, IN UINT8 Option)
VOID SmbiosPrintEPSInfo(IN SMBIOS_TABLE_ENTRY_POINT *SmbiosTable, IN UINT8 Option)
VOID DisplaySystemResetCapabilities(IN UINT8 Reset, IN UINT8 Option)
VOID DisplayMaxMemoryModuleSize(IN UINT8 Size, IN UINT8 SlotNum, IN UINT8 Option)
VOID DisplayProcessorFamily2(IN UINT16 Family2, IN UINT8 Option)
VOID DisplayMemoryModuleConfigHandles(IN UINT16 *Handles, IN UINT8 SlotNum, IN UINT8 Option)
VOID DisplayProcessorVoltage(IN UINT8 Voltage, IN UINT8 Option)
VOID DisplayHardwareSecuritySettings(IN UINT8 Settings, IN UINT8 Option)
VOID DisplayBiosCharacteristicsExt1(IN UINT8 Byte1, IN UINT8 Option)
VOID DisplayTpmDeviceCharacteristics(IN UINT64 Chara, IN UINT8 Option)
VOID Smbios64BitPrintEPSInfo(IN SMBIOS_TABLE_3_0_ENTRY_POINT *SmbiosTable, IN UINT8 Option)
VOID DisplayOBRAConnections(IN UINT8 Connections, IN UINT8 Option)
VOID DisplayProcessorStatus(IN UINT8 Status, IN UINT8 Option)
VOID DisplaySystemSlotId(IN UINT16 SlotId, IN UINT8 SlotType, IN UINT8 Option)
VOID DisplaySBDSManufactureDate(IN UINT16 Date, IN UINT8 Option)
VOID DisplayBiosCharacteristicsExt2(IN UINT8 byte2, IN UINT8 Option)
VOID DisplaySPSCharacteristics(IN UINT16 Characteristics, IN UINT8 Option)
VOID DisplayMmMemorySize(IN UINT8 Size, IN UINT8 Option)
VOID DisplayFirmwareCharacteristics(IN UINT16 Chara, IN UINT8 Option)
VOID DisplayFirmwareState(IN UINT8 Key, IN UINT8 Option)
VOID DisplayProcessorArchitectureType(IN UINT8 Key, IN UINT8 Option)
VOID DisplayECPStatus(IN UINT8 Key, IN UINT8 Option)
VOID DisplayPBDeviceChemistry(IN UINT8 Key, IN UINT8 Option)
VOID DisplayMemoryDeviceTypeDetail(IN UINT16 Para, IN UINT8 Option)
VOID DisplaySESecurityStatus(IN UINT8 Status, IN UINT8 Option)
VOID DisplayBaseBoardBoardType(IN UINT8 Type, IN UINT8 Option)
VOID DisplayTemperatureProbeLoc(IN UINT8 Key, IN UINT8 Option)
VOID DisplayMDAddressType(IN UINT8 Key, IN UINT8 Option)
VOID DisplaySystemEnclosureStatus(IN UINT8 Status, IN UINT8 Option)
VOID DisplayMmMemoryType(IN UINT16 Type, IN UINT8 Option)
VOID DisplayBaseBoardFeatureFlags(IN UINT8 FeatureFlags, IN UINT8 Option)
VOID DisplayProcessorCharacteristics(IN UINT16 Type, IN UINT8 Option)
VOID DisplayIPMIDIBMCInterfaceType(IN UINT8 Key, IN UINT8 Option)
VOID DisplayMemoryErrorType(IN UINT8 ErrorType, IN UINT8 Option)
VOID DisplayProcessorType(IN UINT8 Type, IN UINT8 Option)
VOID DisplayVPLocation(IN UINT8 Key, IN UINT8 Option)
VOID DisplaySystemSlotHeight(IN UINT8 Length, IN UINT8 Option)
VOID DisplaySystemWakeupType(IN UINT8 Type, IN UINT8 Option)
VOID DisplayCacheAssociativity(IN UINT8 Associativity, IN UINT8 Option)
VOID DisplayMCHostInterfaceType(IN UINT8 Key, IN UINT8 Option)
VOID DisplayMemoryModuleVoltage(IN UINT8 Voltage, IN UINT8 Option)
VOID DisplayMcInterleaveSupport(IN UINT8 Support, IN UINT8 Option)
VOID DisplayMemoryDeviceMemoryOperatingModeCapability(IN UINT16 Para, IN UINT8 Option)
VOID DisplayCacheErrCorrectingType(IN UINT8 Type, IN UINT8 Option)
VOID DisplaySlotCharacteristics1(IN UINT8 Chara1, IN UINT8 Option)
VOID DisplayProcessorUpgrade(IN UINT8 Upgrade, IN UINT8 Option)
VOID DisplayMemoryChannelType(IN UINT8 Key, IN UINT8 Option)
VOID DisplayMcErrorCorrectCapability(IN UINT8 Capability, IN UINT8 Option)
VOID DisplayMcMemorySpeeds(IN UINT16 Speed, IN UINT8 Option)
VOID DisplayPointingDeviceType(IN UINT8 Type, IN UINT8 Option)
VOID DisplayMemoryErrorGranularity(IN UINT8 Granularity, IN UINT8 Option)
VOID DisplaySystemSlotType(IN UINT8 Type, IN UINT8 Option)
VOID DisplaySystemSlotLength(IN UINT8 Length, IN UINT8 Option)
VOID DisplayOnboardDeviceTypes(IN UINT8 Type, IN UINT8 Option)
VOID DisplayCacheSystemCacheType(IN UINT8 Type, IN UINT8 Option)
VOID DisplaySystemSlotCurrentUsage(IN UINT8 Usage, IN UINT8 Option)
VOID DisplaySlotCharacteristics2(IN UINT8 Chara2, IN UINT8 Option)
VOID DisplayMemoryErrorOperation(IN UINT8 Operation, IN UINT8 Option)
VOID DisplayMemoryDeviceFormFactor(IN UINT8 FormFactor, IN UINT8 Option)
VOID DisplayPointingDeviceInterface(IN UINT8 Interface, IN UINT8 Option)
VOID DisplayTemperatureProbeStatus(IN UINT8 Key, IN UINT8 Option)
VOID DisplayStructureTypeInfo(IN UINT8 Key, IN UINT8 Option)
VOID DisplayCoolingDeviceType(IN UINT8 Key, IN UINT8 Option)
VOID DisplaySELVarDataFormatType(IN UINT8 Type, IN UINT8 Option)
VOID DisplayECPLoc(IN UINT8 Key, IN UINT8 Option)
VOID DisplayPMALocation(IN UINT8 Location, IN UINT8 Option)
VOID DisplayMemoryDeviceMemoryTechnology(IN UINT8 Para, IN UINT8 Option)
VOID DisplayCacheSRAMType(IN UINT16 Type, IN UINT8 Option)
VOID DisplayMDType(IN UINT8 Key, IN UINT8 Option)
VOID DisplayMmErrorStatus(IN UINT8 Status, IN UINT8 Option)
VOID DisplaySystemSlotInformation(IN UINT8 Width, IN UINT8 Option)
VOID DisplaySystemSlotDataBusWidth(IN UINT8 Width, IN UINT8 Option)
VOID DisplaySystemSlotPhysicalWidth(IN UINT8 Width, IN UINT8 Option)
VOID DisplaySELTypes(IN UINT8 Type, IN UINT8 Option)
VOID DisplayPMAUse(IN UINT8 Use, IN UINT8 Option)
VOID DisplayMemoryDeviceType(IN UINT8 Type, IN UINT8 Option)
VOID DisplaySystemEnclosureType(IN UINT8 Type, IN UINT8 Option)
VOID DisplayVPStatus(IN UINT8 Key, IN UINT8 Option)
VOID DisplayCoolingDeviceStatus(IN UINT8 Key, IN UINT8 Option)
VOID DisplayPortConnectorType(IN UINT8 Type, IN UINT8 Option)
VOID DisplayPMAErrorCorrectionTypes(IN UINT8 Type, IN UINT8 Option)
VOID DisplayPortType(IN UINT8 Type, IN UINT8 Option)
VOID DisplayMcErrorDetectMethod(IN UINT8 Method, IN UINT8 Option)
VOID EFIAPI DumpHex(IN UINTN Indent, IN UINTN Offset, IN UINTN DataSize, IN VOID *UserData)
EFI_STATUS EFIAPI ShellPrintHiiEx(IN INT32 Col OPTIONAL, IN INT32 Row OPTIONAL, IN CONST CHAR8 *Language OPTIONAL, IN CONST EFI_STRING_ID HiiFormatStringId, IN CONST EFI_HII_HANDLE HiiFormatHandle,...)
EFI_STATUS EFIAPI ShellPrintEx(IN INT32 Col OPTIONAL, IN INT32 Row OPTIONAL, IN CONST CHAR16 *Format,...)
UINTN EFIAPI Print(IN CONST CHAR16 *Format,...)
UINT8 LogType
The enumeration value from EVENT_LOG_TYPE_DATA.
UINT8 SlotHeight
The enumeration value from MISC_SLOT_HEIGHT.