Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Jian J Wang af4f4b3468 UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol
Heap guard makes use of paging mechanism to implement its functionality. But
there's no protocol or library available to change page attribute in SMM mode.
A new protocol gEdkiiSmmMemoryAttributeProtocolGuid is introduced to make it
happen. This protocol provide three interfaces

struct _EDKII_SMM_MEMORY_ATTRIBUTE_PROTOCOL {
  EDKII_SMM_GET_MEMORY_ATTRIBUTES       GetMemoryAttributes;
  EDKII_SMM_SET_MEMORY_ATTRIBUTES       SetMemoryAttributes;
  EDKII_SMM_CLEAR_MEMORY_ATTRIBUTES     ClearMemoryAttributes;
};

Since heap guard feature need to update page attributes. The page table
should not set to be read-only if heap guard feature is enabled for SMM
mode. Otherwise this feature cannot work.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Suggested-by: Ayellet Wolman <ayellet.wolman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
2017-11-17 11:03:18 +08:00
AppPkg AppPkg/WebServer: Fix build failure. 2017-09-14 08:55:09 +08:00
ArmPkg ArmPkg: move RVCT PLATFORM_FLAGS override into ArmHvcLib/ArmSmcLib 2017-11-16 16:02:23 +00:00
ArmPlatformPkg ArmPlatformPkg/PL031RealTimeClockLib: drop ArmPlatformSysConfigLib reference 2017-11-16 16:22:12 +00:00
ArmVirtPkg ArmVirtPkg: remove ArmPlatformSysConfigLib dependency 2017-11-16 16:22:55 +00:00
BaseTools BaseTools: Fix the bug to re-build uni file for Library 2017-11-14 16:23:07 +08:00
BeagleBoardPkg BeagleBoardPkg: switch to generic non-coherent DmaLib 2017-08-30 14:13:58 +01:00
Conf
CorebootModulePkg CorebootModulePkg/CbSupportDxe: Remove duplicated IO Space addition 2017-11-16 10:52:00 +08:00
CorebootPayloadPkg
CryptoPkg CryptoPkg/BaseCryptLib: Add C-structure to matching certificate stack 2017-11-07 22:06:48 +08:00
DuetPkg
EdkCompatibilityPkg
EdkShellBinPkg
EdkShellPkg
EmbeddedPkg EmbeddedPkg: add mx66u1g45g nor flash info 2017-11-16 16:28:55 +00:00
EmulatorPkg
FatBinPkg
FatPkg
IntelFrameworkModulePkg IntelFrameworkModulePkg: Fix MSFT C4255 warning 2017-11-14 18:18:36 +08:00
IntelFrameworkPkg IntelFrameworkPkg PeiHobLibFramework: Implement BuildFv3Hob 2017-10-10 20:54:37 +08:00
IntelFsp2Pkg IntelFsp2Pkg-Tools: GenCfgOpt.py shouldn't include specific UPD name 2017-11-08 20:44:29 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Update Protocol/Guid usage in INF files 2017-10-10 18:10:24 +08:00
IntelFspPkg
IntelFspWrapperPkg
IntelSiliconPkg IntelSiliconPkg IntelVTdDxe: Use ACPI table event to get DMAR table 2017-11-06 10:08:48 +08:00
MdeModulePkg MdeModulePkg/DxeCore: Implement heap guard feature for UEFI 2017-11-17 11:03:17 +08:00
MdePkg MdePkg: Fix MSFT C4255 warning 2017-11-14 18:18:48 +08:00
NetworkPkg NetworkPkg: Fix incorrect SizeofHeaders returned from HttpTcpReceiveHeader(). 2017-11-16 14:08:54 +08:00
Nt32Pkg Nt32Pkg: Update SecMain consumes PCD to get the init value in temp stack 2017-11-03 17:45:51 +08:00
Omap35xxPkg Omap35xxPkg: switch to EmbeddedPkg's NonCoherentDmaLib 2017-08-30 14:13:47 +01:00
OptionRomPkg
OvmfPkg OvmfPkg: fix dynamic default for oprom verification policy PCD without SB 2017-10-19 10:41:09 +02:00
PcAtChipsetPkg PcAtChipsetPkg/IsaAcpiDxe: Restore PCI attributes correctly 2017-11-08 11:42:45 +08:00
PerformancePkg PerformancePkg DP: Init CustomCumulativeData.MinDur 2017-08-14 16:55:44 +08:00
QuarkPlatformPkg QuarkPlatformPkg/PlatformBootManagerLib: Update boot mode handling 2017-11-14 16:47:35 -08:00
QuarkSocPkg QuarkSocPkg/QNCSmmDispatcher: Fix use after free issue #2 2017-08-16 19:42:17 -07:00
SecurityPkg SecurityPkg/AuthVariableLib: Use EFI_CERT_DATA to parse certificate 2017-11-07 22:06:54 +08:00
ShellBinPkg ShellBinPkg: AARCH64/ARM Shell binary update. 2017-08-31 15:41:59 +01:00
ShellPkg ShellPkg: Add error message if failed to place receive token in ping command. 2017-11-16 14:07:31 +08:00
SignedCapsulePkg SignedCapsulePkg: Update Guid usage in INF file to match source code logic 2017-10-10 18:10:21 +08:00
SourceLevelDebugPkg SourceLevelDebugPkg: Update SmmDebugAgentLib to restore APIC timer 2017-10-16 11:23:16 +08:00
StdLib StdLib/BsdSocketLib: Remove unused variables 2017-11-13 07:39:06 -08:00
StdLibPrivateInternalFiles
UefiCpuPkg UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol 2017-11-17 11:03:18 +08:00
UnixPkg
Vlv2DeviceRefCodePkg
Vlv2TbltDevicePkg
.gitignore
BuildNotes2.txt
Contributions.txt edk2: Fix typo in Contributions.txt 2017-08-16 17:50:44 +08:00
Edk2Setup.bat
License.txt
Maintainers.txt Add one maintainer to CorebootModulePkg and CorebootPayloadPkg 2017-11-02 10:17:54 +08:00
Readme.md
edksetup.bat
edksetup.sh

Readme.md

EDK II Project

A modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications from www.uefi.org.

Contributions to the EDK II open source project are covered by the TianoCore Contribution Agreement 1.1

The majority of the content in the EDK II open source project uses a BSD 2-Clause License. The EDK II open source project contains the following components that are covered by additional licenses:

The EDK II Project is composed of packages. The maintainers for each package are listed in Maintainers.txt.

Resources