From: "Guo Dong" <guo.dong@intel.com>
To: devel@edk2.groups.io
Cc: Guo Dong <guo.dong@intel.com>, Ray Ni <ray.ni@intel.com>,
Maurice Ma <maurice.ma@intel.com>,
Benjamin You <benjamin.you@intel.com>
Subject: [`edk2-devel][PATCH V3 0/8] Add SMM variable support for UEFI payload
Date: Fri, 22 Oct 2021 08:46:19 -0700 [thread overview]
Message-ID: <20211022154627.1607-1-guo.dong@intel.com> (raw)
From: Guo Dong <guo.dong@intel.com>
V3: Add SMM communication region EFI_ALLOCATED check
in UefiPayloadPkg/BlSupportSmm/BlSupportSmm.c
V2: Added SMM communication region size check
Fixed ECC reported issues and other minor update.
https://bugzilla.tianocore.org/show_bug.cgi?id=3084
Currently UEFI payload uses emulated variable driver. So it could
not support secureboot and measured boot since both need NV variable
support.
EDKII already has SMM modules and variable modules. And modern Intel
platform supports SPI flash hardware sequence to operate flash. So it
is possible to have a common SPI module for Intel platforms.
This patch enhances UEFI payload to support SMM variable with a
common SPI library for Intel platforms. To avoid impact existing
usage, all the new modules are included under SMM_ENABLE and
VARIABLE_SUPPORT and by default SMM variable is not be enabled.
SMM variable could be enabled only when UNIVERSAL_PAYLOAD is set
since non-universal payload need update ParseLib to provide SMM
variable related infromation which is not in the plan.
Signed-off-by: Guo Dong <guo.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Benjamin You <benjamin.you@intel.com
Guo Dong (8):
UefiPayloadPkg: Add a common SmmAccessDxe module
UefiPayloadPkg: Add a common SMM control Runtime DXE module
UefiPayloadPkg: Add bootloader SMM support module
UefiPayloadPkg: Add SpiFlashLib
UefiPayloadPkg: Add FlashDeviceLib
UefiPayloadPkg: Add a common FVB SMM module
UefiPayloadPkg: Add a SMM dispatch module
UefiPayloadPkg: Add SMM support and SMM variable support
UefiPayloadPkg/BlSupportSmm/BlSupportSmm.c | 431 +++++++
UefiPayloadPkg/BlSupportSmm/BlSupportSmm.h | 41 +
UefiPayloadPkg/BlSupportSmm/BlSupportSmm.inf | 49 +
UefiPayloadPkg/FvbRuntimeDxe/FvbInfo.c | 151 +++
UefiPayloadPkg/FvbRuntimeDxe/FvbService.c | 1088 +++++++++++++++++
UefiPayloadPkg/FvbRuntimeDxe/FvbService.h | 187 +++
UefiPayloadPkg/FvbRuntimeDxe/FvbServiceSmm.c | 139 +++
UefiPayloadPkg/FvbRuntimeDxe/FvbSmm.inf | 71 ++
UefiPayloadPkg/FvbRuntimeDxe/FvbSmmCommon.h | 69 ++
.../Include/Guid/NvVariableInfoGuid.h | 24 +
.../Include/Guid/SmmRegisterInfoGuid.h | 48 +
.../Include/Guid/SmmS3CommunicationInfoGuid.h | 54 +
.../Include/Guid/SpiFlashInfoGuid.h | 38 +
.../Include/Library/FlashDeviceLib.h | 108 ++
UefiPayloadPkg/Include/Library/SpiFlashLib.h | 215 ++++
.../Library/FlashDeviceLib/FlashDeviceLib.c | 165 +++
.../Library/FlashDeviceLib/FlashDeviceLib.inf | 38 +
UefiPayloadPkg/Library/SpiFlashLib/PchSpi.c | 173 +++
UefiPayloadPkg/Library/SpiFlashLib/RegsSpi.h | 129 ++
.../Library/SpiFlashLib/SpiCommon.h | 208 ++++
.../Library/SpiFlashLib/SpiFlashLib.c | 857 +++++++++++++
.../Library/SpiFlashLib/SpiFlashLib.inf | 48 +
.../PchSmiDispatchSmm/PchSmiDispatchSmm.c | 455 +++++++
.../PchSmiDispatchSmm/PchSmiDispatchSmm.h | 37 +
.../PchSmiDispatchSmm/PchSmiDispatchSmm.inf | 51 +
UefiPayloadPkg/SmmAccessDxe/SmmAccessDxe.c | 254 ++++
UefiPayloadPkg/SmmAccessDxe/SmmAccessDxe.h | 37 +
UefiPayloadPkg/SmmAccessDxe/SmmAccessDxe.inf | 51 +
.../SmmControlRuntimeDxe.c | 256 ++++
.../SmmControlRuntimeDxe.inf | 50 +
UefiPayloadPkg/UefiPayloadPkg.dec | 10 +
UefiPayloadPkg/UefiPayloadPkg.dsc | 101 +-
UefiPayloadPkg/UefiPayloadPkg.fdf | 38 +-
33 files changed, 5660 insertions(+), 11 deletions(-)
create mode 100644 UefiPayloadPkg/BlSupportSmm/BlSupportSmm.c
create mode 100644 UefiPayloadPkg/BlSupportSmm/BlSupportSmm.h
create mode 100644 UefiPayloadPkg/BlSupportSmm/BlSupportSmm.inf
create mode 100644 UefiPayloadPkg/FvbRuntimeDxe/FvbInfo.c
create mode 100644 UefiPayloadPkg/FvbRuntimeDxe/FvbService.c
create mode 100644 UefiPayloadPkg/FvbRuntimeDxe/FvbService.h
create mode 100644 UefiPayloadPkg/FvbRuntimeDxe/FvbServiceSmm.c
create mode 100644 UefiPayloadPkg/FvbRuntimeDxe/FvbSmm.inf
create mode 100644 UefiPayloadPkg/FvbRuntimeDxe/FvbSmmCommon.h
create mode 100644 UefiPayloadPkg/Include/Guid/NvVariableInfoGuid.h
create mode 100644 UefiPayloadPkg/Include/Guid/SmmRegisterInfoGuid.h
create mode 100644 UefiPayloadPkg/Include/Guid/SmmS3CommunicationInfoGuid.h
create mode 100644 UefiPayloadPkg/Include/Guid/SpiFlashInfoGuid.h
create mode 100644 UefiPayloadPkg/Include/Library/FlashDeviceLib.h
create mode 100644 UefiPayloadPkg/Include/Library/SpiFlashLib.h
create mode 100644 UefiPayloadPkg/Library/FlashDeviceLib/FlashDeviceLib.c
create mode 100644 UefiPayloadPkg/Library/FlashDeviceLib/FlashDeviceLib.inf
create mode 100644 UefiPayloadPkg/Library/SpiFlashLib/PchSpi.c
create mode 100644 UefiPayloadPkg/Library/SpiFlashLib/RegsSpi.h
create mode 100644 UefiPayloadPkg/Library/SpiFlashLib/SpiCommon.h
create mode 100644 UefiPayloadPkg/Library/SpiFlashLib/SpiFlashLib.c
create mode 100644 UefiPayloadPkg/Library/SpiFlashLib/SpiFlashLib.inf
create mode 100644 UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.c
create mode 100644 UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.h
create mode 100644 UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.inf
create mode 100644 UefiPayloadPkg/SmmAccessDxe/SmmAccessDxe.c
create mode 100644 UefiPayloadPkg/SmmAccessDxe/SmmAccessDxe.h
create mode 100644 UefiPayloadPkg/SmmAccessDxe/SmmAccessDxe.inf
create mode 100644 UefiPayloadPkg/SmmControlRuntimeDxe/SmmControlRuntimeDxe.c
create mode 100644 UefiPayloadPkg/SmmControlRuntimeDxe/SmmControlRuntimeDxe.inf
--
2.32.0.windows.2
next reply other threads:[~2021-10-22 15:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-22 15:46 Guo Dong [this message]
2021-10-22 15:46 ` [`edk2-devel][PATCH V3 1/8] UefiPayloadPkg: Add a common SmmAccessDxe module Guo Dong
2021-10-22 15:46 ` [`edk2-devel][PATCH V3 2/8] UefiPayloadPkg: Add a common SMM control Runtime DXE module Guo Dong
2021-10-22 15:46 ` [`edk2-devel][PATCH V3 3/8] UefiPayloadPkg: Add bootloader SMM support module Guo Dong
2021-10-22 15:46 ` [`edk2-devel][PATCH V3 4/8] UefiPayloadPkg: Add SpiFlashLib Guo Dong
2021-10-22 15:46 ` [`edk2-devel][PATCH V3 5/8] UefiPayloadPkg: Add FlashDeviceLib Guo Dong
2021-10-22 15:46 ` [`edk2-devel][PATCH V3 6/8] UefiPayloadPkg: Add a common FVB SMM module Guo Dong
2021-10-22 15:46 ` [`edk2-devel][PATCH V3 7/8] UefiPayloadPkg: Add a SMM dispatch module Guo Dong
2021-10-22 15:46 ` [`edk2-devel][PATCH V3 8/8] UefiPayloadPkg: Add SMM support and SMM variable support Guo Dong
2021-10-24 6:24 ` [`edk2-devel][PATCH V3 0/8] Add SMM variable support for UEFI payload Benjamin You
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211022154627.1607-1-guo.dong@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox