mbox series

[edk2,00/10] StandaloneMmPkg, ArmPkg: cleanups and improvements

Message ID 20190305133248.4828-1-ard.biesheuvel@linaro.org
Headers show
Series StandaloneMmPkg, ArmPkg: cleanups and improvements | expand

Message

Ard Biesheuvel March 5, 2019, 1:32 p.m. UTC
This series is a further cleanup of the StandaloneMmPkg infrastructure
used to implement UEFI secure boot on ARM systems.

The first 5 patches are simple cleanups.

Patch #6 adds support for dispatching a compressed firmware volume in the
standalone MM context, so that all drivers except the core can be delivered
in an encapsulated compressed FV, which saves quite some space.

Patch #7 modifies the driver dispatch logic in the MM context so that the
dispatcher continues until all drivers are dispatched, rather than waiting
for a nudge from the non-secure side once the CPU driver has been loaded.

Patch #8 removes support for the FV dispatch MM call.

Patch #9 removes support for legacy boot handling.

Patch #10 implements relaying architected PI events from DXE into MM by
the MM communicate driver.

Cc: Achin Gupta <achin.gupta@arm.com>
Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Jagadeesh Ujja <jagadeesh.ujja@arm.com>

Ard Biesheuvel (10):
  StandaloneMmPkg: drop redundant definition of
    gEfiMmConfigurationProtocolGuid
  StandaloneMmPkg: drop unused PCD PcdStandaloneMmEnable
  StandaloneMmPkg: switch to NULL DebugLib resolution
  StandaloneMmPkg: remove redundant StandaloneMmDriverEntryPoint driver
  StandaloneMmPkg/StandaloneMmCoreEntryPoint: drop explicit
    SerialPortLib call
  StandaloneMmPkg/Core: permit encapsulated firmware volumes
  StandaloneMmPkg/Core: dispatch all drivers at init time
  StandaloneMmPkg/Core: drop support for dispatching FVs into MM
  StandaloneMmPkg/Core: remove legacy boot support
  ArmPkg/MmCommunicationDxe: signal architected PI events into MM
    context

 StandaloneMmPkg/StandaloneMmPkg.dec                                                           |   6 -
 StandaloneMmPkg/StandaloneMmPkg.dsc                                                           |  14 +-
 ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf                                         |   5 +
 StandaloneMmPkg/Core/StandaloneMmCore.inf                                                     |   1 +
 StandaloneMmPkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf         |  41 ------
 StandaloneMmPkg/Library/StandaloneMmPeCoffExtraActionLib/StandaloneMmPeCoffExtraActionLib.inf |   3 -
 StandaloneMmPkg/Core/StandaloneMmCore.h                                                       |  44 -------
 ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c                                           |  47 ++++++-
 StandaloneMmPkg/Core/Dispatcher.c                                                             | 138 --------------------
 StandaloneMmPkg/Core/FwVol.c                                                                  |  99 ++++++++++++--
 StandaloneMmPkg/Core/StandaloneMmCore.c                                                       | 126 +++++-------------
 StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c       |   3 -
 StandaloneMmPkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.c           |  99 --------------
 13 files changed, 175 insertions(+), 451 deletions(-)
 delete mode 100644 StandaloneMmPkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
 delete mode 100644 StandaloneMmPkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.c

-- 
2.20.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Ard Biesheuvel March 11, 2019, 11:54 a.m. UTC | #1
On Tue, 5 Mar 2019 at 14:32, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>

> This series is a further cleanup of the StandaloneMmPkg infrastructure

> used to implement UEFI secure boot on ARM systems.

>

> The first 5 patches are simple cleanups.

>

> Patch #6 adds support for dispatching a compressed firmware volume in the

> standalone MM context, so that all drivers except the core can be delivered

> in an encapsulated compressed FV, which saves quite some space.

>

> Patch #7 modifies the driver dispatch logic in the MM context so that the

> dispatcher continues until all drivers are dispatched, rather than waiting

> for a nudge from the non-secure side once the CPU driver has been loaded.

>

> Patch #8 removes support for the FV dispatch MM call.

>

> Patch #9 removes support for legacy boot handling.

>

> Patch #10 implements relaying architected PI events from DXE into MM by

> the MM communicate driver.

>

