public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Laszlo Ersek" <lersek@redhat.com>
To: Michael D Kinney <michael.d.kinney@intel.com>, devel@edk2.groups.io
Cc: Jordan Justen <jordan.l.justen@intel.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: Re: [Patch] OvmfPkg/QemuVideoDxe: Remove dependency on OptionRomPkg
Date: Fri, 10 May 2019 01:25:17 +0200	[thread overview]
Message-ID: <df122c6a-2f28-2bef-7c6c-50ccc177f78a@redhat.com> (raw)
In-Reply-To: <20190509173948.13160-1-michael.d.kinney@intel.com>

Hello Mike,

On 05/09/19 19:39, Michael D Kinney wrote:
> Update the QemuVideoDxe driver to not depend on the
> OptionRomPkg to support moving OptionRomPkg to the
> edk2-platforms repository.
> 
> The only dependency on the OptionRomPkg is the use of
> PcdDriverSupportedEfiVersion to set the version value in the
> EFI Driver Supported EFI Version Protocol.  This protocol is
> intended for use in drivers for add-in devices, which does not
> apply to the QEMU integrated video controller.  Since this
> protocol does not apply to QEMU environment, remove both the
> PCD and the installation of the EFI Driver Supported EFI
> Version Protocol.
> 
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> ---
>  OvmfPkg/QemuVideoDxe/Driver.c                    | 15 +--------------
>  OvmfPkg/QemuVideoDxe/DriverSupportedEfiVersion.c | 15 ---------------
>  OvmfPkg/QemuVideoDxe/Qemu.h                      |  3 +--
>  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf            |  6 +-----
>  4 files changed, 3 insertions(+), 36 deletions(-)
>  delete mode 100644 OvmfPkg/QemuVideoDxe/DriverSupportedEfiVersion.c

Thanks for the patch!

The code is ready to go in. I'd like to request one update with the
commit message. Please replace the following sentence in the middle:

    This protocol is intended for use in drivers for add-in devices,
    which does not apply to the QEMU integrated video controller.

with:

    Quoting the UEFI-2.8 spec, "This protocol is required for EFI
    drivers that are *on* PCI and other plug in cards" (emphasis ours).
    However, QemuVideoDxe is always part of the OVMF platform firmware,
    and is never read by PciBusDxe from the PCI ROM BAR of QEMU's
    emulated graphics cards.

(I'm asking for this update because I don't consider the QEMU GPUs in
question integrated devices (such as the IGD is, on physical boards).
The QEMU GPUs may not be hotpluggable, yes, but I think they still
qualify as discrete (cold-pluggable) PCI devices. For example, OVMF can
be run on "headless" (serial port only) QEMU VMs too.)

With that update:

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

Thank you very much!
Laszlo

