[edk2,wave,1,v2,4/6] ArmVirtPkg: PlatformIntelBdsLib: signal gRootBridgesConnectedEventGroupGuid

Message ID 1458744370-10318-5-git-send-email-lersek@redhat.com
State New
Headers show

Commit Message

Laszlo Ersek March 23, 2016, 2:46 p.m.
The explanation is in the patch titled

  OvmfPkg: introduce gRootBridgesConnectedEventGroupGuid

At this point, this signal doesn't do anything yet.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

---

Notes:
    v2:
    - replace protocol with event group [Jordan]

 ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf | 1 +
 ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c      | 6 ++++++
 2 files changed, 7 insertions(+)

-- 
1.8.3.1


_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Ard Biesheuvel March 23, 2016, 2:57 p.m. | #1
On 23 March 2016 at 15:46, Laszlo Ersek <lersek@redhat.com> wrote:
> The explanation is in the patch titled

>

>   OvmfPkg: introduce gRootBridgesConnectedEventGroupGuid

>

> At this point, this signal doesn't do anything yet.

>

> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> Cc: Jordan Justen <jordan.l.justen@intel.com>

> Contributed-under: TianoCore Contribution Agreement 1.0

> Signed-off-by: Laszlo Ersek <lersek@redhat.com>


Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


> ---

>

> Notes:

>     v2:

>     - replace protocol with event group [Jordan]

>

>  ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf | 1 +

>  ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c      | 6 ++++++

>  2 files changed, 7 insertions(+)

>

> diff --git a/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf b/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf

> index 79ba7b2afbf7..f104accc0334 100644

> --- a/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf

> +++ b/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf

> @@ -67,14 +67,15 @@ [Pcd]

>    gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer

>

>  [Guids]

>    gEfiFileInfoGuid

>    gEfiFileSystemInfoGuid

>    gEfiFileSystemVolumeLabelInfoIdGuid

>    gEfiEndOfDxeEventGroupGuid

> +  gRootBridgesConnectedEventGroupGuid

>

>  [Protocols]

>    gEfiDevicePathProtocolGuid

>    gEfiGraphicsOutputProtocolGuid

>    gEfiLoadedImageProtocolGuid

>    gEfiPciRootBridgeIoProtocolGuid

>    gEfiSimpleFileSystemProtocolGuid

> diff --git a/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c b/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c

> index 9267a188e810..02d698b455b3 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 <Guid/RootBridgesConnectedEventGroup.h>

>

>  #include "IntelBdsPlatform.h"

>

>  #define DP_NODE_LEN(Type) { (UINT8)sizeof (Type), (UINT8)(sizeof (Type) >> 8) }

>

>

>  #pragma pack (1)

> @@ -366,14 +367,19 @@ PlatformBdsPolicyBehavior (

>    // 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.

> +  //

> +  EfiEventGroupSignal (&gRootBridgesConnectedEventGroupGuid);

> +

> +  //

>    // 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
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Patch

diff --git a/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf b/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
index 79ba7b2afbf7..f104accc0334 100644
--- a/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
+++ b/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
@@ -67,14 +67,15 @@  [Pcd]
   gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer
 
 [Guids]
   gEfiFileInfoGuid
   gEfiFileSystemInfoGuid
   gEfiFileSystemVolumeLabelInfoIdGuid
   gEfiEndOfDxeEventGroupGuid
+  gRootBridgesConnectedEventGroupGuid
 
 [Protocols]
   gEfiDevicePathProtocolGuid
   gEfiGraphicsOutputProtocolGuid
   gEfiLoadedImageProtocolGuid
   gEfiPciRootBridgeIoProtocolGuid
   gEfiSimpleFileSystemProtocolGuid
diff --git a/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c b/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
index 9267a188e810..02d698b455b3 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 <Guid/RootBridgesConnectedEventGroup.h>
 
 #include "IntelBdsPlatform.h"
 
 #define DP_NODE_LEN(Type) { (UINT8)sizeof (Type), (UINT8)(sizeof (Type) >> 8) }
 
 
 #pragma pack (1)
@@ -366,14 +367,19 @@  PlatformBdsPolicyBehavior (
   // 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.
+  //
+  EfiEventGroupSignal (&gRootBridgesConnectedEventGroupGuid);
+
+  //
   // 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);
 
   //