From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.63.1588786072164866073 for ; Wed, 06 May 2020 10:27:52 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ard.biesheuvel@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6EB471FB; Wed, 6 May 2020 10:27:51 -0700 (PDT) Received: from e123331-lin.nice.arm.com (unknown [10.37.8.179]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 13DB33F71F; Wed, 6 May 2020 10:27:48 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Michael D Kinney , Liming Gao , Jian J Wang , Hao A Wu , Leif Lindholm , Sami Mujawar , Jiewen Yao Subject: [PATCH resend 0/7] Add support for MM communicate2 protocol (PI 1.7a) Date: Wed, 6 May 2020 19:27:27 +0200 Message-Id: <20200506172734.2475-1-ard.biesheuvel@arm.com> X-Mailer: git-send-email 2.17.1 Now that version 1.7 errata A of the PI spec has finally been released, we can take another look at this series, which incorporates the new MM communicate2 protocol definition, updates the producers for conventional SMM and standalone MM, and updates the variable store components to consume the new version of the protocol. This solves a long standing compatibility issue which made standalone MM fundamentally incompatible with a virtually remapped address space as installed by SetVirtualAddressMap(). Cc: Michael D Kinney Cc: Liming Gao Cc: Jian J Wang Cc: Hao A Wu Cc: Leif Lindholm Cc: Sami Mujawar Cc: Jiewen Yao Ard Biesheuvel (7): MdePkg: introduce MM communicate 2 protocol MdeModulePkg/SmmIpl: expose MM communicate 2 protocol ArmPkg/MmCommunicationDxe: expose MM Communicate 2 protocol MdeModulePkg/VariableInfo: switch to MM communicate 2 protocol MdeModulePkg/FaultTolerantWriteSmmDxe: switch to MM communicate 2 MdeModulePkg/VariableSmmRuntimeDxe: switch to MM communicate 2 StandaloneMmPkg: switch to MM communicate 2 protocol .../MmCommunicationDxe/MmCommunication.c | 81 +++++++++---------- .../MmCommunicationDxe/MmCommunication.inf | 6 +- .../Application/VariableInfo/VariableInfo.c | 19 +++-- .../Application/VariableInfo/VariableInfo.inf | 2 +- MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c | 80 ++++++++++++++++++ MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf | 1 + MdeModulePkg/Include/Guid/SmmVariableCommon.h | 6 +- .../FaultTolerantWriteSmmCommon.h | 2 +- .../FaultTolerantWriteSmmDxe.c | 25 +++--- .../FaultTolerantWriteSmmDxe.h | 2 +- .../FaultTolerantWriteSmmDxe.inf | 4 +- .../RuntimeDxe/VariableSmmRuntimeDxe.c | 39 ++++----- .../RuntimeDxe/VariableSmmRuntimeDxe.inf | 4 +- MdePkg/Include/Protocol/MmCommunication2.h | 69 ++++++++++++++++ MdePkg/MdePkg.dec | 7 ++ StandaloneMmPkg/Core/StandaloneMmCore.h | 2 +- .../StandaloneMmCpu/AArch64/StandaloneMmCpu.h | 2 +- 17 files changed, 256 insertions(+), 95 deletions(-) create mode 100644 MdePkg/Include/Protocol/MmCommunication2.h -- 2.17.1