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