mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/MdeModulePkg.dec,.uni: Add NULL pointer detection PCD
PCD PcdNullPointerDetectionPropertyMask is a bitmask used to control the NULL address detection functionality in code for different phases. If enabled, accessing NULL address in UEFI or SMM code can be caught as a page fault exception. BIT0 - Enable NULL pointer detection for UEFI. BIT1 - Enable NULL pointer detection for SMM. BIT2..6 - Reserved for future uses. BIT7 - Disable NULL pointer detection just after EndOfDxe. This is a workaround for those unsolvable NULL access issues in OptionROM, boot loader, etc. It can also help to avoid unnecessary exception caused by legacy memory (0-4095) access after EndOfDxe, such as Windows 7 boot on Qemu. Cc: Star Zeng <star.zeng@intel.com> Cc: Eric Dong <eric.dong@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Cc: Ayellet Wolman <ayellet.wolman@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: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
parent
92d07e4890
commit
f7e077768f
|
@ -867,6 +867,19 @@
|
||||||
# @ValidList 0x80000006 | 0x03058002
|
# @ValidList 0x80000006 | 0x03058002
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable|0x03058002|UINT32|0x30001040
|
gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable|0x03058002|UINT32|0x30001040
|
||||||
|
|
||||||
|
## Mask to control the NULL address detection in code for different phases.
|
||||||
|
# If enabled, accessing NULL address in UEFI or SMM code can be caught.<BR><BR>
|
||||||
|
# BIT0 - Enable NULL pointer detection for UEFI.<BR>
|
||||||
|
# BIT1 - Enable NULL pointer detection for SMM.<BR>
|
||||||
|
# BIT2..6 - Reserved for future uses.<BR>
|
||||||
|
# BIT7 - Disable NULL pointer detection just after EndOfDxe. <BR>
|
||||||
|
# This is a workaround for those unsolvable NULL access issues in
|
||||||
|
# OptionROM, boot loader, etc. It can also help to avoid unnecessary
|
||||||
|
# exception caused by legacy memory (0-4095) access after EndOfDxe,
|
||||||
|
# such as Windows 7 boot on Qemu.<BR>
|
||||||
|
# @Prompt Enable NULL address detection.
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask|0x0|UINT8|0x30001050
|
||||||
|
|
||||||
[PcdsFixedAtBuild, PcdsPatchableInModule]
|
[PcdsFixedAtBuild, PcdsPatchableInModule]
|
||||||
## Dynamic type PCD can be registered callback function for Pcd setting action.
|
## Dynamic type PCD can be registered callback function for Pcd setting action.
|
||||||
# PcdMaxPeiPcdCallBackNumberPerPcdEntry indicates the maximum number of callback function
|
# PcdMaxPeiPcdCallBackNumberPerPcdEntry indicates the maximum number of callback function
|
||||||
|
|
|
@ -1127,3 +1127,16 @@
|
||||||
"enabled on AMD processors supporting the Secure Encrypted Virtualization (SEV) feature.\n"
|
"enabled on AMD processors supporting the Secure Encrypted Virtualization (SEV) feature.\n"
|
||||||
"This mask should be applied when creating 1:1 virtual to physical mapping tables."
|
"This mask should be applied when creating 1:1 virtual to physical mapping tables."
|
||||||
|
|
||||||
|
#string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdNullPointerDetectionPropertyMask_PROMPT #language en-US "Enable NULL pointer detection"
|
||||||
|
|
||||||
|
#string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdNullPointerDetectionPropertyMask_HELP #language en-US "Mask to control the NULL address detection in code for different phases.\n"
|
||||||
|
" If enabled, accessing NULL address in UEFI or SMM code can be caught.\n\n"
|
||||||
|
" BIT0 - Enable NULL pointer detection for UEFI.\n"
|
||||||
|
" BIT1 - Enable NULL pointer detection for SMM.\n"
|
||||||
|
" BIT2..6 - Reserved for future uses.\n"
|
||||||
|
" BIT7 - Disable NULL pointer detection just after EndOfDxe."
|
||||||
|
" This is a workaround for those unsolvable NULL access issues in"
|
||||||
|
" OptionROM, boot loader, etc. It can also help to avoid unnecessary"
|
||||||
|
" exception caused by legacy memory (0-4095) access after EndOfDxe,"
|
||||||
|
" such as Windows 7 boot on Qemu.\n"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue