On 03/21/16 10:33, Ard Biesheuvel wrote:
> 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.

I think the argument you cited for 1/5 is not correct.

Even if it was, it would break away from existing practice. So I'd like
to see a reference to that argument (and to the agreement that edk2 in
general will adopt that pattern going forward).

Thanks!
Laszlo

> 
>>
>>  #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