> 
> diff --git a/OvmfPkg/QemuVideoDxe/Driver.c b/OvmfPkg/QemuVideoDxe/Driver.c
> index 45bcfb8fd1..e8a613ef33 100644
> --- a/OvmfPkg/QemuVideoDxe/Driver.c
> +++ b/OvmfPkg/QemuVideoDxe/Driver.c
> @@ -2,7 +2,7 @@
>    This driver is a sample implementation of the Graphics Output Protocol for
>    the QEMU (Cirrus Logic 5446) video controller.
>  
> -  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>  
>    SPDX-License-Identifier: BSD-2-Clause-Patent
>  
> @@ -982,18 +982,5 @@ InitializeQemuVideo (
>               );
>    ASSERT_EFI_ERROR (Status);
>  
> -  //
> -  // Install EFI Driver Supported EFI Version Protocol required for
> -  // EFI drivers that are on PCI and other plug in cards.
> -  //
> -  gQemuVideoDriverSupportedEfiVersion.FirmwareVersion = PcdGet32 (PcdDriverSupportedEfiVersion);
> -  Status = gBS->InstallMultipleProtocolInterfaces (
> -                  &ImageHandle,
> -                  &gEfiDriverSupportedEfiVersionProtocolGuid,
> -                  &gQemuVideoDriverSupportedEfiVersion,
> -                  NULL
> -                  );
> -  ASSERT_EFI_ERROR (Status);
> -
>    return Status;
>  }
> diff --git a/OvmfPkg/QemuVideoDxe/DriverSupportedEfiVersion.c b/OvmfPkg/QemuVideoDxe/DriverSupportedEfiVersion.c
> deleted file mode 100644
> index c06f1d73cf..0000000000
> --- a/OvmfPkg/QemuVideoDxe/DriverSupportedEfiVersion.c
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -/** @file
> -  Driver supported version protocol for the QEMU video driver.
> -
> -  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
> -
> -  SPDX-License-Identifier: BSD-2-Clause-Patent
> -
> -**/
> -#include "Qemu.h"
> -
> -EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL gQemuVideoDriverSupportedEfiVersion = {
> -  sizeof (EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL), // Size of Protocol structure.
> -  0                                                   // Version number to be filled at start up.
> -};
> -
> diff --git a/OvmfPkg/QemuVideoDxe/Qemu.h b/OvmfPkg/QemuVideoDxe/Qemu.h
> index 2b64f1e2b0..87c933935f 100644
> --- a/OvmfPkg/QemuVideoDxe/Qemu.h
> +++ b/OvmfPkg/QemuVideoDxe/Qemu.h
> @@ -1,7 +1,7 @@
>  /** @file
>    QEMU Video Controller Driver
>  
> -  Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>    SPDX-License-Identifier: BSD-2-Clause-Patent
>  
>  **/
> @@ -156,7 +156,6 @@ extern QEMU_VIDEO_BOCHS_MODES                     QemuVideoBochsModes[];
>  extern EFI_DRIVER_BINDING_PROTOCOL                gQemuVideoDriverBinding;
>  extern EFI_COMPONENT_NAME_PROTOCOL                gQemuVideoComponentName;
>  extern EFI_COMPONENT_NAME2_PROTOCOL               gQemuVideoComponentName2;
> -extern EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL  gQemuVideoDriverSupportedEfiVersion;
>  
>  //
>  // Io Registers defined by VGA
> diff --git a/OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf b/OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
> index 4e29b0c20f..fe8befd51d 100644
> --- a/OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
> +++ b/OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
> @@ -2,7 +2,7 @@
>  #  This driver is a sample implementation of the Graphics Output Protocol for
>  #  the QEMU (Cirrus Logic 5446) video controller.
>  #
> -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>  #
>  #  SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
> @@ -29,7 +29,6 @@ [Defines]
>  [Sources.common]
>    ComponentName.c
>    Driver.c
> -  DriverSupportedEfiVersion.c
>    Gop.c
>    Initialize.c
>    Qemu.h
> @@ -41,7 +40,6 @@ [Sources.Ia32, Sources.X64]
>  [Packages]
>    MdePkg/MdePkg.dec
>    MdeModulePkg/MdeModulePkg.dec
> -  OptionRomPkg/OptionRomPkg.dec
>    OvmfPkg/OvmfPkg.dec
>  
>  [LibraryClasses]
> @@ -59,12 +57,10 @@ [LibraryClasses]
>    UefiLib
>  
>  [Protocols]
> -  gEfiDriverSupportedEfiVersionProtocolGuid     # PROTOCOL ALWAYS_PRODUCED
>    gEfiGraphicsOutputProtocolGuid                # PROTOCOL BY_START
>    gEfiDevicePathProtocolGuid                    # PROTOCOL BY_START
>    gEfiPciIoProtocolGuid                         # PROTOCOL TO_START
>  
>  [Pcd]
> -  gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion
>    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
>    gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask
> 


      reply	other threads:[~2019-05-09 23:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-09 17:39 [Patch] OvmfPkg/QemuVideoDxe: Remove dependency on OptionRomPkg Michael D Kinney
2019-05-09 23:25 ` Laszlo Ersek [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=df122c6a-2f28-2bef-7c6c-50ccc177f78a@redhat.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox