[edk2-devel] [PATCH v1 1/1] ArmPkg: Dispatch deferred images after EndOfDxe

Ard Biesheuvel ard.biesheuvel at linaro.org
Thu May 2 08:14:27 UTC 2019


On Wed, 1 May 2019 at 16:02, Sami Mujawar <sami.mujawar at arm.com> wrote:
>
> Third party driver images loaded from Option ROM get queued
> for execution after EndOfDxe. These queued images need to be
> dispatched from the PlatformBootManagerLib.
>
> Since the queued images were not dispatched, the PCI Option
> ROM drivers were not getting loaded on Juno. Therefore,
> add call to EfiBootManagerDispatchDeferredImages() for
> dispatching deferred images from PlatformBootManagerLib.
>
> Signed-off-by: Sami Mujawar <sami.mujawar at arm.com>

Hello Sami,

The patch looks correct to me, but I am puzzled why this is broken on
Juno but not on SynQuacer or Overdrive.

It might be that the PCI hierarchy is enumerated before EndOfDxe on
Juno, and after on the other platforms. Any clue?


> ---
>
> The changes can be seen at https://github.com/samimujawar/edk2/tree/527_option_rom_loading_v1
>
>  ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c
> index 0f91692c1a5ee6104bfef8545e4f436e53042178..71b857b5ba884c27ab870f6b75fa3e34d48e6060 100644
> --- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c
> +++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c
> @@ -2,7 +2,7 @@
>    Implementation for PlatformBootManagerLib library class interfaces.
>
>    Copyright (C) 2015-2016, Red Hat, Inc.
> -  Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
> +  Copyright (c) 2014 - 2019, ARM Ltd. All rights reserved.<BR>
>    Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
>    Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
>
> @@ -554,6 +554,11 @@ PlatformBootManagerBeforeConsole (
>    EfiEventGroupSignal (&gEfiEndOfDxeEventGroupGuid);
>
>    //
> +  // Dispatch deferred images after EndOfDxe event.
> +  //
> +  EfiBootManagerDispatchDeferredImages ();
> +
> +  //
>    // Locate the PCI root bridges and make the PCI bus driver connect each,
>    // non-recursively. This will produce a number of child handles with PciIo on
>    // them.
> --
> 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
>
>

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#39901): https://edk2.groups.io/g/devel/message/39901
Mute This Topic: https://groups.io/mt/31432647/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list