> Cc: Achin Gupta <achin.gupta@arm.com>

> Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>

> Cc: Jiewen Yao <jiewen.yao@intel.com>

> Cc: Leif Lindholm <leif.lindholm@linaro.org>

> Cc: Jagadeesh Ujja <jagadeesh.ujja@arm.com>

>

> Ard Biesheuvel (10):

>   StandaloneMmPkg: drop redundant definition of

>     gEfiMmConfigurationProtocolGuid

>   StandaloneMmPkg: switch to NULL DebugLib resolution

>   StandaloneMmPkg/StandaloneMmCoreEntryPoint: drop explicit

>     SerialPortLib call

>   StandaloneMmPkg/Core: permit encapsulated firmware volumes

>   StandaloneMmPkg/Core: dispatch all drivers at init time

>   StandaloneMmPkg/Core: drop support for dispatching FVs into MM

>   StandaloneMmPkg/Core: remove legacy boot support


Pushed the 7 patches above as 326598e9b759..b2877855c7ec.

>   StandaloneMmPkg: drop unused PCD PcdStandaloneMmEnable

>   StandaloneMmPkg: remove redundant StandaloneMmDriverEntryPoint driver


These 2 are ready to go, but are dependent on edk2-platforms patches
that are under review.

>   ArmPkg/MmCommunicationDxe: signal architected PI events into MM

>     context


This one is still under discussion, since we need to clarify which
events need to be signaled into the MM context.
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard Biesheuvel March 11, 2019, 11:59 a.m. UTC | #2
On Mon, 11 Mar 2019 at 12:54, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>

> On Tue, 5 Mar 2019 at 14:32, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:

> >

> > This series is a further cleanup of the StandaloneMmPkg infrastructure

> > used to implement UEFI secure boot on ARM systems.

> >

> > The first 5 patches are simple cleanups.

> >

> > Patch #6 adds support for dispatching a compressed firmware volume in the

> > standalone MM context, so that all drivers except the core can be delivered

> > in an encapsulated compressed FV, which saves quite some space.

> >

> > Patch #7 modifies the driver dispatch logic in the MM context so that the

> > dispatcher continues until all drivers are dispatched, rather than waiting

> > for a nudge from the non-secure side once the CPU driver has been loaded.

> >

> > Patch #8 removes support for the FV dispatch MM call.

> >

> > Patch #9 removes support for legacy boot handling.

> >

> > Patch #10 implements relaying architected PI events from DXE into MM by

> > the MM communicate driver.

> >

> > Cc: Achin Gupta <achin.gupta@arm.com>

> > Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>

> > Cc: Jiewen Yao <jiewen.yao@intel.com>

> > Cc: Leif Lindholm <leif.lindholm@linaro.org>

> > Cc: Jagadeesh Ujja <jagadeesh.ujja@arm.com>

> >

> > Ard Biesheuvel (10):

> >   StandaloneMmPkg: drop redundant definition of

> >     gEfiMmConfigurationProtocolGuid

> >   StandaloneMmPkg: switch to NULL DebugLib resolution

> >   StandaloneMmPkg/StandaloneMmCoreEntryPoint: drop explicit

> >     SerialPortLib call

> >   StandaloneMmPkg/Core: permit encapsulated firmware volumes

> >   StandaloneMmPkg/Core: dispatch all drivers at init time

> >   StandaloneMmPkg/Core: drop support for dispatching FVs into MM

> >   StandaloneMmPkg/Core: remove legacy boot support

>

> Pushed the 7 patches above as 326598e9b759..b2877855c7ec.

>

> >   StandaloneMmPkg: drop unused PCD PcdStandaloneMmEnable

> >   StandaloneMmPkg: remove redundant StandaloneMmDriverEntryPoint driver

>

> These 2 are ready to go, but are dependent on edk2-platforms patches

> that are under review.

>


Unfortunately, I have already broken the SGI build by pushing
'StandaloneMmPkg/Core: permit encapsulated firmware volumes' above, so
no point in deferring these 2.

Pushed as b2877855c7ec..d6253d2f9a33


> >   ArmPkg/MmCommunicationDxe: signal architected PI events into MM

> >     context

>

> This one is still under discussion, since we need to clarify which

> events need to be signaled into the MM context.

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel