audk/EmbeddedPkg/Drivers/MemoryAttributeManagerDxe/MemoryAttributeManagerDxe.inf
Mario Bălănică f9c373c838 EmbeddedPkg: Add option to disable EFI Memory Attribute Protocol
Introduce a driver that allows users to disable the EFI Memory Attribute
protocol through an HII setup option, in order to work around a broken
version of rhboot's shim used in some distros (e.g. CentOS Stream 9)
which incorrectly invokes the protocol and results in a Synchronous
Exception.

Default is enabled, which can also be overridden at build time by
changing `gEmbeddedTokenSpaceGuid.PcdMemoryAttributeEnabledDefault`.

It is only applicable to ARM64 and there isn't any other technical
reason for disabling this security feature.

See:
- https://github.com/microsoft/mu_silicon_arm_tiano/issues/124
- https://edk2.groups.io/g/devel/topic/99631663
- https://github.com/tianocore/edk2/pull/5840

Signed-off-by: Mario Bălănică <mariobalanica02@gmail.com>
2024-07-16 09:54:07 +00:00

63 lines
1.8 KiB
INI

## @file
# EFI Memory Attribute Protocol state manager
#
# This driver allows users to disable the EFI Memory Attribute protocol
# through an HII setup option, in order to work around a broken version
# of rhboot's shim used in some distros (e.g. CentOS Stream 9) which
# incorrectly invokes the protocol and results in a Synchronous Exception.
#
# It is only applicable to ARM64 and there isn't any other technical
# reason for disabling this security feature.
#
# See:
# - https://github.com/microsoft/mu_silicon_arm_tiano/issues/124
# - https://edk2.groups.io/g/devel/topic/99631663
# - https://github.com/tianocore/edk2/pull/5840
#
# Copyright (c) 2023-2024, Mario Bălănică <mariobalanica02@gmail.com>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
INF_VERSION = 0x0001001B
BASE_NAME = MemoryAttributeManagerDxe
FILE_GUID = 5319346b-66ad-433a-9a91-f7fc286bc9a1
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = MemoryAttributeManagerInitialize
[Sources]
MemoryAttributeManagerDxe.c
MemoryAttributeManagerDxe.h
MemoryAttributeManagerDxeHii.uni
MemoryAttributeManagerDxeHii.vfr
[Packages]
EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
DebugLib
DevicePathLib
HiiLib
UefiBootServicesTableLib
UefiRuntimeServicesTableLib
UefiDriverEntryPoint
[Guids]
gMemoryAttributeManagerFormSetGuid
[Protocols]
gEfiMemoryAttributeProtocolGuid
[Pcd]
gEmbeddedTokenSpaceGuid.PcdMemoryAttributeEnabledDefault
[Depex]
gEfiVariableArchProtocolGuid AND
gEfiVariableWriteArchProtocolGuid AND
gEfiMemoryAttributeProtocolGuid