/** Dump ESRT entry. @param[in] EsrtEntry ESRT entry **/ VOID DumpEsrtEntry ( IN EFI_SYSTEM_RESOURCE_ENTRY *EsrtEntry ) { Print(L" FwClass - %g\n", &EsrtEntry->FwClass); Print(L" FwType - 0x%x (%a)\n", EsrtEntry->FwType, FwTypeToString(EsrtEntry->FwType)); Print(L" FwVersion - 0x%x\n", EsrtEntry->FwVersion); Print(L" LowestSupportedFwVersion - 0x%x\n", EsrtEntry->LowestSupportedFwVersion); Print(L" CapsuleFlags - 0x%x\n", EsrtEntry->CapsuleFlags); Print(L" LastAttemptVersion - 0x%x\n", EsrtEntry->LastAttemptVersion); Print(L" LastAttemptStatus - 0x%x (%a)\n", EsrtEntry->LastAttemptStatus, LastAttemptStatusToString(EsrtEntry->LastAttemptStatus)); }
/** Dump ESRT entry. @param[in] EsrtEntry ESRT entry **/ VOID DumpEsrtEntry ( IN EFI_SYSTEM_RESOURCE_ENTRY *EsrtEntry ) { Print(L" FwClass - %g\n", &EsrtEntry->FwClass); Print(L" FwType - 0x%x (%a)\n", EsrtEntry->FwType, FwTypeToString(EsrtEntry->FwType)); Print(L" FwVersion - 0x%x\n", EsrtEntry->FwVersion); Print(L" LowestSupportedFwVersion - 0x%x\n", EsrtEntry->LowestSupportedFwVersion); Print(L" CapsuleFlags - 0x%x\n", EsrtEntry->CapsuleFlags); Print(L" PERSIST_ACROSS_RESET - 0x%x\n", EsrtEntry->CapsuleFlags & CAPSULE_FLAGS_PERSIST_ACROSS_RESET); Print(L" POPULATE_SYSTEM_TABLE - 0x%x\n", EsrtEntry->CapsuleFlags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE); Print(L" INITIATE_RESET - 0x%x\n", EsrtEntry->CapsuleFlags & CAPSULE_FLAGS_INITIATE_RESET); Print(L" LastAttemptVersion - 0x%x\n", EsrtEntry->LastAttemptVersion); Print(L" LastAttemptStatus - 0x%x (%a)\n", EsrtEntry->LastAttemptStatus, LastAttemptStatusToString(EsrtEntry->LastAttemptStatus)); }
/** Dump FMP information. @param[in] ImageInfoSize The size of ImageInfo, in bytes. @param[in] ImageInfo A pointer to EFI_FIRMWARE_IMAGE_DESCRIPTOR. @param[in] DescriptorVersion The version of EFI_FIRMWARE_IMAGE_DESCRIPTOR. @param[in] DescriptorCount The count of EFI_FIRMWARE_IMAGE_DESCRIPTOR. @param[in] DescriptorSize The size of an individual EFI_FIRMWARE_IMAGE_DESCRIPTOR, in bytes. @param[in] PackageVersion The version of package. @param[in] PackageVersionName The version name of package. **/ VOID DumpFmpImageInfo ( IN UINTN ImageInfoSize, IN EFI_FIRMWARE_IMAGE_DESCRIPTOR *ImageInfo, IN UINT32 DescriptorVersion, IN UINT8 DescriptorCount, IN UINTN DescriptorSize, IN UINT32 PackageVersion, IN CHAR16 *PackageVersionName ) { EFI_FIRMWARE_IMAGE_DESCRIPTOR *CurrentImageInfo; UINTN Index; Print(L" DescriptorVersion - 0x%x\n", DescriptorVersion); Print(L" DescriptorCount - 0x%x\n", DescriptorCount); Print(L" DescriptorSize - 0x%x\n", DescriptorSize); Print(L" PackageVersion - 0x%x\n", PackageVersion); Print(L" PackageVersionName - \"%s\"\n", PackageVersionName); CurrentImageInfo = ImageInfo; for (Index = 0; Index < DescriptorCount; Index++) { Print(L" ImageDescriptor (%d)\n", Index); Print(L" ImageIndex - 0x%x\n", CurrentImageInfo->ImageIndex); Print(L" ImageTypeId - %g\n", &CurrentImageInfo->ImageTypeId); Print(L" ImageId - 0x%lx\n", CurrentImageInfo->ImageId); Print(L" ImageIdName - \"%s\"\n", CurrentImageInfo->ImageIdName); Print(L" Version - 0x%x\n", CurrentImageInfo->Version); Print(L" VersionName - \"%s\"\n", CurrentImageInfo->VersionName); Print(L" Size - 0x%x\n", CurrentImageInfo->Size); Print(L" AttributesSupported - 0x%lx\n", CurrentImageInfo->AttributesSupported); Print(L" IMAGE_UPDATABLE - 0x%lx\n", CurrentImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_IMAGE_UPDATABLE); Print(L" RESET_REQUIRED - 0x%lx\n", CurrentImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_RESET_REQUIRED); Print(L" AUTHENTICATION_REQUIRED - 0x%lx\n", CurrentImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED); Print(L" IN_USE - 0x%lx\n", CurrentImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_IN_USE); Print(L" UEFI_IMAGE - 0x%lx\n", CurrentImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_UEFI_IMAGE); Print(L" AttributesSetting - 0x%lx\n", CurrentImageInfo->AttributesSetting); Print(L" IMAGE_UPDATABLE - 0x%lx\n", CurrentImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_IMAGE_UPDATABLE); Print(L" RESET_REQUIRED - 0x%lx\n", CurrentImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_RESET_REQUIRED); Print(L" AUTHENTICATION_REQUIRED - 0x%lx\n", CurrentImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED); Print(L" IN_USE - 0x%lx\n", CurrentImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_IN_USE); Print(L" UEFI_IMAGE - 0x%lx\n", CurrentImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_UEFI_IMAGE); Print(L" Compatibilities - 0x%lx\n", CurrentImageInfo->Compatibilities); Print(L" COMPATIB_CHECK_SUPPORTED - 0x%lx\n", CurrentImageInfo->Compatibilities & IMAGE_COMPATIBILITY_CHECK_SUPPORTED); if (DescriptorVersion > 1) { Print(L" LowestSupportedImageVersion - 0x%x\n", CurrentImageInfo->LowestSupportedImageVersion); if (DescriptorVersion > 2) { Print(L" LastAttemptVersion - 0x%x\n", CurrentImageInfo->LastAttemptVersion); Print(L" LastAttemptStatus - 0x%x (%a)\n", CurrentImageInfo->LastAttemptStatus, LastAttemptStatusToString(CurrentImageInfo->LastAttemptStatus)); Print(L" HardwareInstance - 0x%lx\n", CurrentImageInfo->HardwareInstance); } } // // Use DescriptorSize to move ImageInfo Pointer to stay compatible with different ImageInfo version // CurrentImageInfo = (EFI_FIRMWARE_IMAGE_DESCRIPTOR *)((UINT8 *)CurrentImageInfo + DescriptorSize); } }