On 14 March 2016 at 13:52, Laszlo Ersek <[email protected]> wrote:
> The explanation is in the patch titled
>
>   OvmfPkg: introduce gRootBusesConnectedProtocolGuid
>
> At this point, this protocol doesn't do anything yet.
>
> Cc: Ard Biesheuvel <[email protected]>
> Cc: Gerd Hoffmann <[email protected]>
> Cc: Jordan Justen <[email protected]>
> Cc: Marcel Apfelbaum <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Laszlo Ersek <[email protected]>
> ---
>  ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf |  1 +
>  ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c      | 11 
> +++++++++++
>  2 files changed, 12 insertions(+)
>
> diff --git a/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf 
> b/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
> index 79ba7b2afbf7..bc0eab100319 100644
> --- a/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
> +++ b/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
> @@ -74,7 +74,8 @@ [Guids]
>
>  [Protocols]
>    gEfiDevicePathProtocolGuid
>    gEfiGraphicsOutputProtocolGuid
>    gEfiLoadedImageProtocolGuid
>    gEfiPciRootBridgeIoProtocolGuid
>    gEfiSimpleFileSystemProtocolGuid
> +  gRootBusesConnectedProtocolGuid
> diff --git a/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c 
> b/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
> index b242a293a103..c8acfb1e86a6 100644
> --- a/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
> +++ b/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
> @@ -21,14 +21,15 @@
>  #include <Library/PlatformBdsLib.h>
>  #include <Library/QemuBootOrderLib.h>
>  #include <Protocol/DevicePath.h>
>  #include <Protocol/GraphicsOutput.h>
>  #include <Protocol/PciIo.h>
>  #include <Protocol/PciRootBridgeIo.h>
>  #include <Guid/EventGroup.h>
> +#include <Protocol/RootBusesConnected.h>

As noted in response to 1/5, if you only ever refer to the guid by its
name 'gEfiPciRootBridgeIoProtocolGuid', I don't think this header is
necessary.

>
>  #include "IntelBdsPlatform.h"
>
>  #define DP_NODE_LEN(Type) { (UINT8)sizeof (Type), (UINT8)(sizeof (Type) >> 
> 8) }
>
>
>  #pragma pack (1)
> @@ -390,22 +391,32 @@ EFIAPI
>  PlatformBdsPolicyBehavior (
>    IN LIST_ENTRY                      *DriverOptionList,
>    IN LIST_ENTRY                      *BootOptionList,
>    IN PROCESS_CAPSULES                ProcessCapsules,
>    IN BASEM_MEMORY_TEST               BaseMemoryTest
>    )
>  {
> +  EFI_STATUS Status;
> +
>    //
>    // 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.
>    //
>    FilterAndProcess (&gEfiPciRootBridgeIoProtocolGuid, NULL, Connect);
>
>    //
> +  // Signal the ACPI platform driver that it can download QEMU ACPI tables.
> +  //
> +  Status = gBS->InstallProtocolInterface (&gImageHandle,
> +                  &gRootBusesConnectedProtocolGuid, EFI_NATIVE_INTERFACE,
> +                  NULL);
> +  ASSERT_EFI_ERROR (Status);
> +
> +  //
>    // Find all display class PCI devices (using the handles from the previous
>    // step), and connect them non-recursively. This should produce a number of
>    // child handles with GOPs on them.
>    //
>    FilterAndProcess (&gEfiPciIoProtocolGuid, IsPciDisplay, Connect);
>
>    //
> --
> 1.8.3.1
>
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to