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