Re: [edk2] [PATCH 08/10] StandaloneMmPkg/Core: drop support for dispatching FVs into MM
Reviewed-by: achin.gu...@arm.com On Tue, Mar 05, 2019 at 02:32:46PM +0100, Ard Biesheuvel wrote: > Remove the support that permits calls into the MM context to dispatch > firmware volumes that are not part of the initial standalone MM firmware > volume. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ard Biesheuvel > --- > StandaloneMmPkg/Core/StandaloneMmCore.h | 22 -- > StandaloneMmPkg/Core/Dispatcher.c | 46 > StandaloneMmPkg/Core/StandaloneMmCore.c | 1 - > 3 files changed, 69 deletions(-) > > diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.h > b/StandaloneMmPkg/Core/StandaloneMmCore.h > index 0d20bcaa6be5..74338dc9da0d 100644 > --- a/StandaloneMmPkg/Core/StandaloneMmCore.h > +++ b/StandaloneMmPkg/Core/StandaloneMmCore.h > @@ -635,28 +635,6 @@ MmDriverDispatchHandler ( > >@return Status Code > > -**/ > -EFI_STATUS > -EFIAPI > -MmFvDispatchHandler ( > - IN EFI_HANDLE DispatchHandle, > - IN CONST VOID *Context,OPTIONAL > - IN OUT VOID *CommBuffer, OPTIONAL > - IN OUT UINTN*CommBufferSize OPTIONAL > - ); > - > -/** > - This function is the main entry point for an MM handler dispatch > - or communicate-based callback. > - > - @param DispatchHandle The unique handle assigned to this handler by > MmiHandlerRegister(). > - @param Context Points to an optional handler context which was > specified when the handler was registered. > - @param CommBuffer A pointer to a collection of data in memory that > will > - be conveyed from a non-MM environment into an MM > environment. > - @param CommBufferSize The size of the CommBuffer. > - > - @return Status Code > - > **/ > EFI_STATUS > EFIAPI > diff --git a/StandaloneMmPkg/Core/Dispatcher.c > b/StandaloneMmPkg/Core/Dispatcher.c > index bede4832cfb7..4b2f38f700a0 100644 > --- a/StandaloneMmPkg/Core/Dispatcher.c > +++ b/StandaloneMmPkg/Core/Dispatcher.c > @@ -883,52 +883,6 @@ MmAddToDriverList ( >return EFI_SUCCESS; > } > > -/** > - This function is the main entry point for an MM handler dispatch > - or communicate-based callback. > - > - @param DispatchHandle The unique handle assigned to this handler by > SmiHandlerRegister(). > - @param Context Points to an optional handler context which was > specified when the handler was registered. > - @param CommBuffer A pointer to a collection of data in memory that > will > - be conveyed from a non-MM environment into an MM > environment. > - @param CommBufferSize The size of the CommBuffer. > - > - @return Status Code > - > -**/ > -EFI_STATUS > -EFIAPI > -MmFvDispatchHandler ( > - IN EFI_HANDLE DispatchHandle, > - IN CONST VOID *Context,OPTIONAL > - IN OUT VOID *CommBuffer, OPTIONAL > - IN OUT UINTN*CommBufferSize OPTIONAL > - ) > -{ > - EFI_STATUSStatus; > - EFI_MM_COMMUNICATE_FV_DISPATCH_DATA *CommunicationFvDispatchData; > - EFI_FIRMWARE_VOLUME_HEADER*FwVolHeader; > - > - DEBUG ((DEBUG_INFO, "MmFvDispatchHandler\n")); > - > - CommunicationFvDispatchData = CommBuffer; > - > - DEBUG ((DEBUG_INFO, " Dispatch - 0x%016lx - 0x%016lx\n", > CommunicationFvDispatchData->Address, > - CommunicationFvDispatchData->Size)); > - > - FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER > *)(UINTN)CommunicationFvDispatchData->Address; > - > - MmCoreFfsFindMmDriver (FwVolHeader); > - > - // > - // Execute the MM Dispatcher on any newly discovered FVs and previously > - // discovered MM drivers that have been discovered but not dispatched. > - // > - Status = MmDispatcher (); > - > - return Status; > -} > - > /** >Traverse the discovered list for any drivers that were discovered but not > loaded >because the dependency experessions evaluated to false. > diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.c > b/StandaloneMmPkg/Core/StandaloneMmCore.c > index ec53b8d8bec4..766cdb5c848c 100644 > --- a/StandaloneMmPkg/Core/StandaloneMmCore.c > +++ b/StandaloneMmPkg/Core/StandaloneMmCore.c > @@ -99,7 +99,6 @@ BOOLEAN mInLegacyBoot = FALSE; > // Table of MMI Handlers that are registered by the MM Core when it is > initialized > // > MM_CORE_MMI_HANDLERS mMmCoreMmiHandlers[] = { > - { MmFvDispatchHandler, , NULL, TRUE > }, >{ MmReadyToLockHandler,, NULL, TRUE > }, >{ MmEndOfDxeHandler, ,NULL, FALSE > }, >{ MmLegacyBootHandler, , NULL, FALSE > }, > -- > 2.20.1 > ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH 08/10] StandaloneMmPkg/Core: drop support for dispatching FVs into MM
Reviewed-by: jiewen@intel.com > -Original Message- > From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] > Sent: Tuesday, March 5, 2019 5:33 AM > To: edk2-devel@lists.01.org > Cc: Ard Biesheuvel ; Achin Gupta > ; Supreeth Venkatesh > ; Yao, Jiewen ; > Leif Lindholm ; Jagadeesh Ujja > > Subject: [PATCH 08/10] StandaloneMmPkg/Core: drop support for > dispatching FVs into MM > > Remove the support that permits calls into the MM context to dispatch > firmware volumes that are not part of the initial standalone MM firmware > volume. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ard Biesheuvel > --- > StandaloneMmPkg/Core/StandaloneMmCore.h | 22 -- > StandaloneMmPkg/Core/Dispatcher.c | 46 > StandaloneMmPkg/Core/StandaloneMmCore.c | 1 - > 3 files changed, 69 deletions(-) > > diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.h > b/StandaloneMmPkg/Core/StandaloneMmCore.h > index 0d20bcaa6be5..74338dc9da0d 100644 > --- a/StandaloneMmPkg/Core/StandaloneMmCore.h > +++ b/StandaloneMmPkg/Core/StandaloneMmCore.h > @@ -635,28 +635,6 @@ MmDriverDispatchHandler ( > >@return Status Code > > -**/ > -EFI_STATUS > -EFIAPI > -MmFvDispatchHandler ( > - IN EFI_HANDLE DispatchHandle, > - IN CONST VOID *Context,OPTIONAL > - IN OUT VOID *CommBuffer, OPTIONAL > - IN OUT UINTN*CommBufferSize OPTIONAL > - ); > - > -/** > - This function is the main entry point for an MM handler dispatch > - or communicate-based callback. > - > - @param DispatchHandle The unique handle assigned to this handler > by MmiHandlerRegister(). > - @param Context Points to an optional handler context > which was specified when the handler was registered. > - @param CommBuffer A pointer to a collection of data in > memory that will > - be conveyed from a non-MM environment > into an MM environment. > - @param CommBufferSize The size of the CommBuffer. > - > - @return Status Code > - > **/ > EFI_STATUS > EFIAPI > diff --git a/StandaloneMmPkg/Core/Dispatcher.c > b/StandaloneMmPkg/Core/Dispatcher.c > index bede4832cfb7..4b2f38f700a0 100644 > --- a/StandaloneMmPkg/Core/Dispatcher.c > +++ b/StandaloneMmPkg/Core/Dispatcher.c > @@ -883,52 +883,6 @@ MmAddToDriverList ( >return EFI_SUCCESS; > } > > -/** > - This function is the main entry point for an MM handler dispatch > - or communicate-based callback. > - > - @param DispatchHandle The unique handle assigned to this handler > by SmiHandlerRegister(). > - @param Context Points to an optional handler context > which was specified when the handler was registered. > - @param CommBuffer A pointer to a collection of data in > memory that will > - be conveyed from a non-MM environment > into an MM environment. > - @param CommBufferSize The size of the CommBuffer. > - > - @return Status Code > - > -**/ > -EFI_STATUS > -EFIAPI > -MmFvDispatchHandler ( > - IN EFI_HANDLE DispatchHandle, > - IN CONST VOID *Context,OPTIONAL > - IN OUT VOID *CommBuffer, OPTIONAL > - IN OUT UINTN*CommBufferSize OPTIONAL > - ) > -{ > - EFI_STATUSStatus; > - EFI_MM_COMMUNICATE_FV_DISPATCH_DATA > *CommunicationFvDispatchData; > - EFI_FIRMWARE_VOLUME_HEADER*FwVolHeader; > - > - DEBUG ((DEBUG_INFO, "MmFvDispatchHandler\n")); > - > - CommunicationFvDispatchData = CommBuffer; > - > - DEBUG ((DEBUG_INFO, " Dispatch - 0x%016lx - 0x%016lx\n", > CommunicationFvDispatchData->Address, > - CommunicationFvDispatchData->Size)); > - > - FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER > *)(UINTN)CommunicationFvDispatchData->Address; > - > - MmCoreFfsFindMmDriver (FwVolHeader); > - > - // > - // Execute the MM Dispatcher on any newly discovered FVs and > previously > - // discovered MM drivers that have been discovered but not dispatched. > - // > - Status = MmDispatcher (); > - > - return Status; > -} > - > /** >Traverse the discovered list for any drivers that were discovered but not > loaded >because the dependency experessions evaluated to false. > diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.c > b/StandaloneMmPkg/Core/StandaloneMmCore.c > index ec53b8d8bec4..766cdb5c848c 100644 > --- a/StandaloneMmPkg/Core/StandaloneMmCore.c > +++ b/StandaloneMmPkg/Core/StandaloneMmCore.c > @@ -99,7 +99,6 @@ BOOLEAN mInLegacyBoot = FALSE; > // Table of MMI Handlers that are registered by the MM Core when it is > initialized > // > MM_CORE_MMI_HANDLERS mMmCoreMmiHandlers[] = { > - { MmFvDispatchHandler, , > NULL, TRUE }, >{ MmReadyToLockHandler,, > NULL, TRUE }, >{ MmEndOfDxeHandler, , > NULL, FALSE }, >{ MmLegacyBootHandler, , > NULL, FALSE }, > -- > 2.20.1
[edk2] [PATCH 08/10] StandaloneMmPkg/Core: drop support for dispatching FVs into MM
Remove the support that permits calls into the MM context to dispatch firmware volumes that are not part of the initial standalone MM firmware volume. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- StandaloneMmPkg/Core/StandaloneMmCore.h | 22 -- StandaloneMmPkg/Core/Dispatcher.c | 46 StandaloneMmPkg/Core/StandaloneMmCore.c | 1 - 3 files changed, 69 deletions(-) diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.h b/StandaloneMmPkg/Core/StandaloneMmCore.h index 0d20bcaa6be5..74338dc9da0d 100644 --- a/StandaloneMmPkg/Core/StandaloneMmCore.h +++ b/StandaloneMmPkg/Core/StandaloneMmCore.h @@ -635,28 +635,6 @@ MmDriverDispatchHandler ( @return Status Code -**/ -EFI_STATUS -EFIAPI -MmFvDispatchHandler ( - IN EFI_HANDLE DispatchHandle, - IN CONST VOID *Context,OPTIONAL - IN OUT VOID *CommBuffer, OPTIONAL - IN OUT UINTN*CommBufferSize OPTIONAL - ); - -/** - This function is the main entry point for an MM handler dispatch - or communicate-based callback. - - @param DispatchHandle The unique handle assigned to this handler by MmiHandlerRegister(). - @param Context Points to an optional handler context which was specified when the handler was registered. - @param CommBuffer A pointer to a collection of data in memory that will - be conveyed from a non-MM environment into an MM environment. - @param CommBufferSize The size of the CommBuffer. - - @return Status Code - **/ EFI_STATUS EFIAPI diff --git a/StandaloneMmPkg/Core/Dispatcher.c b/StandaloneMmPkg/Core/Dispatcher.c index bede4832cfb7..4b2f38f700a0 100644 --- a/StandaloneMmPkg/Core/Dispatcher.c +++ b/StandaloneMmPkg/Core/Dispatcher.c @@ -883,52 +883,6 @@ MmAddToDriverList ( return EFI_SUCCESS; } -/** - This function is the main entry point for an MM handler dispatch - or communicate-based callback. - - @param DispatchHandle The unique handle assigned to this handler by SmiHandlerRegister(). - @param Context Points to an optional handler context which was specified when the handler was registered. - @param CommBuffer A pointer to a collection of data in memory that will - be conveyed from a non-MM environment into an MM environment. - @param CommBufferSize The size of the CommBuffer. - - @return Status Code - -**/ -EFI_STATUS -EFIAPI -MmFvDispatchHandler ( - IN EFI_HANDLE DispatchHandle, - IN CONST VOID *Context,OPTIONAL - IN OUT VOID *CommBuffer, OPTIONAL - IN OUT UINTN*CommBufferSize OPTIONAL - ) -{ - EFI_STATUSStatus; - EFI_MM_COMMUNICATE_FV_DISPATCH_DATA *CommunicationFvDispatchData; - EFI_FIRMWARE_VOLUME_HEADER*FwVolHeader; - - DEBUG ((DEBUG_INFO, "MmFvDispatchHandler\n")); - - CommunicationFvDispatchData = CommBuffer; - - DEBUG ((DEBUG_INFO, " Dispatch - 0x%016lx - 0x%016lx\n", CommunicationFvDispatchData->Address, - CommunicationFvDispatchData->Size)); - - FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)CommunicationFvDispatchData->Address; - - MmCoreFfsFindMmDriver (FwVolHeader); - - // - // Execute the MM Dispatcher on any newly discovered FVs and previously - // discovered MM drivers that have been discovered but not dispatched. - // - Status = MmDispatcher (); - - return Status; -} - /** Traverse the discovered list for any drivers that were discovered but not loaded because the dependency experessions evaluated to false. diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.c b/StandaloneMmPkg/Core/StandaloneMmCore.c index ec53b8d8bec4..766cdb5c848c 100644 --- a/StandaloneMmPkg/Core/StandaloneMmCore.c +++ b/StandaloneMmPkg/Core/StandaloneMmCore.c @@ -99,7 +99,6 @@ BOOLEAN mInLegacyBoot = FALSE; // Table of MMI Handlers that are registered by the MM Core when it is initialized // MM_CORE_MMI_HANDLERS mMmCoreMmiHandlers[] = { - { MmFvDispatchHandler, , NULL, TRUE }, { MmReadyToLockHandler,, NULL, TRUE }, { MmEndOfDxeHandler, ,NULL, FALSE }, { MmLegacyBootHandler, , NULL, FALSE }, -- 2.20.1 ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel