diff --git a/OvmfPkg/Library/PlatformInitLib/Platform.c b/OvmfPkg/Library/PlatformInitLib/Platform.c index 60a30a01f3..ee802fd684 100644 --- a/OvmfPkg/Library/PlatformInitLib/Platform.c +++ b/OvmfPkg/Library/PlatformInitLib/Platform.c @@ -410,14 +410,17 @@ PlatformMaxCpuCountInitialization ( IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob ) { - UINT16 BootCpuCount; + UINT16 BootCpuCount = 0; UINT32 MaxCpuCount; // // Try to fetch the boot CPU count. // - QemuFwCfgSelectItem (QemuFwCfgItemSmpCpuCount); - BootCpuCount = QemuFwCfgRead16 (); + if (QemuFwCfgIsAvailable ()) { + QemuFwCfgSelectItem (QemuFwCfgItemSmpCpuCount); + BootCpuCount = QemuFwCfgRead16 (); + } + if (BootCpuCount == 0) { // // QEMU doesn't report the boot CPU count. (BootCpuCount == 0) will let diff --git a/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c b/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c index b5768285d8..67d29ac642 100644 --- a/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c +++ b/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c @@ -2233,6 +2233,11 @@ GetFrontPageTimeoutFromQemu ( { FIRMWARE_CONFIG_ITEM BootMenuWaitItem; UINTN BootMenuWaitSize; + UINT16 Timeout = PcdGet16 (PcdPlatformBootTimeOut); + + if (!QemuFwCfgIsAvailable ()) { + return Timeout; + } QemuFwCfgSelectItem (QemuFwCfgItemBootMenu); if (QemuFwCfgRead16 () == 0) { @@ -2257,9 +2262,6 @@ GetFrontPageTimeoutFromQemu ( // return three seconds if the platform default would cause us to skip the // front page, and return the platform default otherwise. // - UINT16 Timeout; - - Timeout = PcdGet16 (PcdPlatformBootTimeOut); if (Timeout == 0) { Timeout = 3; }