Looks good to me. I will let Shumin check also. Reviewed-by: Jaben Carsey <[email protected]>
> -----Original Message----- > From: Tapan Shah [mailto:[email protected]] > Sent: Friday, March 18, 2016 9:32 AM > To: [email protected] > Cc: [email protected]; Carsey, Jaben > <[email protected]>; Tapan Shah <[email protected]> > Subject: [PATCH] ShellPkg: Modify the 'dh' Shell command to dump the > Firmware Management Protocol Image Descriptor Information. > Importance: High > > Modify 'dh' shell command to dump FirmwareManagement Protocol > information. > Add FirmwareManagement image descriptor V1 and V2 structure definition in > UefiHandleParsingLib.h to support decoding V1/V2 revisions. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Tapan Shah <[email protected]> > --- > .../UefiHandleParsingLib/UefiHandleParsingLib.c | 405 > ++++++++++++++++++++- > .../UefiHandleParsingLib/UefiHandleParsingLib.h | 118 +++++- > .../UefiHandleParsingLib/UefiHandleParsingLib.uni | 53 +++ > 3 files changed, 573 insertions(+), 3 deletions(-) > > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > index 4c46e5e..22d778b 100644 > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > @@ -3,7 +3,7 @@ > > Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR> > (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR> > - (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR> > + (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > which accompanies this distribution. The full text of the license may be > found at > @@ -823,6 +823,407 @@ ERROR_EXIT: > SHELL_FREE_NON_NULL (InformationBlock); > return NULL; > } > + > +/** > + Function to dump information about > EFI_FIRMWARE_MANAGEMENT_PROTOCOL Protocol. > + > + @param[in] TheHandle The handle that has the protocol installed. > + @param[in] Verbose TRUE for additional information, FALSE otherwise. > + > + @retval A pointer to a string containing the information. > +**/ > +CHAR16* > +EFIAPI > +FirmwareManagementDumpInformation ( > + IN CONST EFI_HANDLE TheHandle, > + IN CONST BOOLEAN Verbose > + ) > +{ > + EFI_STATUS Status; > + EFI_FIRMWARE_MANAGEMENT_PROTOCOL *EfiFwMgmtProtocol; > + EFI_FIRMWARE_IMAGE_DESCRIPTOR *ImageInfo; > + EFI_FIRMWARE_IMAGE_DESCRIPTOR_V1 *ImageInfoV1; > + EFI_FIRMWARE_IMAGE_DESCRIPTOR_V2 *ImageInfoV2; > + UINT64 AttributeSetting; > + UINTN ImageInfoSize; > + UINTN DescriptorSize; > + UINT32 DescriptorVersion; > + UINT32 PackageVersion; > + UINT8 DescriptorCount; > + UINT8 Index; > + UINT8 Index1; > + UINT8 ImageCount; > + CHAR16 *PackageVersionName; > + CHAR16 *TempStr; > + CHAR16 *RetVal; > + CHAR16 *TempRetVal; > + CHAR16 *AttributeSettingStr; > + BOOLEAN Found; > + BOOLEAN AttributeSupported; > + > + // > + // Initialize local variables > + // > + ImageCount = 0; > + ImageInfoSize = 1; > + AttributeSetting = 0; > + Found = FALSE; > + AttributeSupported = FALSE; > + ImageInfo = NULL; > + ImageInfoV1 = NULL; > + ImageInfoV2 = NULL; > + PackageVersionName = NULL; > + RetVal = NULL; > + TempRetVal = NULL; > + TempStr = NULL; > + AttributeSettingStr = NULL; > + > + if (!Verbose) { > + return (CatSPrint(NULL, L"FirmwareManagement")); > + } > + > + Status = gBS->OpenProtocol ( > + (EFI_HANDLE) (TheHandle), > + &gEfiFirmwareManagementProtocolGuid, > + (VOID **) &EfiFwMgmtProtocol, > + NULL, > + NULL, > + EFI_OPEN_PROTOCOL_GET_PROTOCOL > + ); > + > + if (EFI_ERROR (Status)) { > + return NULL; > + } > + > + Status = EfiFwMgmtProtocol->GetImageInfo ( > + EfiFwMgmtProtocol, > + &ImageInfoSize, > + ImageInfo, > + &DescriptorVersion, > + &DescriptorCount, > + &DescriptorSize, > + &PackageVersion, > + &PackageVersionName > + ); > + > + if (Status == EFI_BUFFER_TOO_SMALL) { > + ImageInfo = AllocateZeroPool (ImageInfoSize); > + > + if (ImageInfo == NULL) { > + Status = EFI_OUT_OF_RESOURCES; > + } else { > + Status = EfiFwMgmtProtocol->GetImageInfo ( > + EfiFwMgmtProtocol, > + &ImageInfoSize, > + ImageInfo, > + &DescriptorVersion, > + &DescriptorCount, > + &DescriptorSize, > + &PackageVersion, > + &PackageVersionName > + ); > + } > + } > + > + if (EFI_ERROR (Status)) { > + goto ERROR_EXIT; > + } > + > + // > + // Decode Image Descriptor data only if its version is supported > + // > + if (DescriptorVersion <= EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION) { > + > + if (ImageInfo == NULL) { > + goto ERROR_EXIT; > + } > + > + ImageInfoV1 = (EFI_FIRMWARE_IMAGE_DESCRIPTOR_V1 *)ImageInfo; > + ImageInfoV2 = (EFI_FIRMWARE_IMAGE_DESCRIPTOR_V2 *)ImageInfo; > + > + // > + // Set ImageInfoSize in return buffer > + // > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_IMAGE_INFO_SIZE), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + RetVal = CatSPrint (NULL, TempStr, ImageInfoSize); > + SHELL_FREE_NON_NULL (TempStr); > + > + // > + // Set DescriptorVersion in return buffer > + // > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_DESCRIPTOR_VERSION), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint (RetVal, TempStr, DescriptorVersion); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + > + // > + // Set DescriptorCount in return buffer > + // > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_DESCRIPTOR_COUNT), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint (RetVal, TempStr, DescriptorCount); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + > + > + // > + // Set DescriptorSize in return buffer > + // > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_DESCRIPTOR_SIZE), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint (RetVal, TempStr, DescriptorSize); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + > + // > + // Set PackageVersion in return buffer > + // > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_PACKAGE_VERSION), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint (RetVal, TempStr, PackageVersion); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + > + // > + // Set PackageVersionName in return buffer > + // > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_PACKAGE_VERSION_NAME), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint (RetVal, TempStr, PackageVersionName); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + > + for (Index = 0; Index < DescriptorCount; Index++) { > + // > + // First check if Attribute is supported > + // and generate a string for AttributeSetting field > + // > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + AttributeSupported = FALSE; > + AttributeSetting = 0; > + if (DescriptorVersion == > EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION_V1) { > + if (ImageInfoV1[Index].AttributesSupported != 0x0) { > + AttributeSupported = TRUE; > + AttributeSetting = ImageInfoV1[Index].AttributesSetting; > + } > + } else if (DescriptorVersion == > EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION_V2) { > + if (ImageInfoV2[Index].AttributesSupported != 0x0) { > + AttributeSupported = TRUE; > + AttributeSetting = ImageInfoV2[Index].AttributesSetting; > + } > + } else { > + if (ImageInfo[Index].AttributesSupported != 0x0) { > + AttributeSupported = TRUE; > + AttributeSetting = ImageInfo[Index].AttributesSetting; > + } > + } > + > + if (!AttributeSupported) { > + AttributeSettingStr = CatSPrint (NULL, L"None"); > + } else { > + AttributeSettingStr = CatSPrint (NULL, L"("); > + > + if (AttributeSetting & IMAGE_ATTRIBUTE_IMAGE_UPDATABLE) { > + TempRetVal = CatSPrint (AttributeSettingStr, L" > IMAGE_ATTRIBUTE_IMAGE_UPDATABLE"); > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + AttributeSettingStr = TempRetVal; > + } > + if (AttributeSetting & IMAGE_ATTRIBUTE_RESET_REQUIRED) { > + TempRetVal = CatSPrint (AttributeSettingStr, L" > IMAGE_ATTRIBUTE_RESET_REQUIRED"); > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + AttributeSettingStr = TempRetVal; > + } > + if (AttributeSetting & IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED) { > + TempRetVal = CatSPrint (AttributeSettingStr, L" > IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED"); > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + AttributeSettingStr = TempRetVal; > + } > + if (AttributeSetting & IMAGE_ATTRIBUTE_IN_USE) { > + TempRetVal = CatSPrint (AttributeSettingStr, L" > IMAGE_ATTRIBUTE_IN_USE"); > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + AttributeSettingStr = TempRetVal; > + } > + if (AttributeSetting & IMAGE_ATTRIBUTE_UEFI_IMAGE) { > + TempRetVal = CatSPrint (AttributeSettingStr, L" > IMAGE_ATTRIBUTE_UEFI_IMAGE"); > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + AttributeSettingStr = TempRetVal; > + } > + TempRetVal = CatSPrint (AttributeSettingStr, L" )"); > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + AttributeSettingStr = TempRetVal; > + } > + > + if (DescriptorVersion == > EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION_V1) { > + if (ImageInfoV1[Index].ImageIndex != 0x0) { > + ImageCount++; > + } > + > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_IMAGE_DESCRIPTOR_INFO_V1), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint ( > + RetVal, > + TempStr, > + Index, > + ImageInfoV1[Index].ImageIndex, > + ImageInfoV1[Index].ImageTypeId, > + ImageInfoV1[Index].ImageId, > + ImageInfoV1[Index].ImageIdName, > + ImageInfoV1[Index].Version, > + ImageInfoV1[Index].VersionName, > + ImageInfoV1[Index].Size, > + ImageInfoV1[Index].AttributesSupported, > + AttributeSettingStr, > + ImageInfoV1[Index].Compatibilities > + ); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + } else if (DescriptorVersion == > EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION_V2) { > + if (ImageInfoV2[Index].ImageIndex != 0x0) { > + ImageCount++; > + } > + > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_IMAGE_DESCRIPTOR_INFO_V2), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint ( > + RetVal, > + TempStr, > + Index, > + ImageInfoV2[Index].ImageIndex, > + ImageInfoV2[Index].ImageTypeId, > + ImageInfoV2[Index].ImageId, > + ImageInfoV2[Index].ImageIdName, > + ImageInfoV2[Index].Version, > + ImageInfoV2[Index].VersionName, > + ImageInfoV2[Index].Size, > + ImageInfoV2[Index].AttributesSupported, > + AttributeSettingStr, > + ImageInfoV2[Index].Compatibilities, > + ImageInfoV2[Index].LowestSupportedImageVersion > + ); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + } else { > + if (ImageInfo[Index].ImageIndex != 0x0) { > + ImageCount++; > + } > + > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_IMAGE_DESCRIPTOR_INFO), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint ( > + RetVal, > + TempStr, > + Index, > + ImageInfo[Index].ImageIndex, > + ImageInfo[Index].ImageTypeId, > + ImageInfo[Index].ImageId, > + ImageInfo[Index].ImageIdName, > + ImageInfo[Index].Version, > + ImageInfo[Index].VersionName, > + ImageInfo[Index].Size, > + ImageInfo[Index].AttributesSupported, > + AttributeSettingStr, > + ImageInfo[Index].Compatibilities, > + ImageInfo[Index].LowestSupportedImageVersion, > + ImageInfo[Index].LastAttemptVersion, > + ImageInfo[Index].LastAttemptStatus, > + ImageInfo[Index].HardwareInstance > + ); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + } > + } > + } > + > + if (ImageCount > 0) { > + for (Index=0; Index<DescriptorCount; Index++) { > + for (Index1=Index+1; Index1<DescriptorCount; Index1++) { > + if (DescriptorVersion == > EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION_V1) { > + if (ImageInfoV1[Index].ImageId == ImageInfoV1[Index1].ImageId) { > + Found = TRUE; > + // > + // At least one match found indicating presense of non unique > ImageId values so no more comparisons needed > + // > + goto ENDLOOP; > + } > + } else if (DescriptorVersion == > EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION_V2) { > + if (ImageInfoV2[Index].ImageId == ImageInfoV2[Index1].ImageId) { > + Found = TRUE; > + // > + // At least one match found indicating presense of non unique > ImageId values so no more comparisons needed > + // > + goto ENDLOOP; > + } > + } else { > + if (ImageInfo[Index].ImageId == ImageInfo[Index1].ImageId) { > + Found = TRUE; > + // > + // At least one match found indicating presense of non unique > ImageId values so no more comparisons needed > + // > + goto ENDLOOP; > + } > + } > + } > + } > + } > + > +ENDLOOP: > + // > + // Check if ImageId with duplicate value was found > + // > + if (Found == TRUE) { > + TempStr = HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_FMP_IMAGEID_NON_UNIQUE), NULL); > + if (TempStr == NULL) { > + goto ERROR_EXIT; > + } > + TempRetVal = CatSPrint (RetVal, TempStr); > + SHELL_FREE_NON_NULL (RetVal); > + RetVal = TempRetVal; > + SHELL_FREE_NON_NULL (TempStr); > + } > + > + SHELL_FREE_NON_NULL (ImageInfo); > + SHELL_FREE_NON_NULL (PackageVersionName); > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + > + return RetVal; > + > +ERROR_EXIT: > + SHELL_FREE_NON_NULL (RetVal); > + SHELL_FREE_NON_NULL (ImageInfo); > + SHELL_FREE_NON_NULL (PackageVersionName); > + SHELL_FREE_NON_NULL (AttributeSettingStr); > + > + return NULL; > +} > + > // > // Put the information on the NT32 protocol GUIDs here so we are not > dependant on the Nt32Pkg > // > @@ -1018,7 +1419,7 @@ STATIC CONST GUID_INFO_BLOCK > mGuidStringList[] = { > // > // UEFI 2.3 > // > - {STRING_TOKEN(STR_FW_MGMT), > &gEfiFirmwareManagementProtocolGuid, NULL}, > + {STRING_TOKEN(STR_FW_MGMT), > &gEfiFirmwareManagementProtocolGuid, > FirmwareManagementDumpInformation}, > {STRING_TOKEN(STR_IP_SEC), &gEfiIpSecProtocolGuid, > NULL}, > {STRING_TOKEN(STR_IP_SEC2), &gEfiIpSec2ProtocolGuid, > NULL}, > > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.h > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.h > index b9141fa..6f2ca50 100644 > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.h > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.h > @@ -1,7 +1,7 @@ > /** @file > Provides interface to advanced shell functionality for parsing both handle > and protocol database. > > - (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR> > + (C) Copyright 2013-2016 Hewlett-Packard Development Company, L.P.<BR> > Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > @@ -152,6 +152,122 @@ > #include <Library/ShellLib.h> > #include <Library/SortLib.h> > > +#define EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION_V1 1 > +#define EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION_V2 2 > + > +/// > +/// EFI_FIRMWARE_IMAGE_DESCRIPTOR in UEFI spec < 2.4a > +/// > +typedef struct { > + /// > + /// A unique number identifying the firmware image within the device. The > number is > + /// between 1 and DescriptorCount. > + /// > + UINT8 ImageIndex; > + /// > + /// A unique number identifying the firmware image type. > + /// > + EFI_GUID ImageTypeId; > + /// > + /// A unique number identifying the firmware image. > + /// > + UINT64 ImageId; > + /// > + /// A pointer to a null-terminated string representing the firmware image > name. > + /// > + CHAR16 *ImageIdName; > + /// > + /// Identifies the version of the device firmware. The format is vendor > specific and new > + /// version must have a greater value than an old version. > + /// > + UINT32 Version; > + /// > + /// A pointer to a null-terminated string representing the firmware image > version name. > + /// > + CHAR16 *VersionName; > + /// > + /// Size of the image in bytes. If size=0, then only ImageIndex and > ImageTypeId are valid. > + /// > + UINTN Size; > + /// > + /// Image attributes that are supported by this device. See 'Image > Attribute > Definitions' > + /// for possible returned values of this parameter. A value of 1 indicates > the attribute is > + /// supported and the current setting value is indicated in > AttributesSetting. > A > + /// value of 0 indicates the attribute is not supported and the current > setting value in > + /// AttributesSetting is meaningless. > + /// > + UINT64 AttributesSupported; > + /// > + /// Image attributes. See 'Image Attribute Definitions' for possible > returned > values of > + /// this parameter. > + /// > + UINT64 AttributesSetting; > + /// > + /// Image compatibilities. See 'Image Compatibility Definitions' for > possible > returned > + /// values of this parameter. > + /// > + UINT64 Compatibilities; > +} EFI_FIRMWARE_IMAGE_DESCRIPTOR_V1; > + > + > +/// > +/// EFI_FIRMWARE_IMAGE_DESCRIPTOR in UEFI spec > 2.4a and < 2.5 > +/// > +typedef struct { > + /// > + /// A unique number identifying the firmware image within the device. The > number is > + /// between 1 and DescriptorCount. > + /// > + UINT8 ImageIndex; > + /// > + /// A unique number identifying the firmware image type. > + /// > + EFI_GUID ImageTypeId; > + /// > + /// A unique number identifying the firmware image. > + /// > + UINT64 ImageId; > + /// > + /// A pointer to a null-terminated string representing the firmware image > name. > + /// > + CHAR16 *ImageIdName; > + /// > + /// Identifies the version of the device firmware. The format is vendor > specific and new > + /// version must have a greater value than an old version. > + /// > + UINT32 Version; > + /// > + /// A pointer to a null-terminated string representing the firmware image > version name. > + /// > + CHAR16 *VersionName; > + /// > + /// Size of the image in bytes. If size=0, then only ImageIndex and > ImageTypeId are valid. > + /// > + UINTN Size; > + /// > + /// Image attributes that are supported by this device. See 'Image > Attribute > Definitions' > + /// for possible returned values of this parameter. A value of 1 indicates > the attribute is > + /// supported and the current setting value is indicated in > AttributesSetting. > A > + /// value of 0 indicates the attribute is not supported and the current > setting value in > + /// AttributesSetting is meaningless. > + /// > + UINT64 AttributesSupported; > + /// > + /// Image attributes. See 'Image Attribute Definitions' for possible > returned > values of > + /// this parameter. > + /// > + UINT64 AttributesSetting; > + /// > + /// Image compatibilities. See 'Image Compatibility Definitions' for > possible > returned > + /// values of this parameter. > + /// > + UINT64 Compatibilities; > + /// > + /// Describes the lowest ImageDescriptor version that the device will > accept. Only > + /// present in version 2 or higher. > + UINT32 LowestSupportedImageVersion; > +} EFI_FIRMWARE_IMAGE_DESCRIPTOR_V2; > + > typedef struct { > LIST_ENTRY Link; > EFI_HANDLE TheHandle; > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni > index 7e827f0..0cb2fa8 100644 > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni > @@ -399,3 +399,56 @@ > #string STR_UNDI_IPV6_INFO #language en-US " UNDI IPv6 > Supported: %%H%d%%N \r\n" > #string STR_UNKNOWN_INFO_TYPE #language en-US " The > 'InformationType' - %%H%g%%N can't be recongnized\r\n" > > +#string STR_FMP_IMAGEID_NON_UNIQUE #language en-US " > The ImageId value for each Firmware Image is not unique.\r\n" > +#string STR_FMP_IMAGE_INFO_SIZE #language en-US " > ImageInfoSize: %%H0x%L016x%%N\r\n" > +#string STR_FMP_DESCRIPTOR_VERSION #language en-US " > DescriptorVersion: %%H%d%%N\r\n" > +#string STR_FMP_DESCRIPTOR_COUNT #language en-US " > DescriptorCount : %%H%d%%N\r\n" > +#string STR_FMP_DESCRIPTOR_SIZE #language en-US " > DescriptorSize : %%H0x%Lx%%N\r\n" > +#string STR_FMP_PACKAGE_VERSION #language en-US " > PackageVersion : %%H0x%08x%%N\r\n" > +#string STR_FMP_PACKAGE_VERSION_NAME #language en-US " > PackageVersionName : %%H%s%%N\r\n" > +#string STR_FMP_IMAGE_DESCRIPTOR_INFO #language en-US "" > + " > ImageInfo[%%H%d%%N]:\r\n" > + " > =============\r\n" > + " > ImageIndex : > %%H%d%%N\r\n" > + " > ImageTypeId : > %%H%g%%N\r\n" > + " > ImageId : > %%H%L016x%%N\r\n" > + " > ImageIdName : > %%H%s%%N\r\n" > + " > Version : > %%H0x%08x%%N\r\n" > + " > VersionName : > %%H%s%%N\r\n" > + " > Size : > %%H0x%L016x%%N\r\n" > + " > AttributesSupported : > %%H0x%L016x%%N\r\n" > + " > AttributesSetting : > %%H%s%%N\r\n" > + " > Compatibilities : > %%H0x%L016x%%N\r\n" > + " > LowestSupportedImageVersion : > %%H0x%08x%%N\r\n" > + " > LastAttemptVersion : > %%H0x%08x%%N\r\n" > + " > LastAttemptStatus : > %%H0x%08x%%N\r\n" > + " > HardwareInstance : > %%H0x%08x%%N\r\n" > + > +#string STR_FMP_IMAGE_DESCRIPTOR_INFO_V1 #language en-US "" > + " > ImageInfo[%%H%d%%N]:\r\n" > + " > =============\r\n" > + " > ImageIndex : > %%H%d%%N\r\n" > + " > ImageTypeId : > %%H%g%%N\r\n" > + " > ImageId : > %%H%L016x%%N\r\n" > + " > ImageIdName : > %%H%s%%N\r\n" > + " > Version : > %%H0x%08x%%N\r\n" > + " > VersionName : > %%H%s%%N\r\n" > + " > Size : > %%H0x%L016x%%N\r\n" > + " > AttributesSupported : > %%H0x%L016x%%N\r\n" > + " > AttributesSetting : > %%H%s%%N\r\n" > + " > Compatibilities : > %%H0x%L016x%%N\r\n" > + > +#string STR_FMP_IMAGE_DESCRIPTOR_INFO_V2 #language en-US "" > + " > ImageInfo[%%H%d%%N]:\r\n" > + " > =============\r\n" > + " > ImageIndex : > %%H%d%%N\r\n" > + " > ImageTypeId : > %%H%g%%N\r\n" > + " > ImageId : > %%H%L016x%%N\r\n" > + " > ImageIdName : > %%H%s%%N\r\n" > + " > Version : > %%H0x%08x%%N\r\n" > + " > VersionName : > %%H%s%%N\r\n" > + " > Size : > %%H0x%L016x%%N\r\n" > + " > AttributesSupported : > %%H0x%L016x%%N\r\n" > + " > AttributesSetting : > %%H%s%%N\r\n" > + " > Compatibilities : > %%H0x%L016x%%N\r\n" > + " > LowestSupportedImageVersion : > %%H0x%08x%%N\r\n" > -- > 2.6.2.windows.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

