VOID\r
)\r
{\r
+ RETURN_STATUS PcdStatus;\r
+\r
//\r
// Signal EndOfDxe PI Event\r
//\r
EfiEventGroupSignal (&gEfiEndOfDxeEventGroupGuid);\r
\r
+ //\r
+ // Dispatch deferred images after EndOfDxe event.\r
+ //\r
+ EfiBootManagerDispatchDeferredImages ();\r
+\r
//\r
// Locate the PCI root bridges and make the PCI bus driver connect each,\r
// non-recursively. This will produce a number of child handles with PciIo on\r
//\r
// Set the front page timeout from the QEMU configuration.\r
//\r
- PcdSet16 (PcdPlatformBootTimeOut, GetFrontPageTimeoutFromQemu ());\r
+ PcdStatus = PcdSet16S (PcdPlatformBootTimeOut,\r
+ GetFrontPageTimeoutFromQemu ());\r
+ ASSERT_RETURN_ERROR (PcdStatus);\r
\r
//\r
// Register platform-specific boot options and keyboard shortcuts.\r
VOID\r
)\r
{\r
+ RETURN_STATUS Status;\r
+\r
//\r
// Show the splash screen.\r
//\r
- BootLogoEnableLogo (\r
- ImageFormatBmp, // ImageFormat\r
- PcdGetPtr (PcdLogoFile), // Logo\r
- EdkiiPlatformLogoDisplayAttributeCenter, // Attribute\r
- 0, // OffsetX\r
- 0 // OffsetY\r
- );\r
+ BootLogoEnableLogo ();\r
\r
//\r
- // Connect the rest of the devices.\r
+ // Process QEMU's -kernel command line option. The kernel booted this way\r
+ // will receive ACPI tables: in PlatformBootManagerBeforeConsole(), we\r
+ // connected any and all PCI root bridges, and then signaled the ACPI\r
+ // platform driver.\r
//\r
- EfiBootManagerConnectAll ();\r
+ TryRunningQemuKernel ();\r
\r
//\r
- // Process QEMU's -kernel command line option. Note that the kernel booted\r
- // this way should receive ACPI tables, which is why we connect all devices\r
- // first (see above) -- PCI enumeration blocks ACPI table installation, if\r
- // there is a PCI host.\r
+ // Connect the purported boot devices.\r
//\r
- TryRunningQemuKernel ();\r
+ Status = ConnectDevicesFromQemu ();\r
+ if (RETURN_ERROR (Status)) {\r
+ //\r
+ // Connect the rest of the devices.\r
+ //\r
+ EfiBootManagerConnectAll ();\r
+ }\r
\r
//\r
// Enumerate all possible boot options, then filter and reorder them based on\r
// Register UEFI Shell\r
//\r
PlatformRegisterFvBootOption (\r
- PcdGetPtr (PcdShellFile), L"EFI Internal Shell", LOAD_OPTION_ACTIVE\r
+ &gUefiShellFileGuid, L"EFI Internal Shell", LOAD_OPTION_ACTIVE\r
);\r
\r
RemoveStaleFvFileOptions ();\r