mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-26 23:24:03 +02:00
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 PciIoBase;
|
||||||
UINT64 PciIoSize;
|
UINT64 PciIoSize;
|
||||||
RETURN_STATUS PcdStatus;
|
|
||||||
UINT32 TopOfLowRam;
|
UINT32 TopOfLowRam;
|
||||||
UINT64 PciExBarBase;
|
UINT64 PciExBarBase;
|
||||||
UINT32 PciBase;
|
UINT32 PciBase;
|
||||||
@ -199,24 +198,33 @@ MemMapInitialization (
|
|||||||
ASSERT_RETURN_ERROR (PcdStatus);
|
ASSERT_RETURN_ERROR (PcdStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \
|
/**
|
||||||
do { \
|
* Fetch "opt/ovmf/PcdSetNxForStack" from QEMU
|
||||||
BOOLEAN Setting; \
|
*
|
||||||
RETURN_STATUS PcdStatus; \
|
* @param Setting The pointer to the setting of "/opt/ovmf/PcdSetNxForStack".
|
||||||
\
|
* @return EFI_SUCCESS Successfully fetch the settings.
|
||||||
if (!RETURN_ERROR (QemuFwCfgParseBool ( \
|
*/
|
||||||
"opt/ovmf/" #TokenName, &Setting))) { \
|
EFI_STATUS
|
||||||
PcdStatus = PcdSetBoolS (TokenName, Setting); \
|
EFIAPI
|
||||||
ASSERT_RETURN_ERROR (PcdStatus); \
|
PlatformNoexecDxeInitialization (
|
||||||
} \
|
IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob
|
||||||
} while (0)
|
)
|
||||||
|
{
|
||||||
|
return QemuFwCfgParseBool ("opt/ovmf/PcdSetNxForStack", &PlatformInfoHob->PcdSetNxForStack);
|
||||||
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NoexecDxeInitialization (
|
NoexecDxeInitialization (
|
||||||
VOID
|
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
|
VOID
|
||||||
|
Loading…
x
Reference in New Issue
Block a user