summaryrefslogtreecommitdiffstats
path: root/ArmVirtPkg
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2018-03-15 12:49:26 +0100
committerLaszlo Ersek <lersek@redhat.com>2018-03-16 19:57:32 +0100
commit34711bf19833c2822f257725c216f192b62696c7 (patch)
treedbe18c7ede124b03b61b17c6ef269ac5ecb4f596 /ArmVirtPkg
parentd0976b9accedfd1f45fe2f81c59351ed17f34aa0 (diff)
downloadedk2-34711bf19833c2822f257725c216f192b62696c7.tar.gz
edk2-34711bf19833c2822f257725c216f192b62696c7.tar.bz2
edk2-34711bf19833c2822f257725c216f192b62696c7.zip
ArmVirtPkg/PlatformBootManagerLib: return to "-kernel before boot devices"
Move the TryRunningQemuKernel() call back to its original place. This improves the UEFI boot time for VMs that have "-kernel", many disks or NICs, and no "bootindex" properties. A well-known example is guestfish/libguestfs. For more info on the TryRunningQemuKernel() location, see the following commits: 23d04b58e27b, a78c4836ea0b, 158990b941e4. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Xiang Zheng <xiang.zheng@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Richard W.M. Jones <rjones@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Diffstat (limited to 'ArmVirtPkg')
-rw-r--r--ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
index 36e0eed238..5d5e51d8c8 100644
--- a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
+++ b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
@@ -671,6 +671,14 @@ PlatformBootManagerAfterConsole (
BootLogoEnableLogo ();
//
+ // Process QEMU's -kernel command line option. The kernel booted this way
+ // will receive ACPI tables: in PlatformBootManagerBeforeConsole(), we
+ // connected any and all PCI root bridges, and then signaled the ACPI
+ // platform driver.
+ //
+ TryRunningQemuKernel ();
+
+ //
// Connect the purported boot devices.
//
Status = ConnectDevicesFromQemu ();
@@ -682,14 +690,6 @@ PlatformBootManagerAfterConsole (
}
//
- // Process QEMU's -kernel command line option. Note that the kernel booted
- // this way should receive ACPI tables, which is why we connect all devices
- // first (see above) -- PCI enumeration blocks ACPI table installation, if
- // there is a PCI host.
- //
- TryRunningQemuKernel ();
-
- //
// Enumerate all possible boot options, then filter and reorder them based on
// the QEMU configuration.
//