mirror of https://github.com/acidanthera/audk.git
OvmfPkg/PlatformPei: Refactor NoexecDxeInitialization
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3863 NoexecDxeInitialization is split into 2 functions: - PlatformNoexecDxeInitialization is for PlatformInitLib - NoexecDxeInitialization calls PlatformNoexecDxeInitialization and then sets PCD. Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Brijesh Singh <brijesh.singh@amd.com> Cc: Erdem Aktas <erdemaktas@google.com> Cc: James Bottomley <jejb@linux.ibm.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Sebastien Boeuf <sebastien.boeuf@intel.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Min Xu <min.m.xu@intel.com>
This commit is contained in:
parent
12e860a1e8
commit
cec82a64cf
|
@ -59,7 +59,6 @@ PlatformMemMapInitialization (
|
|||
{
|
||||
UINT64 PciIoBase;
|
||||
UINT64 PciIoSize;
|
||||
RETURN_STATUS PcdStatus;
|
||||
UINT32 TopOfLowRam;
|
||||
UINT64 PciExBarBase;
|
||||
UINT32 PciBase;
|
||||
|
@ -199,24 +198,33 @@ MemMapInitialization (
|
|||
ASSERT_RETURN_ERROR (PcdStatus);
|
||||
}
|
||||
|
||||
#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \
|
||||
do { \
|
||||
BOOLEAN Setting; \
|
||||
RETURN_STATUS PcdStatus; \
|
||||
\
|
||||
if (!RETURN_ERROR (QemuFwCfgParseBool ( \
|
||||
"opt/ovmf/" #TokenName, &Setting))) { \
|
||||
PcdStatus = PcdSetBoolS (TokenName, Setting); \
|
||||
ASSERT_RETURN_ERROR (PcdStatus); \
|
||||
} \
|
||||
} while (0)
|
||||
/**
|
||||
* Fetch "opt/ovmf/PcdSetNxForStack" from QEMU
|
||||
*
|
||||
* @param Setting The pointer to the setting of "/opt/ovmf/PcdSetNxForStack".
|
||||
* @return EFI_SUCCESS Successfully fetch the settings.
|
||||
*/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PlatformNoexecDxeInitialization (
|
||||
IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob
|
||||
)
|
||||
{
|
||||
return QemuFwCfgParseBool ("opt/ovmf/PcdSetNxForStack", &PlatformInfoHob->PcdSetNxForStack);
|
||||
}
|
||||
|
||||
VOID
|
||||
NoexecDxeInitialization (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdSetNxForStack);
|
||||
RETURN_STATUS Status;
|
||||
|
||||
Status = PlatformNoexecDxeInitialization (&mPlatformInfoHob);
|
||||
if (!RETURN_ERROR (Status)) {
|
||||
Status = PcdSetBoolS (PcdSetNxForStack, mPlatformInfoHob.PcdSetNxForStack);
|
||||
ASSERT_RETURN_ERROR (Status);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
|
|
Loading…
Reference in New Issue