ArmVirtPkg/PlatformBootManagerLib: return to "-kernel before boot devices"
authorLaszlo Ersek <lersek@redhat.com>
Thu, 15 Mar 2018 11:49:26 +0000 (12:49 +0100)
committerLaszlo Ersek <lersek@redhat.com>
Fri, 16 Mar 2018 18:57:32 +0000 (19:57 +0100)
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: 23d04b58e27ba78c4836ea0b158990b941e4.

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>
ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c

index 36e0eed..5d5e51d 100644 (file)
@@ -670,6 +670,14 @@ PlatformBootManagerAfterConsole (
   //\r
   BootLogoEnableLogo ();\r
 \r
+  //\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
+  TryRunningQemuKernel ();\r
+\r
   //\r
   // Connect the purported boot devices.\r
   //\r
@@ -681,14 +689,6 @@ PlatformBootManagerAfterConsole (
     EfiBootManagerConnectAll ();\r
   }\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
-  //\r
-  TryRunningQemuKernel ();\r
-\r
   //\r
   // Enumerate all possible boot options, then filter and reorder them based on\r
   // the QEMU configuration.\r