public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Shivanshu Goyal <shivanshu3@gmail.com>
To: Stefan Berger <stefanb@linux.ibm.com>
Cc: devel@edk2.groups.io, marcandre.lureau@redhat.com,
	 Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Jiewen Yao <jiewen.yao@intel.com>,
	 Jordan Justen <jordan.l.justen@intel.com>,
	Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [PATCH] OvmfPkg: Call PlatformInitializeConsole for GPU passthrough case
Date: Thu, 16 Dec 2021 13:42:55 -0800	[thread overview]
Message-ID: <CANZYUUVcWGnpnKMsgCzGy6J2q7ntzH2BrFWuSJMcYUCDk6X_Zw@mail.gmail.com> (raw)
In-Reply-To: <20211215154408.248444-1-stefanb@linux.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 3826 bytes --]

Thank you for making this change Stefan. I tested your patch locally on my
GPU passthrough Windows 10 VM and it successfully fixes it.
I added a "Tested-by:" note inline in your patch.

Thank you,
Shivanshu Goyal

On Wed, Dec 15, 2021 at 7:44 AM Stefan Berger <stefanb@linux.ibm.com> wrote:

> For GPU passthrough support we have to initialize the console after
> EfiBootManagerDispatchDeferredImages() has loaded ROMs. This was the
> calling order before the TCG physical presence support moved it to
> before End-of-DXE since End-of-DXE disables the TPM 2 platform
> hierarchy and some physical presence commands would not work otherwise.
> To enable user interaction, the console initialization was also moved
> to before End-of-DXE. With this fix, the console is now initialized twice
> where the second initialization fixes the GPU passthrough support but it
> doesn't allow user interaction for TCG physical presence when GPU
> passthrough is used.
>
> Fixes: b8675deaa819631db2667df63f89799fe65fc906
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=3771
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
>
Tested-by: Shivanshu Goyal <shivanshu3@gmail.com>

> ---
>  OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c      | 7 +++++++
>  OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c | 6 ++++++
>  OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c  | 6 ++++++
>  3 files changed, 19 insertions(+)
>
> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
> b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
> index 186401296a..faf5d2b9ae 100644
> --- a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
> +++ b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
> @@ -414,6 +414,13 @@ PlatformBootManagerBeforeConsole (
>    //
>    EfiBootManagerDispatchDeferredImages ();
>
> +  //
> +  // GPU passthrough only allows console enablement after ROM image load
> +  //
> +  PlatformInitializeConsole (
> +    XenDetected() ? gXenPlatformConsole : gPlatformConsole);
> +
> +
>    FrontPageTimeout = GetFrontPageTimeoutFromQemu ();
>    PcdStatus = PcdSet16S (PcdPlatformBootTimeOut, FrontPageTimeout);
>    ASSERT_RETURN_ERROR (PcdStatus);
> diff --git a/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
> b/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
> index e767c3b172..0dab0ecbb7 100644
> --- a/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
> +++ b/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
> @@ -400,6 +400,12 @@ PlatformBootManagerBeforeConsole (
>    //
>    EfiBootManagerDispatchDeferredImages ();
>
> +  //
> +  // GPU passthrough only allows console enablement after ROM image load
> +  //
> +  PlatformInitializeConsole (
> +    XenDetected() ? gXenPlatformConsole : gPlatformConsole);
> +
>    PlatformRegisterOptionsAndKeys ();
>
>    //
> diff --git a/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
> b/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
> index fd80577355..b82931d726 100644
> --- a/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
> +++ b/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
> @@ -363,6 +363,12 @@ PlatformBootManagerBeforeConsole (
>    //
>    EfiBootManagerDispatchDeferredImages ();
>
> +  //
> +  // GPU passthrough only allows console enablement after ROM image load
> +  //
> +  PlatformInitializeConsole (
> +    XenDetected() ? gXenPlatformConsole : gPlatformConsole);
> +
>    Status = gRT->SetVariable (
>                    EFI_TIME_OUT_VARIABLE_NAME,
>                    &gEfiGlobalVariableGuid,
> --
> 2.31.1
>
>

-- 
Shivanshu Goyal
shivanshu.ca

[-- Attachment #2: Type: text/html, Size: 5387 bytes --]

  reply	other threads:[~2021-12-16 21:43 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-15 15:44 [PATCH] OvmfPkg: Call PlatformInitializeConsole for GPU passthrough case Stefan Berger
2021-12-16 21:42 ` Shivanshu Goyal [this message]
2021-12-17  5:49 ` Gerd Hoffmann

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=CANZYUUVcWGnpnKMsgCzGy6J2q7ntzH2BrFWuSJMcYUCDk6X_Zw@mail.gmail.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