On 11/6/23 08:52, Xu, Wei6 wrote: > The MmCoreFfsFindMmDriver only checks for encapsulated compressed FVs. > When an inner FV is uncompressed, StandaloneMmCore will miss the FV and > all the MM drivers in the FV will not be dispatched. > Add checks for uncompressed inner FV to fix this issue. > > Cc: Laszlo Ersek <ler...@redhat.com> > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> > Cc: Sami Mujawar <sami.muja...@arm.com> > Cc: Ray Ni <ray...@intel.com> > Signed-off-by: Wei6 Xu <wei6...@intel.com> > --- > StandaloneMmPkg/Core/FwVol.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/StandaloneMmPkg/Core/FwVol.c b/StandaloneMmPkg/Core/FwVol.c > index 4d2b63a448e7..07500cee41f3 100644 > --- a/StandaloneMmPkg/Core/FwVol.c > +++ b/StandaloneMmPkg/Core/FwVol.c > @@ -79,6 +79,8 @@ MmCoreFfsFindMmDriver ( > UINTN DepexSize; > UINTN Index; > EFI_COMMON_SECTION_HEADER *Section; > + VOID *SectionData; > + UINTN SectionDataSize; > UINT32 DstBufferSize; > VOID *ScratchBuffer; > UINT32 ScratchBufferSize; > @@ -115,6 +117,26 @@ MmCoreFfsFindMmDriver ( > break; > } > > + // > + // Check uncompressed firmware volumes > + // > + Status = FfsFindSectionData ( > + EFI_SECTION_FIRMWARE_VOLUME_IMAGE, > + FileHeader, > + &SectionData, > + &SectionDataSize > + ); > + if (!EFI_ERROR (Status)) { > + if (SectionDataSize > sizeof (EFI_FIRMWARE_VOLUME_HEADER)) { > + InnerFvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)SectionData; > + MmCoreFfsFindMmDriver (InnerFvHeader, Depth + 1); > + continue; > + } > + } > + > + // > + // Check compressed firmware volumes > + // > Status = FfsFindSection ( > EFI_SECTION_GUID_DEFINED, > FileHeader,
Reviewed-by: Laszlo Ersek <ler...@redhat.com> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110924): https://edk2.groups.io/g/devel/message/110924 Mute This Topic: https://groups.io/mt/102416011/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-