Got it.  makes sense.

Reviewed-by: Jaben Carsey <[email protected]>

> -----Original Message-----
> From: Shah, Tapan [mailto:[email protected]]
> Sent: Wednesday, March 16, 2016 11:08 AM
> To: Carsey, Jaben <[email protected]>; [email protected]
> Cc: El-Haj-Mahmoud, Samer <[email protected]>
> Subject: RE: [PATCH] ShellPkg: Modify 'dh' Shell command to dump the
> Firmware Management Protocol Image Descriptor Information.
> Importance: High
> 
> My response below:
> 
> > +      } 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;
> > +        }
> > +      }
> 
> Given that all 3 versions of the structure have the AtributesSetting in the 
> same
> offset, why have 3 if statements?  Cant we just do it all with the plain 
> ImageInfo
> pointer?
> if (ImageInfo[Index].AttributesSupported != 0x0) {
>   AttributeSupported = TRUE;
>   AttributeSetting   = ImageInfo[Index].AttributesSetting;
> }
> 
> Tapan: Common if() check would work only for the 1st image descriptor. From
> 2nd image descriptor we need to use correct V1/V2 or latest structure to
> point to the correct AttributeSupported offset because all three descriptors
> have different structure size.
> 
> 
> -----Original Message-----
> From: Carsey, Jaben [mailto:[email protected]]
> Sent: Wednesday, March 16, 2016 12:57 PM
> To: Shah, Tapan <[email protected]>; [email protected]
> Cc: El-Haj-Mahmoud, Samer <[email protected]>; Carsey,
> Jaben <[email protected]>
> Subject: RE: [PATCH] ShellPkg: Modify 'dh' Shell command to dump the
> Firmware Management Protocol Image Descriptor Information.
> 
> One final question below.
> 
> > -----Original Message-----
> > From: Tapan Shah [mailto:[email protected]]
> > Sent: Wednesday, March 16, 2016 10:32 AM
> > To: [email protected]
> > Cc: [email protected]; Carsey, Jaben
> > <[email protected]>; Tapan Shah <[email protected]>
> > Subject: [PATCH] ShellPkg: Modify 'dh' Shell command to dump the
> > Firmware Management Protocol Image Descriptor Information.
> > Importance: High
> >
> > Modify 'dh' shell command to dump FirmwareManagement Protocol
> > information.
> >
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Signed-off-by: Tapan Shah <[email protected]>
> > ---
> >  .../UefiHandleParsingLib/UefiHandleParsingLib.c    | 405
> > ++++++++++++++++++++-
> >  .../UefiHandleParsingLib/UefiHandleParsingLib.uni  |  54 +++
> >  2 files changed, 457 insertions(+), 2 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;
> > +        }
> > +      }
> 
> Given that all 3 versions of the structure have the AtributesSetting in the 
> same
> offset, why have 3 if statements?  Cant we just do it all with the plain 
> ImageInfo
> pointer?
> 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.uni
> > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
> > index 7e827f0..97bb430 100644
> > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
> > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
> > @@ -399,3 +399,57 @@
> >  #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

Reply via email to