OvmfPkg/OvmfXen: Build platform info HOB in XenPlatformPei

Copy the function BuildPlatformInfoHob() from OvmfPkg/PlatformPei.

QemuFwCfgLib expect this HOB to be present, or fails to do anything.
InternalQemuFwCfgIsAvailable() from QemuFwCfgPeiLib module will not
check if the HOB is actually present for example and try to use a NULL
pointer.

Fixes: cda98df162 ("OvmfPkg/QemuFwCfgLib: remove mQemuFwCfgSupported + mQemuFwCfgDmaSupported")
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
Anthony PERARD 2022-12-20 00:36:20 +08:00 committed by mergify[bot]
parent 451521ccbc
commit 0b633b1494
2 changed files with 21 additions and 0 deletions
OvmfPkg/XenPlatformPei

View File

@ -17,6 +17,7 @@
//
// The Library classes this module consumes
//
#include <Library/BaseMemoryLib.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/HobLib.h>
@ -409,6 +410,20 @@ DebugDumpCmos (
}
}
EFI_HOB_PLATFORM_INFO *
BuildPlatformInfoHob (
VOID
)
{
EFI_HOB_PLATFORM_INFO PlatformInfoHob;
EFI_HOB_GUID_TYPE *GuidHob;
ZeroMem (&PlatformInfoHob, sizeof PlatformInfoHob);
BuildGuidDataHob (&gUefiOvmfPkgPlatformInfoGuid, &PlatformInfoHob, sizeof (EFI_HOB_PLATFORM_INFO));
GuidHob = GetFirstGuidHob (&gUefiOvmfPkgPlatformInfoGuid);
return (EFI_HOB_PLATFORM_INFO *)GET_GUID_HOB_DATA (GuidHob);
}
/**
Perform Platform PEI initialization.
@ -429,6 +444,11 @@ InitializeXenPlatform (
DEBUG ((DEBUG_INFO, "Platform PEIM Loaded\n"));
//
// Platform Info HOB used by QemuFw libraries
//
BuildPlatformInfoHob ();
DebugDumpCmos ();
if (!XenDetect ()) {

View File

@ -12,6 +12,7 @@
#define _PLATFORM_PEI_H_INCLUDED_
#include <IndustryStandard/E820.h>
#include <Library/PlatformInitLib.h>
VOID
AddIoMemoryBaseSizeHob (