Introduce the Q35SmramAtDefaultSmbaseInitialization() function for
detecting the "SMRAM at default SMBASE" feature.
For now, the function is only a skeleton, so that we can gradually build
upon the result while the result is hard-coded as FALSE. The actual
detection will occur in a later patch.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1512
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Message-Id: <
20200129214412.2361-6-lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
\r
STATIC UINT16 mQ35TsegMbytes;\r
\r
+BOOLEAN mQ35SmramAtDefaultSmbase;\r
+\r
UINT32 mQemuUc32Base;\r
\r
VOID\r
}\r
\r
\r
+VOID\r
+Q35SmramAtDefaultSmbaseInitialization (\r
+ VOID\r
+ )\r
+{\r
+ RETURN_STATUS PcdStatus;\r
+\r
+ ASSERT (mHostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID);\r
+\r
+ mQ35SmramAtDefaultSmbase = FALSE;\r
+ PcdStatus = PcdSetBoolS (PcdQ35SmramAtDefaultSmbase,\r
+ mQ35SmramAtDefaultSmbase);\r
+ ASSERT_RETURN_ERROR (PcdStatus);\r
+}\r
+\r
+\r
VOID\r
QemuUc32BaseInitialization (\r
VOID\r
if (FeaturePcdGet (PcdSmmSmramRequire)) {\r
Q35BoardVerification ();\r
Q35TsegMbytesInitialization ();\r
+ Q35SmramAtDefaultSmbaseInitialization ();\r
}\r
\r
PublishPeiMemory ();\r
VOID\r
);\r
\r
+VOID\r
+Q35SmramAtDefaultSmbaseInitialization (\r
+ VOID\r
+ );\r
+\r
EFI_STATUS\r
PublishPeiMemory (\r
VOID\r
\r
extern UINT16 mHostBridgeDevId;\r
\r
+extern BOOLEAN mQ35SmramAtDefaultSmbase;\r
+\r
extern UINT32 mQemuUc32Base;\r
\r
#endif // _PLATFORM_PEI_H_INCLUDED_\r
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size\r
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDecompressionScratchEnd\r
gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes\r
+ gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase\r
gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress\r
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize\r
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize\r