Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: 0ae52d4fd157f7d6047b466f4cf69942dd83232b
      
https://github.com/tianocore/edk2/commit/0ae52d4fd157f7d6047b466f4cf69942dd83232b
  Author: Ard Biesheuvel <[email protected]>
  Date:   2020-06-06 (Sat, 06 Jun 2020)

  Changed paths:
    M ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c
    M ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf

  Log Message:
  -----------
  ArmPkg/PlatformBootManagerLib: connect non-discoverable USB hosts

The way the BDS handles the short-form USB device path of the console
keyboard relies on USB host controllers to be locatable via their PCI
metadata, which implies that these controllers already have a PCI I/O
protocol installed on their handle.

This is not the case for non-discoverable USB host controllers that are
supported by the NonDiscoverable PCI device driver. These controllers
must be connected first, or the BDS will never notice their existence,
and will not enable any USB keyboards connected through them.

Let's work around this by connecting these handles explicitly. This is
a bit of a stopgap, but it is the cleanest way of dealing with this
without violating the UEFI driver model entirely. This ensures that
platforms that do not rely on ConnectAll() will keep working as
expected.

Signed-off-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Leif Lindholm <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>


  Commit: 321b07888973fd089337656fd975c0527c275b35
      
https://github.com/tianocore/edk2/commit/321b07888973fd089337656fd975c0527c275b35
  Author: Ard Biesheuvel <[email protected]>
  Date:   2020-06-06 (Sat, 06 Jun 2020)

  Changed paths:
    M ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c

  Log Message:
  -----------
  ArmPkg/PlatformBootManagerLib: register 's' as UEFI Shell hotkey

In preparation of hiding the UEFI Shell boot option as an ordinary
boot option, make sure we can invoke it directly using the 's'
hotkey. Without ConnectAll() having been called, this results in
a shell that may have no block devices or other things connected,
so don't advertise the 's' in the console string that is printed
at boot - for novice users, we will go through the UiApp which
connects everything first. For advanced use, having the ability
to invoke the UEFI shell without any devices connected may be an
advantage, so let's keep this behavior as is for now.

Signed-off-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Leif Lindholm <[email protected]>


  Commit: 40e2e3ca33f93f5d45b469bd7aa486b1423ce9ad
      
https://github.com/tianocore/edk2/commit/40e2e3ca33f93f5d45b469bd7aa486b1423ce9ad
  Author: Ard Biesheuvel <[email protected]>
  Date:   2020-06-06 (Sat, 06 Jun 2020)

  Changed paths:
    M ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c

  Log Message:
  -----------
  ArmPkg/PlatformBootManagerLib: fall back to the UiApp on boot failure

As a last resort, drop into the UiApp application when no active boot
options could be started. Doing so will connect all devices, and so
it will allow the user to enter the Boot Manager submenu and pick a
network or removable disk option.

Note that this only occurs if even the default removable filepath
could not be booted (e.g., \EFI\BOOT\BOOTAA64.EFI on AArch64)

Signed-off-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Leif Lindholm <[email protected]>


  Commit: 4ef72fe0222fe2333c6c2249ed614310fd17c193
      
https://github.com/tianocore/edk2/commit/4ef72fe0222fe2333c6c2249ed614310fd17c193
  Author: Ard Biesheuvel <[email protected]>
  Date:   2020-06-06 (Sat, 06 Jun 2020)

  Changed paths:
    M MdeModulePkg/Library/BootManagerUiLib/BootManager.c

  Log Message:
  -----------
  MdeModulePkg/BootManagerUiLib: show inactive boot options

UEFI boot options may exist but have the LOAD_OPTION_ACTIVE flag
cleared. This means that the boot option should not be selected
by default, but it does not mean it should be omitted from the
boot selection presented by the boot manager: for this purpose,
another flag LOAD_OPTION_HIDDEN exists.

Given that the latter flag exists solely for the purpose of omitting
boot options from the boot selection menu, and LOAD_OPTION_XXX flags
can be combined if desired, hiding inactive boot options as well is
a mistake, and violates the intent of paragraph 3.1.3 of the UEFI
specification (revision 2.8 errata A). Let's fix this by dropping
the LOAD_OPTION_ACTIVE check from the code that populates the boot
selection menu.

Signed-off-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Acked-by: Leif Lindholm <[email protected]>
Reviewed-by: Zhichao Gao <[email protected]>


  Commit: 344f615df9c6b636a9125d477c5889ce821004cc
      
https://github.com/tianocore/edk2/commit/344f615df9c6b636a9125d477c5889ce821004cc
  Author: Ard Biesheuvel <[email protected]>
  Date:   2020-06-06 (Sat, 06 Jun 2020)

  Changed paths:
    M ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c

  Log Message:
  -----------
  ArmPkg/PlatformBootManagerLib: hide UEFI Shell as a regular boot option

Without ConnectAll() being called on the boot path, the UEFI shell will
be entered with no block devices or anything else connected, and so for
the novice user, this is not a very accommodating environment. Now that
we have made the UiApp the last resort on boot failure, and made the
UEFI Shell accessible directly via the 's' hotkey if you really need
it, let's hide it as an ordinary boot option.

Signed-off-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Leif Lindholm <[email protected]>


  Commit: 037d86dd7a9ef36c85bf416d358f2ef60a4940b3
      
https://github.com/tianocore/edk2/commit/037d86dd7a9ef36c85bf416d358f2ef60a4940b3
  Author: Ard Biesheuvel <[email protected]>
  Date:   2020-06-06 (Sat, 06 Jun 2020)

  Changed paths:
    M ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c

  Log Message:
  -----------
  ArmPkg/PlatformBootManagerLib: don't connect all devices on each boot

In order to avoid boot delays from devices such as network controllers
that may not even be involved in booting at all, drop the call to
EfiBootManagerConnectAll () from the boot path. It will be called by
UiApp, so when going through the menu, all devices will be connected
as usual, but for the default boot, it is really not necessary so
let's get rid of this.

Enumerating all possible boot options and creating Boot#### variables
for them is equally unnecessary in the default case, and also happens
automatically in UiApp, so drop that as well.

Signed-off-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Leif Lindholm <[email protected]>


Compare: https://github.com/tianocore/edk2/compare/8035edbe12f0...037d86dd7a9e


_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to