Devices with FMP instances below version 3 do not support a HardwareInstance so 
they can only support single device for each GUID.  FMP implementations with 
versions below 3 that want to support multiple devices need to use multiple 
GUIDs.

The ASSERT() is still be correct if there are multiple FMP instances with the 
same GUID and their version is below 3 that uses an assumed HardwareInstance of 
0.

Mike

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of 
scott.wigin...@hpe.com
Sent: Friday, October 18, 2019 2:52 PM
To: Kinney, Michael D <michael.d.kin...@intel.com>; devel@edk2.groups.io
Subject: Re: [edk2-devel] Recent changes to EsrtFmp causing ASSERTs

Hi Michael,

I'm not sure that I agree with your last statement.  The says that 
HardwareInstance is "Only present in version 3 or higher" in reference to the 
EFI_FIRMWARE_IMAGE_DESCRIPTOR.  Isn't that the point of the DescriptorVersion 
parameter in FMP.GetImageInfo?  To know if that field is event valid or not.  
The function in question even looks at this passed in FW image descriptor 
version (though the parameter is called FmpVersion).  The code just sets it to 
0 if the FmpVersion is < 3.  If one or more devices producing FMPs in the 
system do not support FW image descriptor 3 or later, then this will cause an 
ASSERT.

Thanks,
SWig


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49249): https://edk2.groups.io/g/devel/message/49249
Mute This Topic: https://groups.io/mt/34350126/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to